Sealed Secrets
Verschlüsselt ein Kubernetes-Secret mit dem öffentlichen Schlüssel des Clusters, sodass es in Git eingecheckt werden kann, ohne dass jemand außer dem Cluster es lesen kann.
Das Problem taucht auf, sobald man GitOps einführt: alles soll im Repository liegen, außer den Geheimnissen — die in Kubernetes lediglich base64-kodiert und damit vollständig lesbar sind. Bitnamis Lösung ist ein Controller im Cluster, dem ein Schlüsselpaar gehört. Der Entwickler führt kubeseal aus, erhält ein SealedSecret zurück, das gefahrlos überall veröffentlicht werden kann, und der Controller entschlüsselt es beim Anwenden zu einem echten Secret. Die Verschlüsselung ist standardmäßig an Namensraum und Namen gebunden, sodass eine gestohlene Datei nicht an anderer Stelle im Cluster wiederverwendet werden kann. Der Haken: Der Schlüssel lebt im Cluster — geht er verloren, sind alle Geheimnisse verloren, weshalb ein Backup davon Pflicht ist.