prole/infrastructure/inventory/host_vars/myrddin.prole.org.yml
chrisfu 16a3dce584 k3s: enforce node placement for monitoring/CNPG/Supabase
- Pin Prometheus/Alertmanager + Grafana to merlin.prole.org in k3s to avoid PV node-affinity issues

- Taint myrddin.prole.org as control-plane-only and add CNPG toleration

- Prevent init_cloudnative_pg from deploying prole-svc-kong into the DB namespace

- GitOps-manage Kong declarative config via ConfigMap + add placement/init tests
2026-03-18 23:16:06 -07:00

120 lines
3.6 KiB
YAML

iscsi_portal: 10.0.0.203
iscsi_targets:
# PROLE-DB-1
- iqn: "iqn.2000-01.com.synology:synology.Target-11.292d45194a1"
chap_user: "prole"
chap_password: "{{ vault_iscsi_prole_password }}"
mounts:
- path: /prole/d001
fstype: xfs
opts: "_netdev,noatime"
src: "UUID=c07dc0f2-cf60-4da5-b68e-ea45e86d473e"
# PROLE-DB-2
- iqn: "iqn.2000-01.com.synology:synology.Target-12.292d45194a1"
chap_user: "prole"
chap_password: "{{ vault_iscsi_prole_password }}"
mounts:
- path: /prole/d002
fstype: xfs
opts: "_netdev,noatime"
src: "UUID=fe087fb0-a321-4767-b838-b4385e81693e"
# PROLE-DB-3
- iqn: "iqn.2000-01.com.synology:synology.Target-13.292d45194a1"
chap_user: "prole"
chap_password: "{{ vault_iscsi_prole_password }}"
mounts:
- path: /prole/d003
fstype: xfs
opts: "_netdev,noatime"
src: "UUID=757f1ee4-dc23-414b-b595-e3058c0744f0"
# PROLE-HOME
- iqn: "iqn.2000-01.com.synology:synology.Target-17.292d45194a1"
chap_user: "prole"
chap_password: "{{ vault_iscsi_prole_password }}"
mounts:
- path: /prole/home
fstype: ext4
opts: "_netdev,noatime"
src: "UUID=607718c8-467a-474f-8e36-80ceafe1beb4"
# PROLE-LOGS
- iqn: "iqn.2000-01.com.synology:synology.Target-1.292d45194a1"
chap_user: "prole"
chap_password: "{{ vault_iscsi_prole_password }}"
mounts:
- path: /prole/logs
fstype: ext4
opts: "_netdev,noatime"
src: "UUID=5335affd-b1ab-4134-a1c0-be88ab965309"
iscsi_absent_mounts:
- /opt/prole/logs/chrisfu
ad_dc_enabled: true
k3s_enabled: true
k3s_cluster_init: false
k3s_role: server
# K3s state storage (local)
# `/var/lib/rancher` is now backed by a locally attached USB3 SSD on myrddin.
# Shared/iSCSI storage remains reserved for `/prole/*` data paths.
k3s_rancher_mountpoint: /var/lib/rancher
k3s_rancher_storage_class: local_usb3_ssd
k3s_token: "{{ vault_k3s_token | default('') }}" # store this in vault
k3s_datastore_mariadb_host: 10.0.0.6
k3s_datastore_mariadb_port: 3306
k3s_datastore_mariadb_db: k3s
k3s_datastore_mariadb_user: prole_k3s
# Password is the same as the Samba administrator password and must remain in Ansible Vault.
k3s_datastore_mariadb_password: "{{ vault_samba_dns_admin_pass }}"
k3s_datastore_endpoint: "mysql://{{ k3s_datastore_mariadb_user }}:{{ k3s_datastore_mariadb_password | urlencode }}@tcp({{ k3s_datastore_mariadb_host }}:{{ k3s_datastore_mariadb_port }})/{{ k3s_datastore_mariadb_db }}"
k3s_tls_sans:
- myrddin.prole.org
k3s_service_node_labels:
- "prole.org/node-role=db"
- "prole.org/role=control"
# Keep general workloads off the control-plane node; allow only explicitly-tolerating pods.
k3s_node_taints:
- "node-role.kubernetes.io/control-plane:NoSchedule"
# More forgiving IO/etcd timeouts to reduce error-correction churn on slow storage
k3s_kube_apiserver_args:
- "request-timeout=60s"
- "min-request-timeout=60"
k3s_kube_controller_manager_args:
- "leader-elect-lease-duration=600s"
- "leader-elect-renew-deadline=420s"
- "leader-elect-retry-period=60s"
- "node-monitor-grace-period=10m"
- "node-startup-grace-period=10m"
k3s_kube_scheduler_args:
- "leader-elect-lease-duration=600s"
- "leader-elect-renew-deadline=420s"
- "leader-elect-retry-period=60s"
k3s_cloud_controller_manager_args:
- "leader-elect-lease-duration=900s"
- "leader-elect-renew-deadline=600s"
- "leader-elect-retry-period=90s"
k3s_kubelet_args:
- "housekeeping-interval=30s"
k3s_write_kubeconfig_mode: "0640"
k3s_kubeconfig_group: kubeadm
k3s_kubeconfig_users:
- pi
k3s_required_mounts:
- /prole/d001
- /prole/d002
- /prole/d003