Configuration management at Giant Swarm: a historical overview
Giant Swarm traces the evolution of their internal configuration management system across three eras. Starting in 2020 with static, manually deployed configs, they built a 'vintage' release system using Go templates and a config-controller to generate ConfigMaps and Secrets from a structured Git repository. Alongside it ran a 'unique apps' system using draughtsman and architect, which suffered from hardcoded management cluster lists and manual update steps. Moving to GitOps with ArgoCD then Flux, they introduced konfigure as a KRM function plugin — solving the draughtsman problem but introducing opacity, swallowed errors, and a 'poison pill' issue where one bad config stalled all reconciliation. The current system rewrites konfigure internals around a schema-driven, general-purpose rendering engine exposed as a library, backed by konfigure-operator, which isolates errors per configuration and decouples config generation from App CRs entirely.