azure - Docker VotingApp build/release Jenkins on Kubernetes not idempotent -
i'm trying out deployments on kubernetes via jenkins docker voting app. use azure container registry repository docker images. on first try deployed ok: 
when re-run pipeline without changing following error: 
redis service definition:
--- apiversion: v1 kind: service metadata: creationtimestamp: null labels: app: redis version: alpine name: redis selflink: /api/v1/namespaces//services/redis spec: clusterip: ports: - name: port: 6379 protocol: tcp targetport: 6379 selector: app: redis version: alpine sessionaffinity: none type: clusterip status: loadbalancer: {} --- the docker images build "latest" tag.
stage 'checkout' node { git 'https://github.com/*****/example-voting-app.git' // checks out example votiung app repository stage 'docker builds' docker.withregistry('https://*****.azurecr.io', 'private-login') { parallel( "build worker app":{def myenv = docker.build('*****.azurecr.io/example-voting-app-worker:latest', 'worker').push('latest')}, "build result app":{def myenv = docker.build('*****.azurecr.io/example-voting-app-result:latest', 'result').push('latest')}, "build vote app":{def myenv = docker.build('*****.azurecr.io/example-voting-app-vote:latest', 'vote').push('latest')} ) } stage 'kubernetes deployment' sh 'kubectl apply -f kubernetes/basic-full-deployment.yml' sh 'kubectl delete pods -l app=vote' sh 'kubectl delete pods -l app=result' stage 'smoke test' sh 'kubectl deployments' }
your definition contains fields auto-generated/managed apiserver. of them created @ time of object creation , can't updated afterwards. remove following fields file make happy:
metadata: creationtimestamp: null selflink: /api/v1/namespaces//services/redis status: loadbalancer: {}
Comments
Post a Comment