Skip to content

Core ConceptsΒΆ

InfraKitchen introduces several key concepts that work together to enable self-service infrastructure provisioning. This page explains each concept and how they relate to each other.


πŸ”Œ IntegrationΒΆ

An Integration stores the credentials and configuration needed to connect to external systems.

Types of IntegrationsΒΆ

  • Cloud Providers: AWS, Azure, Google Cloud, MongoDB Atlas, Datadog

  • Git Providers: GitHub, Bitbucket, Azure DevOps

  • Auth Providers: GitHub OAuth, Microsoft OAuth, Backstage integration, Service Accounts

Learn more: Integrations Documentation


πŸ“ TemplateΒΆ

A Template defines a logical unit of infrastructure. Templates are organized hierarchically and represent components like AWS Accounts, VPCs, EKS Clusters, or RDS databases.

Template Hierarchy ExampleΒΆ

Text Only
AWS Account (abstract)
β”œβ”€β”€ AWS Region (abstract)
β”‚   β”œβ”€β”€ VPC (concrete)
β”‚   β”‚   β”œβ”€β”€ EKS Cluster (concrete)
β”‚   β”‚   β”œβ”€β”€ RDS Database (concrete)
β”‚   β”‚   └── Application Load Balancer (concrete)
β”‚   └── S3 Bucket (concrete)

Learn more: Templates Documentation


πŸ“¦ Source CodeΒΆ

InfraKitchen embraces Infrastructure-as-Code (IaC). Source Code refers to a Git repository containing Terraform/OpenTofu modules.

Source Code ComponentsΒΆ

  1. Repository URL - Where the IaC code is stored
  2. Git Provider Integration - Credentials to access the repository
  3. Multiple Modules - One repository can contain multiple infrastructure modules

Example:

Text Only
Repository: github.com/myorg/terraform-modules
β”œβ”€β”€ aws-vpc/
β”œβ”€β”€ aws-eks/
└── aws-rds/

🏷️ Source Code Version¢

A Source Code Version links a specific Template to a specific version of IaC code in a repository.

ComponentsΒΆ

YAML
Template: Production VPC
Source Code: github.com/myorg/terraform-modules
Tag/Branch: v1.2.0
Module Path: aws-vpc/

πŸ“¦ ResourceΒΆ

A Resource is an actual instance of infrastructure, created from a Template and Source Code Version.

Resource PropertiesΒΆ

YAML
ID: res-abc123
Name: production-vpc-us-east-1
Template: Production VPC
Parent Resource: aws-account-prod
Source Code Version: v1.2.0
State: provisioned
Status: done

Variables:
  vpc_name: 'production-vpc'
  cidr_block: '10.0.0.0/16'

Outputs:
  vpc_id: 'vpc-0123456789'
  availability_zones: ['us-east-1a', 'us-east-1b']

Learn more: Resources Documentation


πŸ’Ό WorkspaceΒΆ

A Workspace is a Git repository where InfraKitchen can automatically sync generated Terraform code.

StructureΒΆ

Text Only
workspace-repo/
β”œβ”€β”€ production-vpc/
β”‚   β”œβ”€β”€ main.tf
β”‚   β”œβ”€β”€ variables.tf
β”‚   └── outputs.tf
β”œβ”€β”€ production-eks/
β”‚   β”œβ”€β”€ main.tf
β”‚   β”œβ”€β”€ variables.tf
β”‚   └── outputs.tf

Learn more: Workspaces Documentation