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ΒΆ
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ΒΆ
- Repository URL - Where the IaC code is stored
- Git Provider Integration - Credentials to access the repository
- Multiple Modules - One repository can contain multiple infrastructure modules
Example:
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ΒΆ
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ΒΆ
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ΒΆ
workspace-repo/
βββ production-vpc/
β βββ main.tf
β βββ variables.tf
β βββ outputs.tf
βββ production-eks/
β βββ main.tf
β βββ variables.tf
β βββ outputs.tf
Learn more: Workspaces Documentation