<p>Reading the Kubernetes "Run to Completion" documentation, it says that jobs can be run in parallel, but is it possible to chain together a series of jobs that should be run in sequential order (parallel and/or non-parallel).</p>

<p><a href="https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/" rel="noreferrer">https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/</a></p>

<hr>

<p>Or is it up to the user to keep track of which jobs have finished and triggering the next job using a PubSub messaging service?</p>

Kermit
<p>I have used initContainers under the PodSpec in the past to solve problems like this: <a href="https://kubernetes.io/docs/concepts/workloads/pods/init-containers/" rel="noreferrer">https://kubernetes.io/docs/concepts/workloads/pods/init-containers/</a></p>

<pre><code>apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app: myapp
spec:
  containers:
  - name: myapp-container
    image: busybox
    command: ['sh', '-c', 'echo The app is running! &amp;&amp; sleep 3600']
  initContainers:
  - name: init-myservice
    image: busybox
    command: ['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done;']
  - name: init-mydb
    image: busybox
    command: ['sh', '-c', 'until nslookup mydb; do echo waiting for mydb; sleep 2; done;']
</code></pre>

<p>Take a look here for the chaining of containers using the "depends" keyword is also an option:</p>

<p><a href="https://github.com/kubernetes/kubernetes/issues/1996" rel="noreferrer">https://github.com/kubernetes/kubernetes/issues/1996</a></p>
