Kubectl apply does not update pods or deployments

11/3/2017

I'm using a CI to update my kubernetes cluster whenever there's an update to an image. Whenever the image is pushed and has the latest tag it kubectl apply's the existing deployment but nothing gets updated.

this is what runs $ kubectl apply --record --filename /tmp/deployment.yaml

My goal is when the apply is ran that a rolling deployment gets executed.

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: api
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: api
    spec:
      containers:
      - name: api
        image: us.gcr.io/joule-eed41/api:latest
        imagePullPolicy: Always
        ports:
          - containerPort: 1337
        args:
          - /bin/sh
          - -c
          - echo running api;npm start
        env:        
        - name: NAMESPACE
          valueFrom:
            configMapKeyRef:
              name: config
              key: NAMESPACE
-- Hannan Rhodes
google-kubernetes-engine
kubectl
kubernetes

1 Answer

11/5/2017

As others suggested, have a specific tag. Set new image using following command

kubectl set image deployment/deployment_name deployment_name=image_name:image_tag

In your case it would be

kubectl set image deployment/api api=us.gcr.io/joule-eed41/api:0.1

-- ksholla20
Source: StackOverflow