168 lines
4.6 KiB
YAML
168 lines
4.6 KiB
YAML
# /etc/ananke/ananke.yaml
|
|
kubeconfig: /etc/ananke/kubeconfig
|
|
ssh_user: atlas
|
|
ssh_port: 2277
|
|
ssh_config_file: ""
|
|
ssh_identity_file: /home/atlas/.ssh/id_ed25519
|
|
ssh_node_hosts: {}
|
|
ssh_node_users: {}
|
|
ssh_managed_nodes: []
|
|
ssh_jump_host: ""
|
|
ssh_jump_user: ""
|
|
iac_repo_path: /opt/titan-iac
|
|
expected_flux_branch: main
|
|
expected_flux_source_url: ssh://git@scm.bstein.dev:2242/bstein/titan-iac.git
|
|
control_planes:
|
|
- titan-0a
|
|
- titan-0b
|
|
- titan-0c
|
|
workers: []
|
|
local_bootstrap_paths:
|
|
- infrastructure/core
|
|
- clusters/atlas/flux-system
|
|
- infrastructure/sources/helm
|
|
- infrastructure/metallb
|
|
- infrastructure/traefik
|
|
- infrastructure/cert-manager
|
|
- infrastructure/vault-csi
|
|
- infrastructure/vault-injector
|
|
- services/vault
|
|
- infrastructure/postgres
|
|
- services/gitea
|
|
- services/keycloak
|
|
- services/oauth2-proxy
|
|
excluded_namespaces:
|
|
- kube-system
|
|
- kube-public
|
|
- kube-node-lease
|
|
- flux-system
|
|
- traefik
|
|
- metallb-system
|
|
- cert-manager
|
|
- longhorn-system
|
|
- vault
|
|
- postgres
|
|
- maintenance
|
|
startup:
|
|
api_wait_seconds: 1200
|
|
api_poll_seconds: 2
|
|
shutdown_cooldown_seconds: 45
|
|
minimum_battery_percent: 20
|
|
required_node_labels:
|
|
titan-09:
|
|
ananke.bstein.dev/harbor-bootstrap: "true"
|
|
require_time_sync: true
|
|
time_sync_wait_seconds: 240
|
|
time_sync_poll_seconds: 5
|
|
time_sync_mode: quorum
|
|
time_sync_quorum: 2
|
|
reconcile_access_on_boot: true
|
|
auto_etcd_restore_on_api_failure: true
|
|
etcd_restore_control_plane: titan-0a
|
|
require_storage_ready: true
|
|
storage_ready_wait_seconds: 420
|
|
storage_ready_poll_seconds: 5
|
|
storage_min_ready_nodes: 2
|
|
storage_critical_pvcs:
|
|
- vault/data-vault-0
|
|
- postgres/postgres-data-postgres-0
|
|
- gitea/gitea-data
|
|
- sso/keycloak-data
|
|
require_post_start_probes: true
|
|
post_start_probe_wait_seconds: 240
|
|
post_start_probe_poll_seconds: 5
|
|
post_start_probes:
|
|
- https://scm.bstein.dev/api/healthz
|
|
- https://metrics.bstein.dev/api/health
|
|
require_service_checklist: true
|
|
service_checklist_wait_seconds: 420
|
|
service_checklist_poll_seconds: 5
|
|
service_checklist_stability_seconds: 120
|
|
service_checklist:
|
|
- name: gitea-api
|
|
url: https://scm.bstein.dev/api/healthz
|
|
accepted_statuses: [200]
|
|
body_contains: pass
|
|
timeout_seconds: 12
|
|
- name: grafana-api
|
|
url: https://metrics.bstein.dev/api/health
|
|
accepted_statuses: [200]
|
|
body_contains: '"database":"ok"'
|
|
timeout_seconds: 12
|
|
- name: keycloak-oidc
|
|
url: https://sso.bstein.dev/realms/atlas/.well-known/openid-configuration
|
|
accepted_statuses: [200]
|
|
body_contains: '"issuer":"https://sso.bstein.dev/realms/atlas"'
|
|
timeout_seconds: 12
|
|
- name: harbor-registry
|
|
url: https://registry.bstein.dev/v2/
|
|
accepted_statuses: [401]
|
|
body_contains: unauthorized
|
|
timeout_seconds: 12
|
|
- name: longhorn-auth
|
|
url: https://longhorn.bstein.dev/
|
|
accepted_statuses: [200, 302]
|
|
timeout_seconds: 12
|
|
require_flux_health: true
|
|
flux_health_wait_seconds: 900
|
|
flux_health_poll_seconds: 5
|
|
ignore_flux_kustomizations: []
|
|
require_workload_convergence: true
|
|
workload_convergence_wait_seconds: 900
|
|
workload_convergence_poll_seconds: 5
|
|
ignore_workload_namespaces: []
|
|
ignore_workloads: []
|
|
ignore_unavailable_nodes: []
|
|
auto_recycle_stuck_pods: true
|
|
stuck_pod_grace_seconds: 180
|
|
vault_unseal_key_file: /var/lib/ananke/vault-unseal.key
|
|
vault_unseal_breakglass_command: ""
|
|
vault_unseal_breakglass_timeout_seconds: 15
|
|
shutdown:
|
|
default_budget_seconds: 1380
|
|
history_min_samples: 3
|
|
emergency_budget_seconds: 420
|
|
emergency_history_min_samples: 3
|
|
emergency_skip_etcd_snapshot: true
|
|
emergency_skip_drain: true
|
|
skip_etcd_snapshot: false
|
|
skip_drain: false
|
|
drain_parallelism: 6
|
|
scale_parallelism: 8
|
|
ssh_parallelism: 8
|
|
poweroff_enabled: true
|
|
poweroff_delay_seconds: 25
|
|
poweroff_local_host: true
|
|
extra_poweroff_hosts:
|
|
- titan-db
|
|
ups:
|
|
enabled: true
|
|
provider: nut
|
|
target: pyrphoros@localhost
|
|
targets:
|
|
- name: Pyrphoros
|
|
target: pyrphoros@localhost
|
|
poll_seconds: 5
|
|
runtime_safety_factor: 1.25
|
|
debounce_count: 3
|
|
telemetry_timeout_seconds: 90
|
|
coordination:
|
|
forward_shutdown_host: ""
|
|
forward_shutdown_user: atlas
|
|
forward_shutdown_config: /etc/ananke/ananke.yaml
|
|
peer_hosts: []
|
|
fallback_local_shutdown: true
|
|
command_timeout_seconds: 25
|
|
startup_guard_max_age_seconds: 900
|
|
role: coordinator
|
|
allow_startup_on_battery: false
|
|
metrics:
|
|
enabled: true
|
|
bind_addr: 0.0.0.0:9560
|
|
path: /metrics
|
|
state:
|
|
dir: /var/lib/ananke
|
|
run_history_path: /var/lib/ananke/runs.json
|
|
lock_path: /var/lib/ananke/ananke.lock
|
|
intent_path: /var/lib/ananke/intent.json
|