Commit Graph
58 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
JamesandGitHub 7e506e303f Merge pull request #102 from Simon-CR/patch-1
Update k3s.sh
2024-09-25 15:39:01 +01:00
tehNooBandGitHub b50e7a212e Merge pull request #103 from Simon-CR/patch-2
Update k3s.sh - apt-get
2024-08-23 01:02:27 +01:00
SimonCandGitHub e85f082001 Update kube-vip - version
change version to 0.8.2
2024-08-22 11:06:21 -04:00
SimonCandGitHub 5852304957 Update k3s.sh - apt-get
Switched apt to apt-get to get rid of the warning message that using apt should be avoided in scripts.
2024-08-22 10:52:12 -04:00
SimonCandGitHub 6503c607b1 Update k3s.sh
- added the variable for the ssh config file
- check if the file exist
- if file exist, look for the StrictHostKeyChecking value and update if needed, otherwise add the line
- if file does not exist, create it, change file permissions and add the setting
2024-08-22 10:12:44 -04:00
Ricardo WagnerandGitHub ef0f115cac Update kube-vip 2024-04-09 12:58:08 -05:00
tehNooBandGitHub 682903d285 Update k3s.sh 2024-03-17 21:21:16 +00:00
MarcandGitHub c83a164925 Update k3s.sh apply ipAdressPool.yaml
the ip addresses never gets applied, this should fix it
2024-02-21 18:56:41 +01:00
James Turland e217e74db4 update 2023-12-22 11:39:01 +00:00
tehNooBandGitHub 8442ed88c4 Delete Kubernetes/K3S-Deploy/k3s-test-do-not-use.sh 2023-12-05 17:57:10 +00:00
tehNooBandGitHub 15db5c8d80 Update k3s.sh 2023-12-05 07:37:14 +00:00
James Turland 9af9a88fc3 update 2023-12-04 11:24:05 +00:00
James Turland 78701624c4 update 2023-12-04 10:00:00 +00:00
James Turland 7d2b9b34cb update 2023-12-04 09:57:38 +00:00
James Turland 85abace931 update 2023-12-04 09:52:43 +00:00
James Turland 72e350505c update 2023-12-04 09:44:10 +00:00
James Turland a757f239da update 2023-12-04 09:42:26 +00:00
James Turland 52ed6b908f update 2023-12-04 09:34:08 +00:00
James Turland 1ed2dcb049 update 2023-12-04 09:26:48 +00:00
James Turland 59a6fbb5b5 update 2023-12-04 09:20:35 +00:00
James Turland 5141781330 update 2023-12-03 23:19:52 +00:00
James Turland dd682a0703 update 2023-12-03 22:51:35 +00:00
James Turland acc1f3067c update 2023-12-03 22:39:45 +00:00
James Turland 7dab23013b update 2023-12-03 22:30:21 +00:00
James Turland 03fb9972f4 update 2023-12-03 22:10:07 +00:00
James Turland d0659763de update 2023-12-03 21:57:13 +00:00
James Turland 8fe6afe156 update 2023-12-03 21:52:08 +00:00
James Turland 99ca8f4f32 update 2023-12-03 20:53:11 +00:00
James Turland 7e95e510b7 update 2023-12-03 20:27:37 +00:00
tehNooBandGitHub 2ca8e1bf92 Update k3s.sh 2023-11-13 07:12:29 +00:00
tehNooBandGitHub 2c62a9a1c1 install policycoreutils 2023-11-12 20:22:25 +00:00
tehNooBandGitHub 7f0670908c pin k3s version 2023-11-12 20:02:54 +00:00
tehNooBandGitHub 04fb9cf454 Update k3s.sh
Add interface variable to flannel arguements
2023-10-31 19:24:06 +00:00
MattiasandGitHub 72f496a0a8 Update k3s.sh - removed _pm
Since this ougth to be an issue for all future users.
2023-10-23 16:13:36 +02:00
tehNooBandGitHub 04c49316da Merge pull request #7 from ekloc/main
Added certificate name variable, added dynamic pod readiness check
2023-10-21 13:42:21 +01:00
tehNooBandGitHub 9faa4654f6 Update readme.md 2023-10-18 09:23:15 +01:00
tehNooBandGitHub b13637b603 Update readme.md 2023-10-18 09:23:01 +01:00