-
Notifications
You must be signed in to change notification settings - Fork 0
Overview
eberrigan edited this page Jun 11, 2025
·
1 revision
The LabLink Platform enables dynamic VM allocation and management through a centralized Flask-based allocator server deployed on AWS EC2. It is designed for simplicity, extensibility, and automation using Terraform and GitHub Actions.
-
Allocator Server
- Flask web server hosted on EC2
- Serves a user form to request VM instances
- Deployed via Terraform + GitHub Actions
-
Client VMs
- Spawned dynamically by the allocator
- Run containers preconfigured for specific tasks
- Use Docker with GPU/NVIDIA setup as needed
-
Infrastructure as Code
- EC2, Security Groups, Elastic IPs, and SSH Keys are all provisioned via Terraform
- Supports environments:
dev
,test
, andprod
- Terraform provisions the allocator server and its networking (SG, EIP, Key Pair)
-
GitHub Actions:
- Triggers on
main
,test
, orworkflow_dispatch
- Determines environment and initializes Terraform accordingly
- Automatically saves the generated
.pem
key for SSH
- Triggers on
- Each environment has its own key:
lablink-key-${resource_suffix}
- Key pairs are created via Terraform and stored as outputs for GitHub to save
- Ensure
.pem
file is saved securely and used with correct file permissions (chmod 600)