Commit Graph

469 Commits

Author SHA1 Message Date
cyberops7
081c11fb40 K3S-Deploy: strip trailing blank line from kube-vip manifest
The end-of-file-fixer pre-commit hook (CI) requires a single trailing
newline; the kube-vip manifest had a blank line at EOF.
2026-07-15 22:56:14 -06:00
cyberops7
c436d29182 K3S-Deploy: harden HA bring-up and expand README caveats
Add a post-join control-plane readiness gate so a half-succeeded server
join on a degraded etcd can no longer pass as success. Retry the MetalLB
IPAddressPool/L2Advertisement applies to ride out the validating-webhook
startup race. Narrow the k3sup cleanup glob, quiet the final k3sup ready
tip, and clarify two comments.

README: add networking caveats (VIP/LB outside the DHCP pool, same-subnet
ARP/L2, interface naming), certName key placement, a post-run verification
section, machine-count/admin-box notes, and fix the RAW_BASE description.
2026-07-15 22:26:45 -06:00
cyberops7
49313239f4 K3S-Deploy: join via the VIP, not master1; harden per k8s review
- join all nodes to --server-ip $vip (the readiness-gated VIP) so no single
  master is the registration SPOF; drop the dead --server-user on joins
  (a --node-token is already supplied, so k3sup doesn't SSH the server)
- add --tls-san=$vip to every server's args (not just master1's install) so
  master2/3 declare the VIP SAN uniformly
- pin --flannel-iface/--node-ip on workers too (correct on multi-NIC nodes)
- filter k3sup's repeated 'slicervm.com' promo tip on install/join (sed, so
  pipefail still surfaces a real failure)
- guard 'kubectl expose' with || true so a re-run doesn't abort on AlreadyExists

Re-validated on the 6-VM Multipass e2e: 5 nodes Ready, VIP serves the API,
MetalLB LoadBalancer reachable.
2026-07-07 22:55:48 -06:00
cyberops7
fd3d414edb K3S-Deploy: rename readme.md -> README.md; align options table
- match the global README.md convention; update the reference in k3s.sh
- pad the options table so it reads cleanly in raw and rendered views,
  kept under the 80-col markdownlint limit
2026-07-05 23:29:24 -06:00
cyberops7
6f2f77e785 K3S-Deploy: expand README 'what changed' (MetalLB single manifest, k3sup node-token/ready, non-blinking output, VIP readiness) 2026-07-05 23:20:16 -06:00
cyberops7
8a33841883 K3S-Deploy: fix k3sup install and kube-vip placement (from e2e)
Found running the deploy end-to-end on a multi-node cluster:
- k3sup: get.k3sup.dev leaves an arch-suffixed binary (k3sup-arm64) when
  run unprivileged; install whichever binary it produced, not a literal
  'k3sup' that may not exist.
- kube-vip: scp landed the manifest in the ssh user's home, but the mv
  ran as root (sudo bash -s) where ~ is /root; scp to /tmp and mv from
  the absolute path instead.
2026-07-05 22:34:13 -06:00
cyberops7
7e24e445aa K3S-Deploy: anchor VIP kubeconfig rewrite; add VIP readiness check
- rewrite only the server URL (https://master1:6443 -> VIP) instead of a
  global regex substitution whose dots could over-match cert data
- poll the VIP /readyz after repointing the kubeconfig, so a broken
  kube-vip fails early with a clear message instead of downstream
2026-07-05 22:06:27 -06:00
cyberops7
b64a35faa9 K3S-Deploy: rewrite README (prereqs, config, what changed from the video) 2026-07-05 21:36:59 -06:00
cyberops7
8d71dcdf5d K3S-Deploy: guard final summary and pre-flight read against set -e
- fall back ready_nodes=0 if kubectl fails, so the summary still prints
- tolerate EOF on the pre-flight prompt so it aborts cleanly
2026-07-05 21:33:57 -06:00
cyberops7
7ec8404797 K3S-Deploy: rewrite deploy script
- pin k3s v1.35.6+k3s1 (channel alternative documented), MetalLB v0.16.0
- kube-vip v1.2.1 control-plane VIP placed on all masters; kubeconfig -> VIP
- drop redundant kube-vip cloud-provider; single MetalLB native manifest
- k3sup node-token (fetched once) + k3sup ready
- set -euo pipefail, ssh-keyscan known_hosts (no ~/.ssh/config clobber),
  per-node NTP + apt-guarded prereqs, arch-aware kubectl, re-run safe
- pre-flight config summary + [y/N] gate (ASSUME_YES bypass)
- non-blinking step/info/ok/warn/err output; RAW_BASE override for testing

Closes #40 #62 #68 #78 #80 #159 #162; supersedes #66 #89 #145
2026-07-05 21:28:35 -06:00
cyberops7
72d4344b78 K3S-Deploy: REPLACE_LBRANGE token; tidy L2Advertisement name 2026-07-05 21:19:51 -06:00
cyberops7
8bad8db978 K3S-Deploy: regenerate kube-vip with --inCluster for k3s
The kubeadm default mounts /etc/kubernetes/admin.conf, which does not
exist on k3s. --inCluster uses the kube-vip ServiceAccount (provided by
the applied rbac.yaml) instead, which is the correct mode for k3s.
2026-07-05 21:18:24 -06:00
cyberops7
ee2ea92389 K3S-Deploy: regenerate kube-vip manifest for v1.2.1
Regenerated from ghcr.io/kube-vip/kube-vip:v1.2.1 (env schema changed
since 0.x: vip_cidr->vip_subnet, dropped vip_ddns/svc_*, added
dhcp_mode/dns_mode/vip_nodename). Uses REPLACE_INTERFACE/REPLACE_VIP tokens.
2026-07-05 21:13:01 -06:00
DefNotJeffrey
da22609f60 Komodo - overhaul for v2.x (#169)
* Fix in image link + set fixed version

* Change old version of Komodo to new Compose and Env

* Small fix volume

* Change to latest ( last change )
2026-07-05 12:13:34 -06:00
DefNotJeffrey
07e1008400 Merge pull request #155 from filipsnetwork/patch-1
Update readme.md Synapse
2026-07-05 19:21:51 +02:00
cyberops7
8de0775282 Fix RKE2 MetalLB L2Advertisement to honor custom lb_pool_name (#135) (#168)
* Fix RKE2 MetalLB L2Advertisement to honor custom lb_pool_name (#135)

The apply-manifests role rendered the IPAddressPool from a template using
lb_pool_name, but applied the L2Advertisement from a hardcoded remote file
where the pool name was baked in as 'first-pool'. Setting lb_pool_name to
anything else left the L2Advertisement pointing at a non-existent pool, so
MetalLB assigned LoadBalancer IPs but never advertised them (services got an
external IP but were unreachable).

Template the L2Advertisement locally from lb_pool_name, mirroring the
IPAddressPool pattern, so both manifests always reference the same pool.

* Add explicit become: true to apply-manifests kubectl tasks

These tasks set become_user without a task-level become, tripping
ansible-lint's partial-become rule. become is already enabled globally via
ansible_become in group_vars/all.yaml, so the tasks already escalate to the
ansible user — but that is invisible to the linter (and to anyone reading the
task in isolation). Make it explicit with become: true alongside become_user.

Behavior-neutral: verified with ansible-playbook -vvv that the escalation
target is unchanged (sudo -u ansible; chown ansible on the temp files), so
kubectl still runs as the ansible user that owns ~/.kube/config.
2026-07-02 00:34:00 -06:00
cyberops7
fc18bfe3d7 fix: correct misspelled docker-compose filename in Tailscale-Client (#167)
Rename docker-compose,yaml (comma) to docker-compose.yaml (dot) so the
Tailscale client compose file follows the standard naming convention.

Fixes #43
2026-07-01 21:33:06 -06:00
JamesTurland
8ece0d29fd audiobookshelf 2026-04-18 22:35:59 +01:00
JamesTurland
0f0b99552f wake-on-lan 2026-03-27 11:21:32 +00:00
JamesTurland
27043bc5ba update 2026-02-09 10:07:52 +00:00
JamesTurland
5467cecc8e update 2026-02-09 10:07:17 +00:00
JamesTurland
23c748c9ea update 2026-02-09 10:05:53 +00:00
JamesTurland
b4569767b5 update conifg 2026-02-09 10:05:06 +00:00
JamesTurland
4ac0426a65 nut-server 2026-02-06 15:59:24 +00:00
JamesTurland
c2cfd73577 update# 2025-10-17 09:17:52 +01:00
JamesTurland
7e50fee5dc strix-halo 2025-10-17 09:14:46 +01:00
filipsnetwork
329c058daa Update readme.md
\ are not showing up, added it into a code block so remediate the issue.
2025-10-04 12:49:01 +02:00
JamesTurland
5b8475b112 checkmk 2025-09-24 12:54:44 +01:00
JamesTurland
bc2eeef7f2 Merge branch 'main' of https://github.com/JamesTurland/JimsGarage 2025-09-04 18:12:00 +01:00
JamesTurland
bfa2ffa837 wazuh 2025-09-04 18:11:58 +01:00
James
996d0aeaf0 Update readme.md
version bump
2025-09-02 21:48:48 +01:00
JamesTurland
0a6e4d43e2 update with links 2025-07-29 22:27:33 +01:00
JamesTurland
41002ecdd4 update 2025-07-29 22:21:08 +01:00
JamesTurland
8e8382e1b8 update 2025-07-29 22:19:04 +01:00
James Turland
a51a869cec macOSWindows 2025-07-29 22:16:38 +01:00
James Turland
ae4e124337 igpu 2025-07-07 22:28:28 +01:00
James Turland
477d3c5db7 igpu 2025-07-07 22:26:27 +01:00
James Turland
f45338927b Merge branch 'main' of https://github.com/JamesTurland/JimsGarage 2025-07-03 10:28:25 +01:00
James Turland
374c93186d twenty 2025-07-03 10:28:22 +01:00
James
c3b09e2c0e Update docker-compose.yaml 2025-07-02 15:06:15 +01:00
James Turland
2f8a30d715 guacamole 2025-06-27 23:35:50 +01:00
James Turland
690ea8e042 RustDesk 2025-06-19 15:34:19 +01:00
James Turland
1288dacb00 zigbee2mqtt 2025-06-11 16:25:58 +01:00
James Turland
c4f20395b3 omni-tools 2025-04-25 22:37:51 +01:00
James Turland
5e4b41c3c2 checkmate 2025-04-19 00:11:55 +01:00
James Turland
66ff3a82b3 Tinyauth 2025-04-11 12:28:39 +01:00
James Turland
56bf5f741c pocket-id 2025-04-09 12:53:51 +01:00
James Turland
b295a6e4cc cloudflare-https 2025-03-26 13:06:47 +00:00
James Turland
fe7e815482 Merge branch 'main' of https://github.com/JamesTurland/JimsGarage 2025-03-08 00:20:01 +00:00
James Turland
9d1f5e8f1c postiz 2025-03-08 00:19:58 +00:00