prole/conf/prole.cfg
chrisfu f47c18fef7 feat(infrastructure): enhance k3s automation and OpenTofu integration
- Infrastructure:
    - Updated k3s Ansible role with mountpoint preflight checks and better permission management.
    - Automated deployment of prole configuration and port-forwarding scripts to cluster hosts.
    - Added systemd service for managing port forwards on k3s nodes.
    - Added prole-installer service account token automation.
- K8s Manifests:
    - Renamed and added Persistent Volumes in iscsi-pvs.yaml (including OpenBao support).
    - Updated StatefulSets for garage and openbao.
    - Migrated prole-db to CloudNativePG-based configuration.
    - Added comprehensive OpenTofu manifests for cluster deployment.
- Configuration:
    - Added cluster-specific configurations (k3d, k3s-hosts).
    - Added PostgreSQL configuration templates.
    - Updated .gitignore to track the conf/ directory.
- Tools:
    - Updated install.py and port-forwarding scripts.
    - Added render_manifest.py for manifest generation.
2026-02-07 22:53:18 -08:00

157 lines
12 KiB
INI

[Inputs]
build.deploy_env = Dev
build.run_build = false
dependencies.auto_install_missing = true
dependencies.brew.install = true
dependencies.docker.install = true
dependencies.k3d.install = true
dependencies.verify_all = false
disk_selection.disk_type = local
disk_selection.local_path = /Users/chrisfu/dev/prole/prole-tools-app/dist
disk_selection.removable_mount =
env_setup.namespace = prole-chrisfu-abracadabra
env_setup.prole_conf = /Users/chrisfu/dev/prole/conf
env_setup.prole_data = /Users/chrisfu/dev/prole/data
env_setup.prole_home = /Users/chrisfu/dev/prole
env_setup.prole_logs = /Users/chrisfu/dev/prole/logs
env_setup.prole_service = /Users/chrisfu/dev/prole/etc
init_cluster.at_rest_encryption_enabled = true
init_cluster.cluster_env = prole-service-cluster
init_cluster.k3s_server_url = https://myrddin.prole.org:6443
init_cluster.k3s_token = ${PROLE_SECRET:v1:T5sfnR62PYD8mB6x:9rlfh08fyPnsItAHzpY_qSSgTTIaYQed4kYuzJIRVF25mRcqmmxX0ccZpXpDP-0YqfJETY0XmfVhCx8kuq4AAfd2bCqfcArXETJPDjo-4FUE3iPYeLkpNEzXrGGp1Jp4t7gaYQZd0p-_J6UUCh6xjwl_w0AU2Rs45l-3A6WkwFVqNS_fIqapboH6md_3yRcjFU0p3N9IuQTT6ea7BGuAzM9d_swR3DzUHN0ZVMOlQ5AsiKCh_q3G6lTEy2n8l3utDdLoKht0wWc9kaE9XxRPMWT9cZlJUjLP64uglQ30t6Qp-jEXH9Ecv8J1GY4CfIoMrE1pY5XttelMqWXTCn_CQHtI6yapXeJvQvCSAPRBNvNZqAH7cLlcQ4THNGcm55EtNjSA-d4P0anPk26PAkyheplDtB6fJCv2zlHJGS89jr_Y40PBvojeGO3K3mtKXEu_pArZJK6g4ilCXnQPt8cN_Woq4JRNIYzim47L6c0inp3R_L60KiRQF8DH9CGZAQtjueB343_4-aNlrDTWTfIZqf6hBNjIo_5cRjcAuESSq2DaVEWL0Ucsfj922WjjQAQvlc1E-YItisEAzjsNcOpawVFrlNBEJ0oGooPOw-nfvcdh5MicW-IStqV67uK7y1jsQUbEgr2-Jj5L5Q7njrzQZymyAYlzc1Ra6LgTUbZzVC9DtNZOpFLrfV_SHBnBBZBrt7T6xGqd_-P5x0P4S9T7-KnaKtGk15VRlL86G-oxOF3ubfJjiMsOtYAOyh8-gATu9wWL692kq2VwYIAsB5qGXcG6jwzcBZiT-iOl01yHGFAQCd6Rno3Y56a_HdXUxZ9LIKXjtRGjxjVplIlAt0VWgUQ1xB0hCEWM8SRcIRkRUpR00cj28J_9gp2I29s2RKnlXY67YsdlXZAl28IqbZP9TqlJEFVohhCGu6moBGbaCaEb2stUamp_lUEfGEPB74p9WxvpSuCZT0jQMtqMTsCokI0N6xXMu8O4i9Pe-md4f2z3xWfooKGZWPAufSX1Eb1Q5jGBJ1YNz_b_q8CzFqAyGYtm_EMKTBXe2i2YEBZnFMjxlmFp5kRqb4Y-GPCoHTLMKjZ-jV9DAcGO3hQcO-cmDpF9e4zWUFt0olkRjgR7xaoJB8Mc9tfhWSAC0IQcD8DZ54YFVhqwd0bByVw_jt-Qxd67aydobdyinevj-qgEuVtwkzNmIWiaxnJfSNV0bjk3Re9G8m3-Dypeo4TB2dkw9o_TY4JL7pKYFvZ-ZfiJW1mJAqmiPUk=}
init_cluster.kerberos_enabled = false
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_namespace = prole-chrisfu-abracadabra
init_password.db_password = ${OPENBAO:kv/prole/prole-chrisfu-abracadabra/db#password}
init_password.db_password_confirm = ${OPENBAO:kv/prole/prole-chrisfu-abracadabra/db#password}
init_password.db_username = chrisfu
init_password.generate_ssh_key = true
init_scripts.run_scripts = true
kerberos_config.enabled = false
kerberos_config.init_authority = false
kerberos_config.kdc = 10.0.0.3
kerberos_config.password = ${OPENBAO:kv/prole/prole-chrisfu-abracadabra/kerberos#password}
kerberos_config.realm = PROLE.ORG
kerberos_config.test_connection = false
kerberos_config.user =
network_scan.run = true
[Global]
cluster_env = prole-service-cluster
db_host_port = 5432
db_password = ${OPENBAO:kv/prole/prole-chrisfu-abracadabra/db#password}
deployment_mode = k3s
deployment_target = prole-service-cluster
docker_import_dir =
namespace = prole-chrisfu-abracadabra
prole_db_user = chrisfu
prole_home = /Users/chrisfu/dev/prole
prole_k3s_server = https://myrddin.prole.org:6443
prole_k3s_token = ${PROLE_SECRET:v1:T5sfnR62PYD8mB6x:9rlfh08fyPnsItAHzpY_qSSgTTIaYQed4kYuzJIRVF25mRcqmmxX0ccZpXpDP-0YqfJETY0XmfVhCx8kuq4AAfd2bCqfcArXETJPDjo-4FUE3iPYeLkpNEzXrGGp1Jp4t7gaYQZd0p-_J6UUCh6xjwl_w0AU2Rs45l-3A6WkwFVqNS_fIqapboH6md_3yRcjFU0p3N9IuQTT6ea7BGuAzM9d_swR3DzUHN0ZVMOlQ5AsiKCh_q3G6lTEy2n8l3utDdLoKht0wWc9kaE9XxRPMWT9cZlJUjLP64uglQ30t6Qp-jEXH9Ecv8J1GY4CfIoMrE1pY5XttelMqWXTCn_CQHtI6yapXeJvQvCSAPRBNvNZqAH7cLlcQ4THNGcm55EtNjSA-d4P0anPk26PAkyheplDtB6fJCv2zlHJGS89jr_Y40PBvojeGO3K3mtKXEu_pArZJK6g4ilCXnQPt8cN_Woq4JRNIYzim47L6c0inp3R_L60KiRQF8DH9CGZAQtjueB343_4-aNlrDTWTfIZqf6hBNjIo_5cRjcAuESSq2DaVEWL0Ucsfj922WjjQAQvlc1E-YItisEAzjsNcOpawVFrlNBEJ0oGooPOw-nfvcdh5MicW-IStqV67uK7y1jsQUbEgr2-Jj5L5Q7njrzQZymyAYlzc1Ra6LgTUbZzVC9DtNZOpFLrfV_SHBnBBZBrt7T6xGqd_-P5x0P4S9T7-KnaKtGk15VRlL86G-oxOF3ubfJjiMsOtYAOyh8-gATu9wWL692kq2VwYIAsB5qGXcG6jwzcBZiT-iOl01yHGFAQCd6Rno3Y56a_HdXUxZ9LIKXjtRGjxjVplIlAt0VWgUQ1xB0hCEWM8SRcIRkRUpR00cj28J_9gp2I29s2RKnlXY67YsdlXZAl28IqbZP9TqlJEFVohhCGu6moBGbaCaEb2stUamp_lUEfGEPB74p9WxvpSuCZT0jQMtqMTsCokI0N6xXMu8O4i9Pe-md4f2z3xWfooKGZWPAufSX1Eb1Q5jGBJ1YNz_b_q8CzFqAyGYtm_EMKTBXe2i2YEBZnFMjxlmFp5kRqb4Y-GPCoHTLMKjZ-jV9DAcGO3hQcO-cmDpF9e4zWUFt0olkRjgR7xaoJB8Mc9tfhWSAC0IQcD8DZ54YFVhqwd0bByVw_jt-Qxd67aydobdyinevj-qgEuVtwkzNmIWiaxnJfSNV0bjk3Re9G8m3-Dypeo4TB2dkw9o_TY4JL7pKYFvZ-ZfiJW1mJAqmiPUk=}
prole_opentofu_url = http://127.0.0.1:8080
[Welcome]
[Dependencies]
status = All installed
[Network]
ad_dc_host = myrddin.prole.org
ad_dc_ip = 10.0.0.3
ansible_domain = prole.org
ansible_infrastructure = /Users/chrisfu/dev/prole/infrastructure
ansible_inventory = /Users/chrisfu/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","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
[Port Forwards]
PORT_FORWARD_EXTERNAL_DB_HOST = myrddin.prole.org
PORT_FORWARD_EXTERNAL_DB_IP = 10.0.0.3
PORT_FORWARD_EXTERNAL_DB_PORT = 5432
PORT_FORWARD_EXTERNAL_DB_SERVICE = prole-db-rw
PORT_FORWARD_K3D_ENABLED = true
PORT_FORWARD_K3D_MAPPING_1 = 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 (https://127.0.0.1:8443)
PORT_FORWARD_K3D_MAPPING_2 = id=prometheus;namespace=default;target=svc/prometheus-community-kube-prometheus;address=127.0.0.1;hostPort=9090;servicePort=9090;protocol=TCP;description=Prometheus UI (http://127.0.0.1:9090)
PORT_FORWARD_K3D_MAPPING_3 = id=grafana;namespace=${NAMESPACE};target=svc/grafana;address=0.0.0.0;hostPort=3000;servicePort=3000;protocol=TCP;description=Grafana UI (0.0.0.0:3000)
PORT_FORWARD_K3D_MAPPING_4 = id=postgres;namespace=${NAMESPACE};target=svc/prole-db-rw;address=0.0.0.0;hostPort=5432;servicePort=5432;protocol=TCP;description=PostgreSQL (primary) (0.0.0.0:5432)
PORT_FORWARD_K3D_MAPPING_5 = id=openbao;namespace=${NAMESPACE};target=svc/openbao;address=127.0.0.1;hostPort=8200;servicePort=8200;protocol=TCP;description=OpenBao UI (http://127.0.0.1:8200)
PORT_FORWARD_K3S_ENABLED = true
PORT_FORWARD_K3S_HOSTS = myrddin.prole.org
PORT_FORWARD_K3S_MAPPING_1 = id=grafana;namespace=${NAMESPACE};target=svc/grafana;address=0.0.0.0;hostPort=3000;servicePort=3000;protocol=TCP;description=Grafana UI (0.0.0.0:3000)
PORT_FORWARD_K3S_MAPPING_2 = id=opentofu;namespace=${NAMESPACE};target=svc/opentofu;address=0.0.0.0;hostPort=8080;servicePort=8080;protocol=TCP;description=OpenTofu UI/API (0.0.0.0:8080)
PORT_FORWARD_K3S_MAPPING_3 = id=openbao;namespace=${NAMESPACE};target=svc/openbao;address=0.0.0.0;hostPort=8200;servicePort=8200;protocol=TCP;description=OpenVault/OpenBao UI/API (0.0.0.0:8200)
PORT_FORWARD_K3S_MAPPING_4 = id=postgres;namespace=${NAMESPACE};target=svc/prole-db-rw;address=0.0.0.0;hostPort=5432;servicePort=5432;protocol=TCP;description=PostgreSQL external (0.0.0.0:5432)
PORT_FORWARD_K3S_MAPPING_5 = id=registry;namespace=${NAMESPACE};target=svc/registry;address=0.0.0.0;hostPort=5000;servicePort=5000;protocol=TCP;description=Docker registry (0.0.0.0:5000)
[System Environment]
prole_conf = /Users/chrisfu/dev/prole/conf
prole_data = /Users/chrisfu/dev/prole/data
prole_home = /Users/chrisfu/dev/prole
prole_logs = /Users/chrisfu/dev/prole/logs
prole_opentofu_url = http://127.0.0.1:8080
prole_service = /Users/chrisfu/dev/prole/etc
[Monitoring]
[Kerberos Authentication]
[Optional Features]
at_rest_encryption_enabled = true
kerberos_enabled = false
supabase_enabled = false
[Database Creation]
db_name = prole-chrisfu-abracadabra
db_password_set = true
db_user = chrisfu
namespace = prole-chrisfu-abracadabra
[Initialize Cluster]
environment = prole-service-cluster
k3s_server_url = https://myrddin.prole.org:6443
k3s_token = ${PROLE_SECRET:v1:T5sfnR62PYD8mB6x:9rlfh08fyPnsItAHzpY_qSSgTTIaYQed4kYuzJIRVF25mRcqmmxX0ccZpXpDP-0YqfJETY0XmfVhCx8kuq4AAfd2bCqfcArXETJPDjo-4FUE3iPYeLkpNEzXrGGp1Jp4t7gaYQZd0p-_J6UUCh6xjwl_w0AU2Rs45l-3A6WkwFVqNS_fIqapboH6md_3yRcjFU0p3N9IuQTT6ea7BGuAzM9d_swR3DzUHN0ZVMOlQ5AsiKCh_q3G6lTEy2n8l3utDdLoKht0wWc9kaE9XxRPMWT9cZlJUjLP64uglQ30t6Qp-jEXH9Ecv8J1GY4CfIoMrE1pY5XttelMqWXTCn_CQHtI6yapXeJvQvCSAPRBNvNZqAH7cLlcQ4THNGcm55EtNjSA-d4P0anPk26PAkyheplDtB6fJCv2zlHJGS89jr_Y40PBvojeGO3K3mtKXEu_pArZJK6g4ilCXnQPt8cN_Woq4JRNIYzim47L6c0inp3R_L60KiRQF8DH9CGZAQtjueB343_4-aNlrDTWTfIZqf6hBNjIo_5cRjcAuESSq2DaVEWL0Ucsfj922WjjQAQvlc1E-YItisEAzjsNcOpawVFrlNBEJ0oGooPOw-nfvcdh5MicW-IStqV67uK7y1jsQUbEgr2-Jj5L5Q7njrzQZymyAYlzc1Ra6LgTUbZzVC9DtNZOpFLrfV_SHBnBBZBrt7T6xGqd_-P5x0P4S9T7-KnaKtGk15VRlL86G-oxOF3ubfJjiMsOtYAOyh8-gATu9wWL692kq2VwYIAsB5qGXcG6jwzcBZiT-iOl01yHGFAQCd6Rno3Y56a_HdXUxZ9LIKXjtRGjxjVplIlAt0VWgUQ1xB0hCEWM8SRcIRkRUpR00cj28J_9gp2I29s2RKnlXY67YsdlXZAl28IqbZP9TqlJEFVohhCGu6moBGbaCaEb2stUamp_lUEfGEPB74p9WxvpSuCZT0jQMtqMTsCokI0N6xXMu8O4i9Pe-md4f2z3xWfooKGZWPAufSX1Eb1Q5jGBJ1YNz_b_q8CzFqAyGYtm_EMKTBXe2i2YEBZnFMjxlmFp5kRqb4Y-GPCoHTLMKjZ-jV9DAcGO3hQcO-cmDpF9e4zWUFt0olkRjgR7xaoJB8Mc9tfhWSAC0IQcD8DZ54YFVhqwd0bByVw_jt-Qxd67aydobdyinevj-qgEuVtwkzNmIWiaxnJfSNV0bjk3Re9G8m3-Dypeo4TB2dkw9o_TY4JL7pKYFvZ-ZfiJW1mJAqmiPUk=}
[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 = ${PROLE_SECRET:v1:T5sfnR62PYD8mB6x:9rlfh08fyPnsItAHzpY_qSSgTTIaYQed4kYuzJIRVF25mRcqmmxX0ccZpXpDP-0YqfJETY0XmfVhCx8kuq4AAfd2bCqfcArXETJPDjo-4FUE3iPYeLkpNEzXrGGp1Jp4t7gaYQZd0p-_J6UUCh6xjwl_w0AU2Rs45l-3A6WkwFVqNS_fIqapboH6md_3yRcjFU0p3N9IuQTT6ea7BGuAzM9d_swR3DzUHN0ZVMOlQ5AsiKCh_q3G6lTEy2n8l3utDdLoKht0wWc9kaE9XxRPMWT9cZlJUjLP64uglQ30t6Qp-jEXH9Ecv8J1GY4CfIoMrE1pY5XttelMqWXTCn_CQHtI6yapXeJvQvCSAPRBNvNZqAH7cLlcQ4THNGcm55EtNjSA-d4P0anPk26PAkyheplDtB6fJCv2zlHJGS89jr_Y40PBvojeGO3K3mtKXEu_pArZJK6g4ilCXnQPt8cN_Woq4JRNIYzim47L6c0inp3R_L60KiRQF8DH9CGZAQtjueB343_4-aNlrDTWTfIZqf6hBNjIo_5cRjcAuESSq2DaVEWL0Ucsfj922WjjQAQvlc1E-YItisEAzjsNcOpawVFrlNBEJ0oGooPOw-nfvcdh5MicW-IStqV67uK7y1jsQUbEgr2-Jj5L5Q7njrzQZymyAYlzc1Ra6LgTUbZzVC9DtNZOpFLrfV_SHBnBBZBrt7T6xGqd_-P5x0P4S9T7-KnaKtGk15VRlL86G-oxOF3ubfJjiMsOtYAOyh8-gATu9wWL692kq2VwYIAsB5qGXcG6jwzcBZiT-iOl01yHGFAQCd6Rno3Y56a_HdXUxZ9LIKXjtRGjxjVplIlAt0VWgUQ1xB0hCEWM8SRcIRkRUpR00cj28J_9gp2I29s2RKnlXY67YsdlXZAl28IqbZP9TqlJEFVohhCGu6moBGbaCaEb2stUamp_lUEfGEPB74p9WxvpSuCZT0jQMtqMTsCokI0N6xXMu8O4i9Pe-md4f2z3xWfooKGZWPAufSX1Eb1Q5jGBJ1YNz_b_q8CzFqAyGYtm_EMKTBXe2i2YEBZnFMjxlmFp5kRqb4Y-GPCoHTLMKjZ-jV9DAcGO3hQcO-cmDpF9e4zWUFt0olkRjgR7xaoJB8Mc9tfhWSAC0IQcD8DZ54YFVhqwd0bByVw_jt-Qxd67aydobdyinevj-qgEuVtwkzNmIWiaxnJfSNV0bjk3Re9G8m3-Dypeo4TB2dkw9o_TY4JL7pKYFvZ-ZfiJW1mJAqmiPUk=}
mode = k3s
pipeline_url = http://127.0.0.1:8080
[Prod Cluster (k8s)]
artifacts_dir =
cluster_env = prole-prod-cluster
display_name = prole-prod-cluster
mode = k8s
pipeline_url = http://127.0.0.1:8080
[Docker Build]
local_registry = localhost:5000
local_registry_internal = k3d-prole-registry.localhost:5000
status = Built
[Initialization Scripts]
status = Attempted
[Deployment]
mode = k3s
opentofu_pipeline_dir = /Users/chrisfu/dev/prole/deploy/opentofu/k3s
status = Attempted
target = prole-service-cluster
[Install]
status = Finished