Octopus Deploy — Tier 1 Resource Dependency Tree

Dependency map for the Tier 1 (dedicated MCP tool) resources: Spaces, Environments, Projects, Accounts, Certificates, Tenants, Variables, Feature Toggles, Branches, Runbooks, Releases, Deployments, Deployment Targets/Machines, Kubernetes Targets, Tasks, Interruptions, Events, and Current User.

Solid arrow = hard dependency (the parent must exist before the child can be created at all). Dashed arrow = soft dependency (optional — only needed if you scope/link to it).

Octopus Deploy — Tier 1 Resource Dependency Tree Space Current User (pre-existing, not created) Environments Accounts Certificates Tenants Projects Deployment Targets / Machines Runbooks Releases Tenant ↔ Project ↔ Environment Links Variables Feature Toggles Branches (Git-enabled projects) Kubernetes Targets (subtype) Runbook Runs Deployments Tasks (system-generated) Interruptions (system-generated) Events (system-generated) Hard dependency (required to create) Soft dependency (optional scoping / linking) System-generated / pre-existing (not created directly)

Hard vs. soft dependencies

ResourceHard dependency (required to create)Soft dependency (optional scoping/linking)
EnvironmentsSpace
AccountsSpace
CertificatesSpace
TenantsSpace
ProjectsSpace (uses auto-default Lifecycle)
VariablesProjectEnvironments, Machines, Tenants, Channels (for scoped values)
Feature TogglesProjectEnvironments, Tenants, Tenant Tags/Segments (for scoped toggles)
BranchesProject (with Git version control enabled)
RunbooksProject
Runbook RunsRunbook (published) + Environment
ReleasesProject + Deployment Process
Deployment Targets / MachinesEnvironmentAccounts, Certificates (only for target types needing cloud/cert auth)
Kubernetes TargetsEnvironment (subtype of Deployment Targets)Accounts, Certificates (cluster auth)
DeploymentsRelease + EnvironmentDeployment Targets (role matching), Tenants (tenanted deploys)
Tenant↔Project↔Environment LinksTenants + Projects + Environments
Taskssystem-generated by Deployments/Runbook Runs — not created directly
Interruptionssystem-generated by Tasks needing manual intervention
Eventssystem-generated byproduct of any action
Current Userpre-existing authenticated identity — not created

Answers to the specific questions

Can you create variables before environments?
Yes. Variables only hard-require a Project. Environments are only needed if you want to scope a variable's value to a specific environment — an unscoped (or channel-scoped) variable can be created with zero environments in the space.
Can you have feature toggles without creating tenants first?
Yes. Feature Toggles only hard-require a Project. Tenants are one optional scoping dimension (alongside Environments and Segments) — a global or environment-scoped toggle needs no tenants at all.

Notable non-obvious points