How we implemented ConfigMap revisions in Kubernetes using Pulumi and Argo Rollouts
Blog post from Pulumi
Deploying applications in Kubernetes using canary strategies with Argo Rollouts presents challenges due to the lack of native ConfigMap revision support, which can cause older pods to fail when ConfigMaps are deleted during updates. This issue is exacerbated on platforms like AWS Spot instances, where pods may be replaced unexpectedly. A solution was developed using Pulumi's ConfigMapPatch and Kubernetes owner references to implement a custom ConfigMap revision system. By leveraging Kubernetes' garbage collection and ReplicaSet owner references, this system ties ConfigMaps to ReplicaSets, enabling automatic cleanup and providing revision-like behavior. This approach ensures that older ConfigMaps remain accessible during canary deployments, enhancing resilience and minimizing the need for manual intervention. The solution is particularly beneficial for managing ConfigMap lifecycles in environments that require reliable configuration availability during deployment transitions.