Blueprints
Blueprints are declarative YAML files that define complete lab environments. They specify infrastructure components, participant configuration, and lifecycle settings.
Tip
Think of blueprints as "infrastructure as code" specifically designed for training and testing environments.
Why Blueprints?
| Traditional Approach | Teabar Blueprints |
|---|---|
| Manual setup scripts | Declarative YAML |
| Hours of preparation | Minutes to deploy |
| Inconsistent environments | Reproducible every time |
| Hard to share | Version control friendly |
| Complex cleanup | Automatic TTL |
Blueprint Structure
Every blueprint has three main sections:
apiVersion: teabar.dev/v1
kind: Blueprint
metadata:
name: my-environment
description: What this environment provides
spec:
# 1. Environment settings (TTL, provider, region)
# 2. Components (GitLab, Kubernetes, databases, etc.)
# 3. Participants (count, isolation, resources) Quick Example
Here’s a minimal blueprint for a Kubernetes training environment:
apiVersion: teabar.dev/v1
kind: Blueprint
metadata:
name: k8s-basics
description: Basic Kubernetes cluster for training
spec:
ttl: 4h
provider: hetzner
components:
- name: cluster
type: kubernetes
version: '1.28'
nodes:
control: 1
worker: 2
participants:
count: 10
isolation: namespace Deploy it with:
teactl env create -f blueprint.yaml --name my-training Learn More
Syntax Reference
Complete YAML schema with all available options.
Variables
Use variables for dynamic configuration.
Resources
Clusters, VMs, Helm, DNS, secrets, and more.
Templating
Go template syntax for dynamic blueprints.
Composition
Extend and layer blueprints for reuse.
Components
Available component types (GitLab, K8s, databases, etc.).
Catalog
Browse, publish, and manage blueprints.
Examples
Ready-to-use blueprints for common scenarios.
Resource Types
Blueprints can provision various infrastructure resources:
Kubernetes Clusters
Talos, K3s, EKS, AKS
Virtual Machines
Cloud VMs with cloud-init
Helm Releases
Deploy Helm charts
Kubernetes Manifests
Raw YAML with templating
DNS Entries
A, CNAME, TXT records
Secrets
Generated or external
Community Blueprints
Browse and use community-contributed blueprints:
# List available community blueprints
teactl blueprint list --community
# Use a community blueprint directly
teactl env create --blueprint community/gitlab-cicd --name my-env Popular community blueprints:
gitlab-cicd- GitLab with runners and CI/CD pipelineskubernetes-workshop- Multi-node K8s with monitoringargocd-gitops- ArgoCD with example applicationsfull-devops- Complete DevOps stack (GitLab + K8s + ArgoCD)
Note
Want to contribute a blueprint? Email [email protected] to share your blueprints with the community.