Blueprint Components
Components are the building blocks of Teabar environments. Each component type provisions specific infrastructure.
Available Components
Kubernetes
Managed Kubernetes clusters with configurable node pools.
🦊
GitLab
GitLab CE/EE with CI/CD runners and container registry.
🗄️
Databases
PostgreSQL, MySQL, Redis, and MongoDB instances.
Monitoring
Prometheus, Grafana, and alerting stack.
Kubernetes
Deploy managed Kubernetes clusters:
components:
- name: cluster
type: kubernetes
version: '1.28' # Kubernetes version
nodes:
control: 1 # Control plane nodes
worker: 3 # Worker nodes
nodeSize: cx21 # Hetzner server type
features:
- ingress-nginx # NGINX ingress controller
- cert-manager # TLS certificate management
- metrics-server # Resource metrics Kubernetes Options
| Option | Type | Default | Description |
|---|---|---|---|
version | string | "1.28" | Kubernetes version |
nodes.control | integer | 1 | Control plane node count |
nodes.worker | integer | 2 | Worker node count |
nodeSize | string | cx21 | Server type for nodes |
features | array | [] | Add-ons to install |
Available Features
ingress-nginx- NGINX Ingress Controllercert-manager- Automatic TLS certificatesmetrics-server- Resource metrics APIdashboard- Kubernetes Dashboardprometheus- Prometheus monitoringargocd- ArgoCD GitOps
GitLab
Deploy GitLab with CI/CD:
components:
- name: gitlab
type: gitlab
version: '16.8'
edition: ce # ce or ee
resources:
cpu: 4
memory: 8Gi
storage: 50Gi
features:
- container-registry
- pages
runners:
count: 2
size: cx21 GitLab Options
| Option | Type | Default | Description |
|---|---|---|---|
version | string | "16.8" | GitLab version |
edition | string | ce | Community (ce) or Enterprise (ee) |
resources | object | - | CPU, memory, storage |
features | array | [] | GitLab features to enable |
runners.count | integer | 1 | Number of CI runners |
GitLab Runner
Standalone GitLab runners (for existing GitLab):
components:
- name: runners
type: gitlab-runner
count: 3
gitlab:
url: https://gitlab.example.com
token: ${{ secrets.RUNNER_TOKEN }}
executor: docker
resources:
cpu: 2
memory: 4Gi PostgreSQL
Managed PostgreSQL database:
components:
- name: db
type: postgresql
version: '15'
resources:
cpu: 2
memory: 4Gi
storage: 20Gi
databases:
- name: app
user: app_user
- name: analytics
user: analytics_user Redis
In-memory data store:
components:
- name: cache
type: redis
version: '7'
mode: standalone # standalone or cluster
resources:
memory: 1Gi
persistence: true Prometheus Stack
Complete monitoring stack:
components:
- name: monitoring
type: prometheus-stack
features:
- grafana # Grafana dashboards
- alertmanager # Alert routing
- node-exporter # Node metrics
grafana:
dashboards:
- kubernetes
- gitlab Custom Components
Deploy custom Docker images:
components:
- name: custom-app
type: container
image: myregistry/myapp:latest
replicas: 2
ports:
- 8080
env:
DATABASE_URL: ${{ components.db.connection_string }}
resources:
cpu: 1
memory: 512Mi Component Dependencies
Components can reference each other:
components:
- name: db
type: postgresql
databases:
- name: gitlab_production
- name: gitlab
type: gitlab
database:
host: ${{ components.db.host }}
port: ${{ components.db.port }}
name: gitlab_production
user: ${{ components.db.users.gitlab_production.username }}
password: ${{ components.db.users.gitlab_production.password }} Resource Sizing
All components support resource limits:
resources:
cpu: 2 # CPU cores
memory: 4Gi # Memory (Ki, Mi, Gi)
storage: 50Gi # Disk storage Sizing Guidelines
| Workload | CPU | Memory | Storage |
|---|---|---|---|
| Small (up to 10 users) | 2 | 4Gi | 20Gi |
| Medium (10-50 users) | 4 | 8Gi | 50Gi |
| Large (50+ users) | 8 | 16Gi | 100Gi |
Tip
Start small and scale up. Teabar makes it easy to resize components without recreating environments.