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?
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 ."
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 -