0
votes

I am looking for a Kubectl wait command for init containers. Basically I need to wait until pod initialization of init container before proceeding for next step in my script.

I can see a wait option for pods but not specific to init containers.

Any clue how to achieve this

Please suggest any alternative ways to wait in script

1

1 Answers

1
votes

You can run multiple commands in the init container or multiple init containers to do the trick.


  • Multiple commands
command: ["/bin/sh","-c"]
args: ["command one; command two && command three"]

Refer: https://stackoverflow.com/a/33888424/3514300


* Multiple init containers

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app: myapp
spec:
  containers:
  - name: myapp-container
    image: busybox:1.28
    command: ['sh', '-c', 'echo The app is running! && sleep 3600']
  initContainers:
  - name: init-myservice
    image: busybox:1.28
    command: ['sh', '-c', "until nslookup myservice.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo waiting for myservice; sleep 2; done"]
  - name: init-mydb
    image: busybox:1.28
    command: ['sh', '-c', "until nslookup mydb.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo waiting for mydb; sleep 2; done"]

Refer: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/#init-containers-in-use