mirror of
https://github.com/dredx/prole.git
synced 2026-09-24 16:24:32 +00:00
Repairs and improvements:
- iSCSI: Added cleanup tasks to remove stale mounts and fstab entries. Improved robustness of iSCSI target management and added 'iscsi_absent_mounts' support.
- K3s:
- Updated service start logic to accept 'activating' state, preventing premature failure during slow startups.
- Improved service stop logic to safely handle missing or not-found services.
- Ensured 'prole-installer' ServiceAccount and ClusterRoleBinding exist for K8s administration.
- Added leader election and etcd tuning arguments (forgiving leases) to config.yaml.j2.
- Removed deprecated 'prole-port-forwards' systemd service.
- Installer & Scripts:
- Updated legacy_tk.py to support K3s mode, secret resolution for passwords, and better environment management (including ~/.prole/env.sh for service mode).
- Updated init_ansible.sh to support PROLE_VAULT_PASS_FILE and ANSIBLE_VAULT_PASSWORD_FILE.
- Improved directory and kubeconfig path resolution in prole_cfg.sh to support fallback to ~/.prole.
- Enhanced Grafana password resolution in init_monitoring.sh.
- Added automatic application of iSCSI StorageClass and PersistentVolumes in init_openbao.sh.
- General: Switched conf/prole.cfg to k3s deployment mode and updated vault_k3s.yml token.
New Ansible Tasks and Playbooks:
- infrastructure/playbooks/iscsi_cleanup.yml: Automates logout and removal of stale iSCSI node records.
- infrastructure/playbooks/prole_logs_migrate.yml: Orchestrates /prole/logs migration to iSCSI storage.
- infrastructure/playbooks/tmp_bao_dir.yml: Ensures host-level storage directories for OpenBao.
- infrastructure/playbooks/tmp_mount.yml: Utility to verify and enforce host-level mounts.
- infrastructure/playbooks/k3s_sync.yml: Added tasks to start K3s after sync and update local kubeconfig on the controller.
- Added 'Unmount stale iSCSI mounts' and 'Remove stale iSCSI fstab entries' to the iscsi role.
- Added 'Ensure prole-installer service account exists' to the k3s role.
171 lines
6.9 KiB
INI
171 lines
6.9 KiB
INI
; Prole Master Configuration File
|
|
; Generated by install.py on 2026-02-15 00:21:41
|
|
; This file is used as input for Ansible deployment and k8s cluster creation.
|
|
|
|
[User]
|
|
; User-editable values; derived values below reference these by default.
|
|
NAMESPACE = prole-db-101
|
|
PROLE_CONF = ${PROLE_HOME}/conf
|
|
PROLE_DATA = /Users/chrisfu/.prole/data
|
|
PROLE_HOME = /Users/chrisfu/dev/prole
|
|
PROLE_LOGS = /opt/prole/logs/chrisfu
|
|
PROLE_SERVICE = ${PROLE_HOME}/etc
|
|
SERVICE_NAMESPACE = default
|
|
|
|
[Inputs]
|
|
; Screen-scoped inputs used for unattended replays (-S)
|
|
build.deploy_env = Dev
|
|
build.run_build = false
|
|
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.python.install = true
|
|
dependencies.verify_all = false
|
|
disk_selection.disk_type = local
|
|
disk_selection.local_path = ${PROLE_HOME}/prole-tools-app/dist
|
|
disk_selection.removable_mount =
|
|
env_setup.PROLE_CONF = ${PROLE_CONF}
|
|
env_setup.PROLE_DATA = ${PROLE_DATA}
|
|
env_setup.PROLE_HOME = ${PROLE_HOME}
|
|
env_setup.PROLE_LOGS = ${PROLE_LOGS}
|
|
env_setup.PROLE_SERVICE = ${PROLE_SERVICE}
|
|
init_cluster.at_rest_encryption_enabled = true
|
|
init_cluster.cluster_env = prole-service-cluster
|
|
init_cluster.deployment_target = prole-service-cluster
|
|
init_cluster.k3s_server_url = https://myrddin.prole.org:6443
|
|
init_cluster.k3s_token = ${OPENBAO:kv/prole/prole-db-101/k3s#token}
|
|
init_cluster.kerberos_enabled = true
|
|
init_cluster.mode = k3s
|
|
init_cluster.start_cluster = true
|
|
init_cluster.supabase_enabled = false
|
|
init_cnpg_deploy.force_rollout = false
|
|
init_cnpg_deploy.run_deploy = true
|
|
init_db_build.run_build = true
|
|
init_password.db_host_port = 5432
|
|
init_password.db_password = ${OPENBAO:kv/prole/prole-db-101/db#password}
|
|
init_password.db_password_confirm = ${OPENBAO:kv/prole/prole-db-101/db#password}
|
|
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 = ${OPENBAO:kv/prole/prole-db-101/kerberos#password}
|
|
kerberos_config.realm = PROLE.ORG
|
|
kerberos_config.test_connection = false
|
|
kerberos_config.user =
|
|
network_scan.run = true
|
|
ollama_config.model =
|
|
ollama_config.server_host =
|
|
ollama_config.server_port = 11434
|
|
|
|
[Global]
|
|
; Variables used by name in more than one place or assumed global scope
|
|
CLUSTER_ENV = prole-service-cluster
|
|
DB_HOST_PORT = 5432
|
|
DB_PASSWORD = ${OPENBAO:kv/prole/prole-db-101/db#password}
|
|
DEPLOYMENT_MODE = k3s
|
|
DEPLOYMENT_TARGET = prole-service-cluster
|
|
DOCKER_IMPORT_DIR =
|
|
NAMESPACE = ${NAMESPACE}
|
|
PROLE_DB_USER = root
|
|
PROLE_HOME = ${PROLE_HOME}
|
|
PROLE_K3S_SERVER = https://myrddin.prole.org:6443
|
|
PROLE_K3S_TOKEN = ${OPENBAO:kv/prole/prole-db-101/k3s#token}
|
|
PROLE_OPENTOFU_URL = http://127.0.0.1:8080
|
|
SERVICE_NAMESPACE = ${SERVICE_NAMESPACE}
|
|
|
|
[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 = ${PROLE_HOME}/infrastructure
|
|
ANSIBLE_INVENTORY = ${PROLE_HOME}/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","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"],"pihole":["pi.prole.org","raspberry.prole.org"],"ad_dc":["myrddin.prole.org"],"k3s_hosts":["pi.prole.org","myrddin.prole.org","retropie.prole.org"],"linux_hosts":["pi.prole.org","raspberry.prole.org","myrddin.prole.org","retropie.prole.org"]},"hosts":{"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":[]}
|
|
KDC_ANSIBLE_DETECTED = 10.0.0.3
|
|
KDC_AUTO_DETECTED = 10.0.0.3
|
|
KERBEROS_AUTO_ENABLED = True
|
|
|
|
[Port Forwards]
|
|
PORT_FORWARD_K3S_MAPPING_1 = id=garage;namespace=default;target=svc/garage;address=0.0.0.0;hostPort=3900;servicePort=3900;protocol=TCP;description=Garage S3
|
|
PORT_FORWARD_K3S_MAPPING_2 = id=openbao;namespace=default;target=svc/openbao;address=0.0.0.0;hostPort=8200;servicePort=8200;protocol=TCP;description=OpenBao
|
|
PORT_FORWARD_K3S_MAPPING_3 = id=opentofu;namespace=default;target=svc/opentofu;address=0.0.0.0;hostPort=8080;servicePort=8080;protocol=TCP;description=OpenTofu
|
|
PORT_FORWARD_K3S_MAPPING_4 = id=dashboard;namespace=kubernetes-dashboard;target=svc/kubernetes-dashboard-kong-proxy;address=127.0.0.1;hostPort=8443;servicePort=443;protocol=TCP;description=Kubernetes Dashboard
|
|
PORT_FORWARD_K3S_MAPPING_5 = id=postgres;namespace=${NAMESPACE};target=svc/prole-db-rw;address=0.0.0.0;hostPort=5432;servicePort=5432;protocol=TCP;description=PostgreSQL (primary)
|
|
PORT_FORWARD_K3S_MAPPING_6 = id=grafana;namespace=${NAMESPACE};target=svc/grafana;address=0.0.0.0;hostPort=3000;servicePort=3000;protocol=TCP;description=Grafana UI
|
|
|
|
[System Environment]
|
|
PROLE_CONF = ${PROLE_CONF}
|
|
PROLE_DATA = ${PROLE_DATA}
|
|
PROLE_HOME = ${PROLE_HOME}
|
|
PROLE_LOGS = ${PROLE_LOGS}
|
|
PROLE_OPENTOFU_URL = http://127.0.0.1:8080
|
|
PROLE_SERVICE = ${PROLE_SERVICE}
|
|
|
|
[Monitoring]
|
|
GRAFANA_ADMIN_PASSWORD = ${OPENBAO:kv/prole/prole-db-101/monitoring#grafana_admin_password}
|
|
|
|
[Kerberos Authentication]
|
|
PASSWORD = ${OPENBAO:kv/prole/prole-db-101/kerberos#password}
|
|
|
|
[Ollama]
|
|
; No configuration values captured yet for this section.
|
|
|
|
[Optional Features]
|
|
AT_REST_ENCRYPTION_ENABLED = true
|
|
KERBEROS_ENABLED = true
|
|
SUPABASE_ENABLED = false
|
|
|
|
[Database Creation]
|
|
DB_NAME = prole-db-101
|
|
DB_PASSWORD_SET = true
|
|
DB_USER = root
|
|
|
|
[Initialize Cluster]
|
|
ENVIRONMENT = prole-service-cluster
|
|
K3S_SERVER_URL = https://myrddin.prole.org:6443
|
|
K3S_TOKEN = ${OPENBAO:kv/prole/prole-db-101/k3s#token}
|
|
|
|
[Dev Cluster (k3d)]
|
|
CLUSTER_ENV = k3d-prole-dev-cluster
|
|
DISPLAY_NAME = prole-dev-cluster
|
|
KUBECTL_CONTEXT = prole-service-cluster
|
|
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 = ${OPENBAO:kv/prole/prole-db-101/k3s#token}
|
|
MODE = k3s
|
|
PIPELINE_URL = http://127.0.0.1:8080
|
|
|
|
[Prod Cluster (k8s)]
|
|
ARTIFACTS_DIR = ${PROLE_DATA}/staging
|
|
CLUSTER_ENV = prole-prod-cluster
|
|
DISPLAY_NAME = prole-prod-cluster
|
|
MODE = k8s
|
|
PIPELINE_URL = http://127.0.0.1:8080
|
|
|
|
[Docker Build]
|
|
; No configuration values captured yet for this section.
|
|
|
|
[Initialization Scripts]
|
|
; No configuration values captured yet for this section.
|
|
|
|
[Deployment]
|
|
MODE = k3s
|
|
TARGET = prole-service-cluster
|
|
|
|
[Install]
|
|
STATUS = Failed
|