web-dev-qa-db-fra.com

comment passer la variable d'environnement dans le déploiement de kubectl?

Je configure la configuration de kubernetes pour Django webapp.

Je passe la variable d'environnement lors de la création du déploiement comme ci-dessous

kubectl create -f deployment.yml -l key1=value1 

Je reçois une erreur comme ci-dessous

error: no objects passed to create

Capable de créer le déploiement avec succès, si je supprime la variable env -l key1 = valeur1 lors de la création du déploiement.

deployment.yaml comme ci-dessous

#Deployment
apiVersion: extensions/v1beta1
kind: Deployment
metadata: 
 labels: 
   service: sigma-service
 name: $key1

Quelle sera la cause de l'erreur ci-dessus lors de la création du déploiement?

4
rakeshh92

Fichier: ./deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: MYAPP
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
      ports:
      - containerPort: 80

Fichier: ./service.yaml

apiVersion: v1
kind: Service
metadata:
  name: MYAPP
  labels:
    app: nginx
spec:
  type: ClusterIP
  ports:
  - port: 80
  selector:
    app: nginx

Fichier: ./kustomization.yaml

resources:
- deployment.yaml
- service.yaml

Si vous utilisez https://kustomize.io/ , vous pouvez faire cette astuce dans un CI:

sh '( echo "images:" ; echo "  - name: $IMAGE" ; echo "    newTag: $VERSION" ) >> ./kustomization.yaml'
sh "kubectl apply --kustomize ."
0
Oleg Burov

Suivez les étapes ci-dessous

créer test-deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: MYAPP
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

à l'aide de la commande sed, vous pouvez mettre à jour le nom du déploiement au moment du déploiement

sed -e 's|MYAPP|my-nginx|g' test-deploy.yaml | kubectl apply -f -
0
P Ekambaram