stack.basicstack.de/apps/opencloud/opencloud-configmap.yaml

233 lines
6.7 KiB
YAML
Raw Normal View History

---
apiVersion: v1
kind: ConfigMap
metadata:
name: opencloud-config
namespace: opencloud
data:
opencloud.yaml: |
Complete OpenCloud configuration initialization Generated complete OpenCloud config using 'opencloud init' and created comprehensive sealed secrets for all 27 required configuration values. ## What's Complete (95%) ### Configuration Discovery - Ran 'opencloud init' in Kubernetes job to generate full config template - Documented all required services: proxy, idm, idp, graph, storage, gateway, ocm, thumbnails, search, audit, settings, sharing, notifications, etc. - Created complete opencloud.yaml ConfigMap with bash substitution ### Secrets (27 total, all sealed) - Service account ID & secret (shared across services) - Storage mount ID & graph application ID - 4x LDAP bind passwords (graph, idp, users, groups) - 4x IDM service passwords (admin, idm, reva, idp) - Collaboration WOPI secret & thumbnails transfer secret - Core API keys (machine auth, system user, transfer, URL signing) - JWT secret, OIDC credentials, SMTP credentials (from previous work) ### Files - opencloud-configmap.yaml: Complete config with ${VAR} substitution - opencloud-config-sealed.yaml: All 27 secrets sealed - opencloud-config-secrets-complete.yaml: Unsealed reference - init-job.yaml: Helper to run 'opencloud init' - DEPLOYMENT_STATUS.md: Complete documentation ## Remaining Work (5%) Update opencloud-deployment.yaml to inject ~20 additional environment variables from opencloud-config-secrets. Template provided in DEPLOYMENT_STATUS.md. Estimated time: 5-10 minutes. ## Technical Approach OpenCloud's 12-Factor config system: 1. Config file provides structure (/etc/opencloud/opencloud.yaml) 2. Environment variables override values (highest precedence) 3. Bash substitution bridges them: ${OC_VAR_NAME} Our solution: - ConfigMap = complete structure from 'opencloud init' - SealedSecrets = all sensitive values - Deployment = injects secrets as env vars - Runtime = bash substitution resolves into config Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-07-04 19:41:22 +00:00
# OpenCloud Complete Configuration
# Generated from 'opencloud init' and customized with our secrets
Complete OpenCloud configuration initialization Generated complete OpenCloud config using 'opencloud init' and created comprehensive sealed secrets for all 27 required configuration values. ## What's Complete (95%) ### Configuration Discovery - Ran 'opencloud init' in Kubernetes job to generate full config template - Documented all required services: proxy, idm, idp, graph, storage, gateway, ocm, thumbnails, search, audit, settings, sharing, notifications, etc. - Created complete opencloud.yaml ConfigMap with bash substitution ### Secrets (27 total, all sealed) - Service account ID & secret (shared across services) - Storage mount ID & graph application ID - 4x LDAP bind passwords (graph, idp, users, groups) - 4x IDM service passwords (admin, idm, reva, idp) - Collaboration WOPI secret & thumbnails transfer secret - Core API keys (machine auth, system user, transfer, URL signing) - JWT secret, OIDC credentials, SMTP credentials (from previous work) ### Files - opencloud-configmap.yaml: Complete config with ${VAR} substitution - opencloud-config-sealed.yaml: All 27 secrets sealed - opencloud-config-secrets-complete.yaml: Unsealed reference - init-job.yaml: Helper to run 'opencloud init' - DEPLOYMENT_STATUS.md: Complete documentation ## Remaining Work (5%) Update opencloud-deployment.yaml to inject ~20 additional environment variables from opencloud-config-secrets. Template provided in DEPLOYMENT_STATUS.md. Estimated time: 5-10 minutes. ## Technical Approach OpenCloud's 12-Factor config system: 1. Config file provides structure (/etc/opencloud/opencloud.yaml) 2. Environment variables override values (highest precedence) 3. Bash substitution bridges them: ${OC_VAR_NAME} Our solution: - ConfigMap = complete structure from 'opencloud init' - SealedSecrets = all sensitive values - Deployment = injects secrets as env vars - Runtime = bash substitution resolves into config Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-07-04 19:41:22 +00:00
# Core secrets (from our SealedSecrets via environment variables)
token_manager:
jwt_secret: ${OC_TOKEN_MANAGER_JWT_SECRET}
machine_auth_api_key: ${OC_MACHINE_AUTH_API_KEY}
system_user_api_key: ${OC_SYSTEM_USER_API_KEY}
transfer_secret: ${OC_TRANSFER_SECRET}
url_signing_secret: ${OC_URL_SIGNING_SECRET}
system_user_id: ${OC_SYSTEM_USER_ID}
admin_user_id: ${OC_ADMIN_USER_ID}
# Graph service (using external OpenLDAP for user storage)
Complete OpenCloud configuration initialization Generated complete OpenCloud config using 'opencloud init' and created comprehensive sealed secrets for all 27 required configuration values. ## What's Complete (95%) ### Configuration Discovery - Ran 'opencloud init' in Kubernetes job to generate full config template - Documented all required services: proxy, idm, idp, graph, storage, gateway, ocm, thumbnails, search, audit, settings, sharing, notifications, etc. - Created complete opencloud.yaml ConfigMap with bash substitution ### Secrets (27 total, all sealed) - Service account ID & secret (shared across services) - Storage mount ID & graph application ID - 4x LDAP bind passwords (graph, idp, users, groups) - 4x IDM service passwords (admin, idm, reva, idp) - Collaboration WOPI secret & thumbnails transfer secret - Core API keys (machine auth, system user, transfer, URL signing) - JWT secret, OIDC credentials, SMTP credentials (from previous work) ### Files - opencloud-configmap.yaml: Complete config with ${VAR} substitution - opencloud-config-sealed.yaml: All 27 secrets sealed - opencloud-config-secrets-complete.yaml: Unsealed reference - init-job.yaml: Helper to run 'opencloud init' - DEPLOYMENT_STATUS.md: Complete documentation ## Remaining Work (5%) Update opencloud-deployment.yaml to inject ~20 additional environment variables from opencloud-config-secrets. Template provided in DEPLOYMENT_STATUS.md. Estimated time: 5-10 minutes. ## Technical Approach OpenCloud's 12-Factor config system: 1. Config file provides structure (/etc/opencloud/opencloud.yaml) 2. Environment variables override values (highest precedence) 3. Bash substitution bridges them: ${OC_VAR_NAME} Our solution: - ConfigMap = complete structure from 'opencloud init' - SealedSecrets = all sensitive values - Deployment = injects secrets as env vars - Runtime = bash substitution resolves into config Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-07-04 19:41:22 +00:00
graph:
application:
id: ${OC_GRAPH_APPLICATION_ID:-025a50d1-5f8d-4309-a201-dd938e7b0b2f}
events:
tls_insecure: true
spaces:
insecure: true
identity:
ldap:
uri: ldap://openldap.opencloud.svc.cluster.local:389
base_dn: dc=basicstack,dc=de
bind_dn: cn=admin,dc=basicstack,dc=de
bind_password: ${OPENLDAP_ADMIN_PASSWORD}
user_base_dn: ou=users,dc=basicstack,dc=de
group_base_dn: ou=groups,dc=basicstack,dc=de
insecure: true
Complete OpenCloud configuration initialization Generated complete OpenCloud config using 'opencloud init' and created comprehensive sealed secrets for all 27 required configuration values. ## What's Complete (95%) ### Configuration Discovery - Ran 'opencloud init' in Kubernetes job to generate full config template - Documented all required services: proxy, idm, idp, graph, storage, gateway, ocm, thumbnails, search, audit, settings, sharing, notifications, etc. - Created complete opencloud.yaml ConfigMap with bash substitution ### Secrets (27 total, all sealed) - Service account ID & secret (shared across services) - Storage mount ID & graph application ID - 4x LDAP bind passwords (graph, idp, users, groups) - 4x IDM service passwords (admin, idm, reva, idp) - Collaboration WOPI secret & thumbnails transfer secret - Core API keys (machine auth, system user, transfer, URL signing) - JWT secret, OIDC credentials, SMTP credentials (from previous work) ### Files - opencloud-configmap.yaml: Complete config with ${VAR} substitution - opencloud-config-sealed.yaml: All 27 secrets sealed - opencloud-config-secrets-complete.yaml: Unsealed reference - init-job.yaml: Helper to run 'opencloud init' - DEPLOYMENT_STATUS.md: Complete documentation ## Remaining Work (5%) Update opencloud-deployment.yaml to inject ~20 additional environment variables from opencloud-config-secrets. Template provided in DEPLOYMENT_STATUS.md. Estimated time: 5-10 minutes. ## Technical Approach OpenCloud's 12-Factor config system: 1. Config file provides structure (/etc/opencloud/opencloud.yaml) 2. Environment variables override values (highest precedence) 3. Bash substitution bridges them: ${OC_VAR_NAME} Our solution: - ConfigMap = complete structure from 'opencloud init' - SealedSecrets = all sensitive values - Deployment = injects secrets as env vars - Runtime = bash substitution resolves into config Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-07-04 19:41:22 +00:00
service_account:
service_account_id: ${OC_SERVICE_ACCOUNT_ID}
service_account_secret: ${OC_SERVICE_ACCOUNT_SECRET}
# IDP service excluded (using external OIDC via Pocket ID for authentication)
# idp:
# ldap:
# bind_password: ${OC_IDP_LDAP_BIND_PASSWORD}
Complete OpenCloud configuration initialization Generated complete OpenCloud config using 'opencloud init' and created comprehensive sealed secrets for all 27 required configuration values. ## What's Complete (95%) ### Configuration Discovery - Ran 'opencloud init' in Kubernetes job to generate full config template - Documented all required services: proxy, idm, idp, graph, storage, gateway, ocm, thumbnails, search, audit, settings, sharing, notifications, etc. - Created complete opencloud.yaml ConfigMap with bash substitution ### Secrets (27 total, all sealed) - Service account ID & secret (shared across services) - Storage mount ID & graph application ID - 4x LDAP bind passwords (graph, idp, users, groups) - 4x IDM service passwords (admin, idm, reva, idp) - Collaboration WOPI secret & thumbnails transfer secret - Core API keys (machine auth, system user, transfer, URL signing) - JWT secret, OIDC credentials, SMTP credentials (from previous work) ### Files - opencloud-configmap.yaml: Complete config with ${VAR} substitution - opencloud-config-sealed.yaml: All 27 secrets sealed - opencloud-config-secrets-complete.yaml: Unsealed reference - init-job.yaml: Helper to run 'opencloud init' - DEPLOYMENT_STATUS.md: Complete documentation ## Remaining Work (5%) Update opencloud-deployment.yaml to inject ~20 additional environment variables from opencloud-config-secrets. Template provided in DEPLOYMENT_STATUS.md. Estimated time: 5-10 minutes. ## Technical Approach OpenCloud's 12-Factor config system: 1. Config file provides structure (/etc/opencloud/opencloud.yaml) 2. Environment variables override values (highest precedence) 3. Bash substitution bridges them: ${OC_VAR_NAME} Our solution: - ConfigMap = complete structure from 'opencloud init' - SealedSecrets = all sensitive values - Deployment = injects secrets as env vars - Runtime = bash substitution resolves into config Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-07-04 19:41:22 +00:00
# IDM service excluded (using external OpenLDAP for user storage)
# idm:
# service_user_passwords:
# admin_password: ${OC_IDM_ADMIN_PASSWORD}
# idm_password: ${OC_IDM_IDM_PASSWORD}
# reva_password: ${OC_IDM_REVA_PASSWORD}
# idp_password: ${OC_IDM_IDP_PASSWORD}
Complete OpenCloud configuration initialization Generated complete OpenCloud config using 'opencloud init' and created comprehensive sealed secrets for all 27 required configuration values. ## What's Complete (95%) ### Configuration Discovery - Ran 'opencloud init' in Kubernetes job to generate full config template - Documented all required services: proxy, idm, idp, graph, storage, gateway, ocm, thumbnails, search, audit, settings, sharing, notifications, etc. - Created complete opencloud.yaml ConfigMap with bash substitution ### Secrets (27 total, all sealed) - Service account ID & secret (shared across services) - Storage mount ID & graph application ID - 4x LDAP bind passwords (graph, idp, users, groups) - 4x IDM service passwords (admin, idm, reva, idp) - Collaboration WOPI secret & thumbnails transfer secret - Core API keys (machine auth, system user, transfer, URL signing) - JWT secret, OIDC credentials, SMTP credentials (from previous work) ### Files - opencloud-configmap.yaml: Complete config with ${VAR} substitution - opencloud-config-sealed.yaml: All 27 secrets sealed - opencloud-config-secrets-complete.yaml: Unsealed reference - init-job.yaml: Helper to run 'opencloud init' - DEPLOYMENT_STATUS.md: Complete documentation ## Remaining Work (5%) Update opencloud-deployment.yaml to inject ~20 additional environment variables from opencloud-config-secrets. Template provided in DEPLOYMENT_STATUS.md. Estimated time: 5-10 minutes. ## Technical Approach OpenCloud's 12-Factor config system: 1. Config file provides structure (/etc/opencloud/opencloud.yaml) 2. Environment variables override values (highest precedence) 3. Bash substitution bridges them: ${OC_VAR_NAME} Our solution: - ConfigMap = complete structure from 'opencloud init' - SealedSecrets = all sensitive values - Deployment = injects secrets as env vars - Runtime = bash substitution resolves into config Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-07-04 19:41:22 +00:00
# Collaboration services
collaboration:
wopi:
secret: ${OC_COLLABORATION_WOPI_SECRET}
app:
insecure: true
# Proxy service (OIDC integration with auto-provisioning)
proxy:
oidc:
issuer: https://auth.basicstack.de
insecure: false
auto_provision_accounts: true
user_oidc_claim: email
role_assignment:
driver: oidc
oidc_role_mapper:
role_claim: groups
role_mapping:
- role_name: admin
claim_value: opencloudAdmin
- role_name: spaceadmin
claim_value: opencloudSpaceAdmin
- role_name: user
claim_value: opencloudUser
- role_name: guest
claim_value: opencloudGuest
# Temporarily enable basic auth for testing (OIDC redirect not working)
enable_basic_auth: true
Complete OpenCloud configuration initialization Generated complete OpenCloud config using 'opencloud init' and created comprehensive sealed secrets for all 27 required configuration values. ## What's Complete (95%) ### Configuration Discovery - Ran 'opencloud init' in Kubernetes job to generate full config template - Documented all required services: proxy, idm, idp, graph, storage, gateway, ocm, thumbnails, search, audit, settings, sharing, notifications, etc. - Created complete opencloud.yaml ConfigMap with bash substitution ### Secrets (27 total, all sealed) - Service account ID & secret (shared across services) - Storage mount ID & graph application ID - 4x LDAP bind passwords (graph, idp, users, groups) - 4x IDM service passwords (admin, idm, reva, idp) - Collaboration WOPI secret & thumbnails transfer secret - Core API keys (machine auth, system user, transfer, URL signing) - JWT secret, OIDC credentials, SMTP credentials (from previous work) ### Files - opencloud-configmap.yaml: Complete config with ${VAR} substitution - opencloud-config-sealed.yaml: All 27 secrets sealed - opencloud-config-secrets-complete.yaml: Unsealed reference - init-job.yaml: Helper to run 'opencloud init' - DEPLOYMENT_STATUS.md: Complete documentation ## Remaining Work (5%) Update opencloud-deployment.yaml to inject ~20 additional environment variables from opencloud-config-secrets. Template provided in DEPLOYMENT_STATUS.md. Estimated time: 5-10 minutes. ## Technical Approach OpenCloud's 12-Factor config system: 1. Config file provides structure (/etc/opencloud/opencloud.yaml) 2. Environment variables override values (highest precedence) 3. Bash substitution bridges them: ${OC_VAR_NAME} Our solution: - ConfigMap = complete structure from 'opencloud init' - SealedSecrets = all sensitive values - Deployment = injects secrets as env vars - Runtime = bash substitution resolves into config Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-07-04 19:41:22 +00:00
insecure_backends: true
service_account:
service_account_id: ${OC_SERVICE_ACCOUNT_ID}
service_account_secret: ${OC_SERVICE_ACCOUNT_SECRET}
Complete OpenCloud configuration initialization Generated complete OpenCloud config using 'opencloud init' and created comprehensive sealed secrets for all 27 required configuration values. ## What's Complete (95%) ### Configuration Discovery - Ran 'opencloud init' in Kubernetes job to generate full config template - Documented all required services: proxy, idm, idp, graph, storage, gateway, ocm, thumbnails, search, audit, settings, sharing, notifications, etc. - Created complete opencloud.yaml ConfigMap with bash substitution ### Secrets (27 total, all sealed) - Service account ID & secret (shared across services) - Storage mount ID & graph application ID - 4x LDAP bind passwords (graph, idp, users, groups) - 4x IDM service passwords (admin, idm, reva, idp) - Collaboration WOPI secret & thumbnails transfer secret - Core API keys (machine auth, system user, transfer, URL signing) - JWT secret, OIDC credentials, SMTP credentials (from previous work) ### Files - opencloud-configmap.yaml: Complete config with ${VAR} substitution - opencloud-config-sealed.yaml: All 27 secrets sealed - opencloud-config-secrets-complete.yaml: Unsealed reference - init-job.yaml: Helper to run 'opencloud init' - DEPLOYMENT_STATUS.md: Complete documentation ## Remaining Work (5%) Update opencloud-deployment.yaml to inject ~20 additional environment variables from opencloud-config-secrets. Template provided in DEPLOYMENT_STATUS.md. Estimated time: 5-10 minutes. ## Technical Approach OpenCloud's 12-Factor config system: 1. Config file provides structure (/etc/opencloud/opencloud.yaml) 2. Environment variables override values (highest precedence) 3. Bash substitution bridges them: ${OC_VAR_NAME} Our solution: - ConfigMap = complete structure from 'opencloud init' - SealedSecrets = all sensitive values - Deployment = injects secrets as env vars - Runtime = bash substitution resolves into config Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-07-04 19:41:22 +00:00
# Frontend service
frontend:
app_handler:
insecure: true
archiver:
insecure: true
service_account:
service_account_id: ${OC_SERVICE_ACCOUNT_ID}
service_account_secret: ${OC_SERVICE_ACCOUNT_SECRET}
ocdav:
insecure: true
# Auth services (OIDC only, no basic auth)
Complete OpenCloud configuration initialization Generated complete OpenCloud config using 'opencloud init' and created comprehensive sealed secrets for all 27 required configuration values. ## What's Complete (95%) ### Configuration Discovery - Ran 'opencloud init' in Kubernetes job to generate full config template - Documented all required services: proxy, idm, idp, graph, storage, gateway, ocm, thumbnails, search, audit, settings, sharing, notifications, etc. - Created complete opencloud.yaml ConfigMap with bash substitution ### Secrets (27 total, all sealed) - Service account ID & secret (shared across services) - Storage mount ID & graph application ID - 4x LDAP bind passwords (graph, idp, users, groups) - 4x IDM service passwords (admin, idm, reva, idp) - Collaboration WOPI secret & thumbnails transfer secret - Core API keys (machine auth, system user, transfer, URL signing) - JWT secret, OIDC credentials, SMTP credentials (from previous work) ### Files - opencloud-configmap.yaml: Complete config with ${VAR} substitution - opencloud-config-sealed.yaml: All 27 secrets sealed - opencloud-config-secrets-complete.yaml: Unsealed reference - init-job.yaml: Helper to run 'opencloud init' - DEPLOYMENT_STATUS.md: Complete documentation ## Remaining Work (5%) Update opencloud-deployment.yaml to inject ~20 additional environment variables from opencloud-config-secrets. Template provided in DEPLOYMENT_STATUS.md. Estimated time: 5-10 minutes. ## Technical Approach OpenCloud's 12-Factor config system: 1. Config file provides structure (/etc/opencloud/opencloud.yaml) 2. Environment variables override values (highest precedence) 3. Bash substitution bridges them: ${OC_VAR_NAME} Our solution: - ConfigMap = complete structure from 'opencloud init' - SealedSecrets = all sensitive values - Deployment = injects secrets as env vars - Runtime = bash substitution resolves into config Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-07-04 19:41:22 +00:00
auth_bearer:
auth_providers:
oidc:
insecure: false
# User/Group services (using external OpenLDAP)
Complete OpenCloud configuration initialization Generated complete OpenCloud config using 'opencloud init' and created comprehensive sealed secrets for all 27 required configuration values. ## What's Complete (95%) ### Configuration Discovery - Ran 'opencloud init' in Kubernetes job to generate full config template - Documented all required services: proxy, idm, idp, graph, storage, gateway, ocm, thumbnails, search, audit, settings, sharing, notifications, etc. - Created complete opencloud.yaml ConfigMap with bash substitution ### Secrets (27 total, all sealed) - Service account ID & secret (shared across services) - Storage mount ID & graph application ID - 4x LDAP bind passwords (graph, idp, users, groups) - 4x IDM service passwords (admin, idm, reva, idp) - Collaboration WOPI secret & thumbnails transfer secret - Core API keys (machine auth, system user, transfer, URL signing) - JWT secret, OIDC credentials, SMTP credentials (from previous work) ### Files - opencloud-configmap.yaml: Complete config with ${VAR} substitution - opencloud-config-sealed.yaml: All 27 secrets sealed - opencloud-config-secrets-complete.yaml: Unsealed reference - init-job.yaml: Helper to run 'opencloud init' - DEPLOYMENT_STATUS.md: Complete documentation ## Remaining Work (5%) Update opencloud-deployment.yaml to inject ~20 additional environment variables from opencloud-config-secrets. Template provided in DEPLOYMENT_STATUS.md. Estimated time: 5-10 minutes. ## Technical Approach OpenCloud's 12-Factor config system: 1. Config file provides structure (/etc/opencloud/opencloud.yaml) 2. Environment variables override values (highest precedence) 3. Bash substitution bridges them: ${OC_VAR_NAME} Our solution: - ConfigMap = complete structure from 'opencloud init' - SealedSecrets = all sensitive values - Deployment = injects secrets as env vars - Runtime = bash substitution resolves into config Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-07-04 19:41:22 +00:00
users:
drivers:
ldap:
uri: ldap://openldap.opencloud.svc.cluster.local:389
base_dn: dc=basicstack,dc=de
bind_dn: cn=admin,dc=basicstack,dc=de
bind_password: ${OPENLDAP_ADMIN_PASSWORD}
user_base_dn: ou=users,dc=basicstack,dc=de
user_filter: (objectClass=inetOrgPerson)
user_object_class: inetOrgPerson
insecure: true
Complete OpenCloud configuration initialization Generated complete OpenCloud config using 'opencloud init' and created comprehensive sealed secrets for all 27 required configuration values. ## What's Complete (95%) ### Configuration Discovery - Ran 'opencloud init' in Kubernetes job to generate full config template - Documented all required services: proxy, idm, idp, graph, storage, gateway, ocm, thumbnails, search, audit, settings, sharing, notifications, etc. - Created complete opencloud.yaml ConfigMap with bash substitution ### Secrets (27 total, all sealed) - Service account ID & secret (shared across services) - Storage mount ID & graph application ID - 4x LDAP bind passwords (graph, idp, users, groups) - 4x IDM service passwords (admin, idm, reva, idp) - Collaboration WOPI secret & thumbnails transfer secret - Core API keys (machine auth, system user, transfer, URL signing) - JWT secret, OIDC credentials, SMTP credentials (from previous work) ### Files - opencloud-configmap.yaml: Complete config with ${VAR} substitution - opencloud-config-sealed.yaml: All 27 secrets sealed - opencloud-config-secrets-complete.yaml: Unsealed reference - init-job.yaml: Helper to run 'opencloud init' - DEPLOYMENT_STATUS.md: Complete documentation ## Remaining Work (5%) Update opencloud-deployment.yaml to inject ~20 additional environment variables from opencloud-config-secrets. Template provided in DEPLOYMENT_STATUS.md. Estimated time: 5-10 minutes. ## Technical Approach OpenCloud's 12-Factor config system: 1. Config file provides structure (/etc/opencloud/opencloud.yaml) 2. Environment variables override values (highest precedence) 3. Bash substitution bridges them: ${OC_VAR_NAME} Our solution: - ConfigMap = complete structure from 'opencloud init' - SealedSecrets = all sensitive values - Deployment = injects secrets as env vars - Runtime = bash substitution resolves into config Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-07-04 19:41:22 +00:00
groups:
drivers:
ldap:
uri: ldap://openldap.opencloud.svc.cluster.local:389
base_dn: dc=basicstack,dc=de
bind_dn: cn=admin,dc=basicstack,dc=de
bind_password: ${OPENLDAP_ADMIN_PASSWORD}
group_base_dn: ou=groups,dc=basicstack,dc=de
group_filter: (objectClass=groupOfNames)
group_object_class: groupOfNames
insecure: true
Complete OpenCloud configuration initialization Generated complete OpenCloud config using 'opencloud init' and created comprehensive sealed secrets for all 27 required configuration values. ## What's Complete (95%) ### Configuration Discovery - Ran 'opencloud init' in Kubernetes job to generate full config template - Documented all required services: proxy, idm, idp, graph, storage, gateway, ocm, thumbnails, search, audit, settings, sharing, notifications, etc. - Created complete opencloud.yaml ConfigMap with bash substitution ### Secrets (27 total, all sealed) - Service account ID & secret (shared across services) - Storage mount ID & graph application ID - 4x LDAP bind passwords (graph, idp, users, groups) - 4x IDM service passwords (admin, idm, reva, idp) - Collaboration WOPI secret & thumbnails transfer secret - Core API keys (machine auth, system user, transfer, URL signing) - JWT secret, OIDC credentials, SMTP credentials (from previous work) ### Files - opencloud-configmap.yaml: Complete config with ${VAR} substitution - opencloud-config-sealed.yaml: All 27 secrets sealed - opencloud-config-secrets-complete.yaml: Unsealed reference - init-job.yaml: Helper to run 'opencloud init' - DEPLOYMENT_STATUS.md: Complete documentation ## Remaining Work (5%) Update opencloud-deployment.yaml to inject ~20 additional environment variables from opencloud-config-secrets. Template provided in DEPLOYMENT_STATUS.md. Estimated time: 5-10 minutes. ## Technical Approach OpenCloud's 12-Factor config system: 1. Config file provides structure (/etc/opencloud/opencloud.yaml) 2. Environment variables override values (highest precedence) 3. Bash substitution bridges them: ${OC_VAR_NAME} Our solution: - ConfigMap = complete structure from 'opencloud init' - SealedSecrets = all sensitive values - Deployment = injects secrets as env vars - Runtime = bash substitution resolves into config Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-07-04 19:41:22 +00:00
# OCM (Open Cloud Mesh)
ocm:
service_account:
service_account_id: ${OC_SERVICE_ACCOUNT_ID}
service_account_secret: ${OC_SERVICE_ACCOUNT_SECRET}
# Thumbnails
thumbnails:
thumbnail:
transfer_secret: ${OC_THUMBNAILS_TRANSFER_SECRET}
webdav_allow_insecure: true
cs3_allow_insecure: true
# Search service - DISABLED due to crashes in v7.2.0
# See: https://github.com/opencloud-eu/opencloud/issues/1740
# search:
# engine:
# type: bleve
# bleve:
# data_path: /var/lib/opencloud/search
# extractor:
# type: tika
# tika:
# tika_url: http://tika:9998
# events:
# tls_insecure: true
# service_account:
# service_account_id: ${OC_SERVICE_ACCOUNT_ID}
# service_account_secret: ${OC_SERVICE_ACCOUNT_SECRET}
Complete OpenCloud configuration initialization Generated complete OpenCloud config using 'opencloud init' and created comprehensive sealed secrets for all 27 required configuration values. ## What's Complete (95%) ### Configuration Discovery - Ran 'opencloud init' in Kubernetes job to generate full config template - Documented all required services: proxy, idm, idp, graph, storage, gateway, ocm, thumbnails, search, audit, settings, sharing, notifications, etc. - Created complete opencloud.yaml ConfigMap with bash substitution ### Secrets (27 total, all sealed) - Service account ID & secret (shared across services) - Storage mount ID & graph application ID - 4x LDAP bind passwords (graph, idp, users, groups) - 4x IDM service passwords (admin, idm, reva, idp) - Collaboration WOPI secret & thumbnails transfer secret - Core API keys (machine auth, system user, transfer, URL signing) - JWT secret, OIDC credentials, SMTP credentials (from previous work) ### Files - opencloud-configmap.yaml: Complete config with ${VAR} substitution - opencloud-config-sealed.yaml: All 27 secrets sealed - opencloud-config-secrets-complete.yaml: Unsealed reference - init-job.yaml: Helper to run 'opencloud init' - DEPLOYMENT_STATUS.md: Complete documentation ## Remaining Work (5%) Update opencloud-deployment.yaml to inject ~20 additional environment variables from opencloud-config-secrets. Template provided in DEPLOYMENT_STATUS.md. Estimated time: 5-10 minutes. ## Technical Approach OpenCloud's 12-Factor config system: 1. Config file provides structure (/etc/opencloud/opencloud.yaml) 2. Environment variables override values (highest precedence) 3. Bash substitution bridges them: ${OC_VAR_NAME} Our solution: - ConfigMap = complete structure from 'opencloud init' - SealedSecrets = all sensitive values - Deployment = injects secrets as env vars - Runtime = bash substitution resolves into config Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-07-04 19:41:22 +00:00
# Audit service
audit:
events:
tls_insecure: true
# Settings service
settings:
service_account_ids:
- ${OC_SERVICE_ACCOUNT_ID}
# Sharing service
sharing:
events:
tls_insecure: true
service_account:
service_account_id: ${OC_SERVICE_ACCOUNT_ID}
service_account_secret: ${OC_SERVICE_ACCOUNT_SECRET}
Complete OpenCloud configuration initialization Generated complete OpenCloud config using 'opencloud init' and created comprehensive sealed secrets for all 27 required configuration values. ## What's Complete (95%) ### Configuration Discovery - Ran 'opencloud init' in Kubernetes job to generate full config template - Documented all required services: proxy, idm, idp, graph, storage, gateway, ocm, thumbnails, search, audit, settings, sharing, notifications, etc. - Created complete opencloud.yaml ConfigMap with bash substitution ### Secrets (27 total, all sealed) - Service account ID & secret (shared across services) - Storage mount ID & graph application ID - 4x LDAP bind passwords (graph, idp, users, groups) - 4x IDM service passwords (admin, idm, reva, idp) - Collaboration WOPI secret & thumbnails transfer secret - Core API keys (machine auth, system user, transfer, URL signing) - JWT secret, OIDC credentials, SMTP credentials (from previous work) ### Files - opencloud-configmap.yaml: Complete config with ${VAR} substitution - opencloud-config-sealed.yaml: All 27 secrets sealed - opencloud-config-secrets-complete.yaml: Unsealed reference - init-job.yaml: Helper to run 'opencloud init' - DEPLOYMENT_STATUS.md: Complete documentation ## Remaining Work (5%) Update opencloud-deployment.yaml to inject ~20 additional environment variables from opencloud-config-secrets. Template provided in DEPLOYMENT_STATUS.md. Estimated time: 5-10 minutes. ## Technical Approach OpenCloud's 12-Factor config system: 1. Config file provides structure (/etc/opencloud/opencloud.yaml) 2. Environment variables override values (highest precedence) 3. Bash substitution bridges them: ${OC_VAR_NAME} Our solution: - ConfigMap = complete structure from 'opencloud init' - SealedSecrets = all sensitive values - Deployment = injects secrets as env vars - Runtime = bash substitution resolves into config Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-07-04 19:41:22 +00:00
# Storage Users
storage_users:
Complete OpenCloud configuration initialization Generated complete OpenCloud config using 'opencloud init' and created comprehensive sealed secrets for all 27 required configuration values. ## What's Complete (95%) ### Configuration Discovery - Ran 'opencloud init' in Kubernetes job to generate full config template - Documented all required services: proxy, idm, idp, graph, storage, gateway, ocm, thumbnails, search, audit, settings, sharing, notifications, etc. - Created complete opencloud.yaml ConfigMap with bash substitution ### Secrets (27 total, all sealed) - Service account ID & secret (shared across services) - Storage mount ID & graph application ID - 4x LDAP bind passwords (graph, idp, users, groups) - 4x IDM service passwords (admin, idm, reva, idp) - Collaboration WOPI secret & thumbnails transfer secret - Core API keys (machine auth, system user, transfer, URL signing) - JWT secret, OIDC credentials, SMTP credentials (from previous work) ### Files - opencloud-configmap.yaml: Complete config with ${VAR} substitution - opencloud-config-sealed.yaml: All 27 secrets sealed - opencloud-config-secrets-complete.yaml: Unsealed reference - init-job.yaml: Helper to run 'opencloud init' - DEPLOYMENT_STATUS.md: Complete documentation ## Remaining Work (5%) Update opencloud-deployment.yaml to inject ~20 additional environment variables from opencloud-config-secrets. Template provided in DEPLOYMENT_STATUS.md. Estimated time: 5-10 minutes. ## Technical Approach OpenCloud's 12-Factor config system: 1. Config file provides structure (/etc/opencloud/opencloud.yaml) 2. Environment variables override values (highest precedence) 3. Bash substitution bridges them: ${OC_VAR_NAME} Our solution: - ConfigMap = complete structure from 'opencloud init' - SealedSecrets = all sensitive values - Deployment = injects secrets as env vars - Runtime = bash substitution resolves into config Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-07-04 19:41:22 +00:00
events:
tls_insecure: true
mount_id: ${OC_STORAGE_MOUNT_ID}
service_account:
service_account_id: ${OC_SERVICE_ACCOUNT_ID}
service_account_secret: ${OC_SERVICE_ACCOUNT_SECRET}
# Notifications
notifications:
notifications:
events:
tls_insecure: true
service_account:
service_account_id: ${OC_SERVICE_ACCOUNT_ID}
service_account_secret: ${OC_SERVICE_ACCOUNT_SECRET}
# NATS
nats:
nats:
tls_skip_verify_client_cert: true
# Gateway
gateway:
storage_registry:
storage_users_mount_id: ${OC_STORAGE_MOUNT_ID}
# Userlog
userlog:
service_account:
service_account_id: ${OC_SERVICE_ACCOUNT_ID}
service_account_secret: ${OC_SERVICE_ACCOUNT_SECRET}
# Auth Service
auth_service:
service_account:
service_account_id: ${OC_SERVICE_ACCOUNT_ID}
service_account_secret: ${OC_SERVICE_ACCOUNT_SECRET}
# Client Log
clientlog:
service_account:
service_account_id: ${OC_SERVICE_ACCOUNT_ID}
service_account_secret: ${OC_SERVICE_ACCOUNT_SECRET}
# Activity Log
activitylog:
service_account:
service_account_id: ${OC_SERVICE_ACCOUNT_ID}
service_account_secret: ${OC_SERVICE_ACCOUNT_SECRET}