Workflows
This page explains how Educates works from a workflow perspective, covering the lifecycle of workshops and sessions.
Workshop Deployment Workflow
The following diagram illustrates how workshops are deployed and made available:
Step-by-Step Process
-
Workshop Definition: An administrator creates a
WorkshopCustom Resource that defines:- Workshop content location (Git repo or container image)
- Resource requirements
- Required capabilities
- RBAC permissions
-
Training Portal Creation: An administrator creates a
TrainingPortalresource that:- References one or more workshops
- Configures authentication
- Sets up the web interface
-
Workshop Environment Setup: The operator creates a
WorkshopEnvironmentfor each workshop:- Sets up a namespace for the workshop
- Deploys shared resources (common to all sessions)
- Configures the environment according to workshop requirements
-
Portal Registration: The workshop becomes available in the Training Portal catalog
User Session Workflow
When a user accesses a workshop, the following workflow is triggered:
Session Creation Process
- Session Request: User selects a workshop from the Training Portal
- Session Allocation: Portal checks for available pre-created sessions or creates a new one
- Namespace Creation: Session Manager creates a dedicated namespace for the session
- Resource Setup:
- RBAC policies are applied
- Resource quotas are set
- Required secrets are injected
- Capability Deployment: Required capabilities are started:
- Web terminal
- VS Code editor
- Kubernetes console
- File server, Git server, etc.
- Per-Session Resources: Workshop-specific resources are deployed to the session namespace
- Session Access: User is redirected to the workshop session dashboard
Workshop Content Workflow
The workflow for creating and publishing workshop content:
Content Development Process
- Content Creation: Workshop authors write content in Markdown or AsciiDoc
- Local Testing: Content is tested using the local Educates environment
- Image Building: Content is packaged into an OCI container image
- Image Publishing: Image is pushed to a container registry
- Workshop Deployment: Workshop CR is created referencing the image
- Content Updates: For content-only changes, sessions can be updated without recreating
Session Lifecycle
The lifecycle of a workshop session:
Session States
- Requested: User has requested access to a workshop
- Allocating: Portal is finding or creating a session
- Creating: Session resources are being created
- Starting: Capabilities are being started
- Ready: Session is ready but not yet accessed
- Active: User is actively using the session
- Idle: Session is active but user is inactive
- Expired: Session has reached its time limit
- Terminating: Session is being cleaned up
Resource Management Workflow
How resources are managed across the platform:
Resource Hierarchy
- Workshop Environment Resources: Deployed once per workshop, shared by all sessions
- Session Resources: Deployed per session, isolated to each user
- Resource Quotas: Applied at the session level to limit resource usage
- RBAC Policies: Applied at the session level to control access
Authentication and Authorization Workflow
How users are authenticated and authorized:
Content Update Workflow
How workshop content updates are handled:
Update Scenarios
-
Content-Only Updates: When only Markdown content changes:
- Content can be updated in running sessions
- No need to recreate workshop environments
- Faster iteration during development
-
Configuration Changes: When workshop configuration changes:
- New container image must be built
- Workshop CR must be updated
- Workshop environments may need to be recreated
- Existing sessions continue until they expire
Local Development Workflow
The workflow for developing workshops locally:
Local Development Benefits
- Fast Iteration: Content updates can be tested immediately
- Isolated Environment: No impact on production
- Full Feature Set: Local environment includes all capabilities
- Easy Debugging: Direct access to cluster and resources