0
votes

Comment définir la carte secrète de Kubettes sur une manière déclarative dans CI sans commettre des secrets à Git?

Je veux définir une carte des secrets Kubettes dans le cadre de mon pipeline de déploiement. Selon la documentation de Kubettes, il existe deux façons de définir un secret.

  1. déclaratif utilisant un .yml avec l'objet secret li>
  2. impératif en utilisant kubectl crée un secret générique code> li> ol>

    L'approche déclarative nécessite d'écrire un YAML similaire à celui ci-dessous. P>

    apiVersion: v1
    kind: Secret
    metadata:
      name: test-secret
    data:
      username: bXktYXBw
      password: Mzk1MjgkdmRnN0pi
    


0 commentaires

3 Réponses :


0
votes

Vous pouvez crypter le secret et commettre le secret crypté dans Git et tout en déploiement, il doit être déchiffré. Par exemple, une voûte ansile peut être utilisée si vous utilisez un outil CI ansible en tant qu'outil CI.

Si vous utilisez Jenkins, vous pouvez utiliser Critiques ou Plugin Hashicorp Vault pour stocker le secret.

Si vous êtes sur le nuage public, AWS KMS, Azure Vault, etc. sont disponibles.


0 commentaires

3
votes

Il n'y a pas de très bon moyen de gérer des secrets de manière sécurisée avec un kubernet de vanille. Si vous décrypte le secret ou injecte un secret non crypté dans votre pipeline CI / CD et créez un secret Kubettes, vous aurez une chaîne codée de base64 déchiffrée pour stocker dans votre cluster Kubettes (ETCD).

La plupart des entreprises que j'ai travaillé avec récemment décidé de garder le secret dans leur coffre-fort à clé et d'utiliser un contrôleur Kubettes pour injecter le secret au moment de l'exécution ou utiliser un contrôleur pour pouvoir gérer les secrets cryptés tels que secrets scellés ou Kamus . L'utilisation de secrets cryptés pourrait être une bonne option si vous souhaitez garder vos secrets en git.

Support de première classe pour Hashicorp Vault et Kubettes: https://github.com/hashicorp/vault -k8s

Jetez un coup d'œil à ce blog post de Banzai Cloud pour une explication plus détaillée: Injectez des secrets directement dans les gousses de Vault Revisited


0 commentaires

1
votes

J'ai fini par pirater cela avec BASH SCRIP pour sortir un secret YAML SECRET.YAML.SH CODE>

cat <<EOF 
apiVersion: v1
kind: Secret
metadata:
  name: test-secret
type: Opaque
data:
  username: $1
  password: $2
  jdbcUrl: $3
EOF


0 commentaires