type: parallel
A parallel Manifest is a container that processes multiple child Manifests in parallel. The child type is one of kustomize / helmfile / genesissecret / oras (nesting parallel is not intended).
path
A parallel Manifest’s own manifests[].path is not used in practice. Since validation does not allow it to be empty, write any directory.
The actual processed path is specified per children[].path.
Specific Fields
Written inside the manifests[].parallel object.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
children | [Manifest] | Yes | - | Array of child Manifests to process in parallel. At least one entry required. |
Each element of children[] has the same structure as Manifest. The names of Manifests inside children[] must also be unique within the same space as all Manifest names after include expansion (verified at tazuna check).
Behavior
| Operation | Internal processing |
|---|---|
Apply | Call the corresponding Manager’s Apply for each element of children[] in goroutines in parallel. Errors are aggregated and returned. |
Destroy | Call the corresponding Manager’s Destroy for each element of children[] in parallel. |
Build | Call the corresponding Manager’s Build for each element of children[] in parallel, and return a string joined by \n---\n while preserving declaration order. Empty outputs are skipped. |
The processing order of children[] is not guaranteed. Use it only for groups safe to run in parallel. For ordering dependencies (waiting for A’s CRD before installing B, etc.), instead of parallel, line them up in declaration order under normal manifests[], or use the child Manifest’s Test plugin to express Ready waits.
Examples
Example of bundling two parallel-safe kustomize Manifests into one parallel:
manifests:
- name: observability
type: parallel
path: ./parallel/observability # not actually used but required
parallel:
children:
- name: prometheus
type: kustomize
path: ./kustomize/prometheus
tags:
- observability
- name: grafana
type: kustomize
path: ./kustomize/grafana
tags:
- observability
Related
- Types usable as child Manifests:
kustomize/helmfile/genesissecret/oras - Common Manifest fields:
tazuna.yaml- Manifest