-
Notifications
You must be signed in to change notification settings - Fork 121
Description
I was helping a user get started with an EKS project and they encountered an error on destroy that was confusing to them: namespaces "kube-system" is forbidden: this namespace may not be deleted.
What had happened was that in their program, they we creating a Namespace resource to manage the built in kube-system namespace like this:
# This is the namespace where the AWS Load Balancer Controller will be installed.
namespace = kubernetes.core.v1.Namespace('aws-loadbalancer',
metadata={
'name': 'kube-system' # typically installed in the kube-system namespace
},
opts=pulumi.ResourceOptions(provider=eks_provider))This succeeded on create, probably as an SSA-mode “upsert” on create since the namespace already exists. However, since this is a built-in namespace, the destroy fails.
We should probably have failed fast on the initial pulumi up, warning the user that the namespace already exists and suggesting that they need to either import the resource if they want to manage it or just use a NamespacePatch if they just want to modify some properties of it.