Déployer mon service en production:
envsubst < ./kubernetes/pre-production/aks.yaml | kubectl apply -f -
J'obtiens l'erreur suivante:
Le déploiement "moverick-mule-pre" n'est pas valide: spec.template.metadata.labels: valeur non valide: map [string] string {"commit": "750a26deebc3582bec4bfbb2426b3f22ee042eaa", "app": "moverick-mule-pre"}}:
selector
ne correspond pas au modèlelabels
Mon fichier yaml est:
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: moverick-mule-pre
spec:
replicas: 2
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
template:
metadata:
labels:
app: moverick-mule-pre
commit: $CI_COMMIT_SHA
spec:
containers:
- name: moverick-mule-pre
image: $REGISTRY_SERVER_PRE/$CI_PROJECT_NAME:$CI_COMMIT_REF_NAME
imagePullPolicy: Always
ports:
- containerPort: 80
envFrom:
- secretRef:
name: moverick-pre
livenessProbe:
httpGet:
path: /console
port: 80
initialDelaySeconds: 5
periodSeconds: 5
volumeMounts:
- name: logs
mountPath: /opt/mule/logs/
- name: asc
mountPath: /opt/mule/asc/
imagePullSecrets:
- name: registry-pre
volumes:
- name: logs
azureFile:
secretName: Azure-files-pre
shareName: logs-pre
readOnly: false
- name: asc
azureFile:
secretName: Azure-asc-pre
shareName: asc-pre
readOnly: false
---
apiVersion: v1
kind: Service
metadata:
name: moverick-mule-pre
spec:
ports:
- port: 80
selector:
app: moverick-mule-pre
Vous devez ajouter selector
dans spec
du déploiement.
Et aussi, ces selector
doivent correspondre à labels
dans PodTemplate.
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: moverick-mule-pre
spec:
replicas: 2
selector:
matchLabels:
app: moverick-mule-pre
commit: $CI_COMMIT_SHA
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
template:
metadata:
labels:
app: moverick-mule-pre
commit: $CI_COMMIT_SHA
Sinon, vous obtiendrez une erreur comme ci-dessous
Le déploiement "moverick-mule-pre" n'est pas valide:
- spec.selector: valeur requise
- spec.template.metadata.labels: valeur non valide: carte [chaîne] chaîne {...}
selector
ne correspond pas au modèlelabels