How can I use kubectl or the API to retrieve the current image for containers in a pod or deployment?
For example, in a deployment created with the below configuration, I want to retrieve the value eu.gcr.io/test0/brain:latest.
apiVersion: v1
   kind: Deployment
   metadata:
     name: flags
   spec:
     replicas: 6
     template:
       metadata:
      labels:
        app: flags
       spec:
         containers:
         - name: flags
           image: eu.gcr.io/test0/brain:latest
                If a tag is not specified in the manifest file, Kubernetes will automatically use the image tagged latest.
From kubectl 1.6 the -o wide option does this, so
kubectl get deployments -o wide
will show the current image in the output.
You can use kubectl's jsonpath output option to achieve this:
kubectl get deployment flags -o=jsonpath='{$.spec.template.spec.containers[:1].image}'
                        to get just the image uri for all pods (in all namespaces, for example):
kubectl get pods --all-namespaces -o jsonpath="{..image}"
(see https://kubernetes.io/docs/tasks/access-application-cluster/list-all-running-container-images/ for more detail)
For a single deployment use this:
kubectl get deploy/deployment-name -o jsonpath="{..image}"
It can work for pod too
kubectl get pod/pod-name -o jsonpath="{..image}"
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With