Dependency Model

2 min read

When you have multiple CRDs that depend on each other, they need to start in the right order. Orkestra handles this automatically — no code required.

You declare the dependencies. Orkestra builds the graph, computes the startup order, waits for missing CRDs, and stops everything cleanly in reverse on shutdown.


The problem

Imagine a web application that needs a database before it can run:

  • The database CRD must be ready before the application CRD starts
  • If the database CRD is missing, the application should wait
  • When the database appears, the application should start automatically

Traditional operators don’t handle this. You write code to check if dependencies exist, wait for them, and retry when they appear. Orkestra does it for you.


Quick reference

WhatHow Orkestra handles it
Declare dependenciesdependsOn — list, key-value map, or full map
Startup orderAutomatic — dependencies first, via topological sort
Condition granularitystarted, ready, or healthy per dependency
Missing CRDsWait, retry in background, activate when they appear
Shutdown orderReverse of startup
Circular dependenciesDetected at validate time and rejected at startup

Where to go next


Try it

ork init --pack advanced
cd 13-dependencies/01-in-binary

Follow the README — it walks through App waiting for Database to be healthy, with live dependency-graph visualization.