Skip to content
InfraKitchen
Esc
↑↓navigate↵open⌘Jpreview
On this page

Developer Guide

Turn infrastructure templates into real cloud resources with InfraKitchen — no deep cloud or OpenTofu/Terraform knowledge required.

This guide shows how to turn infrastructure templates into real cloud resources with InfraKitchen. You do not need deep cloud or OpenTofu/Terraform knowledge to follow the steps.

Core Ideas (Know These First)

  • Template: Defines what can be built (the recipe).
  • Template Version: Specific version of IaC code linked to the template.
  • Resource: A real instance created from a template + version + variables.
  • Variables: Inputs the code needs (some required, some frozen, some sensitive).
  • Integrations: Credentials (AWS, Azure, GCP, etc.).
  • Storage: Backend for OpenTofu/Terraform state (S3, Blob, GCS).
  • Dependency Tags: Key/value tags that can flow down to children.
  • Dependency Configs: Key/value config values that prefill matching variable names for children.
  • Outputs: Values produced after provisioning (can feed child resources).
  • Abstract Resource: Organizes hierarchy and passes tags/configs; does not create cloud infra.

Prerequisites Checklist

Before creating a non-abstract resource:

  • Template exists and is enabled.
  • You know which Template Version to use.
  • Required variables identified.
  • Cloud integration(s) available.
  • (Optional) Parent resources already provisioned (if template has parents).
  • Storage backend configured globally or selectable.

For an abstract resource, integrations and storage are not needed.

Quick Start: Create & Provision

  1. Go to Resources.
  2. Click Create.
  3. Pick a template.
  4. Enter:
    • Name (unique within template + version).
    • Description (optional).
    • Parent resources (if required).
  5. (Optional) Add dependency tags/configs you want children to inherit.
  6. Add labels (e.g. team, env).
  7. Select cloud integration(s) (skip for abstract).
  8. (Optional) Select workspace.
  9. Choose Template Version.
  10. Fill variables:
    • Required must have values.
    • Sensitive are masked.
    • Frozen cannot change later.
    • Unique must be globally unique for same template.
    • References: may auto-populate from parent outputs or dependency configs.
  11. Save.
  12. If approval flow enabled: wait for approval. Else proceed.
  13. (Optional) Run Dry Run (Plan) to preview.
  14. Click Provision.

Result: State becomes provisioned, status done. Outputs become available.

Dry Run (Plan) Purpose

Use Dry Run before Provision / Update to see adds, changes, destroys without applying. Fix variable mistakes early.

Using Outputs & References

After provisioning:

  • Child resource variables can reference parent outputs.
  • Dependency configs with matching names prefill child variable values (override allowed).
  • Tags marked inherited flow automatically.

Updating a Resource

You can change: description, variables (not frozen), labels, integrations, workspace, template version.

Update flow:

  1. Start Update.
  2. Temp state is created.
  3. Review differences (plan optional).
  4. If needed, adjust variables.
  5. If approval flow: await approval.
  6. Apply changes.
  7. Revision increments; outputs refresh.

Discard temp state if changes unwanted.

Recreate

Use when resource was destroyed or rejected:

  • Triggers provisioning again from existing definition.
  • Same steps as initial Provision (approval may apply).

Destroy vs Delete

  • Destroy: Removes cloud infra; keeps resource record (state becomes destroyed).
  • Delete: Permanently removes record (only allowed after destroy). Cannot undo.

Destroy rules:

  • No child resources still provisioned.
  • Approval may be required.
  • Outputs cleared after success.

Abstract Resources

When creating an abstract resource:

  • Skip integrations, template version, workspace, variables.
  • Use it to group and propagate tags/configs.
  • Can have children (abstract or provisioned).
  • No Provision / Destroy — only Create, Update, Delete.

Lifecycle Cheat Sheet

Action Start State End State Notes
Provision provision provisioned Runs IaC apply.
Update provisioned provisioned Temp state preview.
Recreate destroyed/rejected provisioned Fresh apply.
Dry Run provision/provisioned (pre-apply) unchanged Preview only.
Destroy provisioned destroyed Runs IaC destroy.
Delete destroyed (removed) Final cleanup.

Best Practices

  • Start with abstract resources for Environment / Account to cascade tags/configs.
  • Use Dry Run on updates to avoid surprises.
  • Keep naming consistent (include env + region).
  • Avoid frequent Template Version jumps in production—test on staging first.
  • Destroy before Delete to keep audit trail until truly not needed.

Last updated on