Support initializers for custom infrastructures (advanced) #469
Labels
chall-manager
Related to chall-manager
enhancement
New feature or request
go
Pull requests that update Go code
sdk
Related to chall-manager SDK
When working on the 24h IUT 2025, we stumbled upon a bootstrap problem: if I want infra-requirements for a challenge (e.g. a PVE bridge for a networking/MitM challenge, a Kubernetes Service Account with specific privileges for an RBAC challenge, a firewall rule or even an AWS account...), I would have to prepare the setup (might be a doc, a bash script or even a Pulumi stack) then deploy it on the production infrastructure, hardcode the outputs to the scenarios (e.g. API keys, IP addresses), then create the challenge with it and deploy instances.
It would work, but removes the "reproducibility" we would like to defend with Chall-Manager: it requires unstructured work out of CM's scope, which does not enable CTF enthusiasts to completely replay an event by simply copying the configuration.
With this issue, I document our idea of introducing an advanced mechanism of
initializer
(optional) i.e. another Pulumi code that prepare the environment for the challenges, and pass its outputs to the currentscenario
when a challenge instance is deployed, through the SDK's config (inputs).The text was updated successfully, but these errors were encountered: