Define a place to work:
DEMO_HOME=$(mktemp -d)
Make a kustomization
containing a pod resource
cat <<EOF >$DEMO_HOME/kustomization.yaml
resources:
- pod.yaml
EOF
Declare the pod resource
cat <<EOF >$DEMO_HOME/pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
labels:
app: myapp
spec:
containers:
- name: myapp-container
image: busybox:1.29.0
command: ['sh', '-c', 'echo The app is running! && sleep 3600']
initContainers:
- name: init-mydb
image: busybox:1.29.0
command: ['sh', '-c', 'until nslookup mydb; do echo waiting for mydb; sleep 2; done;']
EOF
The myapp-pod
resource declares an initContainer and a container, both use the image busybox:1.29.0
.
The image busybox
and tag 1.29.0
can be changed by adding images
in kustomization.yaml
.
Add images
:
cd $DEMO_HOME
kustomize edit set image busybox=alpine:3.6
The following images
will be added to kustomization.yaml
:
images: - name: busybox newName: alpine newTag: 3.6
Now build this kustomization
kustomize build $DEMO_HOME
Confirm that this replaces both busybox images and tags for alpine:3.6
:
test 2 = \
$(kustomize build $DEMO_HOME | grep alpine:3.6 | wc -l); \
echo $?