Sealed Secrets
Sealed secrets est un opérateur Kubernetes qui permet avec un client (kubeseal) de faire un age d'un secret. Faire un age nous permet de pousser des secrets en ayant la certitude qu'il ne seront pas éxposer publiquement. L'age repose sur un system de clé privée et publique. Dans notre cas, la clé privée est géré par notre opérateur kubernetes. Et la clé publique est le secret versionné sur Git.
Installation
Nous avons utilisé une Kustomization pour déployer Sealed secret. Cela en fait une installation très simple, car il suffit d'appliquer la Kustomization pour tout installer.
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://github.com/bitnami-labs/sealed-secrets/releases/download/v0.29.0/controller.yaml
Utilisation
Pour utiliser Sealed secrets il faut d'abord avoir le client kubeseal installé sur sa machine. Puis il faut s'assurer que le contexte du cluster est chargé car kubeseal dialoguera avec le cluster pour récupérer la clé publique.
Une fois ses prérequis remplis, il faut créer un secret kubernetes classique.
apiVersion: v1
kind: Secret
metadata:
name: my-secret
type: Opaque
data:
username: myuser
password: mypassword
Une fois cela fait, il faut utiliser le client kubeseal pour créer un age de ce secret.
kubeseal --format yaml -f my-secret.yaml -w my-sealed-secret.yaml
Ce qui va créer un fichier my-sealed-secret.yaml contenant le secret age.
---
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
creationTimestamp: null
name: nextcloud-secret
namespace: nextcloud
spec:
encryptedData:
username: AgAcQsZUNYvolZJQ2FLjA5wxoYzQ20Bvc0UCSFx59VtwWx7VT83caGb6jCdf0zPw/+3+fjuaPeLPzdUPK4LhvhLguvBo9+cYIl8cAaI7t+3XwjNXZ08boFXgb0oKQdTEJElM9eKJ6dhrkRMblSApLH8/SLhuA1tQKEqCks65coct76GokDZ9ARyzOL+RWERzyoDiknQJ19t9/UJWUO8fh8umKAbXdHmMljlG5wTuj4VwOdqy0WraP94qACTo0nq0thhz1W4pC+8ktOGuG00MzdlBXMt9maIkXSJaYVwKyRi2tNVI92hcxpk/GkKVorigrfMBtQ87V2FcjbHabDiJqmW8bK3A52B2HTYA7bVaD0TXfGDbJ7/Y3ZPhzV2+92Yzyefijk+kyDUmQJJFRRfJokilOZ2uAOt1lHD5YJdCTTkU4ZXRcCxIzs6S0oi2mSuvhLFxl90YhtLWXO2UovYLvZXOWdhzJAgAGNkLTwRbzI7gybXZCDGJC9GOlWBLVEr6SBnm/oZBZLp96REvkBye9G0M1TGI/QGqFrG0QbNmCzd+uQx55uWC7hXoWPa8mChLLtk5j4yFZNREI+nLsFuczoRqboavAtqFdfKsL1p5fdIDaXCMMbONKu69j56wv6aw/g0pvQ3UNo0Wf+0jo2mmdE1Jlf3W7HSKK3IxBEV+FtFNut/VRfa4A9Fc6iQHe5509t6vNvbBX6ia5dNPU9oCqajcC9Nkag==
password: AgBRXjGg21XBDxAW6X5Wd0xvSeX1S4oOYV9Q65z6nLKPXWwriLyOsKnvgFxNdr/kDe2pkeoIDuQVD9xiKZ5ztopSFbERAGhr4mqCHItK9L+QXIQ2yRkc85+Al8EdL7ob13GjYM05MyTBcsdAX5puClR+JoU4cAcS2vGf40OZe+DlPlr9MnPJ3uCy6DJFkbU+LST8MuUyGqYOlLXDs/uBpHFuLV6UQL2mIx6ScbEqmBx8zHMXNlsOG6RqKvPvZqJRrLBRH01BMJupJ/fxehzB3t9iOlE/465W4Lan+0Et1zHRBv5cDZjefF8VV98mM/7lZCUsZlguGG9h/diSOVeegKvxqGlo8aQ29iwVvjfL8zCQxTjZIY4ELoinEWp3t9NVTZYng/RJumuRhrKKScZ3R1GnbRof7dZqXtSK6bsozZU34nzhIR4b/9Yu7EBup/KnxaYfSV7y1J/NRVQCL35g9FzJ1VfooJ5RYMPW4bLBtzKx2Bu9D4l+D3J/qI64vYuToRw7M/rcb2s4pL8wrLzov148Dvl2G4lLj27QFWEu4RDNB6YKl0sD0AOXeVr1TK0TpBYfMvdhbC8BU0DLE9IcXPCyuIsyhM+1XA1N3QGi9YoFqgsTLnwDugtpGk1vv8To0og8+CcYBKqGJcYIQoRvom54pumAF8RG9gDtgtYgwnPLwMLQEXcakqiu6W788hxCszzJvCJz05CqM3l7MlsJIEwLd2ZlPQ==
template:
metadata:
annotations:
sealedsecrets.bitnami.com/cluster-wide: "false"
creationTimestamp: null
name: my-secret
type: Opaque
Last modified: 13 July 2025