- Migrate MySQL/PostgreSQL storage from local-path to iscsi-truenas - Add democratic-csi iSCSI driver module for TrueNAS - Add open-iscsi to cloud-init VM template - Fix Shlink health probe path (/api/v3 -> /rest/v3 for Shlink 5.0) - Fix etcd backup: use etcd 3.5.21-0 (3.6.x is distroless, no /bin/sh) - Fix cluster healthcheck CronJob: always exit 0 to prevent circular JobFailed alerts (reporting via Slack, not exit codes) - Fix Uptime Kuma nested list handling in cluster-health.sh - Add health probes to: audiobookshelf, immich ML, ntfy, headscale, uptime-kuma, vaultwarden, rybbit (clickhouse + server + client), shlink, shlink-web - Add iSCSI storage documentation to CLAUDE.md
72 lines
1.6 KiB
YAML
72 lines
1.6 KiB
YAML
#cloud-config
|
|
hostname: terraform-vm
|
|
users:
|
|
- name: wizard
|
|
sudo: ALL=(ALL) NOPASSWD:ALL
|
|
ssh_authorized_keys:
|
|
- ${authorized_ssh_key}
|
|
passwd: ${passwd}
|
|
lock_passwd: false # enable passwd login
|
|
shell: /bin/bash
|
|
package_update: true
|
|
package_upgrade: true
|
|
packages:
|
|
- htop
|
|
- vim
|
|
- curl
|
|
- jq
|
|
- tcpdump
|
|
- tree
|
|
- tmux
|
|
- wget
|
|
- net-tools
|
|
- zsh
|
|
- apt-transport-https
|
|
- ca-certificates
|
|
- gpg
|
|
- isc-dhcp-client
|
|
- cloud-guest-utils # to enable resizing of disk via growpart
|
|
- qemu-guest-agent
|
|
- nginx
|
|
# docker
|
|
- docker-ce
|
|
- docker-ce-cli
|
|
- containerd.io
|
|
- docker-buildx-plugin
|
|
- docker-compose-plugin
|
|
%{if is_k8s_template}
|
|
# kubernetes
|
|
- kubeadm
|
|
- kubelet
|
|
# iSCSI client for CSI-backed database storage
|
|
- open-iscsi
|
|
%{endif}
|
|
|
|
apt:
|
|
sources:
|
|
%{if is_k8s_template}
|
|
kubernetes:
|
|
source: "deb https://pkgs.k8s.io/core:/stable:/v1.32/deb/ /"
|
|
keyid: "DE15B14486CD377B9E876E1A234654DA9A296436"
|
|
filename: kubernetes.list
|
|
%{endif}
|
|
docker:
|
|
source: "deb https://download.docker.com/linux/ubuntu noble stable"
|
|
keyid: "9DC858229FC7DD38854AE2D88D81803C0EBFCD88"
|
|
filename: docker.list
|
|
|
|
runcmd:
|
|
%{if is_k8s_template}
|
|
- apt-mark hold kubelet kubeadm kubectl
|
|
- systemctl stop kubelet
|
|
- containerd config default | sudo tee /etc/containerd/config.toml
|
|
- ${containerd_config_update_command}
|
|
- systemctl restart containerd
|
|
- systemctl enable --now iscsid
|
|
- ${k8s_join_command}
|
|
- systemctl enable kubelet
|
|
- systemctl start kubelet
|
|
%{ endif }
|
|
%{ for provision_cmd in provision_cmds ~}
|
|
- ${provision_cmd}
|
|
%{ endfor ~}
|