This runbook outlines how to deploy, manage, and tear down the DRAForge showcase platform on a 2-node DigitalOcean Kubernetes (DOKS) cluster.
Before launching the showcase:
doctl, terraform, and helm command-line tools are installed on the host..env file at the root of the repository containing:
DIGITAL_OCEAN_API_TOKEN="your-digitalocean-api-token"
To completely build and deploy the showcase platform, run:
task demo:up
task demo:up performs:scripts/audit-cloud-resources.sh to ensure no active worker nodes or standalone Droplets exceed budget limits. Runs scripts/validate-plan.py to confirm the Terraform plan complies with the maximum 2-worker node policy.terraform apply to spin up the Dedicated VPC, DOKS cluster, and private DigitalOcean Container Registry (DOCR).server, controller, and sim-driver container images directly on the DOKS cluster.examples/scenarios/basic-gpu.yaml).Once the dashboard is online:
kubectl apply -f examples/scenarios/insufficient-capacity.yaml or a claim template). The dashboard will dynamically stream the allocation event.draforge inject fault --pool basic-gpu-pool --type unhealthy
Watch the graph update in real-time. The affected devices will show warning states, and the doctor check will highlight the failure.
To avoid unnecessary DigitalOcean billings, clean up all provisioned resources:
task demo:down
This will uninstall the Helm release, delete all scenario custom resources, and execute terraform destroy to tear down the DOKS cluster, VPC, and registry.
For continuous integration and release readiness, a manual-only remote E2E test workflow is provided under .github/workflows/e2e.yml. This workflow runs remote tests on a live DigitalOcean Kubernetes (DOKS) cluster.
e2e-doks GitHub Environment.workflow_dispatch, you must enter run-e2e-doks in the confirm input field.The workflow requires a GitHub repository secret named DIGITALOCEAN_TOKEN.
Before running the remote E2E workflow:
draforge-cluster) exists and is active on DigitalOcean.DIGITALOCEAN_TOKEN secret is configured in the repository settings under Secrets and variables -> Actions.run-e2e-doks as confirmation and specify the correct cluster name.cleanup job that runs always() (even if the main test job fails or is cancelled).draforge) and any applied scenario files (e.g. examples/scenarios/basic-gpu.yaml) from the cluster to prevent dangling resources.DIGITALOCEAN_TOKEN secret is not configured
DIGITALOCEAN_TOKEN is defined.cluster ... not found
cluster_name input.Unauthorized / Forbidden API calls
DIGITALOCEAN_TOKEN does not have write scope or has expired.