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