Private Cloud Installer Vault Secrets
prod.vault.yaml enthält alle Secrets, die die Installation benötigt – entweder
generiert durch oms init install-config oder selbst bereitgestellt. Jeder Eintrag
besitzt entweder ein file (eine benannte Datei mit Textinhalt, typischerweise ein
PEM-Block) oder fields (typischerweise ein password, manchmal auch ein
username):
secrets:
- name: <secretName>
file:
name: <filename>
content: <pem-or-text>
- name: <secretName>
fields:
password: <value>
Von OMS generierte Secrets
oms init install-config generiert diese automatisch; normalerweise müssen sie
nicht selbst gesetzt werden: tokenPrivateKey, tokenPublicKey, cephSshPrivateKey,
selfSignedCaKeyPem, domainAuthPrivateKey, domainAuthPublicKey sowie, wenn
PostgreSQL vom Installer installiert wird, postgresPassword,
postgresReplicaPassword, postgresPrimaryServerKeyPem und
postgresReplicaServerKeyPem.
Secrets, die selbst bereitgestellt werden müssen
| Secret | Wann erforderlich | Hinweise |
|---|---|---|
registryUsername, registryPassword | Immer für den GHCR-verbundenen Installationspfad | Siehe Jumpbox vorbereiten und Konfiguration erstellen. Der GHCR-Benutzername gehört in das Feld password. |
kubeConfig | Bei Verwendung eines bestehenden Kubernetes-Clusters (kubernetes.managedByCodesphere: false) | Siehe Ein bestehendes Kubernetes-Cluster verwenden. |
acmeEabMacKey | codesphere.certIssuer.type: acme mit EAB | Siehe Optionen für die Cluster-Ingress-CA. |
githubAppsClientId / githubAppsClientSecret | GitHub-Provider aktiviert | Siehe Git-Provider. |
gitlabAppClientId / gitlabAppClientSecret | GitLab-Provider aktiviert | Siehe Git-Provider. |
bitbucketAppsClientId / bitbucketAppsClientSecret | Bitbucket-Provider aktiviert | Siehe Git-Provider. |
azureDevOpsAppClientId / azureDevOpsAppClientSecret | Azure DevOps-Provider aktiviert | Siehe Git-Provider. |
sendGridApiKey | Bei Verwendung von SendGrid für den E-Mail-Versand | Optional. Wählt das SMTP-Relay von SendGrid aus und hat Vorrang vor benutzerdefinierten SMTP-Einstellungen. Siehe E-Mail-Versand. |
smtpPassword | Benutzerdefinierte SMTP-Authentifizierung erfordert ein Passwort | Optional. Der zugehörige Benutzername gehört in codesphere.email.smtp.username in config.yaml. Siehe E-Mail-Versand. |
managedServiceSecrets | Ein REST-basierter Managed Service Provider authentifiziert seine Backend-API | JSON-Array, kein einzelner Wert. Standardwert []. Siehe Managed Services. |
Kommentiertes Beispiel
# prod.vault.yaml (vor der Verschlüsselung — alle Kommentare vor der Ausführung von sops entfernen)
secrets:
# --- Allgemeine Secrets, generiert durch "oms init install-config" ---
- name: cephSshPrivateKey
file:
name: id_rsa
content: |
-----BEGIN OPENSSH PRIVATE KEY-----
...
-----END OPENSSH PRIVATE KEY-----
- name: selfSignedCaKeyPem # Oder eigener CA-Schlüssel, falls eine eigene CA verwendet wird
file:
name: key.pem
content: |
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
- name: domainAuthPrivateKey
file:
name: key.pem
content: |
-----BEGIN EC PRIVATE KEY-----
...
-----END EC PRIVATE KEY-----
- name: domainAuthPublicKey
file:
name: key.pem
content: |
-----BEGIN PUBLIC KEY-----
...
-----END PUBLIC KEY-----
# --- Registry-Zugangsdaten, immer erforderlich ---
- name: registryUsername
fields:
password: 'YOUR_REGISTRY_USERNAME'
- name: registryPassword
fields:
password: 'YOUR_REGISTRY_PASSWORD'
# --- Nur eine Option wählen, wenn E-Mail-Versand erforderlich ist ---
- name: sendGridApiKey # SendGrid SMTP-Relay
fields:
password: 'YOUR_SENDGRID_API_KEY'
# Oder für die benutzerdefinierten SMTP-Einstellungen in config.yaml:
- name: smtpPassword
fields:
password: 'YOUR_SMTP_PASSWORD'
# --- Nur bei postgres.mode: install ---
- name: postgresPassword
fields:
password: 'YOUR_POSTGRES_ADMIN_PASSWORD'
- name: postgresReplicaPassword
fields:
password: 'YOUR_POSTGRES_REPLICA_PASSWORD'
- name: postgresPrimaryServerKeyPem
file:
name: primary.key
content: |
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
# --- Nur bei kubernetes.managedByCodesphere: false ---
- name: kubeConfig
file:
name: kubeConfig
content: |
apiVersion: v1
kind: Config
clusters:
- cluster:
certificate-authority-data: ...
server: https://<your-k8s-api-server>
name: external-cluster
contexts:
- context:
cluster: external-cluster
user: external-admin
name: external-context
current-context: external-context
users:
- name: external-admin
user:
client-certificate-data: ...
client-key-data: ...
Nach dem Generieren und Überprüfen wird diese Datei verschlüsselt — siehe Secrets verschlüsseln und DNS konfigurieren.