Aller au contenu

Helm secrets

Introduction

Utilisation des secrets dans les charts helm

Attention

La clés publique (age1yen2x2ntanvcd82qkve92d89zy5utgtlfs6pkyzfly7vef8festqwdlpme) utilisée dans les exmples ci-dessous est un exemple. Vous devez utiliser votre clés publique (voir SOPS et Age).

Prérequis

Application

Clés

  • Une clés privée
  • Une clés public
  • Le mot de passe

Pour la création des clés (voir SOPS et Age)

Chiffrer un fichier

  • Créer le fichier .sops.yaml à la racine de votre chart helm avec le contenu suivant:
creation_rules:
    - age:
      - age1yen2x2ntanvcd82qkve92d89zy5utgtlfs6pkyzfly7vef8festqwdlpme
  • Fichier à chiffrer
echo "password: Top5ecret" > values-secret.yaml
  • Chiffrer le fichier
sops --encrypt --in-place values-secret.yaml
  • Vérifier
cat values-secret.yaml
password: ENC[AES256_GCM,data:2K3qAmyDiDa/,iv:Es7oVS8KaZlS6AFWbMCC9tuAu701/yZIKioV3ts2LUY=,tag:qtFxKkqFIt9Lzp++7JGTYA==,type:str]
sops:
    age:
        - enc: |
            -----BEGIN AGE ENCRYPTED FILE-----
            YWdl...PmUT9U9HCDrZsQ2F/eYrKqs/sWPL1H5RJYwaqTaToAN71d2wQ==
            -----END AGE ENCRYPTED FILE-----
          recipient: age1yen2x2ntanvcd82qkve92d89zy5utgtlfs6pkyzfly7vef8festqwdlpme
    lastmodified: "2026-08-12T08:53:06Z"
    mac: ENC[AES256_GCM,data:3R7mfGM53LMkBxbHfcrxfsfutsSnilTOsDaLq+j4eudOTcFmvKHf...B5Gcg==,type:str]
    unencrypted_suffix: _unencrypted
    version: 3.13.3

Editer un fichier chiffré

helm secrets edit value-secret.yaml

Le mot de passe est demandé Si la clés privée n'est pas dans le dossier ~.config/sops/age alors

export SOPS_AGE_KEY_FILE=<patho_to_private_key_file>;helm secrets edit values-secrets.yaml

CICD

PAS TESTÉ

Créer une variable de type secret SOPS_AGE_KEY dans votre Git, y coller la clés privée extraite comme expliqué ici

Exemple de CICD

name: Deploy with Helm & SOPS

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Install dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y sops age
          curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
          helm plugin install https://github.com/jkroepke/helm-secrets

      - name: Set up SOPS
        run: |
          mkdir -p ~/.config/sops/age/
          echo "${{ secrets.SOPS_AGE_KEY }}" > ~/.config/sops/age/keys.txt
          chmod 600 ~/.config/sops/age/keys.txt

      - name: Deploy with Helm
        run: |
          helm secrets upgrade --install my-release ./my-chart

Sources


Version Date Change Auteur
1.1 12.08.2026 MàJ pour SOPS et Age GMo
1.0 13.08.2023 Création GMo