Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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.

FieldTypeRequiredDefaultDescription
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

OperationInternal processing
ApplyCall the corresponding Manager’s Apply for each element of children[] in goroutines in parallel. Errors are aggregated and returned.
DestroyCall the corresponding Manager’s Destroy for each element of children[] in parallel.
BuildCall 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