Sandbox Resources
Sandbox resources define the technical infrastructure and environment that powers your lab. These resources provide the compute, networking, storage, and services that participants interact with during hands-on activities.
Compute Resources
Section titled “Compute Resources”Docker containers for running applications, services, and development environments.
Additional containers that run alongside main containers for specialized functions.
Networking
Section titled “Networking”Isolated Docker networks for container communication and network segmentation.
HTTP/HTTPS ingress controllers for routing external traffic to services.
User Interface Tabs
Section titled “User Interface Tabs”Interactive shell sessions that connect to containers or VMs.
Web service tabs that proxy HTTP traffic to running applications.
Code editor interfaces for file manipulation and development.
Tabs that display external websites and web applications.
Storage & Files
Section titled “Storage & Files”File copying and directory synchronization between host and containers.
Template processing for generating configuration files and scripts.
Cloud Integrations
Section titled “Cloud Integrations”AWS Resources
Section titled “AWS Resources”Azure Resources
Section titled “Azure Resources”- Subscription - Azure subscription setup
- Service Principal - Azure service principal management
- User - Azure user account management
Google Cloud Resources
Section titled “Google Cloud Resources”- Project - Google Cloud project configuration
- Service Account - GCP service account management
- User - Google Cloud user management
Container Orchestration
Section titled “Container Orchestration”Kubernetes
Section titled “Kubernetes”- Helm - Helm chart deployment
- Repository - Helm repository management
Utilities
Section titled “Utilities”Core Utilities
Section titled “Core Utilities”- Exec - Execute commands on remote systems
- HTTP - HTTP requests and API interactions
- Terraform - Infrastructure as code with Terraform
Random Values
Section titled “Random Values”- Creature - Random creature names
- ID - Random identifier generation
- Number - Random number generation
- Password - Random password generation
- UUID - UUID generation
Caching
Section titled “Caching”- Image Cache - Container image caching
- Registry - Container registry management
- Registry Auth - Registry authentication
Certificates
Section titled “Certificates”- Certificate CA - Certificate authority management
- Certificate Leaf - End-entity certificate management
- File - Certificate file handling
Infrastructure Planning
Section titled “Infrastructure Planning”- Compute: Start with containers for your application stack
- Networking: Create isolated networks for different tiers
- Storage: Plan file sharing and persistent storage needs
- UI Access: Design terminal and service access patterns
- Integration: Add cloud services and orchestration as needed
- Security: Configure certificates and access controls
Best Practices
Section titled “Best Practices”- Resource Isolation: Use separate networks for different application tiers
- Minimal Containers: Choose lightweight base images for faster startup
- Health Checks: Configure health checks for reliable service availability
- Resource Limits: Set appropriate CPU and memory limits
- Security: Run containers as non-root users when possible
- Naming: Use consistent, descriptive resource names
Common Patterns
Section titled “Common Patterns”Web Application Stack
Section titled “Web Application Stack”# Frontend containerresource "container" "frontend" { image { name = "nginx:alpine" } network { id = resource.network.web } port { local = 80, host = 8080 }}
# Backend API containerresource "container" "api" { image { name = "node:16-alpine" } network { id = resource.network.web } network { id = resource.network.db } port { local = 3000 }}
# Database containerresource "container" "database" { image { name = "postgres:14" } network { id = resource.network.db } volume { source = "postgres-data" destination = "/var/lib/postgresql/data" type = "volume" }}
Development Environment
Section titled “Development Environment”# Main development containerresource "container" "devbox" { image { name = "instruqt/devbox:latest" } privileged = true
volume { source = "./workspace" destination = "/workspace" type = "bind" }
volume { source = "/var/run/docker.sock" destination = "/var/run/docker.sock" type = "bind" }}