Blueprint Catalog

The Teabar catalog is a registry of blueprints that you can browse, use, and publish. It includes official Teabar blueprints, community contributions, and your organization’s private blueprints.

Catalog Structure

┌─────────────────────────────────────────────────────────────────────────┐
│                          Blueprint Catalog                               │
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │                    Official (teabar/*)                           │   │
│  │  Maintained by Teabar team, tested, production-ready            │   │
│  │  • teabar/kubernetes-basic                                      │   │
│  │  • teabar/gitlab-cicd                                           │   │
│  │  • teabar/monitoring-stack                                      │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │                    Community (org-name/*)                        │   │
│  │  Published by Pro organizations, automated validation           │   │
│  │  • acme/custom-workshop                                         │   │
│  │  • techcorp/dev-environment                                     │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │                    Private (your-org/*)                          │   │
│  │  Your organization's blueprints, visible only to members        │   │
│  │  • your-org/internal-training                                   │   │
│  │  • your-org/company-standards                                   │   │
│  └─────────────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────────────┘

Browsing the Catalog

CLI Search

# Search by keyword
teactl catalog search kubernetes

# Search with filters
teactl catalog search gitlab --tag cicd --tag education

# Search official blueprints only
teactl catalog search --source official

# Search community blueprints
teactl catalog search --source community

List Blueprints

# List all available blueprints
teactl catalog list

# List with details
teactl catalog list --output wide

# Filter by tag
teactl catalog list --tag kubernetes

# List specific namespace
teactl catalog list --namespace teabar

View Blueprint Details

# Get detailed information
teactl catalog info teabar/kubernetes-basic

# Output:
# Blueprint: teabar/kubernetes-basic
# Version: 1.5.2 (latest)
# 
# Description:
#   Basic Kubernetes cluster for learning and development.
#   Includes a single control plane and configurable workers.
#
# Tags: kubernetes, training, beginner
# Author: Teabar Team
# Downloads: 12,453
# Rating: 4.8/5 (234 reviews)
#
# Variables:
#   worker_count    integer  Number of worker nodes (default: 2)
#   k8s_version     string   Kubernetes version (default: "1.28")
#   enable_metrics  boolean  Enable metrics server (default: true)
#
# Resources:
#   • 1 Kubernetes cluster (Talos)
#   • Metrics server (optional)
#   • Nginx ingress controller
#
# Available Versions:
#   1.5.2 (latest)  2024-01-15
#   1.5.1           2024-01-10
#   1.5.0           2024-01-05
#   1.4.x           (3 versions)

TUI Browser

Launch the interactive catalog browser:

# Open TUI catalog browser
teactl catalog browse

# Start with search query
teactl catalog browse --query gitlab

The TUI provides:

  • Searchable list with tag filters
  • Preview pane with description and variables
  • Version selector
  • One-key actions (use, install, view YAML)

Using Catalog Blueprints

Create Environment Directly

# Create environment from catalog blueprint
teactl env create --blueprint teabar/kubernetes-basic --name my-cluster

# With variables
teactl env create --blueprint teabar/gitlab-cicd 
  --name workshop 
  --var participant_count=20 
  --var gitlab_version="16.8"

Install to Project

Copy a catalog blueprint to your project for customization:

# Install blueprint to your project
teactl catalog install teabar/kubernetes-basic

# Install specific version
teactl catalog install teabar/kubernetes-basic --version 1.5.0

# Install with different name
teactl catalog install teabar/kubernetes-basic --as my-k8s-base

After installation, the blueprint appears in your project and can be customized:

# List project blueprints
teactl blueprint list

# Edit the installed blueprint
teactl blueprint edit my-k8s-base

Extend Catalog Blueprints

Use catalog blueprints as a base:

apiVersion: teabar.dev/v1
kind: Blueprint
metadata:
  name: my-workshop
  version: 1.0.0

spec:
  extends:
    - name: teabar/kubernetes-basic
      version: "1.x"
  
  # Add your customizations
  resources:
    helm:
      - name: my-app
        chart: my-repo/my-app

Official Blueprints

Maintained by the Teabar team with guaranteed quality:

Kubernetes

BlueprintDescription
teabar/kubernetes-basicSingle cluster, basic training
teabar/kubernetes-haHA cluster with 3 control planes
teabar/kubernetes-multiMultiple clusters for federation
teabar/kind-localKind cluster for local development

CI/CD

BlueprintDescription
teabar/gitlab-cicdGitLab CE with runners and registry
teabar/github-actionsSelf-hosted GitHub runners
teabar/jenkinsJenkins with agent pods
teabar/argocdArgoCD for GitOps workflows

Monitoring & Observability

BlueprintDescription
teabar/monitoring-stackPrometheus + Grafana + Alertmanager
teabar/logging-stackLoki + Promtail + Grafana
teabar/tracing-stackJaeger for distributed tracing

Security

BlueprintDescription
teabar/security-trainingFalco, Trivy, OPA Gatekeeper
teabar/vaultHashiCorp Vault deployment

Development

BlueprintDescription
teabar/dev-environmentFull development environment
teabar/database-playgroundPostgreSQL, MySQL, MongoDB, Redis

Publishing Blueprints

Private Blueprints (Organization)

Push blueprints to your organization:

# Push blueprint to organization
teactl blueprint push -f my-blueprint.yaml

# Push with specific version
teactl blueprint push -f my-blueprint.yaml --version 1.0.0

# Push to specific organization (if member of multiple)
teactl blueprint push -f my-blueprint.yaml --org acme

Private blueprints are visible only to organization members.

Public Blueprints (Pro Feature)

Publish to the public catalog:

# Publish as public blueprint
teactl blueprint publish -f my-blueprint.yaml 
  --public 
  --description "Complete CI/CD training environment"

# Blueprint will be available as: your-org/blueprint-name

Publishing Requirements

Public blueprints must meet these criteria:

RequirementDescription
Syntax validNo YAML errors, valid schema
Variables documentedAll variables have descriptions
No hardcoded secretsNo API keys, passwords, tokens
Resources validAll referenced resources exist
TestedSuccessfully creates an environment
# Validate before publishing
teactl blueprint validate -f my-blueprint.yaml --strict

# Run publication checks
teactl blueprint check -f my-blueprint.yaml --for-publication

Managing Published Blueprints

Update Published Blueprint

# Push new version
teactl blueprint push -f my-blueprint.yaml --version 1.1.0

# Mark version as latest
teactl blueprint tag acme/my-blueprint:1.1.0 --latest

Deprecate Blueprint

# Deprecate a version (still usable, shows warning)
teactl blueprint deprecate acme/my-blueprint:1.0.0 
  --message "Use 2.x instead"

# Deprecate entire blueprint
teactl blueprint deprecate acme/my-blueprint 
  --message "Replaced by acme/my-new-blueprint"

Delete Blueprint

# Delete specific version (if no environments use it)
teactl blueprint delete acme/my-blueprint:1.0.0

# Delete entire blueprint (requires confirmation)
teactl blueprint delete acme/my-blueprint --all-versions

Version Management

Semantic Versioning

Blueprints use semantic versioning (SemVer):

MAJOR.MINOR.PATCH

1.0.0 → 1.0.1 (patch: bug fixes)
1.0.0 → 1.1.0 (minor: new features, backward compatible)
1.0.0 → 2.0.0 (major: breaking changes)

Version Tags

# List all versions
teactl blueprint versions teabar/kubernetes-basic

# Tag a version
teactl blueprint tag acme/my-blueprint:1.5.0 --latest
teactl blueprint tag acme/my-blueprint:1.5.0 --stable
teactl blueprint tag acme/my-blueprint:2.0.0-beta.1 --beta

Using Version Constraints

When referencing blueprints:

extends:
  # Exact version (most stable)
  - name: teabar/base
    version: "1.5.2"
  
  # Any 1.x version (allows minor updates)
  - name: teabar/monitoring
    version: "1.x"
  
  # Any 1.5.x version (allows patches)
  - name: teabar/security
    version: "1.5.x"
  
  # Latest (not recommended for production)
  - name: teabar/dev-tools
    version: "latest"

Catalog API

Query the catalog programmatically:

Search

# JSON output for scripting
teactl catalog search kubernetes --output json

# Filter fields
teactl catalog search kubernetes --output json 
  --fields name,version,description

Get Blueprint YAML

# Download blueprint definition
teactl catalog get teabar/kubernetes-basic --output yaml > k8s-basic.yaml

# Get specific version
teactl catalog get teabar/kubernetes-basic:1.5.0 --output yaml

Check for Updates

# Check if newer versions exist
teactl catalog check-updates

# Output:
# Blueprint                    Current  Latest  Update Available
# teabar/kubernetes-basic      1.4.0    1.5.2   Yes (minor)
# teabar/gitlab-cicd           2.1.0    2.1.0   No
# acme/internal-training       1.0.0    1.2.0   Yes (minor)

Caching

The catalog is cached locally for performance:

# View cache status
teactl catalog cache status

# Clear cache
teactl catalog cache clear

# Update cache
teactl catalog cache update

Cache settings in config:

# ~/.teactl/config.yaml
catalog:
  cache_ttl: 1h        # How long to cache catalog
  auto_update: true    # Update cache automatically

Ratings and Reviews

View Ratings

teactl catalog info teabar/kubernetes-basic --reviews

# Output:
# Rating: 4.8/5 (234 reviews)
#
# Recent Reviews:
# ★★★★★ "Perfect for K8s training" - [email protected] (2024-01-10)
# ★★★★☆ "Good but needs better docs" - [email protected] (2024-01-08)

Submit Review

# Rate a blueprint you've used
teactl catalog review teabar/kubernetes-basic 
  --rating 5 
  --comment "Excellent for workshops!"

Best Practices

Choosing Blueprints

  1. Start with official - teabar/* blueprints are tested and maintained
  2. Check ratings - Higher-rated blueprints are more reliable
  3. Review variables - Ensure it’s configurable for your needs
  4. Check versions - Use actively maintained blueprints
  5. Test first - Create a test environment before production use

Publishing Blueprints

  1. Document thoroughly - Add descriptions to all variables
  2. Use semantic versioning - Follow SemVer for updates
  3. Test before publishing - Validate and create test environments
  4. Maintain actively - Update for new Kubernetes versions, etc.
  5. Respond to issues - Help users who have problems

Next Steps

ende