Tuan-Dat Tran
8da0ab98f8
fix(k3s_server): skip installation if k3s binary already exists
...
Primary and secondary install tasks now check k3s_status.stat.exists
so re-running the playbook is idempotent on already-provisioned nodes.
2026-04-27 21:43:42 +02:00
Tuan-Dat Tran
b4e093c9b1
fix(k3s_server): use VIP address in kubeconfig instead of k3s_server_name
...
k3s_server_name resolves to k3s.seyshiro.de which has no DNS entry.
Use k3s_vip (192.168.20.2) so the kubeconfig always works.
2026-04-27 21:41:55 +02:00
Tuan-Dat Tran
95715c7748
feat(k3s_server): persist control-plane NoSchedule taint in k3s config
...
Adds node-taint to /etc/rancher/k3s/config.yaml so the taint
survives node reboots. Taint is already applied live via kubectl.
2026-04-27 21:35:24 +02:00
Tuan-Dat Tran
5bc3024eaf
feat(k3s): replace nginx loadbalancer with kube-vip for control-plane HA
...
Deploys kube-vip as a DaemonSet on all k3s server nodes, advertising a
VIP (192.168.20.2) via ARP. Eliminates the single-point-of-failure
k3s-loadbalancer VM.
- New kube_vip role: RBAC + DaemonSet templates, TLS SAN cert rotation
- playbooks/kube-vip.yaml: migration playbook (serial=1, idempotent)
- Updated k3s install tasks (server primary/secondary, agent) to use k3s_vip
instead of the loadbalancer VM IP
- Added k3s_vip: 192.168.20.2 to group_vars (below DHCP range .11-.250)
Migration steps in playbook header comment.
2026-04-26 12:08:42 +02:00
Tuan-Dat Tran
543e9a2c97
fix(docker_host): remove /media/docker from NFS mount loop
...
/media/docker is no longer a valid NFS-backed path; was causing
mount failures on docker_host nodes.
2026-04-23 08:06:03 +02:00
Tuan-Dat Tran
b157dd0b89
feat(k3s_server): install etcd-client on control plane nodes
2026-04-22 19:40:24 +02:00
Tuan-Dat Tran
c16e7cf740
fix(k3s_server): use inventory_hostname for primary detection and delegate token fetch
...
Primary server detection previously used ansible_default_ipv4.address compared against
k3s_primary_server_ip, which breaks with --limit since facts are only gathered for the
targeted hosts, causing the variable to resolve to the wrong IP.
- Replace IP comparisons with `inventory_hostname == groups['k3s_server'] | first`
in main.yaml (primary install, secondary install, kubeconfig tasks)
- Delegate the node-token slurp to the primary server unconditionally so
pull_token.yaml works correctly when run against any single node with --limit
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-21 23:30:57 +02:00
Tuan-Dat Tran
f0a45e3fda
fix: configure explicit NTP servers in timesyncd instead of relying on DHCP
...
Gateway at 192.168.20.1 was being provided via DHCP as the NTP server but
does not serve NTP, causing NodeClockNotSynchronising across all nodes.
2026-04-20 20:56:30 +02:00
Tuan-Dat Tran
b5f82e2978
fix: install kitty terminfo on all nodes via common role
2026-04-20 20:36:23 +02:00
Tuan-Dat Tran
29561c44c8
fix: enable and start systemd-timesyncd in common time role
...
systemd-timesyncd was installed via common_packages but never enabled or
started, causing NodeClockNotSynchronising alerts across all k3s nodes.
2026-04-20 20:18:19 +02:00
Tuan-Dat Tran
5a8c7f0248
feat(proxmox): add hosts config
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2026-02-28 11:30:58 +01:00
Tuan-Dat Tran
a9346881b0
refactor(edge_vps): reorganize certificate files
2026-02-25 00:26:08 +01:00
Tuan-Dat Tran
193da30e65
docs(edge_vps): update README with role documentation
2026-02-25 00:12:50 +01:00
Tuan-Dat Tran
fc2eefdfb0
feat(edge_vps): add main task orchestrator
2026-02-25 00:03:17 +01:00
Tuan-Dat Tran
274b9c310e
feat(edge_vps): add Elastic Agent setup task and templates
2026-02-25 00:00:00 +01:00
Tuan-Dat Tran
6fdd021604
feat(edge_vps): add Pangolin setup task and templates
2026-02-24 23:56:00 +01:00
Tuan-Dat Tran
1b82acad1f
feat(edge_vps): add Traefik setup task and template
2026-02-24 23:53:00 +01:00
Tuan-Dat Tran
d8822ad904
feat(edge_vps): add WireGuard setup task and template
2026-02-24 23:50:08 +01:00
Tuan-Dat Tran
caecfc7c1d
feat(edge_vps): add directory setup task
2026-02-24 23:47:34 +01:00
Tuan-Dat Tran
4907761649
feat(edge_vps): add role structure and handlers
2026-02-24 23:45:14 +01:00
Tuan-Dat Tran
a3cb1928ae
docs(argocd): add missing Ingress task and note about missing template
2026-02-16 09:25:36 +01:00
Tuan-Dat Tran
99f6876ce9
docs: Add changelog and update role documentation
2026-02-16 09:21:08 +01:00
Tuan-Dat Tran
ef652fac20
refactor: yml -> yaml
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-11-07 20:44:14 +01:00
Tuan-Dat Tran
9cb90a8020
feat(caddy): netcup->cf
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-10-25 09:25:40 +02:00
Tuan-Dat Tran
d9181515bb
feat(k3s): Added (temporary) node
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-10-19 01:33:42 +02:00
Tuan-Dat Tran
2909d6e16c
feat(nfs): Removed unused/removed nfs servers
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-09-15 23:29:03 +02:00
Tuan-Dat Tran
44626101de
feat(docker): match services that moved to k3s
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-09-15 23:29:03 +02:00
Tuan-Dat Tran
c1d6f13275
refactor(ansible-lint): fixed ansible-lint warnings
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-09-15 23:29:03 +02:00
Tuan-Dat Tran
282e98e90a
fix(proxmox): commented 'non-errors' on script
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-09-15 23:29:03 +02:00
Tuan-Dat Tran
9573cbfcad
feat(k3s): Added 2 nodes
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-09-07 21:21:33 +02:00
Tuan-Dat Tran
48aec11d8c
feat(common): added iscsi for longhorn on k3s
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-09-07 18:17:33 +02:00
Tuan-Dat Tran
a1da69ac98
feat(proxmox): check_vm as cronjob
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-09-02 19:52:49 +02:00
Tuan-Dat Tran
6eef96b302
feat(pre-commit): Added linting
2025-07-27 22:46:23 +02:00
Tuan-Dat Tran
2882abfc0b
Added README.md for roles
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-07-27 16:40:46 +02:00
Tuan-Dat Tran
dbaebaee80
cleanup: services moved to argocd
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-07-27 13:58:25 +02:00
Tuan-Dat Tran
89c51aa45c
feat(argo): app-of-app argo
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-07-25 07:58:41 +02:00
Tuan-Dat Tran
0139850ee3
feat(reverse_proxy): fix caddy letsencrypt
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-07-22 21:26:11 +02:00
Tuan-Dat Tran
976cad51e2
refactor(k3s): enhance cluster setup and enable ArgoCD apps
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-07-22 07:23:23 +02:00
Tuan-Dat Tran
e1a2248154
feat(kubernetes): add nfs-provisioner
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-07-15 23:24:52 +02:00
Tuan-Dat Tran
d8fd094379
feat(kubernetes): stable kubernetes with argo
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-07-14 22:57:13 +02:00
Tuan-Dat Tran
76000f8123
feat(kubernetes): add initial setup for ArgoCD, Cert-Manager, MetalLB, and Traefik
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-07-13 14:25:53 +02:00
Tuan-Dat Tran
4aa939426b
refactor(k3s): enhance kubeconfig generation and token management
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-07-13 09:33:39 +02:00
Tuan-Dat Tran
9cce71f73b
refactor(k3s): manage token securely and install guest agent
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-07-13 02:15:01 +02:00
Tuan-Dat Tran
97a5d6c41d
refactor(k3s): centralize k3s primary server IP and integrate Netcup DNS
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-07-13 01:30:05 +02:00
Tuan-Dat Tran
f1b0cfad2c
refactor(k3s): streamline inventory and primary server IP handling
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-07-13 00:40:48 +02:00
Tuan-Dat Tran
dac0d88d60
feat(proxmox): add k3s agents and refine VM provisioning
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-07-12 23:08:44 +02:00
Tuan-Dat Tran
609e000089
refactor(ansible): centralize inventory and variables in 'vars' directory
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-07-12 21:38:53 +02:00
Tuan-Dat Tran
3d7f652ff3
refactor(ansible): restructure inventory and remove postgres role
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-07-12 20:35:26 +02:00
Tuan-Dat Tran
cb8ccd8f00
wip
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-06-07 01:19:27 +02:00
Tuan-Dat Tran
02168225b1
wip
...
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev >
2025-06-07 00:16:54 +02:00