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-1
Note: 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. 1

    Create the lab directory with lab.yml and config.yml.

  2. 2

    Add numbered task directories, each with assignment.md and script files.

  3. 3

    Validate with tekanaid validate and fix any errors.

  4. 4

    Set TEKANAID_ENV=production and TEKANAID_TARGET=povdemo, then run tekanaid push to deploy.

  5. 5

    Log in to POV Demo and publish the lab to make it available to learners.