; Prole Master Configuration File ; Generated by install.py on 2026-04-03 15:29:24 ; This file is used as input for Ansible deployment and k8s cluster creation. [User] ; User-editable values; derived values below reference these by default. ; No user values captured yet for this section. [Inputs] ; Screen-scoped inputs used for unattended replays (-S) argocd.node_selector = gandalf.prole.org build.deploy_env = Dev build.run_build = false database_options.distribution = percona database_options.ext.dblink = true database_options.ext.pg_buffercache = true database_options.ext.pg_cron = true database_options.ext.pg_freespacemap = true database_options.ext.pg_repack = true database_options.ext.pg_stat_monitor = true database_options.ext.pg_stat_statements = true database_options.ext.pg_tde = true database_options.ext.pgaudit = true database_options.ext.pgbadger = true database_options.ext.pgcrypto = true database_options.ext.pgrowlocks = true database_options.ext.pgvector = true database_options.ext.postgis = true database_options.ext.postgres_fdw = true database_options.version_type = v18 dependencies.ansible.install = true dependencies.auto_install_missing = true dependencies.brew.install = true dependencies.docker.install = true dependencies.k3d.install = true dependencies.kubectl.install = true dependencies.kubectx.install = true dependencies.opentofu.install = true dependencies.python.install = true dependencies.verify_all = false disk_selection.disk_type = local disk_selection.local_path = ${HOME}/dev/prole/prole-tools-app/dist disk_selection.removable_mount = env_setup.CLUSTER_NAME = ${CLUSTER_NAME} env_setup.DATABASE_NAMESPACE = ${DATABASE_NAMESPACE} env_setup.PROLE_CONF = ${HOME}/dev/prole/conf env_setup.PROLE_DATA = ${HOME}/dev/prole/data env_setup.PROLE_HOME = ${HOME}/dev/prole env_setup.PROLE_LOGS = ${HOME}/dev/prole/logs env_setup.PROLE_SERVICE = ${HOME}/dev/prole/etc env_setup.APP_CLUSTER_KUBECONTEXT = knoe.dev.prole.org env_setup.DB_CLUSTER_KUBECONTEXT = knoe.dev.prole.org init_cluster.app_cluster_kubecontext = knoe.dev.prole.org init_cluster.db_cluster_kubecontext = knoe.dev.prole.org gitops.git_provider = GitLab gitops.node_selector = gandalf.prole.org init_cluster.argocd_enabled = false init_cluster.at_rest_encryption_enabled = true init_cluster.cluster_env = service init_cluster.deployment_target = prole-service-cluster init_cluster.gitops_enabled = true init_cluster.k3s_server_url = https://myrddin.prole.org:6443 init_cluster.k3s_token = ${PROLE_SECRET:v1:vCWJZS-Sd3PspQvq:vvRx07ahtfy0r5l8VlvOvDjz2N-Ejstk1ilhBhTiQwmgaxF4RLsDjzZb9rHLjuagjnujJ2jv7F_7s8IHXA6a1baxyn58zHFctXn3AJWPDEVGpEu-iUQDuc5bDOMEVmC73wJ3Ormxs7ihhkWSrbyjYpeRfQUjYesGvJTJ1Q==} init_cluster.kerberos_enabled = true init_cluster.mode = k3s init_cluster.start_cluster = true init_cluster.supabase_enabled = true init_cnpg_deploy.force_rollout = false init_cnpg_deploy.run_deploy = true init_db_build.run_build = true init_password.cluster_name = ${CLUSTER_NAME} init_password.db_host_port = 5432 init_password.db_namespace = ${DATABASE_NAMESPACE} init_password.db_password = ${PROLE_SECRET:v1:TYl1mPEwJblWR-4g:PalHm2ODG8WF1ZRVeUt51erDvA0W0icX} init_password.db_password_confirm = ${PROLE_SECRET:v1:TYl1mPEwJblWR-4g:PalHm2ODG8WF1ZRVeUt51erDvA0W0icX} init_password.db_username = root init_password.generate_ssh_key = true init_scripts.run_scripts = true kerberos_config.enabled = true kerberos_config.kdc = 10.0.0.3 kerberos_config.password = ${PROLE_SECRET:v1:U-EPMl7qv4heEB1k:BEcXGbI_LT4lCXwBuvFEGgPbLFa9MpVzECObdH0pbLtClDHf} kerberos_config.realm = PROLE.ORG kerberos_config.test_connection = false kerberos_config.user = administrator network_scan.run = true ollama_config.model = ollama_config.server_host = fairyland.prole.org ollama_config.server_port = 11434 supabase_config.pv_base_dir = /synology/d005 supabase_config.pv_node = gandalf.prole.org [Global] ; Variables used by name in more than one place or assumed global scope ARGOCD_NAMESPACE = argocd ARGOCD_NODE_SELECTOR = gandalf.prole.org CLUSTER_ENV = service CLUSTER_NAME = knoe-db CNPG_ELIGIBLE_NODES = gandalf.prole.org,merlin.prole.org,myrddin.prole.org CNPG_PLACEMENT_PLAN_FILE = ${HOME}/dev/prole/conf/cnpg-placement/knoe-system-knoe-db.json CNPG_PLACEMENT_PLAN_HASH = 75c4114781519174 CNPG_PLACEMENT_PLAN_ID = cnpg-placement-75c4114781519174 CNPG_STAGE1_NODE = gandalf.prole.org DATABASE_NAMESPACE = knoe-db DB_HOST_PORT = 5432 DB_PASSWORD = ${PROLE_SECRET:v1:t7NgRHfXTXH-mHcx:CRbKP9b6ccuxrTMMeJ742Q48_vegoUY4} DEPLOYMENT_MODE = k3s DEPLOYMENT_TARGET = prole-service-cluster DOCKER_PRELOAD = false GITEA_NODE_SELECTOR = gandalf.prole.org K3S_SERVER = https://myrddin.prole.org:6443 K3S_TOKEN = ${PROLE_SECRET:v1:gnQjvO_dhM7qkU_g:kFb7E6IQ40RM64JfsrJWBPzkJsMaLXNpNPxfho6t8w5KAeWCAyrw2bMsQtJ8n7cPc_SLWh_zX53Sa1pvEOclmd79e-c_Qff0gZleba1PzzfkjsYRfVlpzQ34gdAHrNHQG2mKnpkcyrNFZ0j6J-w4c3m_m6bTN1cV1KQvMQ==} KNOE_DB_USER = root OPTIONAL_WORKLOADS_MIN_READY_SCHEDULABLE_NODES = 2 PROLE_K3S_SERVER = https://myrddin.prole.org:6443 PROLE_K3S_TOKEN = ${PROLE_SECRET:v1:vCWJZS-Sd3PspQvq:vvRx07ahtfy0r5l8VlvOvDjz2N-Ejstk1ilhBhTiQwmgaxF4RLsDjzZb9rHLjuagjnujJ2jv7F_7s8IHXA6a1baxyn58zHFctXn3AJWPDEVGpEu-iUQDuc5bDOMEVmC73wJ3Ormxs7ihhkWSrbyjYpeRfQUjYesGvJTJ1Q==} ; KNOE_IMAGE_REGISTRY: in-cluster container registry for CNPG and custom images. ; When GitLab is deployed, set to gitlab-registry..svc.cluster.local:5000 ; so it takes over from registry:2. The deploy pipeline auto-detects this when ; the key is absent, but an explicit value here is the stable override. KNOE_IMAGE_REGISTRY = gitlab-registry.gitlab.svc.cluster.local:5000 REGISTRY_NAMESPACE = knoe-system SERVICE_NAMESPACE = knoe-system SUPABASE_PV_BASE = /synology/d005 SUPABASE_PV_BASE_DIR = /synology/d005 SUPABASE_PV_NODE = gandalf.prole.org SYNOLOGY_ROOTS = /synology/d001,/synology/d002,/synology/d004,/synology/d005 [Welcome] ; No configuration values captured yet for this section. [Dependencies] STATUS = All installed [Network] AD_DC_HOST = myrddin.prole.org AD_DC_IP = 10.0.0.3 ANSIBLE_DOMAIN = prole.org ANSIBLE_INFRASTRUCTURE = ${HOME}/dev/prole/infrastructure ANSIBLE_INVENTORY = ${HOME}/dev/prole/infrastructure/inventory ANSIBLE_REALM = PROLE.ORG ANSIBLE_TOPOLOGY = {"domain":"prole.org","realm":"PROLE.ORG","internal_records":{"aventage.prole.org":"10.0.0.206","fairyland.prole.org":"10.0.0.208","loghost.prole.org":"10.0.0.3","merlin.prole.org":"10.0.0.6","morana.prole.org":"10.0.0.66","morgoth.prole.org":"10.0.0.204","myrddin.prole.org":"10.0.0.3","pi.prole.org":"10.0.0.5","raspberry.prole.org":"10.0.0.4","retropie.prole.org":"10.0.0.207","synology.prole.org":"10.0.0.203","zinfandel.prole.org":"10.0.0.205"},"ad_dc":{"host":"myrddin.prole.org","ip":"10.0.0.3"},"k3s":{"server_url":"https://myrddin.prole.org:6443","server_host":"myrddin.prole.org","token_present":true},"groups":{"iscsi":["pi.prole.org","raspberry.prole.org","myrddin.prole.org","retropie.prole.org","merlin.prole.org","gandalf.prole.org"],"pihole":["pi.prole.org","raspberry.prole.org"],"ad_dc":["myrddin.prole.org"],"k3s_servers":["myrddin.prole.org"],"k3s_agents":["merlin.prole.org","gandalf.prole.org"],"k3s_hosts:children":["k3s_servers","k3s_agents"],"linux_hosts":["pi.prole.org","raspberry.prole.org","myrddin.prole.org","retropie.prole.org","merlin.prole.org","gandalf.prole.org"],"ssl_hosts":["myrddin.prole.org"],"mariadb_primary":["merlin.prole.org"],"mariadb_replica":["raspberry.prole.org"],"mariadb:children":["mariadb_primary","mariadb_replica"],"merlin_bootstrap":["merlin"],"k3s_hosts":["gandalf.prole.org"]},"hosts":{"merlin":"10.0.0.6","merlin.prole.org":"10.0.0.6","myrddin.prole.org":"10.0.0.3","pi.prole.org":"10.0.0.5","raspberry.prole.org":"10.0.0.4","retropie.prole.org":"10.0.0.207"},"unmapped_hosts":["gandalf.prole.org","k3s_agents","k3s_servers","mariadb_primary","mariadb_replica"]} KDC_ANSIBLE_DETECTED = 10.0.0.3 KDC_AUTO_DETECTED = 10.0.0.3 KERBEROS_AUTO_ENABLED = True [Port Forwards] ; No configuration values captured yet for this section. [System Environment] PROLE_CONF = ${HOME}/dev/prole/conf PROLE_DATA = ${HOME}/dev/prole/data PROLE_HOME = ${HOME}/dev/prole PROLE_LOGS = ${HOME}/dev/prole/logs PROLE_SERVICE = ${HOME}/dev/prole/etc [Monitoring] GRAFANA_ADMIN_PASSWORD = ${PROLE_SECRET:v1:L2BhAyHRKVei4cGM:-J83-HR_CpnPFpiB6NbOXKdmmagVW2qL} [Kerberos Authentication] AD_PORT_FORWARD = 1 AD_PROXY_HOST_NETWORK = 1 AD_PROXY_IMAGE = alpine/socat AD_PROXY_SERVICE = prole-kerberos-ad-dc AD_TCP_PORTS = 88 389 445 464 636 AD_UDP_PORTS = 88 464 ENABLED = True KDC = 10.0.0.3 PASSWORD = ${PROLE_SECRET:v1:SmpyHqa_Io4rpm1V:IfQesVrD3v_8cbjTf1Ls1cV0K4ENNCwPecr38EJX-rDDScOB} REALM = PROLE.ORG SERVER = 10.0.0.3 STATUS = Initialized USER = administrator [Ollama] OLLAMA_HOST = http://fairyland.prole.org:11434 OLLAMA_SERVER_HOST = fairyland.prole.org OLLAMA_SERVER_PORT = 11434 [Optional Features] ARGOCD_ENABLED = False AT_REST_ENCRYPTION_ENABLED = True GITOPS_ENABLED = True GITOPS_PROVIDER = GitLab KERBEROS_ENABLED = True SUPABASE_ENABLED = True [GitOps] ; No configuration values captured yet for this section. [Database Creation] DB_USER = root [Initialize Cluster] ENVIRONMENT = service K3S_SERVER_URL = https://myrddin.prole.org:6443 K3S_TOKEN = ${PROLE_SECRET:v1:vCWJZS-Sd3PspQvq:vvRx07ahtfy0r5l8VlvOvDjz2N-Ejstk1ilhBhTiQwmgaxF4RLsDjzZb9rHLjuagjnujJ2jv7F_7s8IHXA6a1baxyn58zHFctXn3AJWPDEVGpEu-iUQDuc5bDOMEVmC73wJ3Ormxs7ihhkWSrbyjYpeRfQUjYesGvJTJ1Q==} [Dev Cluster (k3d)] CLUSTER_ENV = dev DISPLAY_NAME = knoe-dev-cluster KUBECTL_CONTEXT = knoe.dev.prole.org MODE = k3d [Service Cluster (k3s)] CLUSTER_ENV = prole-service-cluster DISPLAY_NAME = prole-service-cluster K3S_SERVER_URL = https://myrddin.prole.org:6443 K3S_TOKEN = ${PROLE_SECRET:v1:vCWJZS-Sd3PspQvq:vvRx07ahtfy0r5l8VlvOvDjz2N-Ejstk1ilhBhTiQwmgaxF4RLsDjzZb9rHLjuagjnujJ2jv7F_7s8IHXA6a1baxyn58zHFctXn3AJWPDEVGpEu-iUQDuc5bDOMEVmC73wJ3Ormxs7ihhkWSrbyjYpeRfQUjYesGvJTJ1Q==} MODE = k3s [GCP] BILLING_ACCOUNT = 01193C-25783B-3211AD BILLING_PROJECT = plenary-truck-485623-p7 ORG_ID = 584001916389 PROJECT_ID = plenary-truck-485623-p7 [Prod Cluster (k8s)] ARTIFACTS_DIR = ${HOME}/dev/prole/data/staging CLUSTER_ENV = prole-prod-cluster DISPLAY_NAME = prole-prod-cluster MODE = k8s [Docker Build] ; No configuration values captured yet for this section. [Initialization Scripts] STATUS = Completed [Deployment] MODE = k3s TARGET = prole-service-cluster [CNPG Clusters] ; Declarative cluster registry — one entry per managed CNPG cluster. ; Format: . = ; Required: namespace, identity (exactly one cluster must have identity=true) ; Optional: instances (default: 3), image (per-cluster imageName override) ; ; The pipeline deploys each declared cluster to its fixed namespace. ; DATABASE_NAMESPACE in [Global] is authoritative for the identity cluster. ; Add more clusters here as hardware expands — no code changes needed. knoe-db.namespace = knoe-db knoe-db.identity = true knoe-db.instances = 3 ; Example additional lab cluster: ; knoe-staging.namespace = knoe-staging ; knoe-staging.identity = false ; knoe-staging.instances = 1 [Install] STATUS = Failed