4 votes

Configurer sops/helm-secrets dans flux

Actuellement, j'ai Flux et l'opérateur Helm installés dans mon cluster via les charts helm. Le déploiement de Flux surveille un dépôt git où j'ai un fichier .flux.yaml auquel je passe un contexte de dossier via le drapeau git-path du déploiement Flux. Cela est utilisé pour exécuter kustomize afin de patcher les fichiers de valeurs que je veux utiliser pour le déploiement. Certains de ces environnements ont des fichiers qui sont chiffrés via sops.

J'ai configuré Flux avec sops activé. sops/helm secrets utilise une clé aws kms, donc localement, je suppose un rôle auquel j'ai accordé l'accès pour chiffrer/déchiffrer avec l'arn kms spécifié. Le problème auquel je suis confronté est de décrypter ces secrets avant le déploiement helm. Je me retrouve actuellement avec les valeurs chiffrées dans la ressource kubernetes finale. Je ne parviens pas à trouver de documentation supplémentaire sur la configuration des clés d'accès/secret aws à utiliser par sops du côté Flux, ni rien sur l'opérateur Helm pour éventuellement le faire via helm secrets. Tout conseil serait grandement apprécié !

3voto

WMiller112 Points 53

Il s'est avéré qu'il n'y avait aucun problème avec le déchiffrement du secret. Le pod de flux exécute sops en utilisant le rôle node (auquel j'avais accordé l'accès pour déchiffrer avec la clé kms nécessaire), et déchiffrait avec succès les secrets. J'ai testé ceci en exécutant la commande sops -d sur le fichier contenant mes secrets.

Le problème était en fait que je ne passais pas réellement le fichier déchiffré à mon helmrelease. J'ai fini par accomplir cela en utilisant le .flux.yaml suivant :

version: 1
patchUpdated:
  generators:
    - command: sops -d --output secrets.yaml secrets.enc.yaml && kustomize build .
    - command: rm secrets.yaml
  patchFile: ../base/flux-patch.yaml

À l'origine, mon fichier de secrets était formaté comme un fichier de valeurs Helm, mais je l'ai mis à jour pour pouvoir patcher la section des valeurs du fichier de base helmrelease avec les valeurs déchiffrées. Cela fait en sorte que toutes les valeurs déchiffrées soient consommées par le helmrelease. La deuxième commande supprime le fichier secrets.yaml déchiffré afin qu'il ne soit pas finalement commité dans le dépôt.

Gardez à l'esprit que cela aboutit à ce que le helmrelease dans le cluster contienne tous vos secrets, donc vous devez gérer l'accès aux objets helmrelease en conséquence.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X