Epic: v2.1 Docker Agent Development
Component: Docker Agent - Template System
Assignee: Builder (Agent 2)
Milestone: v2.1
Estimated Effort: 8-12 hours
Overview
Enable Docker Agent to parse templates and create Docker containers from StreamSpace templates.
Requirements
Template Parsing
Template Structure
Reuse existing template format from K8s agent:
apiVersion: streamspace.io/v1alpha1
kind: Template
metadata:
name: firefox-browser
spec:
displayName: "Firefox Browser"
description: "Mozilla Firefox web browser"
image: linuxserver/firefox:latest
vnc:
enabled: true
port: 3000
resources:
memory: 512Mi
cpu: 250m
env:
- name: DISPLAY
value: ":1"
volumes:
- name: home
mountPath: /config
persistent: true
Docker Conversion
Template → Docker Container:
// Parse template
template := parseTemplate(templateYAML)
// Convert to Docker config
containerConfig := &container.Config{
Image: template.Spec.Image,
Env: convertEnvVars(template.Spec.Env),
ExposedPorts: convertPorts(template.Spec.VNC),
}
hostConfig := &container.HostConfig{
Resources: container.Resources{
Memory: convertMemory(template.Spec.Resources.Memory),
NanoCPUs: convertCPU(template.Spec.Resources.CPU),
},
Binds: convertVolumes(template.Spec.Volumes, sessionID),
}
Resource Mapping
| Template |
Docker |
resources.memory: 512Mi |
Resources.Memory: 536870912 (bytes) |
resources.cpu: 250m |
Resources.NanoCPUs: 250000000 |
volumes |
Docker volumes or bind mounts |
env |
Container environment variables |
Files to Create/Update
agents/docker-agent/
└── pkg/
└── docker/
├── template.go # Template parsing
├── converter.go # Template → Docker config
└── resources.go # Resource conversion
Testing Checklist
Template Examples to Support
- firefox-browser - GUI browser with VNC
- vscode - VS Code IDE with VNC
- ubuntu-desktop - Full Ubuntu desktop
- chrome - Chromium browser
Success Criteria
- ✅ All existing K8s templates work with Docker agent
- ✅ Resource limits enforced correctly
- ✅ VNC port configuration correct
- ✅ Persistent volumes work
- ✅ Template validation prevents invalid configs
Depends On: #151 (Docker Agent Core Implementation)
Related: K8s Agent template handling (reference implementation)
Epic: v2.1 Docker Agent Development
Component: Docker Agent - Template System
Assignee: Builder (Agent 2)
Milestone: v2.1
Estimated Effort: 8-12 hours
Overview
Enable Docker Agent to parse templates and create Docker containers from StreamSpace templates.
Requirements
Template Parsing
Template Structure
Reuse existing template format from K8s agent:
Docker Conversion
Template → Docker Container:
Resource Mapping
resources.memory: 512MiResources.Memory: 536870912(bytes)resources.cpu: 250mResources.NanoCPUs: 250000000volumesenvFiles to Create/Update
Testing Checklist
Template Examples to Support
Success Criteria
Depends On: #151 (Docker Agent Core Implementation)
Related: K8s Agent template handling (reference implementation)