GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment utiliser les variables d'environnement avec les graphiques Helm

Présentation

Les chartes Helm sont un moyen pratique et efficace de collecter des ressources Kubernetes et de créer des clusters d'applications. Ils peuvent également utiliser des variables d'environnement sur des machines locales pour définir les valeurs à utiliser par votre déploiement Kubernetes.

Ce didacticiel couvrira différentes manières d'inclure des variables d'environnement dans votre déploiement Kubernetes.

Prérequis

  • Accès au terminal/ligne de commande
  • Minikube installé et configuré (consultez nos guides sur Comment installer Minikube sur Ubuntu et Comment installer Minikube sur CentOS)
  • Helm installé et configuré

Comment utiliser les variables d'environnement avec Helm

Il existe deux méthodes d'utilisation des variables d'environnement avec les chartes Helm :

  • Utiliser l'objet secret dans Kubernetes pour monter des variables d'environnement dans un déploiement.
  • Écrire un assistant personnalisé dans un graphique Helm.

Pour ce tutoriel, nous utilisons le USERNAME et PASSWORD variables d'environnement.

Montage des variables d'environnement dans un déploiement Kubernetes

1. Ajoutez les lignes suivantes au values.yaml fichier dans votre charte Helm :

username: root
password: password

2. Créez un nouveau fichier appelé secret.yaml et ajoutez-le au template dossier. Ajoutez le contenu suivant au fichier :

apiVersion: v1
kind: Secret
metadata:
  name: {{ .Release.Name }}-auth
data:
  password: {{ .Values.password | b64enc }}
  username: {{ .Values.username | b64enc }}

3. Modifiez le env section de votre déploiement Kubernetes pour inclure les nouvelles variables définies dans le secret.yaml fichier :

...
      containers:
        - name: {{ .Chart.Name }}
          securityContext:
            {{- toYaml .Values.securityContext | nindent 12 }}
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
          imagePullPolicy: {{ .Values.image.pullPolicy }}
          env:          
            - name: "USERNAME"
              valueFrom:
                secretKeyRef:
                  key:  username
                  name: {{ .Release.Name }}-auth
            - name: "PASSWORD"
              valueFrom:
                secretKeyRef:
                  key:  password
                  name: {{ .Release.Name }}-auth
...

4. Définissez les variables d'environnement sur les valeurs souhaitées. Par exemple, définissez le USERNAME variable à hello_user :

export USERNAME=hello_user

5. Appliquez les variables au graphique Helm en les combinant avec le helm install commande :

helm install --set username=$USERNAME [chart name] [chart path]

Où :

  • [chart name] est le nom de la charte Helm que vous utilisez.
  • [chart path] est le chemin d'accès au graphique Helm que vous utilisez.

Si vous souhaitez tester les nouveaux paramètres avant de les appliquer, utilisez le essai d'essai mod :

helm install --dry-run --set username=$USERNAME --debug [chart name] [chart path]

Ajout d'un assistant personnalisé dans Helm

1. Utilisez le env section du values.yaml fichier pour définir les variables sensibles et non sensibles. Utilisez le normal et secret catégories pour répertorier les variables appropriées :

secret:
  name: app-env-var-secret
env:
  normal:
    variable1: value1
    variable2: value2
    variable3: value3
  secret:
    variable4: value4
    variable5: value5
    variable6: value6

En utilisant cette méthode, nous ajoutons ensuite le USERNAME et PASSWORD variables au secret catégorie :

…
  secret:
    USERNAME: [username]
    PASSWORD: [password]

Où :

  • [username] est la valeur que vous souhaitez définir pour le USERNAME variables.
  • [password] est la valeur que vous souhaitez définir pour le MOT DE PASSE variables.

2. Ajoutez le chemin au values.yaml fichier au bas de votre .gitignore fichier :

charts/values.yaml

3. Créez un fichier appelé secrets.yaml dans les templates dossier et ajoutez le contenu suivant :

apiVersion: v1
kind: Secret
metadata:
  name: {{ .Values.secret.name }}
type: Opaque
data:
  {{- range $key, $val := .Values.env.secret }}
  {{ $key }}: {{ $val | b64enc }}
  {{- end}}

4. Trouvez le helpers.tpl fichier dans les templates dossier. Ajoutez ce qui suit au bas du fichier pour écrire une nouvelle fonction d'assistance :

{{- define "helpers.list-env-variables"}}
{{- range $key, $val := .Values.env.secret }}
- name: {{ $key }}
  valueFrom:
    secretKeyRef:
      name: app-env-secret
      key: {{ $key }}
{{- end}}
{{- end }}

5. Appelez l'assistant que vous avez créé en ajoutant ce qui suit à votre pod.yaml fichier :

…
spec:
  containers:
  - name: mycontainer
    image: redis
    env:
    {{- include "helpers.list-env-variables" . | indent 6 }}
  restartPolicy: Never

Ubuntu
  1. Comment j'utilise Vagrant avec libvirt

  2. Référencer les variables d'environnement *dans* /etc/environment ?

  3. Comment utiliser les variables atomiques en C ?

  4. Comment définir des variables d'environnement Linux avec Ansible

  5. Comment désactiver un grand nombre de variables d'environnement

Comment utiliser des variables dans Ansible Playbook

Comment installer et utiliser Helm dans Kubernetes

Comment utiliser des variables dans les scripts Shell

Comment utiliser GeoIP avec Nginx sur Ubuntu 16.04

Comment définir/annuler les variables d'environnement sous Linux

Comment utiliser l'authentification à deux facteurs avec Ubuntu