Manifest Order
Description
By default, Updatecli treats each manifest as an independent pipeline and do not guarantee ordering. When you run multiple manifests from the same directory, Updatecli can now order them explicitly before execution.
Manifest ordering is controlled with two root keys:
id: declares the manifest identifier that other manifests can depend ondependson: lists the manifest IDs that must run first
This is useful when one manifest prepares data, policies, or files that another manifest relies on.
Important |
They do not change:
For those behaviors, keep using |
Parameters
id
The id key defines a manifest dependency identifier.
name: Base image updates
id: base-imagesUse id when another manifest must wait for this one to complete.
Note | Multiple manifests may intentionally share the same |
dependson
The dependson key lists the manifest IDs that must be executed before the current manifest.
name: Application updates
id: app
dependson:
- base-images
- shared-policiesEach entry in dependson must reference an existing manifest id.
Example
In this example, the application manifest only runs after the base image manifest has been evaluated.
manifests/base.yaml
name: Base image updates
id: base-images
sources:
alpine:
name: Get latest Alpine version
kind: dockerimage
spec:
image: alpine
tag: latest
targets:
dockerfile:
name: Update Dockerfile base image
kind: dockerfile
spec:
file: Dockerfile
instruction: FROM
manifests/app.yaml
name: Application updates
id: app
dependson:
- base-images
sources:
version:
name: Get latest release
kind: githubrelease
spec:
owner: updatecli
repository: updatecli
targets:
yaml:
name: Update application version
kind: yaml
spec:
file: values.yaml
key: $.image.tag
If you run Updatecli against the manifests/ directory, it executes base.yaml before app.yaml.
Behavior
Shared IDs
If multiple manifests share the same id, a dependency waits for all of them.
# policies/a.yaml
name: Policy A
id: shared-policy
# policies/b.yaml
name: Policy B
id: shared-policy
# app.yaml
name: App
dependson:
- shared-policyIn this case, app.yaml runs after both policies/a.yaml and policies/b.yaml.
Legacy manifests
Manifests without an explicit id continue to work as before.
They keep their existing execution order, but they cannot be referenced from another manifest using dependson.
Invalid dependencies
Updatecli stops with an error when:
a manifest depends on an unknown
ida manifest depends on its own
idmanifest dependencies create a cycle
Go Further
To understand the full manifest structure, see configuration
To group manifests into the same workflow, see
pipelineidin configurationTo order resources inside a single manifest, see condition, source, and target