Как создать пространство имен kubernetes идемпотентным способом с помощью AWS CDK

#amazon-cloudformation #amazon-eks #aws-cdk

Вопрос:

Как я могу создать манифест пространства имен k8s идемпотентным способом или игнорировать ошибку, если пространство имен уже существует с AWS CDK.

Если я создаю пространство имен K8s с манифестом, я регулярно получаю ошибки о том, что пространство имен уже существует:

from custom resource. Message returned: Error: b'Error from server (AlreadyExists): error when creating "/tmp/manifest.yaml": namespaces "dev-advanced" already existsn

Создать манифест:

     def create_namespace(self) -> KubernetesManifest:
        m = self.cluster.add_manifest(
            f"ns_{self.tenant.name}",
            {
                "apiVersion": "v1",
                "kind": "Namespace",
                "metadata": {
                    "name": f"{self.tenant.name}",
                    "labels": {
                        "name": f"{self.tenant.name}"
                    }
                }
            }
        )
        return m
 

Комментарии:

1. Хм, вы, вероятно, можете сделать add!anifest условным, но я не уверен, что это хорошая идея, если ваш запуск больше не добавляет манифест, он будет удален из CF… вероятно, лучше поддерживать такие глобальные объекты в стеке, который вы запускаете только один раз?