homeserver/roles/mgrote.sealed-secrets
mg 308512b859 Doku Sealed-Secrets (#450)
Co-authored-by: Michael Grote <michael.grote@posteo.de>
Reviewed-on: #450
2023-01-11 17:40:49 +01:00
..
defaults k3s - Basics (#423) 2022-11-04 20:58:37 +01:00
tasks k3s - Basics (#423) 2022-11-04 20:58:37 +01:00
templates k3s - Basics (#423) 2022-11-04 20:58:37 +01:00
LICENSE k3s - Basics (#423) 2022-11-04 20:58:37 +01:00
README.md Doku Sealed-Secrets (#450) 2023-01-11 17:40:49 +01:00

mgrote.sealed-secrets

Diese Rolle installiert das kubeseal-Binary und hinterlegt den Private-Key im Cluster.

Der Key ist im Keepass im Eintrag unter "Notes" abgelegt. Sollten die Secrets neu verschlüsselt werden ist hier wieder der aktuelle Private-Key abzulegen.

Siehe: https://github.com/bitnami-labs/sealed-secrets#how-can-i-do-a-backup-of-my-sealedsecrets

Backup

kubectl get secret -n kube-system -l sealedsecrets.bitnami.com/sealed-secrets-key -o yaml >main.key

Restore

kubectl apply -f main.key
kubectl delete pod -n kube-system -l name=sealed-secrets-controller

Erstellen eines verschlüsselten Secrets

  • Wichtig ist "stringData", wird nur "data" verwendet ist der Inhalt base64 zu enkodieren.
  1. lege Secret mit Klartext VALUE als Datei() an
      kind: Secret
      apiVersion: v1
      metadata:
        name: NAME_DES_SECRETS
        namespace: drone
      stringData:
        ICH_BIN_DER VARIABLEN_NAME: ICH_BIN_DAS_PASSWORT
    
  2. diese Datei mit kubeseal verschlüsseln
    cat <datei> | kubeseal --controller-namespace kube-system --format yaml > sealed-secret.yaml
    
  3. den Inhalt dann als Secret im Repo ablegen ablegen

Verwenden des Secrets

- name: DRONE_RPC_SECRET
  valueFrom:
    secretKeyRef:
      name: NAME_DES_SECRETS
      key: ICH_BIN_DER VARIABLEN_NAME

Auslesen eines Klartext-Secrets aus dem Cluster

kubectl get secret <secretname> -n <namespace> -o jsonpath="{.data.<key>}" | base64 --decode ; echo""