Creating Labs
Lab Overview
Introduction to creating hands-on labs on POV Demo.
What is a Lab?
Labs provide real multi-VM environments where learners practice skills hands-on. Key characteristics:
- Target completion time: 30–45 minutes
- Multi-VM environments (1–4 VMs depending on the scenario)
- Automated task validation via check scripts
- Step-by-step tasks with assignment instructions, hints, and solve scripts
- Runs on cloud infrastructure (AWS, GCP, Azure) with a managed Proxmox hypervisor
lab.yml
Metadata, learning objectives, difficulty, and publishing settings.
config.yml
Infrastructure specification: VM images, machine types, and cloud accounts.
Tasks
Numbered directories with assignment instructions and automated validation scripts.
Directory Structure
kubernetes-pods-lab/
├── lab.yml # Lab metadata and publishing settings
├── config.yml # Infrastructure specification
├── lab_scripts/ # Optional: global setup/cleanup scripts
│ ├── setup-ubuntu-1 # Runs once at lab provision
│ └── cleanup-ubuntu-1 # Runs once at lab teardown
├── 01-exploring-pods/
│ ├── assignment.md # Task instructions (YAML frontmatter + Markdown)
│ ├── setup-ubuntu-1 # Runs before learner starts task
│ ├── check-ubuntu-1 # Validates learner's work
│ └── solve-ubuntu-1 # Provides the solution
├── 02-creating-deployments/
│ ├── assignment.md
│ ├── setup-ubuntu-1
│ ├── check-ubuntu-1
│ └── solve-ubuntu-1
└── 03-exposing-services/
├── assignment.md
├── setup-ubuntu-1
├── check-ubuntu-1
└── solve-ubuntu-1Note: Task directories must be numbered with a two-digit prefix (01-, 02-, 03-) to control ordering. The platform processes tasks in alphabetical order, so consistent numbering is required.
Quick Start
- 1
Create the lab directory with lab.yml and config.yml.
- 2
Add numbered task directories, each with assignment.md and script files.
- 3
Validate with tekanaid validate and fix any errors.
- 4
Set TEKANAID_ENV=production and TEKANAID_TARGET=povdemo, then run tekanaid push to deploy.
- 5
Log in to POV Demo and publish the lab to make it available to learners.
