Spinnaker K8S Manifest based deployment with multiple Docker image triggers

I have a Spinnaker deployment pipeline which is triggered either when a

  • Docker Image D1 (Migration Job - K8S Job) or
  • Docker Image D2 (K8S Deployment) is updated in the docker registry.

The idea is that whenever either the Deployment or the Job gets updated the pipeline should get triggered. In general with our development flow, BOTH of these should get updated.

Currently I am just using K8S manifests (not Helm).

The pipeline has been modeled with 2 stages,

  • Execute the Migrations (k8s Job) wherein the D1 is deployed in stage S1 and if successful,
  • Execute the Deployment wherein D2 is deployed in stage S2.

The issue is that based on one of the triggers the pipeline gets triggered (e.g. D1). Depending on which trigger initiates the pipeline S1 or S2 fail (as both images are updated, my preference would be not to use the “Use Prior Execution” or the “Use Default Artifact” options in the Expected Artifacts).

Any ideas as to how this can be set-up ? Alternative would be to use Helm hooks, which I would like to avoid if this can be done through Spinnaker.

I guess this boils down to “triggers are individual and only 1 trigger is required in order for the pipeline to proceed” (artifact constraints). There is no “wait for other trigger” option.

We are in a similar position except we have multiple containers in a pod (sidecar pattern).
We are currently using the Use Prior Execution option so that a Docker Push of the sidecar image will deploy successfully with the last app image and vice versa.
We are socialising the need to do a deploy in 2 runs potentially if both images have changed and developers need to manage change coupling.
Alternatively we need to disable automatic triggering which is less ideal.