From 0e7ba4ebd281667faea7e938d31bbd2ad859f4e2 Mon Sep 17 00:00:00 2001 From: Ahmed Hamed Date: Tue, 5 Aug 2025 00:36:43 +0200 Subject: [PATCH] fix(eks): remove usage of shell=True in helm commands --- .../lib/kubectl-handler/helm/__init__.py | 81 ++++-- .../apply/__init__.py | 0 .../get/__init__.py | 0 .../helm/__init__.py | 81 ++++-- .../index.py | 0 .../patch/__init__.py | 0 ...cdk-eks-cluster-alb-controller.assets.json | 14 +- ...k-eks-cluster-alb-controller.template.json | 2 +- .../manifest.json | 11 +- .../tree.json | 2 +- .../EksClusterWithAddonStack.assets.json | 14 +- .../EksClusterWithAddonStack.template.json | 2 +- .../apply/__init__.py | 0 .../get/__init__.py | 0 .../helm/__init__.py | 81 ++++-- .../index.py | 0 .../patch/__init__.py | 0 .../integ.eks-addon.js.snapshot/manifest.json | 9 +- .../integ.eks-addon.js.snapshot/tree.json | 2 +- .../apply/__init__.py | 0 .../get/__init__.py | 0 .../helm/__init__.py | 81 ++++-- .../index.py | 0 .../patch/__init__.py | 0 ...-cluster-al2023-nodegroup-test.assets.json | 14 +- ...luster-al2023-nodegroup-test.template.json | 2 +- .../manifest.json | 9 +- .../tree.json | 2 +- .../apply/__init__.py | 0 .../get/__init__.py | 0 .../helm/__init__.py | 81 ++++-- .../index.py | 0 .../patch/__init__.py | 0 ...efaultTestDeployAssertB6AAB3A3.assets.json | 2 +- ...uto-mode-empty-nodepools-stack.assets.json | 22 +- ...o-mode-empty-nodepools-stack.template.json | 2 +- .../eks-auto-mode-stack.assets.json | 22 +- .../eks-auto-mode-stack.template.json | 2 +- .../integ.eks-auto.js.snapshot/integ.json | 2 +- .../integ.eks-auto.js.snapshot/manifest.json | 17 +- .../test/integ.eks-auto.js.snapshot/tree.json | 2 +- .../helm/__init__.py | 207 --------------- .../apply/__init__.py | 0 .../get/__init__.py | 0 .../helm/__init__.py | 250 ++++++++++++++++++ .../index.py | 0 .../patch/__init__.py | 0 ...ws-cdk-eks-import-cluster-test.assets.json | 14 +- ...-cdk-eks-import-cluster-test.template.json | 2 +- .../manifest.json | 9 +- .../tree.json | 2 +- .../helm/__init__.py | 207 --------------- .../apply/__init__.py | 0 .../get/__init__.py | 0 .../helm/__init__.py | 250 ++++++++++++++++++ .../index.py | 0 .../patch/__init__.py | 0 ...-cluster-private-endpoint-test.assets.json | 14 +- ...luster-private-endpoint-test.template.json | 2 +- .../manifest.json | 9 +- .../tree.json | 2 +- .../helm/__init__.py | 207 --------------- .../apply/__init__.py | 0 .../get/__init__.py | 0 .../helm/__init__.py | 250 ++++++++++++++++++ .../index.py | 0 .../patch/__init__.py | 0 .../aws-cdk-eks-cluster.assets.json | 26 +- .../aws-cdk-eks-cluster.template.json | 2 +- ...efaultTestDeployAssertB6AAB3A3.assets.json | 2 +- .../integ.eks-cluster.js.snapshot/integ.json | 2 +- .../manifest.json | 13 +- .../integ.eks-cluster.js.snapshot/tree.json | 2 +- .../helm/__init__.py | 207 --------------- .../apply/__init__.py | 0 .../get/__init__.py | 0 .../helm/__init__.py | 250 ++++++++++++++++++ .../index.py | 0 .../patch/__init__.py | 0 .../aws-cdk-eks-helm-test.assets.json | 14 +- .../aws-cdk-eks-helm-test.template.json | 2 +- .../manifest.json | 9 +- .../tree.json | 2 +- .../helm/__init__.py | 207 --------------- .../apply/__init__.py | 0 .../get/__init__.py | 0 .../helm/__init__.py | 250 ++++++++++++++++++ .../index.py | 0 .../patch/__init__.py | 0 ...ks-cluster-inference-nodegroup.assets.json | 14 +- ...-cluster-inference-nodegroup.template.json | 2 +- .../manifest.json | 9 +- .../tree.json | 2 +- .../manifest.json | 5 +- .../EKSStandardAccessEntry.assets.json | 14 +- .../EKSStandardAccessEntry.template.json | 2 +- .../helm/__init__.py | 207 --------------- .../apply/__init__.py | 0 .../get/__init__.py | 0 .../helm/__init__.py | 250 ++++++++++++++++++ .../index.py | 0 .../patch/__init__.py | 0 .../manifest.json | 9 +- .../tree.json | 2 +- .../helm/__init__.py | 207 --------------- .../apply/__init__.py | 0 .../get/__init__.py | 0 .../helm/__init__.py | 250 ++++++++++++++++++ .../index.py | 0 .../patch/__init__.py | 0 .../aws-cdk-eks-cluster-stack.assets.json | 14 +- .../aws-cdk-eks-cluster-stack.template.json | 2 +- .../manifest.json | 9 +- .../tree.json | 2 +- .../helm/__init__.py | 207 --------------- .../apply/__init__.py | 0 .../get/__init__.py | 0 .../helm/__init__.py | 250 ++++++++++++++++++ .../index.py | 0 .../patch/__init__.py | 0 ...dk-eks-cluster-windows-ng-test.assets.json | 14 +- ...-eks-cluster-windows-ng-test.template.json | 2 +- .../manifest.json | 9 +- .../tree.json | 2 +- .../helm/__init__.py | 207 --------------- .../apply/__init__.py | 0 .../get/__init__.py | 0 .../helm/__init__.py | 250 ++++++++++++++++++ .../index.py | 0 .../patch/__init__.py | 0 ...eks-fargate-cluster-test-stack.assets.json | 14 +- ...s-fargate-cluster-test-stack.template.json | 2 +- .../manifest.json | 9 +- .../tree.json | 2 +- .../helm/__init__.py | 207 --------------- .../apply/__init__.py | 0 .../get/__init__.py | 0 .../helm/__init__.py | 250 ++++++++++++++++++ .../index.py | 0 .../patch/__init__.py | 0 ...eks-v2-alpha-helm-logging-test.assets.json | 14 +- ...s-v2-alpha-helm-logging-test.template.json | 2 +- .../manifest.json | 9 +- .../tree.json | 2 +- 144 files changed, 3046 insertions(+), 2378 deletions(-) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/apply/__init__.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/get/__init__.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/helm/__init__.py (66%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/index.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/patch/__init__.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/apply/__init__.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/get/__init__.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/helm/__init__.py (66%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/index.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/patch/__init__.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/apply/__init__.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/get/__init__.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/helm/__init__.py (66%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/index.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/patch/__init__.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/apply/__init__.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/get/__init__.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/helm/__init__.py (66%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/index.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/patch/__init__.py (100%) delete mode 100644 packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/apply/__init__.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/get/__init__.py (100%) create mode 100644 packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/index.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/patch/__init__.py (100%) delete mode 100644 packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/apply/__init__.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/get/__init__.py (100%) create mode 100644 packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/index.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/patch/__init__.py (100%) delete mode 100644 packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/apply/__init__.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/get/__init__.py (100%) create mode 100644 packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/index.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/patch/__init__.py (100%) delete mode 100644 packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/apply/__init__.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/get/__init__.py (100%) create mode 100644 packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/index.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/patch/__init__.py (100%) delete mode 100644 packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/apply/__init__.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/get/__init__.py (100%) create mode 100644 packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/index.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/patch/__init__.py (100%) delete mode 100644 packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/apply/__init__.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/get/__init__.py (100%) create mode 100644 packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/index.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/patch/__init__.py (100%) delete mode 100644 packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/apply/__init__.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/get/__init__.py (100%) create mode 100644 packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/index.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/patch/__init__.py (100%) delete mode 100644 packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/apply/__init__.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/get/__init__.py (100%) create mode 100644 packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/index.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/patch/__init__.py (100%) delete mode 100644 packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/apply/__init__.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/get/__init__.py (100%) create mode 100644 packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/index.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/patch/__init__.py (100%) delete mode 100644 packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/apply/__init__.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/get/__init__.py (100%) create mode 100644 packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/index.py (100%) rename packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/{asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069 => asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a}/patch/__init__.py (100%) diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/lib/kubectl-handler/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/lib/kubectl-handler/helm/__init__.py index 00d794acd0c73..6c7838f182a45 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/lib/kubectl-handler/helm/__init__.py +++ b/packages/@aws-cdk/aws-eks-v2-alpha/lib/kubectl-handler/helm/__init__.py @@ -105,47 +105,91 @@ def get_oci_cmd(repository, version): private_registry = re.match(private_ecr_pattern, repository).groupdict() public_registry = re.match(public_ecr_pattern, repository).groupdict() + # Build helm pull command as array + helm_cmd = ['helm', 'pull', repository, '--version', version , '--untar'] + if private_registry['registry'] is not None: logger.info("Found AWS private repository") - cmnd = [ - f"aws ecr get-login-password --region {private_registry['region']} | " \ - f"helm registry login --username AWS --password-stdin {private_registry['registry']}; helm pull {repository} --version {version} --untar" - ] + ecr_login = ['aws', 'ecr', 'get-login-password', '--region', private_registry['region']] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', private_registry['registry']] + return {'ecr_login': ecr_login, 'registry_login': helm_registry_login, 'helm': helm_cmd} elif public_registry['registry'] is not None: logger.info("Found AWS public repository, will use default region as deployment") region = os.environ.get('AWS_REGION', 'us-east-1') if is_ecr_public_available(region): - cmnd = [ - f"aws ecr-public get-login-password --region us-east-1 | " \ - f"helm registry login --username AWS --password-stdin {public_registry['registry']}; helm pull {repository} --version {version} --untar" - ] + # Public ECR auth is always in us-east-1: https://docs.aws.amazon.com/AmazonECR/latest/public/public-registry-auth.html + ecr_login = ['aws', 'ecr-public', 'get-login-password', '--region', 'us-east-1'] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', public_registry['registry']] + return {'ecr_login': ecr_login, 'helm_registry_login': helm_registry_login, 'helm': helm_cmd} else: - # `aws ecr-public get-login-password` and `helm registry login` not required as ecr public is not available in current region + # No login required for public ECR in non-aws regions # see https://helm.sh/docs/helm/helm_registry_login/ - cmnd = [f"helm pull {repository} --version {version} --untar"] + return {'helm': helm_cmd} else: logger.error("OCI repository format not recognized, falling back to helm pull") - cmnd = [f"helm pull {repository} --version {version} --untar"] - - return cmnd + return {'helm': helm_cmd} -def get_chart_from_oci(tmpdir, repository = None, version = None): +def get_chart_from_oci(tmpdir, repository=None, version=None): + from subprocess import Popen, PIPE - cmnd = get_oci_cmd(repository, version) + commands = get_oci_cmd(repository, version) maxAttempts = 3 retry = maxAttempts while retry > 0: try: - logger.info(cmnd) - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=tmpdir, shell=True) + # Execute login commands if needed + if 'ecr_login' in commands and 'helm_registry_login' in commands: + logger.info("Running login command: %s", commands['ecr_login']) + logger.info("Running registry login command: %s", commands['helm_registry_login']) + + # Start first process: aws ecr get-login-password + # NOTE: We do NOT call p1.wait() here before starting p2. + # Doing so could deadlock if p1's output fills the pipe buffer + # before p2 starts reading. Instead, start p2 immediately so it + # can consume p1's stdout as it's produced. + p1 = Popen(commands['ecr_login'], stdout=PIPE, stderr=PIPE, cwd=tmpdir) + + # Start second process: helm registry login + p2 = Popen(commands['helm_registry_login'], stdin=p1.stdout, stdout=PIPE, stderr=PIPE, cwd=tmpdir) + p1.stdout.close() # Allow p1 to receive SIGPIPE if p2 exits early + + # Wait for p2 to finish first (ensures full pipeline completes) + _, p2_err = p2.communicate() + + # Now wait for p1 so we have a complete stderr and an exit code + p1.wait() + + # Handle p1 failure + if p1.returncode != 0: + p1_err = p1.stderr.read().decode('utf-8', errors='replace') if p1.stderr else '' + logger.error( + "ECR get-login-password failed for repository %s. Error: %s", + repository, + p1_err or "No error details" + ) + raise subprocess.CalledProcessError(p1.returncode, commands['ecr_login'], p1_err.encode()) + + # Handle p2 failure + if p2.returncode != 0: + logger.error( + "Helm registry authentication failed for repository %s. Error: %s", + repository, + p2_err.decode('utf-8', errors='replace') or "No error details" + ) + raise subprocess.CalledProcessError(p2.returncode, commands['helm_registry_login'], p2_err) + + # Execute helm pull command + logger.info("Running helm command: %s", commands['helm']) + output = subprocess.check_output(commands['helm'], stderr=subprocess.STDOUT, cwd=tmpdir) logger.info(output) # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service return os.path.join(tmpdir, repository.rpartition('/')[-1]) + except subprocess.CalledProcessError as exc: output = exc.output if b'Broken pipe' in output: @@ -153,12 +197,11 @@ def get_chart_from_oci(tmpdir, repository = None, version = None): logger.info("Broken pipe, retries left: %s" % retry) else: raise Exception(output) + raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): - import subprocess - cmnd = ['helm', verb, release] if not chart is None: cmnd.append(chart) diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py similarity index 66% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py index 00d794acd0c73..6c7838f182a45 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py @@ -105,47 +105,91 @@ def get_oci_cmd(repository, version): private_registry = re.match(private_ecr_pattern, repository).groupdict() public_registry = re.match(public_ecr_pattern, repository).groupdict() + # Build helm pull command as array + helm_cmd = ['helm', 'pull', repository, '--version', version , '--untar'] + if private_registry['registry'] is not None: logger.info("Found AWS private repository") - cmnd = [ - f"aws ecr get-login-password --region {private_registry['region']} | " \ - f"helm registry login --username AWS --password-stdin {private_registry['registry']}; helm pull {repository} --version {version} --untar" - ] + ecr_login = ['aws', 'ecr', 'get-login-password', '--region', private_registry['region']] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', private_registry['registry']] + return {'ecr_login': ecr_login, 'registry_login': helm_registry_login, 'helm': helm_cmd} elif public_registry['registry'] is not None: logger.info("Found AWS public repository, will use default region as deployment") region = os.environ.get('AWS_REGION', 'us-east-1') if is_ecr_public_available(region): - cmnd = [ - f"aws ecr-public get-login-password --region us-east-1 | " \ - f"helm registry login --username AWS --password-stdin {public_registry['registry']}; helm pull {repository} --version {version} --untar" - ] + # Public ECR auth is always in us-east-1: https://docs.aws.amazon.com/AmazonECR/latest/public/public-registry-auth.html + ecr_login = ['aws', 'ecr-public', 'get-login-password', '--region', 'us-east-1'] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', public_registry['registry']] + return {'ecr_login': ecr_login, 'helm_registry_login': helm_registry_login, 'helm': helm_cmd} else: - # `aws ecr-public get-login-password` and `helm registry login` not required as ecr public is not available in current region + # No login required for public ECR in non-aws regions # see https://helm.sh/docs/helm/helm_registry_login/ - cmnd = [f"helm pull {repository} --version {version} --untar"] + return {'helm': helm_cmd} else: logger.error("OCI repository format not recognized, falling back to helm pull") - cmnd = [f"helm pull {repository} --version {version} --untar"] - - return cmnd + return {'helm': helm_cmd} -def get_chart_from_oci(tmpdir, repository = None, version = None): +def get_chart_from_oci(tmpdir, repository=None, version=None): + from subprocess import Popen, PIPE - cmnd = get_oci_cmd(repository, version) + commands = get_oci_cmd(repository, version) maxAttempts = 3 retry = maxAttempts while retry > 0: try: - logger.info(cmnd) - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=tmpdir, shell=True) + # Execute login commands if needed + if 'ecr_login' in commands and 'helm_registry_login' in commands: + logger.info("Running login command: %s", commands['ecr_login']) + logger.info("Running registry login command: %s", commands['helm_registry_login']) + + # Start first process: aws ecr get-login-password + # NOTE: We do NOT call p1.wait() here before starting p2. + # Doing so could deadlock if p1's output fills the pipe buffer + # before p2 starts reading. Instead, start p2 immediately so it + # can consume p1's stdout as it's produced. + p1 = Popen(commands['ecr_login'], stdout=PIPE, stderr=PIPE, cwd=tmpdir) + + # Start second process: helm registry login + p2 = Popen(commands['helm_registry_login'], stdin=p1.stdout, stdout=PIPE, stderr=PIPE, cwd=tmpdir) + p1.stdout.close() # Allow p1 to receive SIGPIPE if p2 exits early + + # Wait for p2 to finish first (ensures full pipeline completes) + _, p2_err = p2.communicate() + + # Now wait for p1 so we have a complete stderr and an exit code + p1.wait() + + # Handle p1 failure + if p1.returncode != 0: + p1_err = p1.stderr.read().decode('utf-8', errors='replace') if p1.stderr else '' + logger.error( + "ECR get-login-password failed for repository %s. Error: %s", + repository, + p1_err or "No error details" + ) + raise subprocess.CalledProcessError(p1.returncode, commands['ecr_login'], p1_err.encode()) + + # Handle p2 failure + if p2.returncode != 0: + logger.error( + "Helm registry authentication failed for repository %s. Error: %s", + repository, + p2_err.decode('utf-8', errors='replace') or "No error details" + ) + raise subprocess.CalledProcessError(p2.returncode, commands['helm_registry_login'], p2_err) + + # Execute helm pull command + logger.info("Running helm command: %s", commands['helm']) + output = subprocess.check_output(commands['helm'], stderr=subprocess.STDOUT, cwd=tmpdir) logger.info(output) # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service return os.path.join(tmpdir, repository.rpartition('/')[-1]) + except subprocess.CalledProcessError as exc: output = exc.output if b'Broken pipe' in output: @@ -153,12 +197,11 @@ def get_chart_from_oci(tmpdir, repository = None, version = None): logger.info("Broken pipe, retries left: %s" % retry) else: raise Exception(output) + raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): - import subprocess - cmnd = ['helm', verb, release] if not chart is None: cmnd.append(chart) diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/aws-cdk-eks-cluster-alb-controller.assets.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/aws-cdk-eks-cluster-alb-controller.assets.json index 8190ffccac862..9d2f28adebdc2 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/aws-cdk-eks-cluster-alb-controller.assets.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/aws-cdk-eks-cluster-alb-controller.assets.json @@ -15,16 +15,16 @@ } } }, - "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069": { + "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a": { "displayName": "Cluster/KubectlProvider/Handler/Code", "source": { - "path": "asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069", + "path": "asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a", "packaging": "zip" }, "destinations": { - "current_account-current_region-0ee668da": { + "current_account-current_region-5b09798b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip", + "objectKey": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -99,16 +99,16 @@ } } }, - "a9f4dbec92245b8190b78b928117453182d75af9da99e53e98b3d700a97b7477": { + "efb5391f8153defcb8dbea91f75c5103ec03e589ed61b7a2b52d3eae630d201d": { "displayName": "aws-cdk-eks-cluster-alb-controller Template", "source": { "path": "aws-cdk-eks-cluster-alb-controller.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-92a9ec27": { + "current_account-current_region-9ac704e2": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "a9f4dbec92245b8190b78b928117453182d75af9da99e53e98b3d700a97b7477.json", + "objectKey": "efb5391f8153defcb8dbea91f75c5103ec03e589ed61b7a2b52d3eae630d201d.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/aws-cdk-eks-cluster-alb-controller.template.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/aws-cdk-eks-cluster-alb-controller.template.json index b005c43a80f96..585d289799847 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/aws-cdk-eks-cluster-alb-controller.template.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/aws-cdk-eks-cluster-alb-controller.template.json @@ -767,7 +767,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip" + "S3Key": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip" }, "Description": "onEvent handler for EKS kubectl resource provider", "Environment": { diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/manifest.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/manifest.json index 44fd09637b9d7..82db85f0d1392 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "artifacts": { "aws-cdk-eks-cluster-alb-controller.assets": { "type": "cdk:asset-manifest", @@ -18,7 +18,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/a9f4dbec92245b8190b78b928117453182d75af9da99e53e98b3d700a97b7477.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/efb5391f8153defcb8dbea91f75c5103ec03e589ed61b7a2b52d3eae630d201d.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -644,7 +644,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -1371,7 +1371,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -1948,6 +1948,7 @@ "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." }, "@aws-cdk/core:explicitStackTags": { + "userValue": true, "recommendedValue": true, "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." }, @@ -2100,5 +2101,5 @@ } } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1023.0" } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/tree.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/tree.json index 14734a9f88685..86be76aeb877b 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/tree.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.alb-controller.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"aws-cdk-eks-cluster-alb-controller":{"id":"aws-cdk-eks-cluster-alb-controller","path":"aws-cdk-eks-cluster-alb-controller","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"Vpc":{"id":"Vpc","path":"aws-cdk-eks-cluster-alb-controller/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"maxAzs":"*","natGateways":"*","restrictDefaultSecurityGroup":false}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"aws-cdk-eks-cluster-alb-controller/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"aws-cdk-eks-cluster-alb-controller/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"kubectlLayer":{"id":"kubectlLayer","path":"aws-cdk-eks-cluster-alb-controller/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-alb-controller/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-alb-controller/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-alb-controller/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"aws-cdk-eks-cluster-alb-controller/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*","*"]},"children":{"Role":{"id":"Role","path":"aws-cdk-eks-cluster-alb-controller/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-cluster-alb-controller/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":["sts:AssumeRole","sts:TagSession"],"Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSComputePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSBlockStoragePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSLoadBalancingPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSNetworkingPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"aws-cdk-eks-cluster-alb-controller/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"ClusternodePoolRole":{"id":"ClusternodePoolRole","path":"aws-cdk-eks-cluster-alb-controller/Cluster/ClusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]}]},"children":{"ImportClusternodePoolRole":{"id":"ImportClusternodePoolRole","path":"aws-cdk-eks-cluster-alb-controller/Cluster/ClusternodePoolRole/ImportClusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/ClusternodePoolRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":true,"nodePools":["system","general-purpose"],"nodeRoleArn":{"Fn::GetAtt":["ClusterClusternodePoolRole69276141","Arn"]}},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":true}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":true}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"aws-cdk-eks-cluster-alb-controller/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole081AD342A","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"aws-cdk-eks-cluster-alb-controller/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}},"OpenIdConnectProvider":{"id":"OpenIdConnectProvider","path":"aws-cdk-eks-cluster-alb-controller/Cluster/OpenIdConnectProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.OpenIdConnectProvider","version":"0.0.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/OpenIdConnectProvider/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-alb-controller/Cluster/OpenIdConnectProvider/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"echo-server":{"id":"echo-server","path":"aws-cdk-eks-cluster-alb-controller/Cluster/echo-server","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/echo-server/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-alb-controller/Cluster/echo-server/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"hello-server-deployment-service-ingress-c896bd7eLoadBalancerAddress":{"id":"hello-server-deployment-service-ingress-c896bd7eLoadBalancerAddress","path":"aws-cdk-eks-cluster-alb-controller/Cluster/hello-server-deployment-service-ingress-c896bd7eLoadBalancerAddress","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesObjectValue","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/hello-server-deployment-service-ingress-c896bd7eLoadBalancerAddress/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-alb-controller/Cluster/hello-server-deployment-service-ingress-c896bd7eLoadBalancerAddress/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"aws-cdk-eks-cluster-alb-controller/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"awscdkeksclusteralbcontrollerCluster0686D58B-AlbController":{"id":"awscdkeksclusteralbcontrollerCluster0686D58B-AlbController","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AlbController","version":"0.0.0"},"children":{"alb-sa":{"id":"alb-sa","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.ServiceAccount","version":"0.0.0"},"children":{"ConditionJson":{"id":"ConditionJson","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa/ConditionJson","constructInfo":{"fqn":"aws-cdk-lib.CfnJson","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa/ConditionJson/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa/ConditionJson/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"Fn::GetAtt":["awscdkeksclusteralbcontrollerCluster0686D58BAlbControlleralbsaConditionJson853930C0","Value"]}},"Effect":"Allow","Principal":{"Federated":{"Ref":"ClusterOpenIdConnectProviderE7EB0530"}}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"iam:CreateServiceLinkedRole","Condition":{"StringEquals":{"iam:AWSServiceName":"elasticloadbalancing.amazonaws.com"}},"Effect":"Allow","Resource":"*"},{"Action":["acm:DescribeCertificate","acm:ListCertificates","cognito-idp:DescribeUserPoolClient","ec2:AuthorizeSecurityGroupIngress","ec2:CreateSecurityGroup","ec2:DescribeAccountAttributes","ec2:DescribeAddresses","ec2:DescribeAvailabilityZones","ec2:DescribeCoipPools","ec2:DescribeInstances","ec2:DescribeInternetGateways","ec2:DescribeNetworkInterfaces","ec2:DescribeSecurityGroups","ec2:DescribeSubnets","ec2:DescribeTags","ec2:DescribeVpcPeeringConnections","ec2:DescribeVpcs","ec2:GetCoipPoolUsage","ec2:RevokeSecurityGroupIngress","elasticloadbalancing:AddListenerCertificates","elasticloadbalancing:CreateListener","elasticloadbalancing:CreateRule","elasticloadbalancing:DeleteListener","elasticloadbalancing:DeleteRule","elasticloadbalancing:DescribeListenerCertificates","elasticloadbalancing:DescribeListeners","elasticloadbalancing:DescribeLoadBalancerAttributes","elasticloadbalancing:DescribeLoadBalancers","elasticloadbalancing:DescribeRules","elasticloadbalancing:DescribeSSLPolicies","elasticloadbalancing:DescribeTags","elasticloadbalancing:DescribeTargetGroupAttributes","elasticloadbalancing:DescribeTargetGroups","elasticloadbalancing:DescribeTargetHealth","elasticloadbalancing:DescribeTrustStores","elasticloadbalancing:ModifyListener","elasticloadbalancing:ModifyRule","elasticloadbalancing:RemoveListenerCertificates","elasticloadbalancing:SetWebAcl","iam:GetServerCertificate","iam:ListServerCertificates","shield:CreateProtection","shield:DeleteProtection","shield:DescribeProtection","shield:GetSubscriptionState","waf-regional:AssociateWebACL","waf-regional:DisassociateWebACL","waf-regional:GetWebACL","waf-regional:GetWebACLForResource","wafv2:AssociateWebACL","wafv2:DisassociateWebACL","wafv2:GetWebACL","wafv2:GetWebACLForResource"],"Effect":"Allow","Resource":"*"},{"Action":"ec2:CreateTags","Condition":{"StringEquals":{"ec2:CreateAction":"CreateSecurityGroup"},"Null":{"aws:RequestTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ec2:*:*:security-group/*"]]}},{"Action":["ec2:CreateTags","ec2:DeleteTags"],"Condition":{"Null":{"aws:RequestTag/elbv2.k8s.aws/cluster":"true","aws:ResourceTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ec2:*:*:security-group/*"]]}},{"Action":["ec2:AuthorizeSecurityGroupIngress","ec2:DeleteSecurityGroup","ec2:RevokeSecurityGroupIngress","elasticloadbalancing:DeleteLoadBalancer","elasticloadbalancing:DeleteTargetGroup","elasticloadbalancing:ModifyLoadBalancerAttributes","elasticloadbalancing:ModifyTargetGroup","elasticloadbalancing:ModifyTargetGroupAttributes","elasticloadbalancing:SetIpAddressType","elasticloadbalancing:SetSecurityGroups","elasticloadbalancing:SetSubnets"],"Condition":{"Null":{"aws:ResourceTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":"*"},{"Action":["elasticloadbalancing:CreateLoadBalancer","elasticloadbalancing:CreateTargetGroup"],"Condition":{"Null":{"aws:RequestTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":"*"},{"Action":["elasticloadbalancing:AddTags","elasticloadbalancing:RemoveTags"],"Condition":{"Null":{"aws:RequestTag/elbv2.k8s.aws/cluster":"true","aws:ResourceTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:loadbalancer/app/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:loadbalancer/net/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:targetgroup/*/*"]]}]},{"Action":["elasticloadbalancing:AddTags","elasticloadbalancing:RemoveTags"],"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:listener-rule/app/*/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:listener-rule/net/*/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:listener/app/*/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:listener/net/*/*/*"]]}]},{"Action":"elasticloadbalancing:AddTags","Condition":{"StringEquals":{"elasticloadbalancing:CreateAction":["CreateTargetGroup","CreateLoadBalancer"]},"Null":{"aws:RequestTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:loadbalancer/app/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:loadbalancer/net/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:targetgroup/*/*"]]}]},{"Action":["elasticloadbalancing:DeregisterTargets","elasticloadbalancing:RegisterTargets"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:targetgroup/*/*"]]}}],"Version":"2012-10-17"},"policyName":"awscdkeksclusteralbcontrollerCluster0686D58BAlbControlleralbsaRoleDefaultPolicy0BB22F48","roles":[{"Ref":"awscdkeksclusteralbcontrollerCluster0686D58BAlbControlleralbsaRoleE08C7B02"}]}}}}}}},"manifest-alb-saServiceAccountResource":{"id":"manifest-alb-saServiceAccountResource","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa/manifest-alb-saServiceAccountResource","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa/manifest-alb-saServiceAccountResource/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa/manifest-alb-saServiceAccountResource/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/Resource","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/Resource/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/Resource/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider":{"id":"Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider","path":"aws-cdk-eks-cluster-alb-controller/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-cluster-alb-controller/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster-alb-controller/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-alb-controller/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"AWSCDKCfnUtilsProviderCustomResourceProvider":{"id":"AWSCDKCfnUtilsProviderCustomResourceProvider","path":"aws-cdk-eks-cluster-alb-controller/AWSCDKCfnUtilsProviderCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-cluster-alb-controller/AWSCDKCfnUtilsProviderCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster-alb-controller/AWSCDKCfnUtilsProviderCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-alb-controller/AWSCDKCfnUtilsProviderCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"IngressPinger":{"id":"IngressPinger","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"Function":{"id":"Function","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Function","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","handler":"*","runtime":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","timeout":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Function/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Function/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Function/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Function/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Function/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Function/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"SecurityGroup":{"id":"SecurityGroup","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Function/SecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*","allowAllOutbound":"*","allowAllIpv6Outbound":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Function/SecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"Automatic security group for Lambda Function awscdkeksclusteralbcontrollerIngressPingerFunctionCB8DD6F2","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Function/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"5f49893093e1ad14831626016699156d48da5f0890f19eb930bc3c46cf5f636d.zip"},"handler":"index.handler","role":{"Fn::GetAtt":["IngressPingerFunctionServiceRoleD01E9C19","Arn"]},"runtime":"python3.9","timeout":600,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["IngressPingerFunctionSecurityGroup77C60B1A","GroupId"]}]}}}}}},"Provider":{"id":"Provider","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["IngressPingerFunction54746D9B","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["IngressPingerFunction54746D9B","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"IngressPingerProviderframeworkonEventServiceRoleDefaultPolicy7CC73E26","roles":[{"Ref":"IngressPingerProviderframeworkonEventServiceRole89300FAD"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["IngressPingerFunction54746D9B","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["IngressPingerProviderframeworkonEventServiceRole89300FAD","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["IngressPingerFunction54746D9B","Arn"]}}],"Version":"2012-10-17"},"policyName":"IngressPingerProviderframeworkonEventinlinePolicyAddedToExecutionRole097789944","roles":[{"Ref":"IngressPingerProviderframeworkonEventServiceRole89300FAD"}]}}}}}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"IngressPingerResponse":{"id":"IngressPingerResponse","path":"aws-cdk-eks-cluster-alb-controller/IngressPingerResponse","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-alb-controller/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-alb-controller/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-cluster-alb-controller-integ":{"id":"aws-cdk-cluster-alb-controller-integ","path":"aws-cdk-cluster-alb-controller-integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-cluster-alb-controller-integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-cluster-alb-controller-integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-cluster-alb-controller-integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-cluster-alb-controller-integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-cluster-alb-controller-integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"aws-cdk-eks-cluster-alb-controller":{"id":"aws-cdk-eks-cluster-alb-controller","path":"aws-cdk-eks-cluster-alb-controller","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"Vpc":{"id":"Vpc","path":"aws-cdk-eks-cluster-alb-controller/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"maxAzs":"*","natGateways":"*","restrictDefaultSecurityGroup":false}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-alb-controller/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"aws-cdk-eks-cluster-alb-controller/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"aws-cdk-eks-cluster-alb-controller/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"aws-cdk-eks-cluster-alb-controller/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"kubectlLayer":{"id":"kubectlLayer","path":"aws-cdk-eks-cluster-alb-controller/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-alb-controller/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-alb-controller/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-alb-controller/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"aws-cdk-eks-cluster-alb-controller/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*","*"]},"children":{"Role":{"id":"Role","path":"aws-cdk-eks-cluster-alb-controller/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-cluster-alb-controller/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":["sts:AssumeRole","sts:TagSession"],"Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSComputePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSBlockStoragePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSLoadBalancingPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSNetworkingPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"aws-cdk-eks-cluster-alb-controller/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"ClusternodePoolRole":{"id":"ClusternodePoolRole","path":"aws-cdk-eks-cluster-alb-controller/Cluster/ClusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]}]},"children":{"ImportClusternodePoolRole":{"id":"ImportClusternodePoolRole","path":"aws-cdk-eks-cluster-alb-controller/Cluster/ClusternodePoolRole/ImportClusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/ClusternodePoolRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":true,"nodePools":["system","general-purpose"],"nodeRoleArn":{"Fn::GetAtt":["ClusterClusternodePoolRole69276141","Arn"]}},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":true}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":true}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"aws-cdk-eks-cluster-alb-controller/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole081AD342A","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"aws-cdk-eks-cluster-alb-controller/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}},"OpenIdConnectProvider":{"id":"OpenIdConnectProvider","path":"aws-cdk-eks-cluster-alb-controller/Cluster/OpenIdConnectProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.OpenIdConnectProvider","version":"0.0.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/OpenIdConnectProvider/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-alb-controller/Cluster/OpenIdConnectProvider/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"echo-server":{"id":"echo-server","path":"aws-cdk-eks-cluster-alb-controller/Cluster/echo-server","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/echo-server/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-alb-controller/Cluster/echo-server/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"hello-server-deployment-service-ingress-c896bd7eLoadBalancerAddress":{"id":"hello-server-deployment-service-ingress-c896bd7eLoadBalancerAddress","path":"aws-cdk-eks-cluster-alb-controller/Cluster/hello-server-deployment-service-ingress-c896bd7eLoadBalancerAddress","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesObjectValue","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/Cluster/hello-server-deployment-service-ingress-c896bd7eLoadBalancerAddress/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-alb-controller/Cluster/hello-server-deployment-service-ingress-c896bd7eLoadBalancerAddress/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"aws-cdk-eks-cluster-alb-controller/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"awscdkeksclusteralbcontrollerCluster0686D58B-AlbController":{"id":"awscdkeksclusteralbcontrollerCluster0686D58B-AlbController","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AlbController","version":"0.0.0"},"children":{"alb-sa":{"id":"alb-sa","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.ServiceAccount","version":"0.0.0"},"children":{"ConditionJson":{"id":"ConditionJson","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa/ConditionJson","constructInfo":{"fqn":"aws-cdk-lib.CfnJson","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa/ConditionJson/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa/ConditionJson/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"Fn::GetAtt":["awscdkeksclusteralbcontrollerCluster0686D58BAlbControlleralbsaConditionJson853930C0","Value"]}},"Effect":"Allow","Principal":{"Federated":{"Ref":"ClusterOpenIdConnectProviderE7EB0530"}}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"iam:CreateServiceLinkedRole","Condition":{"StringEquals":{"iam:AWSServiceName":"elasticloadbalancing.amazonaws.com"}},"Effect":"Allow","Resource":"*"},{"Action":["acm:DescribeCertificate","acm:ListCertificates","cognito-idp:DescribeUserPoolClient","ec2:AuthorizeSecurityGroupIngress","ec2:CreateSecurityGroup","ec2:DescribeAccountAttributes","ec2:DescribeAddresses","ec2:DescribeAvailabilityZones","ec2:DescribeCoipPools","ec2:DescribeInstances","ec2:DescribeInternetGateways","ec2:DescribeNetworkInterfaces","ec2:DescribeSecurityGroups","ec2:DescribeSubnets","ec2:DescribeTags","ec2:DescribeVpcPeeringConnections","ec2:DescribeVpcs","ec2:GetCoipPoolUsage","ec2:RevokeSecurityGroupIngress","elasticloadbalancing:AddListenerCertificates","elasticloadbalancing:CreateListener","elasticloadbalancing:CreateRule","elasticloadbalancing:DeleteListener","elasticloadbalancing:DeleteRule","elasticloadbalancing:DescribeListenerCertificates","elasticloadbalancing:DescribeListeners","elasticloadbalancing:DescribeLoadBalancerAttributes","elasticloadbalancing:DescribeLoadBalancers","elasticloadbalancing:DescribeRules","elasticloadbalancing:DescribeSSLPolicies","elasticloadbalancing:DescribeTags","elasticloadbalancing:DescribeTargetGroupAttributes","elasticloadbalancing:DescribeTargetGroups","elasticloadbalancing:DescribeTargetHealth","elasticloadbalancing:DescribeTrustStores","elasticloadbalancing:ModifyListener","elasticloadbalancing:ModifyRule","elasticloadbalancing:RemoveListenerCertificates","elasticloadbalancing:SetWebAcl","iam:GetServerCertificate","iam:ListServerCertificates","shield:CreateProtection","shield:DeleteProtection","shield:DescribeProtection","shield:GetSubscriptionState","waf-regional:AssociateWebACL","waf-regional:DisassociateWebACL","waf-regional:GetWebACL","waf-regional:GetWebACLForResource","wafv2:AssociateWebACL","wafv2:DisassociateWebACL","wafv2:GetWebACL","wafv2:GetWebACLForResource"],"Effect":"Allow","Resource":"*"},{"Action":"ec2:CreateTags","Condition":{"StringEquals":{"ec2:CreateAction":"CreateSecurityGroup"},"Null":{"aws:RequestTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ec2:*:*:security-group/*"]]}},{"Action":["ec2:CreateTags","ec2:DeleteTags"],"Condition":{"Null":{"aws:RequestTag/elbv2.k8s.aws/cluster":"true","aws:ResourceTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ec2:*:*:security-group/*"]]}},{"Action":["ec2:AuthorizeSecurityGroupIngress","ec2:DeleteSecurityGroup","ec2:RevokeSecurityGroupIngress","elasticloadbalancing:DeleteLoadBalancer","elasticloadbalancing:DeleteTargetGroup","elasticloadbalancing:ModifyLoadBalancerAttributes","elasticloadbalancing:ModifyTargetGroup","elasticloadbalancing:ModifyTargetGroupAttributes","elasticloadbalancing:SetIpAddressType","elasticloadbalancing:SetSecurityGroups","elasticloadbalancing:SetSubnets"],"Condition":{"Null":{"aws:ResourceTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":"*"},{"Action":["elasticloadbalancing:CreateLoadBalancer","elasticloadbalancing:CreateTargetGroup"],"Condition":{"Null":{"aws:RequestTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":"*"},{"Action":["elasticloadbalancing:AddTags","elasticloadbalancing:RemoveTags"],"Condition":{"Null":{"aws:RequestTag/elbv2.k8s.aws/cluster":"true","aws:ResourceTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:loadbalancer/app/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:loadbalancer/net/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:targetgroup/*/*"]]}]},{"Action":["elasticloadbalancing:AddTags","elasticloadbalancing:RemoveTags"],"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:listener-rule/app/*/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:listener-rule/net/*/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:listener/app/*/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:listener/net/*/*/*"]]}]},{"Action":"elasticloadbalancing:AddTags","Condition":{"StringEquals":{"elasticloadbalancing:CreateAction":["CreateTargetGroup","CreateLoadBalancer"]},"Null":{"aws:RequestTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:loadbalancer/app/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:loadbalancer/net/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:targetgroup/*/*"]]}]},{"Action":["elasticloadbalancing:DeregisterTargets","elasticloadbalancing:RegisterTargets"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:targetgroup/*/*"]]}}],"Version":"2012-10-17"},"policyName":"awscdkeksclusteralbcontrollerCluster0686D58BAlbControlleralbsaRoleDefaultPolicy0BB22F48","roles":[{"Ref":"awscdkeksclusteralbcontrollerCluster0686D58BAlbControlleralbsaRoleE08C7B02"}]}}}}}}},"manifest-alb-saServiceAccountResource":{"id":"manifest-alb-saServiceAccountResource","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa/manifest-alb-saServiceAccountResource","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa/manifest-alb-saServiceAccountResource/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/alb-sa/manifest-alb-saServiceAccountResource/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/Resource","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/Resource/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-alb-controller/awscdkeksclusteralbcontrollerCluster0686D58B-AlbController/Resource/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider":{"id":"Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider","path":"aws-cdk-eks-cluster-alb-controller/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-cluster-alb-controller/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster-alb-controller/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-alb-controller/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"AWSCDKCfnUtilsProviderCustomResourceProvider":{"id":"AWSCDKCfnUtilsProviderCustomResourceProvider","path":"aws-cdk-eks-cluster-alb-controller/AWSCDKCfnUtilsProviderCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-cluster-alb-controller/AWSCDKCfnUtilsProviderCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster-alb-controller/AWSCDKCfnUtilsProviderCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-alb-controller/AWSCDKCfnUtilsProviderCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"IngressPinger":{"id":"IngressPinger","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"Function":{"id":"Function","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Function","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","handler":"*","runtime":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","timeout":"*"}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Function/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Function/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Function/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Function/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Function/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Function/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"SecurityGroup":{"id":"SecurityGroup","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Function/SecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*","allowAllOutbound":"*","allowAllIpv6Outbound":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Function/SecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"Automatic security group for Lambda Function awscdkeksclusteralbcontrollerIngressPingerFunctionCB8DD6F2","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Function/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"5f49893093e1ad14831626016699156d48da5f0890f19eb930bc3c46cf5f636d.zip"},"handler":"index.handler","role":{"Fn::GetAtt":["IngressPingerFunctionServiceRoleD01E9C19","Arn"]},"runtime":"python3.9","timeout":600,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["IngressPingerFunctionSecurityGroup77C60B1A","GroupId"]}]}}}}}},"Provider":{"id":"Provider","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["IngressPingerFunction54746D9B","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["IngressPingerFunction54746D9B","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"IngressPingerProviderframeworkonEventServiceRoleDefaultPolicy7CC73E26","roles":[{"Ref":"IngressPingerProviderframeworkonEventServiceRole89300FAD"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["IngressPingerFunction54746D9B","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["IngressPingerProviderframeworkonEventServiceRole89300FAD","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["IngressPingerFunction54746D9B","Arn"]}}],"Version":"2012-10-17"},"policyName":"IngressPingerProviderframeworkonEventinlinePolicyAddedToExecutionRole097789944","roles":[{"Ref":"IngressPingerProviderframeworkonEventServiceRole89300FAD"}]}}}}}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-alb-controller/IngressPinger/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"IngressPingerResponse":{"id":"IngressPingerResponse","path":"aws-cdk-eks-cluster-alb-controller/IngressPingerResponse","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-alb-controller/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-alb-controller/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-cluster-alb-controller-integ":{"id":"aws-cdk-cluster-alb-controller-integ","path":"aws-cdk-cluster-alb-controller-integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-cluster-alb-controller-integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-cluster-alb-controller-integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-cluster-alb-controller-integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-cluster-alb-controller-integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-cluster-alb-controller-integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/EksClusterWithAddonStack.assets.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/EksClusterWithAddonStack.assets.json index 114778ff3ef22..ff167481f8513 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/EksClusterWithAddonStack.assets.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/EksClusterWithAddonStack.assets.json @@ -29,16 +29,16 @@ } } }, - "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069": { + "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a": { "displayName": "Cluster/KubectlProvider/Handler/Code", "source": { - "path": "asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069", + "path": "asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a", "packaging": "zip" }, "destinations": { - "current_account-current_region-0ee668da": { + "current_account-current_region-5b09798b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip", + "objectKey": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -71,16 +71,16 @@ } } }, - "143f5747d655c21036796d149ab4f59155e6be26e5d15cf0189aebf3b9e83ad2": { + "7a413f04f8d5185b4902084ac2722a057f25c203c07d2afe63eb82a95386aa7b": { "displayName": "EksClusterWithAddonStack Template", "source": { "path": "EksClusterWithAddonStack.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-1d61fd70": { + "current_account-current_region-ba6a1612": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "143f5747d655c21036796d149ab4f59155e6be26e5d15cf0189aebf3b9e83ad2.json", + "objectKey": "7a413f04f8d5185b4902084ac2722a057f25c203c07d2afe63eb82a95386aa7b.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/EksClusterWithAddonStack.template.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/EksClusterWithAddonStack.template.json index 5bb5f9053bfc6..c167707a39280 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/EksClusterWithAddonStack.template.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/EksClusterWithAddonStack.template.json @@ -892,7 +892,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip" + "S3Key": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip" }, "Description": "onEvent handler for EKS kubectl resource provider", "Environment": { diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py similarity index 66% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py index 00d794acd0c73..6c7838f182a45 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py @@ -105,47 +105,91 @@ def get_oci_cmd(repository, version): private_registry = re.match(private_ecr_pattern, repository).groupdict() public_registry = re.match(public_ecr_pattern, repository).groupdict() + # Build helm pull command as array + helm_cmd = ['helm', 'pull', repository, '--version', version , '--untar'] + if private_registry['registry'] is not None: logger.info("Found AWS private repository") - cmnd = [ - f"aws ecr get-login-password --region {private_registry['region']} | " \ - f"helm registry login --username AWS --password-stdin {private_registry['registry']}; helm pull {repository} --version {version} --untar" - ] + ecr_login = ['aws', 'ecr', 'get-login-password', '--region', private_registry['region']] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', private_registry['registry']] + return {'ecr_login': ecr_login, 'registry_login': helm_registry_login, 'helm': helm_cmd} elif public_registry['registry'] is not None: logger.info("Found AWS public repository, will use default region as deployment") region = os.environ.get('AWS_REGION', 'us-east-1') if is_ecr_public_available(region): - cmnd = [ - f"aws ecr-public get-login-password --region us-east-1 | " \ - f"helm registry login --username AWS --password-stdin {public_registry['registry']}; helm pull {repository} --version {version} --untar" - ] + # Public ECR auth is always in us-east-1: https://docs.aws.amazon.com/AmazonECR/latest/public/public-registry-auth.html + ecr_login = ['aws', 'ecr-public', 'get-login-password', '--region', 'us-east-1'] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', public_registry['registry']] + return {'ecr_login': ecr_login, 'helm_registry_login': helm_registry_login, 'helm': helm_cmd} else: - # `aws ecr-public get-login-password` and `helm registry login` not required as ecr public is not available in current region + # No login required for public ECR in non-aws regions # see https://helm.sh/docs/helm/helm_registry_login/ - cmnd = [f"helm pull {repository} --version {version} --untar"] + return {'helm': helm_cmd} else: logger.error("OCI repository format not recognized, falling back to helm pull") - cmnd = [f"helm pull {repository} --version {version} --untar"] - - return cmnd + return {'helm': helm_cmd} -def get_chart_from_oci(tmpdir, repository = None, version = None): +def get_chart_from_oci(tmpdir, repository=None, version=None): + from subprocess import Popen, PIPE - cmnd = get_oci_cmd(repository, version) + commands = get_oci_cmd(repository, version) maxAttempts = 3 retry = maxAttempts while retry > 0: try: - logger.info(cmnd) - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=tmpdir, shell=True) + # Execute login commands if needed + if 'ecr_login' in commands and 'helm_registry_login' in commands: + logger.info("Running login command: %s", commands['ecr_login']) + logger.info("Running registry login command: %s", commands['helm_registry_login']) + + # Start first process: aws ecr get-login-password + # NOTE: We do NOT call p1.wait() here before starting p2. + # Doing so could deadlock if p1's output fills the pipe buffer + # before p2 starts reading. Instead, start p2 immediately so it + # can consume p1's stdout as it's produced. + p1 = Popen(commands['ecr_login'], stdout=PIPE, stderr=PIPE, cwd=tmpdir) + + # Start second process: helm registry login + p2 = Popen(commands['helm_registry_login'], stdin=p1.stdout, stdout=PIPE, stderr=PIPE, cwd=tmpdir) + p1.stdout.close() # Allow p1 to receive SIGPIPE if p2 exits early + + # Wait for p2 to finish first (ensures full pipeline completes) + _, p2_err = p2.communicate() + + # Now wait for p1 so we have a complete stderr and an exit code + p1.wait() + + # Handle p1 failure + if p1.returncode != 0: + p1_err = p1.stderr.read().decode('utf-8', errors='replace') if p1.stderr else '' + logger.error( + "ECR get-login-password failed for repository %s. Error: %s", + repository, + p1_err or "No error details" + ) + raise subprocess.CalledProcessError(p1.returncode, commands['ecr_login'], p1_err.encode()) + + # Handle p2 failure + if p2.returncode != 0: + logger.error( + "Helm registry authentication failed for repository %s. Error: %s", + repository, + p2_err.decode('utf-8', errors='replace') or "No error details" + ) + raise subprocess.CalledProcessError(p2.returncode, commands['helm_registry_login'], p2_err) + + # Execute helm pull command + logger.info("Running helm command: %s", commands['helm']) + output = subprocess.check_output(commands['helm'], stderr=subprocess.STDOUT, cwd=tmpdir) logger.info(output) # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service return os.path.join(tmpdir, repository.rpartition('/')[-1]) + except subprocess.CalledProcessError as exc: output = exc.output if b'Broken pipe' in output: @@ -153,12 +197,11 @@ def get_chart_from_oci(tmpdir, repository = None, version = None): logger.info("Broken pipe, retries left: %s" % retry) else: raise Exception(output) + raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): - import subprocess - cmnd = ['helm', verb, release] if not chart is None: cmnd.append(chart) diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/manifest.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/manifest.json index 3b51a01a774c9..a55aad1ccd585 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "artifacts": { "EksClusterWithAddonStack.assets": { "type": "cdk:asset-manifest", @@ -18,7 +18,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/143f5747d655c21036796d149ab4f59155e6be26e5d15cf0189aebf3b9e83ad2.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/7a413f04f8d5185b4902084ac2722a057f25c203c07d2afe63eb82a95386aa7b.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -674,7 +674,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -1263,6 +1263,7 @@ "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." }, "@aws-cdk/core:explicitStackTags": { + "userValue": true, "recommendedValue": true, "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." }, @@ -1415,5 +1416,5 @@ } } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1023.0" } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/tree.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/tree.json index 68786e1fe1724..74bc7a0636189 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/tree.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-addon.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"EksClusterWithAddonStack":{"id":"EksClusterWithAddonStack","path":"EksClusterWithAddonStack","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"Vpc":{"id":"Vpc","path":"EksClusterWithAddonStack/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"natGateways":"*"}]},"children":{"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"EksClusterWithAddonStack/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"EksClusterWithAddonStack/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"EksClusterWithAddonStack/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EksClusterWithAddonStack/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"EksClusterWithAddonStack/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"EksClusterWithAddonStack/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EksClusterWithAddonStack/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"EksClusterWithAddonStack/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"EksClusterWithAddonStack/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"EksClusterWithAddonStack/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EksClusterWithAddonStack/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"EksClusterWithAddonStack/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EksClusterWithAddonStack/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"EksClusterWithAddonStack/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"EksClusterWithAddonStack/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EksClusterWithAddonStack/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"EksClusterWithAddonStack/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"EksClusterWithAddonStack/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EksClusterWithAddonStack/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"EksClusterWithAddonStack/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"EksClusterWithAddonStack/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"EksClusterWithAddonStack/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"EksClusterWithAddonStack/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"EksClusterWithAddonStack/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"EksClusterWithAddonStack/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"EksClusterWithAddonStack/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"EksClusterWithAddonStack/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"EksClusterWithAddonStack/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"EksClusterWithAddonStack/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"EksClusterWithAddonStack/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"EksClusterWithAddonStack/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"EksClusterWithAddonStack/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"EksClusterWithAddonStack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"EksClusterWithAddonStack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"EksClusterWithAddonStack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"kubectlLayer":{"id":"kubectlLayer","path":"EksClusterWithAddonStack/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"EksClusterWithAddonStack/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"EksClusterWithAddonStack/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"EksClusterWithAddonStack/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"EksClusterWithAddonStack/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*"]},"children":{"Role":{"id":"Role","path":"EksClusterWithAddonStack/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"EksClusterWithAddonStack/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":["sts:AssumeRole","sts:TagSession"],"Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSComputePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSBlockStoragePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSLoadBalancingPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSNetworkingPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"EksClusterWithAddonStack/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"ClusternodePoolRole":{"id":"ClusternodePoolRole","path":"EksClusterWithAddonStack/Cluster/ClusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]}]},"children":{"ImportClusternodePoolRole":{"id":"ImportClusternodePoolRole","path":"EksClusterWithAddonStack/Cluster/ClusternodePoolRole/ImportClusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/ClusternodePoolRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":true,"nodePools":["system","general-purpose"],"nodeRoleArn":{"Fn::GetAtt":["ClusterClusternodePoolRole69276141","Arn"]}},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":true}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":true}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"EksClusterWithAddonStack/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"EksClusterWithAddonStack/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"EksClusterWithAddonStack/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (EksClusterWithAddonStack/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole081AD342A","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"EksClusterWithAddonStack/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}}}},"Addon":{"id":"Addon","path":"EksClusterWithAddonStack/Addon","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Addon","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Addon/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAddon","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Addon","aws:cdk:cloudformation:props":{"addonName":"coredns","clusterName":{"Ref":"ClusterEB0386A7"},"configurationValues":"{\"replicaCount\":2}","preserveOnDelete":true}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"EksClusterWithAddonStack/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"EksClusterWithAddonStack/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"EksClusterwithAddon":{"id":"EksClusterwithAddon","path":"EksClusterwithAddon","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"EksClusterwithAddon/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"EksClusterwithAddon/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"EksClusterwithAddon/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"EksClusterwithAddon/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"EksClusterwithAddon/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"EksClusterWithAddonStack":{"id":"EksClusterWithAddonStack","path":"EksClusterWithAddonStack","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"Vpc":{"id":"Vpc","path":"EksClusterWithAddonStack/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"natGateways":"*"}]},"children":{"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"EksClusterWithAddonStack/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"EksClusterWithAddonStack/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"EksClusterWithAddonStack/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EksClusterWithAddonStack/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"EksClusterWithAddonStack/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"EksClusterWithAddonStack/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EksClusterWithAddonStack/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"EksClusterWithAddonStack/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"EksClusterWithAddonStack/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"EksClusterWithAddonStack/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EksClusterWithAddonStack/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"EksClusterWithAddonStack/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EksClusterWithAddonStack/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"EksClusterWithAddonStack/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"EksClusterWithAddonStack/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EksClusterWithAddonStack/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"EksClusterWithAddonStack/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"EksClusterWithAddonStack/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EksClusterWithAddonStack/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"EksClusterWithAddonStack/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"EksClusterWithAddonStack/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"EksClusterWithAddonStack/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"EksClusterWithAddonStack/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"EksClusterWithAddonStack/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"EksClusterWithAddonStack/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"EksClusterWithAddonStack/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"EksClusterWithAddonStack/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"EksClusterWithAddonStack/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"EksClusterWithAddonStack/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"EksClusterWithAddonStack/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"EksClusterWithAddonStack/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"EksClusterWithAddonStack/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"EksClusterWithAddonStack/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"EksClusterWithAddonStack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"EksClusterWithAddonStack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"EksClusterWithAddonStack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"kubectlLayer":{"id":"kubectlLayer","path":"EksClusterWithAddonStack/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"EksClusterWithAddonStack/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"EksClusterWithAddonStack/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"EksClusterWithAddonStack/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"EksClusterWithAddonStack/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*"]},"children":{"Role":{"id":"Role","path":"EksClusterWithAddonStack/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"EksClusterWithAddonStack/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":["sts:AssumeRole","sts:TagSession"],"Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSComputePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSBlockStoragePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSLoadBalancingPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSNetworkingPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"EksClusterWithAddonStack/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"ClusternodePoolRole":{"id":"ClusternodePoolRole","path":"EksClusterWithAddonStack/Cluster/ClusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]}]},"children":{"ImportClusternodePoolRole":{"id":"ImportClusternodePoolRole","path":"EksClusterWithAddonStack/Cluster/ClusternodePoolRole/ImportClusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/ClusternodePoolRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":true,"nodePools":["system","general-purpose"],"nodeRoleArn":{"Fn::GetAtt":["ClusterClusternodePoolRole69276141","Arn"]}},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":true}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":true}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"EksClusterWithAddonStack/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"EksClusterWithAddonStack/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"EksClusterWithAddonStack/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (EksClusterWithAddonStack/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole081AD342A","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"EksClusterWithAddonStack/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}}}},"Addon":{"id":"Addon","path":"EksClusterWithAddonStack/Addon","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Addon","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"EksClusterWithAddonStack/Addon/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAddon","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Addon","aws:cdk:cloudformation:props":{"addonName":"coredns","clusterName":{"Ref":"ClusterEB0386A7"},"configurationValues":"{\"replicaCount\":2}","preserveOnDelete":true}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"EksClusterWithAddonStack/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"EksClusterWithAddonStack/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"EksClusterwithAddon":{"id":"EksClusterwithAddon","path":"EksClusterwithAddon","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"EksClusterwithAddon/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"EksClusterwithAddon/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"EksClusterwithAddon/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"EksClusterwithAddon/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"EksClusterwithAddon/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py similarity index 66% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py index 00d794acd0c73..6c7838f182a45 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py @@ -105,47 +105,91 @@ def get_oci_cmd(repository, version): private_registry = re.match(private_ecr_pattern, repository).groupdict() public_registry = re.match(public_ecr_pattern, repository).groupdict() + # Build helm pull command as array + helm_cmd = ['helm', 'pull', repository, '--version', version , '--untar'] + if private_registry['registry'] is not None: logger.info("Found AWS private repository") - cmnd = [ - f"aws ecr get-login-password --region {private_registry['region']} | " \ - f"helm registry login --username AWS --password-stdin {private_registry['registry']}; helm pull {repository} --version {version} --untar" - ] + ecr_login = ['aws', 'ecr', 'get-login-password', '--region', private_registry['region']] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', private_registry['registry']] + return {'ecr_login': ecr_login, 'registry_login': helm_registry_login, 'helm': helm_cmd} elif public_registry['registry'] is not None: logger.info("Found AWS public repository, will use default region as deployment") region = os.environ.get('AWS_REGION', 'us-east-1') if is_ecr_public_available(region): - cmnd = [ - f"aws ecr-public get-login-password --region us-east-1 | " \ - f"helm registry login --username AWS --password-stdin {public_registry['registry']}; helm pull {repository} --version {version} --untar" - ] + # Public ECR auth is always in us-east-1: https://docs.aws.amazon.com/AmazonECR/latest/public/public-registry-auth.html + ecr_login = ['aws', 'ecr-public', 'get-login-password', '--region', 'us-east-1'] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', public_registry['registry']] + return {'ecr_login': ecr_login, 'helm_registry_login': helm_registry_login, 'helm': helm_cmd} else: - # `aws ecr-public get-login-password` and `helm registry login` not required as ecr public is not available in current region + # No login required for public ECR in non-aws regions # see https://helm.sh/docs/helm/helm_registry_login/ - cmnd = [f"helm pull {repository} --version {version} --untar"] + return {'helm': helm_cmd} else: logger.error("OCI repository format not recognized, falling back to helm pull") - cmnd = [f"helm pull {repository} --version {version} --untar"] - - return cmnd + return {'helm': helm_cmd} -def get_chart_from_oci(tmpdir, repository = None, version = None): +def get_chart_from_oci(tmpdir, repository=None, version=None): + from subprocess import Popen, PIPE - cmnd = get_oci_cmd(repository, version) + commands = get_oci_cmd(repository, version) maxAttempts = 3 retry = maxAttempts while retry > 0: try: - logger.info(cmnd) - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=tmpdir, shell=True) + # Execute login commands if needed + if 'ecr_login' in commands and 'helm_registry_login' in commands: + logger.info("Running login command: %s", commands['ecr_login']) + logger.info("Running registry login command: %s", commands['helm_registry_login']) + + # Start first process: aws ecr get-login-password + # NOTE: We do NOT call p1.wait() here before starting p2. + # Doing so could deadlock if p1's output fills the pipe buffer + # before p2 starts reading. Instead, start p2 immediately so it + # can consume p1's stdout as it's produced. + p1 = Popen(commands['ecr_login'], stdout=PIPE, stderr=PIPE, cwd=tmpdir) + + # Start second process: helm registry login + p2 = Popen(commands['helm_registry_login'], stdin=p1.stdout, stdout=PIPE, stderr=PIPE, cwd=tmpdir) + p1.stdout.close() # Allow p1 to receive SIGPIPE if p2 exits early + + # Wait for p2 to finish first (ensures full pipeline completes) + _, p2_err = p2.communicate() + + # Now wait for p1 so we have a complete stderr and an exit code + p1.wait() + + # Handle p1 failure + if p1.returncode != 0: + p1_err = p1.stderr.read().decode('utf-8', errors='replace') if p1.stderr else '' + logger.error( + "ECR get-login-password failed for repository %s. Error: %s", + repository, + p1_err or "No error details" + ) + raise subprocess.CalledProcessError(p1.returncode, commands['ecr_login'], p1_err.encode()) + + # Handle p2 failure + if p2.returncode != 0: + logger.error( + "Helm registry authentication failed for repository %s. Error: %s", + repository, + p2_err.decode('utf-8', errors='replace') or "No error details" + ) + raise subprocess.CalledProcessError(p2.returncode, commands['helm_registry_login'], p2_err) + + # Execute helm pull command + logger.info("Running helm command: %s", commands['helm']) + output = subprocess.check_output(commands['helm'], stderr=subprocess.STDOUT, cwd=tmpdir) logger.info(output) # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service return os.path.join(tmpdir, repository.rpartition('/')[-1]) + except subprocess.CalledProcessError as exc: output = exc.output if b'Broken pipe' in output: @@ -153,12 +197,11 @@ def get_chart_from_oci(tmpdir, repository = None, version = None): logger.info("Broken pipe, retries left: %s" % retry) else: raise Exception(output) + raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): - import subprocess - cmnd = ['helm', verb, release] if not chart is None: cmnd.append(chart) diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/aws-cdk-eks-cluster-al2023-nodegroup-test.assets.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/aws-cdk-eks-cluster-al2023-nodegroup-test.assets.json index d18952da8d1e7..7762aea20b1c9 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/aws-cdk-eks-cluster-al2023-nodegroup-test.assets.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/aws-cdk-eks-cluster-al2023-nodegroup-test.assets.json @@ -15,16 +15,16 @@ } } }, - "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069": { + "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a": { "displayName": "Cluster/KubectlProvider/Handler/Code", "source": { - "path": "asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069", + "path": "asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a", "packaging": "zip" }, "destinations": { - "current_account-current_region-0ee668da": { + "current_account-current_region-5b09798b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip", + "objectKey": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -57,16 +57,16 @@ } } }, - "7279518e3260dc2b738536067d6630c35aafe29a6e66f59a55c10628626147c5": { + "e1c2701ce3cf6d669554de8849af20110830a5eea8cff874aab27c5f97997c95": { "displayName": "aws-cdk-eks-cluster-al2023-nodegroup-test Template", "source": { "path": "aws-cdk-eks-cluster-al2023-nodegroup-test.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-79560813": { + "current_account-current_region-fff3171e": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "7279518e3260dc2b738536067d6630c35aafe29a6e66f59a55c10628626147c5.json", + "objectKey": "e1c2701ce3cf6d669554de8849af20110830a5eea8cff874aab27c5f97997c95.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/aws-cdk-eks-cluster-al2023-nodegroup-test.template.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/aws-cdk-eks-cluster-al2023-nodegroup-test.template.json index 4f9b6ea384b28..7e3ea2251c379 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/aws-cdk-eks-cluster-al2023-nodegroup-test.template.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/aws-cdk-eks-cluster-al2023-nodegroup-test.template.json @@ -695,7 +695,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip" + "S3Key": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip" }, "Description": "onEvent handler for EKS kubectl resource provider", "Environment": { diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/manifest.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/manifest.json index e1fef928fde44..16876866936dd 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "artifacts": { "aws-cdk-eks-cluster-al2023-nodegroup-test.assets": { "type": "cdk:asset-manifest", @@ -18,7 +18,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/7279518e3260dc2b738536067d6630c35aafe29a6e66f59a55c10628626147c5.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/e1c2701ce3cf6d669554de8849af20110830a5eea8cff874aab27c5f97997c95.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -611,7 +611,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -1478,6 +1478,7 @@ "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." }, "@aws-cdk/core:explicitStackTags": { + "userValue": true, "recommendedValue": true, "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." }, @@ -1630,5 +1631,5 @@ } } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1023.0" } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/tree.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/tree.json index 3b90732e72fa5..844cfd4e1926e 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/tree.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-al2023-nodegroup.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"aws-cdk-eks-cluster-al2023-nodegroup-test":{"id":"aws-cdk-eks-cluster-al2023-nodegroup-test","path":"aws-cdk-eks-cluster-al2023-nodegroup-test","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"AdminRole":{"id":"AdminRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/AdminRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportAdminRole":{"id":"ImportAdminRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/AdminRole/ImportAdminRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/AdminRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}}}],"Version":"2012-10-17"}}}}}},"Vpc":{"id":"Vpc","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"natGateways":"*","restrictDefaultSecurityGroup":false}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"kubectlLayer":{"id":"kubectlLayer","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*","*","*","*","*","*"]},"children":{"Role":{"id":"Role","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":false},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":false}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":false}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole081AD342A","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}},"mastersRoleAccess":{"id":"mastersRoleAccess","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/mastersRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/mastersRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["AdminRole38563C57","Arn"]}}}}}},"ConfigCommand":{"id":"ConfigCommand","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/ConfigCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"GetTokenCommand":{"id":"GetTokenCommand","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/GetTokenCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"NodegroupMNG_AL2023_X86_64_STANDARD":{"id":"NodegroupMNG_AL2023_X86_64_STANDARD","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_STANDARD","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_STANDARD/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_STANDARD/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_STANDARD/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_STANDARD/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2023_x86_64_STANDARD","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"nodeRole":{"Fn::GetAtt":["ClusterNodegroupMNGAL2023X8664STANDARDNodeGroupRole5CB41DCB","Arn"]},"scalingConfig":{"desiredSize":2,"maxSize":2,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"NodegroupMNG_AL2023_ARM_64_STANDARD":{"id":"NodegroupMNG_AL2023_ARM_64_STANDARD","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_ARM_64_STANDARD","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_ARM_64_STANDARD/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_ARM_64_STANDARD/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_ARM_64_STANDARD/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_ARM_64_STANDARD/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2023_ARM_64_STANDARD","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"nodeRole":{"Fn::GetAtt":["ClusterNodegroupMNGAL2023ARM64STANDARDNodeGroupRole40E4A124","Arn"]},"scalingConfig":{"desiredSize":2,"maxSize":2,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"NodegroupMNG_AL2023_X86_64_NEURON":{"id":"NodegroupMNG_AL2023_X86_64_NEURON","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_NEURON","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_NEURON/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_NEURON/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_NEURON/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_NEURON/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2023_x86_64_NEURON","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"nodeRole":{"Fn::GetAtt":["ClusterNodegroupMNGAL2023X8664NEURONNodeGroupRoleC0707AE1","Arn"]},"scalingConfig":{"desiredSize":2,"maxSize":2,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"NodegroupMNG_AL2023_X86_64_NVIDIA":{"id":"NodegroupMNG_AL2023_X86_64_NVIDIA","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_NVIDIA","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_NVIDIA/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_NVIDIA/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_NVIDIA/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_NVIDIA/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2023_x86_64_NVIDIA","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"nodeRole":{"Fn::GetAtt":["ClusterNodegroupMNGAL2023X8664NVIDIANodeGroupRole611D278C","Arn"]},"scalingConfig":{"desiredSize":2,"maxSize":2,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-eks-cluster-al2023-nodegroup":{"id":"aws-cdk-eks-cluster-al2023-nodegroup","path":"aws-cdk-eks-cluster-al2023-nodegroup","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-eks-cluster-al2023-nodegroup/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-al2023-nodegroup/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-eks-cluster-al2023-nodegroup/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-al2023-nodegroup/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-al2023-nodegroup/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"aws-cdk-eks-cluster-al2023-nodegroup-test":{"id":"aws-cdk-eks-cluster-al2023-nodegroup-test","path":"aws-cdk-eks-cluster-al2023-nodegroup-test","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"AdminRole":{"id":"AdminRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/AdminRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportAdminRole":{"id":"ImportAdminRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/AdminRole/ImportAdminRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/AdminRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}}}],"Version":"2012-10-17"}}}}}},"Vpc":{"id":"Vpc","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"natGateways":"*","restrictDefaultSecurityGroup":false}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"kubectlLayer":{"id":"kubectlLayer","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*","*","*","*","*","*"]},"children":{"Role":{"id":"Role","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":false},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":false}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":false}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole081AD342A","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}},"mastersRoleAccess":{"id":"mastersRoleAccess","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/mastersRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/mastersRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["AdminRole38563C57","Arn"]}}}}}},"ConfigCommand":{"id":"ConfigCommand","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/ConfigCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"GetTokenCommand":{"id":"GetTokenCommand","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/GetTokenCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"NodegroupMNG_AL2023_X86_64_STANDARD":{"id":"NodegroupMNG_AL2023_X86_64_STANDARD","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_STANDARD","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_STANDARD/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_STANDARD/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_STANDARD/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_STANDARD/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2023_x86_64_STANDARD","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"nodeRole":{"Fn::GetAtt":["ClusterNodegroupMNGAL2023X8664STANDARDNodeGroupRole5CB41DCB","Arn"]},"scalingConfig":{"desiredSize":2,"maxSize":2,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"NodegroupMNG_AL2023_ARM_64_STANDARD":{"id":"NodegroupMNG_AL2023_ARM_64_STANDARD","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_ARM_64_STANDARD","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_ARM_64_STANDARD/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_ARM_64_STANDARD/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_ARM_64_STANDARD/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_ARM_64_STANDARD/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2023_ARM_64_STANDARD","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"nodeRole":{"Fn::GetAtt":["ClusterNodegroupMNGAL2023ARM64STANDARDNodeGroupRole40E4A124","Arn"]},"scalingConfig":{"desiredSize":2,"maxSize":2,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"NodegroupMNG_AL2023_X86_64_NEURON":{"id":"NodegroupMNG_AL2023_X86_64_NEURON","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_NEURON","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_NEURON/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_NEURON/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_NEURON/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_NEURON/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2023_x86_64_NEURON","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"nodeRole":{"Fn::GetAtt":["ClusterNodegroupMNGAL2023X8664NEURONNodeGroupRoleC0707AE1","Arn"]},"scalingConfig":{"desiredSize":2,"maxSize":2,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"NodegroupMNG_AL2023_X86_64_NVIDIA":{"id":"NodegroupMNG_AL2023_X86_64_NVIDIA","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_NVIDIA","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_NVIDIA/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_NVIDIA/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_NVIDIA/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/Cluster/NodegroupMNG_AL2023_X86_64_NVIDIA/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2023_x86_64_NVIDIA","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"nodeRole":{"Fn::GetAtt":["ClusterNodegroupMNGAL2023X8664NVIDIANodeGroupRole611D278C","Arn"]},"scalingConfig":{"desiredSize":2,"maxSize":2,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-al2023-nodegroup-test/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-eks-cluster-al2023-nodegroup":{"id":"aws-cdk-eks-cluster-al2023-nodegroup","path":"aws-cdk-eks-cluster-al2023-nodegroup","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-eks-cluster-al2023-nodegroup/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-al2023-nodegroup/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-eks-cluster-al2023-nodegroup/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-al2023-nodegroup/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-al2023-nodegroup/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py similarity index 66% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py index 00d794acd0c73..6c7838f182a45 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py @@ -105,47 +105,91 @@ def get_oci_cmd(repository, version): private_registry = re.match(private_ecr_pattern, repository).groupdict() public_registry = re.match(public_ecr_pattern, repository).groupdict() + # Build helm pull command as array + helm_cmd = ['helm', 'pull', repository, '--version', version , '--untar'] + if private_registry['registry'] is not None: logger.info("Found AWS private repository") - cmnd = [ - f"aws ecr get-login-password --region {private_registry['region']} | " \ - f"helm registry login --username AWS --password-stdin {private_registry['registry']}; helm pull {repository} --version {version} --untar" - ] + ecr_login = ['aws', 'ecr', 'get-login-password', '--region', private_registry['region']] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', private_registry['registry']] + return {'ecr_login': ecr_login, 'registry_login': helm_registry_login, 'helm': helm_cmd} elif public_registry['registry'] is not None: logger.info("Found AWS public repository, will use default region as deployment") region = os.environ.get('AWS_REGION', 'us-east-1') if is_ecr_public_available(region): - cmnd = [ - f"aws ecr-public get-login-password --region us-east-1 | " \ - f"helm registry login --username AWS --password-stdin {public_registry['registry']}; helm pull {repository} --version {version} --untar" - ] + # Public ECR auth is always in us-east-1: https://docs.aws.amazon.com/AmazonECR/latest/public/public-registry-auth.html + ecr_login = ['aws', 'ecr-public', 'get-login-password', '--region', 'us-east-1'] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', public_registry['registry']] + return {'ecr_login': ecr_login, 'helm_registry_login': helm_registry_login, 'helm': helm_cmd} else: - # `aws ecr-public get-login-password` and `helm registry login` not required as ecr public is not available in current region + # No login required for public ECR in non-aws regions # see https://helm.sh/docs/helm/helm_registry_login/ - cmnd = [f"helm pull {repository} --version {version} --untar"] + return {'helm': helm_cmd} else: logger.error("OCI repository format not recognized, falling back to helm pull") - cmnd = [f"helm pull {repository} --version {version} --untar"] - - return cmnd + return {'helm': helm_cmd} -def get_chart_from_oci(tmpdir, repository = None, version = None): +def get_chart_from_oci(tmpdir, repository=None, version=None): + from subprocess import Popen, PIPE - cmnd = get_oci_cmd(repository, version) + commands = get_oci_cmd(repository, version) maxAttempts = 3 retry = maxAttempts while retry > 0: try: - logger.info(cmnd) - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=tmpdir, shell=True) + # Execute login commands if needed + if 'ecr_login' in commands and 'helm_registry_login' in commands: + logger.info("Running login command: %s", commands['ecr_login']) + logger.info("Running registry login command: %s", commands['helm_registry_login']) + + # Start first process: aws ecr get-login-password + # NOTE: We do NOT call p1.wait() here before starting p2. + # Doing so could deadlock if p1's output fills the pipe buffer + # before p2 starts reading. Instead, start p2 immediately so it + # can consume p1's stdout as it's produced. + p1 = Popen(commands['ecr_login'], stdout=PIPE, stderr=PIPE, cwd=tmpdir) + + # Start second process: helm registry login + p2 = Popen(commands['helm_registry_login'], stdin=p1.stdout, stdout=PIPE, stderr=PIPE, cwd=tmpdir) + p1.stdout.close() # Allow p1 to receive SIGPIPE if p2 exits early + + # Wait for p2 to finish first (ensures full pipeline completes) + _, p2_err = p2.communicate() + + # Now wait for p1 so we have a complete stderr and an exit code + p1.wait() + + # Handle p1 failure + if p1.returncode != 0: + p1_err = p1.stderr.read().decode('utf-8', errors='replace') if p1.stderr else '' + logger.error( + "ECR get-login-password failed for repository %s. Error: %s", + repository, + p1_err or "No error details" + ) + raise subprocess.CalledProcessError(p1.returncode, commands['ecr_login'], p1_err.encode()) + + # Handle p2 failure + if p2.returncode != 0: + logger.error( + "Helm registry authentication failed for repository %s. Error: %s", + repository, + p2_err.decode('utf-8', errors='replace') or "No error details" + ) + raise subprocess.CalledProcessError(p2.returncode, commands['helm_registry_login'], p2_err) + + # Execute helm pull command + logger.info("Running helm command: %s", commands['helm']) + output = subprocess.check_output(commands['helm'], stderr=subprocess.STDOUT, cwd=tmpdir) logger.info(output) # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service return os.path.join(tmpdir, repository.rpartition('/')[-1]) + except subprocess.CalledProcessError as exc: output = exc.output if b'Broken pipe' in output: @@ -153,12 +197,11 @@ def get_chart_from_oci(tmpdir, repository = None, version = None): logger.info("Broken pipe, retries left: %s" % retry) else: raise Exception(output) + raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): - import subprocess - cmnd = ['helm', verb, release] if not chart is None: cmnd.append(chart) diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/awscdkeksclusterintegDefaultTestDeployAssertB6AAB3A3.assets.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/awscdkeksclusterintegDefaultTestDeployAssertB6AAB3A3.assets.json index 718d287e50b00..5514f51e17d51 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/awscdkeksclusterintegDefaultTestDeployAssertB6AAB3A3.assets.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/awscdkeksclusterintegDefaultTestDeployAssertB6AAB3A3.assets.json @@ -8,7 +8,7 @@ "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/eks-auto-mode-empty-nodepools-stack.assets.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/eks-auto-mode-empty-nodepools-stack.assets.json index 988f73ec4790b..a830b29a5fcea 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/eks-auto-mode-empty-nodepools-stack.assets.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/eks-auto-mode-empty-nodepools-stack.assets.json @@ -8,7 +8,7 @@ "packaging": "zip" }, "destinations": { - "current_account-us-east-1": { + "current_account-us-east-1-fb96c641": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", "objectKey": "a1acfc2b5f4f6b183fd2bb9863f486bc5edef6a357b355a070d9a0e502df418c.zip", "region": "us-east-1", @@ -23,7 +23,7 @@ "packaging": "file" }, "destinations": { - "current_account-us-east-1": { + "current_account-us-east-1-050baa8b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", "objectKey": "6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip", "region": "us-east-1", @@ -31,16 +31,16 @@ } } }, - "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069": { + "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a": { "displayName": "hello-eks/cluster/KubectlProvider/Handler/Code", "source": { - "path": "asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069", + "path": "asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a", "packaging": "zip" }, "destinations": { - "current_account-us-east-1": { + "current_account-us-east-1-e98e539f": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip", + "objectKey": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip", "region": "us-east-1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" } @@ -53,7 +53,7 @@ "packaging": "file" }, "destinations": { - "current_account-us-east-1": { + "current_account-us-east-1-61982482": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", "objectKey": "c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip", "region": "us-east-1", @@ -68,7 +68,7 @@ "packaging": "zip" }, "destinations": { - "current_account-us-east-1": { + "current_account-us-east-1-23eb53bb": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", "objectKey": "39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip", "region": "us-east-1", @@ -76,16 +76,16 @@ } } }, - "a1ab4ed1a0c8167c195fa4b67c23ba11837ee488d81449aec46402c058931297": { + "b14399101f6b1ebe12dc37133166741277c3d49ba002b81a3a2760b27bc0b497": { "displayName": "eks-auto-mode-empty-nodepools-stack Template", "source": { "path": "eks-auto-mode-empty-nodepools-stack.template.json", "packaging": "file" }, "destinations": { - "current_account-us-east-1": { + "current_account-us-east-1-ead04358": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "a1ab4ed1a0c8167c195fa4b67c23ba11837ee488d81449aec46402c058931297.json", + "objectKey": "b14399101f6b1ebe12dc37133166741277c3d49ba002b81a3a2760b27bc0b497.json", "region": "us-east-1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" } diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/eks-auto-mode-empty-nodepools-stack.template.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/eks-auto-mode-empty-nodepools-stack.template.json index d9eb57efc137c..9be7fdd2d752d 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/eks-auto-mode-empty-nodepools-stack.template.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/eks-auto-mode-empty-nodepools-stack.template.json @@ -852,7 +852,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1" }, - "S3Key": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip" + "S3Key": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip" }, "Description": "onEvent handler for EKS kubectl resource provider", "Environment": { diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/eks-auto-mode-stack.assets.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/eks-auto-mode-stack.assets.json index 90bafbcf2e35a..1576ce211c964 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/eks-auto-mode-stack.assets.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/eks-auto-mode-stack.assets.json @@ -8,7 +8,7 @@ "packaging": "zip" }, "destinations": { - "current_account-us-east-1": { + "current_account-us-east-1-fb96c641": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", "objectKey": "a1acfc2b5f4f6b183fd2bb9863f486bc5edef6a357b355a070d9a0e502df418c.zip", "region": "us-east-1", @@ -23,7 +23,7 @@ "packaging": "file" }, "destinations": { - "current_account-us-east-1": { + "current_account-us-east-1-050baa8b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", "objectKey": "6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip", "region": "us-east-1", @@ -31,16 +31,16 @@ } } }, - "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069": { + "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a": { "displayName": "hello-eks/cluster/KubectlProvider/Handler/Code", "source": { - "path": "asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069", + "path": "asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a", "packaging": "zip" }, "destinations": { - "current_account-us-east-1": { + "current_account-us-east-1-e98e539f": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip", + "objectKey": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip", "region": "us-east-1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" } @@ -53,7 +53,7 @@ "packaging": "file" }, "destinations": { - "current_account-us-east-1": { + "current_account-us-east-1-61982482": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", "objectKey": "c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip", "region": "us-east-1", @@ -68,7 +68,7 @@ "packaging": "zip" }, "destinations": { - "current_account-us-east-1": { + "current_account-us-east-1-23eb53bb": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", "objectKey": "39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip", "region": "us-east-1", @@ -76,16 +76,16 @@ } } }, - "5651362e222d3ec2065342de276c1827c4843515c0ba8f0c49952464697f97ef": { + "6ded5d62718c3c4d7784ebb5399a768db00996d50ad9f3df6583addd51c8a5a2": { "displayName": "eks-auto-mode-stack Template", "source": { "path": "eks-auto-mode-stack.template.json", "packaging": "file" }, "destinations": { - "current_account-us-east-1": { + "current_account-us-east-1-cc7ae81b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "5651362e222d3ec2065342de276c1827c4843515c0ba8f0c49952464697f97ef.json", + "objectKey": "6ded5d62718c3c4d7784ebb5399a768db00996d50ad9f3df6583addd51c8a5a2.json", "region": "us-east-1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" } diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/eks-auto-mode-stack.template.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/eks-auto-mode-stack.template.json index d467ae0b83efd..bc7ccffc2707e 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/eks-auto-mode-stack.template.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/eks-auto-mode-stack.template.json @@ -904,7 +904,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1" }, - "S3Key": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip" + "S3Key": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip" }, "Description": "onEvent handler for EKS kubectl resource provider", "Environment": { diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/integ.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/integ.json index c975898203930..02b0437b10204 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/integ.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/integ.json @@ -10,5 +10,5 @@ "assertionStackName": "awscdkeksclusterintegDefaultTestDeployAssertB6AAB3A3" } }, - "minimumCliVersion": "2.1020.1" + "minimumCliVersion": "2.1020.2" } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/manifest.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/manifest.json index f87848c88c16d..2e3cd4fe20e67 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "artifacts": { "eks-auto-mode-stack.assets": { "type": "cdk:asset-manifest", @@ -18,7 +18,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-us-east-1", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-us-east-1", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/5651362e222d3ec2065342de276c1827c4843515c0ba8f0c49952464697f97ef.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/6ded5d62718c3c4d7784ebb5399a768db00996d50ad9f3df6583addd51c8a5a2.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -695,7 +695,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -904,7 +904,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-us-east-1", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-us-east-1", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/a1ab4ed1a0c8167c195fa4b67c23ba11837ee488d81449aec46402c058931297.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/b14399101f6b1ebe12dc37133166741277c3d49ba002b81a3a2760b27bc0b497.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -1550,7 +1550,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -2112,6 +2112,11 @@ "recommendedValue": true, "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { "userValue": false, "recommendedValue": false, @@ -2261,5 +2266,5 @@ } } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1023.0" } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/tree.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/tree.json index 653377491c869..792e6b90589ed 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/tree.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-auto.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"eks-auto-mode-stack":{"id":"eks-auto-mode-stack","path":"eks-auto-mode-stack","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"Vpc":{"id":"Vpc","path":"eks-auto-mode-stack/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"natGateways":"*"}]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-stack/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"eks-auto-mode-stack/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"eks-auto-mode-stack/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"eks-auto-mode-stack/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-stack/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"eks-auto-mode-stack/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-auto-mode-stack/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-stack/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-auto-mode-stack/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-auto-mode-stack/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"eks-auto-mode-stack/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-stack/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"eks-auto-mode-stack/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-stack/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"eks-auto-mode-stack/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"eks-auto-mode-stack/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-stack/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"eks-auto-mode-stack/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-auto-mode-stack/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-stack/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-auto-mode-stack/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-auto-mode-stack/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"eks-auto-mode-stack/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"eks-auto-mode-stack/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-auto-mode-stack/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"eks-auto-mode-stack/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-auto-mode-stack/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-auto-mode-stack/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-auto-mode-stack/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-auto-mode-stack/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"eks-auto-mode-stack/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"eks-auto-mode-stack/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-auto-mode-stack/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"eks-auto-mode-stack/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-auto-mode-stack/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-auto-mode-stack/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-auto-mode-stack/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-auto-mode-stack/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"eks-auto-mode-stack/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"eks-auto-mode-stack/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"eks-auto-mode-stack/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"eks-auto-mode-stack/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"eks-auto-mode-stack/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"eks-auto-mode-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"eks-auto-mode-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"eks-auto-mode-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"eks-auto-mode-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"Role":{"id":"Role","path":"eks-auto-mode-stack/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportRole":{"id":"ImportRole","path":"eks-auto-mode-stack/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-auto-mode-stack/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:aws:iam::",{"Ref":"AWS::AccountId"},":root"]]}}}],"Version":"2012-10-17"}}}}}},"hello-eks":{"id":"hello-eks","path":"eks-auto-mode-stack/hello-eks","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"kubectl":{"id":"kubectl","path":"eks-auto-mode-stack/hello-eks/kubectl","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"eks-auto-mode-stack/hello-eks/kubectl/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-auto-mode-stack/hello-eks/kubectl/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-auto-mode-stack/hello-eks/kubectl/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/kubectl/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"cluster":{"id":"cluster","path":"eks-auto-mode-stack/hello-eks/cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*","*"]},"children":{"Role":{"id":"Role","path":"eks-auto-mode-stack/hello-eks/cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"eks-auto-mode-stack/hello-eks/cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":["sts:AssumeRole","sts:TagSession"],"Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSComputePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSBlockStoragePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSLoadBalancingPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSNetworkingPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"eks-auto-mode-stack/hello-eks/cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"clusternodePoolRole":{"id":"clusternodePoolRole","path":"eks-auto-mode-stack/hello-eks/cluster/clusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]}]},"children":{"ImportclusternodePoolRole":{"id":"ImportclusternodePoolRole","path":"eks-auto-mode-stack/hello-eks/cluster/clusternodePoolRole/ImportclusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/clusternodePoolRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":true,"nodePools":["system","general-purpose"],"nodeRoleArn":{"Fn::GetAtt":["helloeksclusterclusternodePoolRoleC0692507","Arn"]}},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":true}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["helloeksclusterControlPlaneSecurityGroupEAAB451B","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["helloeksclusterRoleBED770F6","Arn"]},"storageConfig":{"blockStorage":{"enabled":true}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"eks-auto-mode-stack/hello-eks/cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["helloeksclusterKubectlProviderHandlerHasEcrPublic8E4E12CC",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["helloeksclusterA526EE63","Arn"]}}],"Version":"2012-10-17"},"policyName":"helloeksclusterKubectlProviderHandlerServiceRoleDefaultPolicyFE993B49","roles":[{"Ref":"helloeksclusterKubectlProviderHandlerServiceRoleAA5EA2F4"}]}}}}}}},"Code":{"id":"Code","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"helloeksclusterKubectlProviderAwsCliLayer6B0085A5"},{"Ref":"helloekskubectl90D845D3"}],"memorySize":1024,"role":{"Fn::GetAtt":["helloeksclusterKubectlProviderHandlerServiceRoleAA5EA2F4","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["helloeksclusterA526EE63","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["helloeksclusterKubectlProviderHandler87F7258C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["helloeksclusterKubectlProviderHandler87F7258C","Arn"]},":*"]]}]},{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["helloeksclusterKubectlProviderHandler87F7258C","Arn"]}}],"Version":"2012-10-17"},"policyName":"helloeksclusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyF8C6BB77","roles":[{"Ref":"helloeksclusterKubectlProviderframeworkonEventServiceRole7DA17438"}]}}}}}}},"Code":{"id":"Code","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["helloeksclusterKubectlProviderHandler87F7258C","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["helloeksclusterKubectlProviderframeworkonEventServiceRole7DA17438","Arn"]},"runtime":"nodejs22.x","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["helloeksclusterA526EE63","ClusterSecurityGroupId"]}]}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"eks-auto-mode-stack/hello-eks/cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"helloeksclusterA526EE63"},"principalArn":{"Fn::GetAtt":["helloeksclusterKubectlProviderHandlerServiceRoleAA5EA2F4","Arn"]}}}}}},"mastersRoleAccess":{"id":"mastersRoleAccess","path":"eks-auto-mode-stack/hello-eks/cluster/mastersRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/mastersRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"helloeksclusterA526EE63"},"principalArn":{"Fn::GetAtt":["Role1ABCC5F0","Arn"]}}}}}},"ConfigCommand":{"id":"ConfigCommand","path":"eks-auto-mode-stack/hello-eks/cluster/ConfigCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"GetTokenCommand":{"id":"GetTokenCommand","path":"eks-auto-mode-stack/hello-eks/cluster/GetTokenCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"eks-auto-mode-stack/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"eks-auto-mode-stack/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"eks-auto-mode-empty-nodepools-stack":{"id":"eks-auto-mode-empty-nodepools-stack","path":"eks-auto-mode-empty-nodepools-stack","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"Vpc":{"id":"Vpc","path":"eks-auto-mode-empty-nodepools-stack/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"natGateways":"*"}]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"eks-auto-mode-empty-nodepools-stack/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"eks-auto-mode-empty-nodepools-stack/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"eks-auto-mode-empty-nodepools-stack/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"eks-auto-mode-empty-nodepools-stack/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"eks-auto-mode-empty-nodepools-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"eks-auto-mode-empty-nodepools-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"eks-auto-mode-empty-nodepools-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"eks-auto-mode-empty-nodepools-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"Role":{"id":"Role","path":"eks-auto-mode-empty-nodepools-stack/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportRole":{"id":"ImportRole","path":"eks-auto-mode-empty-nodepools-stack/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:aws:iam::",{"Ref":"AWS::AccountId"},":root"]]}}}],"Version":"2012-10-17"}}}}}},"hello-eks":{"id":"hello-eks","path":"eks-auto-mode-empty-nodepools-stack/hello-eks","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"kubectl":{"id":"kubectl","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/kubectl","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/kubectl/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/kubectl/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/kubectl/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/kubectl/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"cluster":{"id":"cluster","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*","*"]},"children":{"Role":{"id":"Role","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":["sts:AssumeRole","sts:TagSession"],"Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSComputePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSBlockStoragePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSLoadBalancingPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSNetworkingPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":true,"nodePools":[]},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":true}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["helloeksclusterControlPlaneSecurityGroupEAAB451B","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["helloeksclusterRoleBED770F6","Arn"]},"storageConfig":{"blockStorage":{"enabled":true}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["helloeksclusterKubectlProviderHandlerHasEcrPublic8E4E12CC",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["helloeksclusterA526EE63","Arn"]}}],"Version":"2012-10-17"},"policyName":"helloeksclusterKubectlProviderHandlerServiceRoleDefaultPolicyFE993B49","roles":[{"Ref":"helloeksclusterKubectlProviderHandlerServiceRoleAA5EA2F4"}]}}}}}}},"Code":{"id":"Code","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"helloeksclusterKubectlProviderAwsCliLayer6B0085A5"},{"Ref":"helloekskubectl90D845D3"}],"memorySize":1024,"role":{"Fn::GetAtt":["helloeksclusterKubectlProviderHandlerServiceRoleAA5EA2F4","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["helloeksclusterA526EE63","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["helloeksclusterKubectlProviderHandler87F7258C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["helloeksclusterKubectlProviderHandler87F7258C","Arn"]},":*"]]}]},{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["helloeksclusterKubectlProviderHandler87F7258C","Arn"]}}],"Version":"2012-10-17"},"policyName":"helloeksclusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyF8C6BB77","roles":[{"Ref":"helloeksclusterKubectlProviderframeworkonEventServiceRole7DA17438"}]}}}}}}},"Code":{"id":"Code","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["helloeksclusterKubectlProviderHandler87F7258C","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["helloeksclusterKubectlProviderframeworkonEventServiceRole7DA17438","Arn"]},"runtime":"nodejs22.x","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["helloeksclusterA526EE63","ClusterSecurityGroupId"]}]}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"helloeksclusterA526EE63"},"principalArn":{"Fn::GetAtt":["helloeksclusterKubectlProviderHandlerServiceRoleAA5EA2F4","Arn"]}}}}}},"mastersRoleAccess":{"id":"mastersRoleAccess","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/mastersRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/mastersRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"helloeksclusterA526EE63"},"principalArn":{"Fn::GetAtt":["Role1ABCC5F0","Arn"]}}}}}},"ConfigCommand":{"id":"ConfigCommand","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/ConfigCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"GetTokenCommand":{"id":"GetTokenCommand","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/GetTokenCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"eks-auto-mode-empty-nodepools-stack/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"eks-auto-mode-empty-nodepools-stack/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-eks-cluster-integ":{"id":"aws-cdk-eks-cluster-integ","path":"aws-cdk-eks-cluster-integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-eks-cluster-integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-eks-cluster-integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"eks-auto-mode-stack":{"id":"eks-auto-mode-stack","path":"eks-auto-mode-stack","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"Vpc":{"id":"Vpc","path":"eks-auto-mode-stack/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"natGateways":"*"}]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-stack/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"eks-auto-mode-stack/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"eks-auto-mode-stack/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"eks-auto-mode-stack/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-stack/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"eks-auto-mode-stack/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-auto-mode-stack/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-stack/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-auto-mode-stack/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-auto-mode-stack/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"eks-auto-mode-stack/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-stack/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"eks-auto-mode-stack/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-stack/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"eks-auto-mode-stack/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"eks-auto-mode-stack/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-stack/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"eks-auto-mode-stack/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-auto-mode-stack/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-stack/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-auto-mode-stack/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-auto-mode-stack/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"eks-auto-mode-stack/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"eks-auto-mode-stack/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-auto-mode-stack/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"eks-auto-mode-stack/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-auto-mode-stack/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-auto-mode-stack/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-auto-mode-stack/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-auto-mode-stack/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"eks-auto-mode-stack/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"eks-auto-mode-stack/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-auto-mode-stack/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"eks-auto-mode-stack/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-auto-mode-stack/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-auto-mode-stack/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-auto-mode-stack/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-auto-mode-stack/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"eks-auto-mode-stack/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"eks-auto-mode-stack/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"eks-auto-mode-stack/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"eks-auto-mode-stack/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"eks-auto-mode-stack/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"eks-auto-mode-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"eks-auto-mode-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"eks-auto-mode-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"eks-auto-mode-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"Role":{"id":"Role","path":"eks-auto-mode-stack/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportRole":{"id":"ImportRole","path":"eks-auto-mode-stack/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-auto-mode-stack/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:aws:iam::",{"Ref":"AWS::AccountId"},":root"]]}}}],"Version":"2012-10-17"}}}}}},"hello-eks":{"id":"hello-eks","path":"eks-auto-mode-stack/hello-eks","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"kubectl":{"id":"kubectl","path":"eks-auto-mode-stack/hello-eks/kubectl","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"eks-auto-mode-stack/hello-eks/kubectl/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-auto-mode-stack/hello-eks/kubectl/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-auto-mode-stack/hello-eks/kubectl/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/kubectl/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"cluster":{"id":"cluster","path":"eks-auto-mode-stack/hello-eks/cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*","*"]},"children":{"Role":{"id":"Role","path":"eks-auto-mode-stack/hello-eks/cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"eks-auto-mode-stack/hello-eks/cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":["sts:AssumeRole","sts:TagSession"],"Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSComputePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSBlockStoragePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSLoadBalancingPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSNetworkingPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"eks-auto-mode-stack/hello-eks/cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"clusternodePoolRole":{"id":"clusternodePoolRole","path":"eks-auto-mode-stack/hello-eks/cluster/clusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]}]},"children":{"ImportclusternodePoolRole":{"id":"ImportclusternodePoolRole","path":"eks-auto-mode-stack/hello-eks/cluster/clusternodePoolRole/ImportclusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/clusternodePoolRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":true,"nodePools":["system","general-purpose"],"nodeRoleArn":{"Fn::GetAtt":["helloeksclusterclusternodePoolRoleC0692507","Arn"]}},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":true}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["helloeksclusterControlPlaneSecurityGroupEAAB451B","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["helloeksclusterRoleBED770F6","Arn"]},"storageConfig":{"blockStorage":{"enabled":true}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"eks-auto-mode-stack/hello-eks/cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["helloeksclusterKubectlProviderHandlerHasEcrPublic8E4E12CC",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["helloeksclusterA526EE63","Arn"]}}],"Version":"2012-10-17"},"policyName":"helloeksclusterKubectlProviderHandlerServiceRoleDefaultPolicyFE993B49","roles":[{"Ref":"helloeksclusterKubectlProviderHandlerServiceRoleAA5EA2F4"}]}}}}}}},"Code":{"id":"Code","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"helloeksclusterKubectlProviderAwsCliLayer6B0085A5"},{"Ref":"helloekskubectl90D845D3"}],"memorySize":1024,"role":{"Fn::GetAtt":["helloeksclusterKubectlProviderHandlerServiceRoleAA5EA2F4","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["helloeksclusterA526EE63","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["helloeksclusterKubectlProviderHandler87F7258C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["helloeksclusterKubectlProviderHandler87F7258C","Arn"]},":*"]]}]},{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["helloeksclusterKubectlProviderHandler87F7258C","Arn"]}}],"Version":"2012-10-17"},"policyName":"helloeksclusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyF8C6BB77","roles":[{"Ref":"helloeksclusterKubectlProviderframeworkonEventServiceRole7DA17438"}]}}}}}}},"Code":{"id":"Code","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (eks-auto-mode-stack/hello-eks/cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["helloeksclusterKubectlProviderHandler87F7258C","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["helloeksclusterKubectlProviderframeworkonEventServiceRole7DA17438","Arn"]},"runtime":"nodejs22.x","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["helloeksclusterA526EE63","ClusterSecurityGroupId"]}]}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"eks-auto-mode-stack/hello-eks/cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"helloeksclusterA526EE63"},"principalArn":{"Fn::GetAtt":["helloeksclusterKubectlProviderHandlerServiceRoleAA5EA2F4","Arn"]}}}}}},"mastersRoleAccess":{"id":"mastersRoleAccess","path":"eks-auto-mode-stack/hello-eks/cluster/mastersRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-stack/hello-eks/cluster/mastersRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"helloeksclusterA526EE63"},"principalArn":{"Fn::GetAtt":["Role1ABCC5F0","Arn"]}}}}}},"ConfigCommand":{"id":"ConfigCommand","path":"eks-auto-mode-stack/hello-eks/cluster/ConfigCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"GetTokenCommand":{"id":"GetTokenCommand","path":"eks-auto-mode-stack/hello-eks/cluster/GetTokenCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"eks-auto-mode-stack/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"eks-auto-mode-stack/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"eks-auto-mode-empty-nodepools-stack":{"id":"eks-auto-mode-empty-nodepools-stack","path":"eks-auto-mode-empty-nodepools-stack","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"Vpc":{"id":"Vpc","path":"eks-auto-mode-empty-nodepools-stack/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"natGateways":"*"}]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-auto-mode-empty-nodepools-stack/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"eks-auto-mode-empty-nodepools-stack/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"eks-auto-mode-empty-nodepools-stack/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"eks-auto-mode-empty-nodepools-stack/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"eks-auto-mode-empty-nodepools-stack/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"eks-auto-mode-empty-nodepools-stack/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"eks-auto-mode-empty-nodepools-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"eks-auto-mode-empty-nodepools-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"eks-auto-mode-empty-nodepools-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"eks-auto-mode-empty-nodepools-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"Role":{"id":"Role","path":"eks-auto-mode-empty-nodepools-stack/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportRole":{"id":"ImportRole","path":"eks-auto-mode-empty-nodepools-stack/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:aws:iam::",{"Ref":"AWS::AccountId"},":root"]]}}}],"Version":"2012-10-17"}}}}}},"hello-eks":{"id":"hello-eks","path":"eks-auto-mode-empty-nodepools-stack/hello-eks","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"},"children":{"kubectl":{"id":"kubectl","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/kubectl","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/kubectl/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/kubectl/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/kubectl/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/kubectl/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"cluster":{"id":"cluster","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*","*"]},"children":{"Role":{"id":"Role","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":["sts:AssumeRole","sts:TagSession"],"Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSComputePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSBlockStoragePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSLoadBalancingPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSNetworkingPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":true,"nodePools":[]},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":true}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["helloeksclusterControlPlaneSecurityGroupEAAB451B","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["helloeksclusterRoleBED770F6","Arn"]},"storageConfig":{"blockStorage":{"enabled":true}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["helloeksclusterKubectlProviderHandlerHasEcrPublic8E4E12CC",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["helloeksclusterA526EE63","Arn"]}}],"Version":"2012-10-17"},"policyName":"helloeksclusterKubectlProviderHandlerServiceRoleDefaultPolicyFE993B49","roles":[{"Ref":"helloeksclusterKubectlProviderHandlerServiceRoleAA5EA2F4"}]}}}}}}},"Code":{"id":"Code","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"helloeksclusterKubectlProviderAwsCliLayer6B0085A5"},{"Ref":"helloekskubectl90D845D3"}],"memorySize":1024,"role":{"Fn::GetAtt":["helloeksclusterKubectlProviderHandlerServiceRoleAA5EA2F4","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["helloeksclusterA526EE63","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["helloeksclusterKubectlProviderHandler87F7258C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["helloeksclusterKubectlProviderHandler87F7258C","Arn"]},":*"]]}]},{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["helloeksclusterKubectlProviderHandler87F7258C","Arn"]}}],"Version":"2012-10-17"},"policyName":"helloeksclusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyF8C6BB77","roles":[{"Ref":"helloeksclusterKubectlProviderframeworkonEventServiceRole7DA17438"}]}}}}}}},"Code":{"id":"Code","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["helloeksclusterKubectlProviderHandler87F7258C","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["helloeksclusterKubectlProviderframeworkonEventServiceRole7DA17438","Arn"]},"runtime":"nodejs22.x","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["helloeksclusterA526EE63","ClusterSecurityGroupId"]}]}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"helloeksclusterA526EE63"},"principalArn":{"Fn::GetAtt":["helloeksclusterKubectlProviderHandlerServiceRoleAA5EA2F4","Arn"]}}}}}},"mastersRoleAccess":{"id":"mastersRoleAccess","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/mastersRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/mastersRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"helloeksclusterA526EE63"},"principalArn":{"Fn::GetAtt":["Role1ABCC5F0","Arn"]}}}}}},"ConfigCommand":{"id":"ConfigCommand","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/ConfigCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"GetTokenCommand":{"id":"GetTokenCommand","path":"eks-auto-mode-empty-nodepools-stack/hello-eks/cluster/GetTokenCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"eks-auto-mode-empty-nodepools-stack/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"eks-auto-mode-empty-nodepools-stack/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-eks-cluster-integ":{"id":"aws-cdk-eks-cluster-integ","path":"aws-cdk-eks-cluster-integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-eks-cluster-integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-eks-cluster-integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py deleted file mode 100644 index 00d794acd0c73..0000000000000 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py +++ /dev/null @@ -1,207 +0,0 @@ -import json -import logging -import os -import re -import subprocess -import shutil -import tempfile -import zipfile -import boto3 - -logger = logging.getLogger() -logger.setLevel(logging.INFO) - -# these are coming from the kubectl layer -os.environ['PATH'] = '/opt/helm:/opt/awscli:' + os.environ['PATH'] - -outdir = os.environ.get('TEST_OUTDIR', '/tmp') -kubeconfig = os.path.join(outdir, 'kubeconfig') - -def get_chart_asset_from_url(chart_asset_url): - chart_zip = os.path.join(outdir, 'chart.zip') - shutil.rmtree(chart_zip, ignore_errors=True) - subprocess.check_call(['aws', 's3', 'cp', chart_asset_url, chart_zip]) - chart_dir = os.path.join(outdir, 'chart') - shutil.rmtree(chart_dir, ignore_errors=True) - os.mkdir(chart_dir) - with zipfile.ZipFile(chart_zip, 'r') as zip_ref: - zip_ref.extractall(chart_dir) - return chart_dir - -def is_ecr_public_available(region): - s = boto3.Session() - return s.get_partition_for_region(region) == 'aws' - -def helm_handler(event, context): - logger.info(json.dumps(dict(event, ResponseURL='...'))) - - request_type = event['RequestType'] - props = event['ResourceProperties'] - - # resource properties - cluster_name = props['ClusterName'] - release = props['Release'] - chart = props.get('Chart', None) - chart_asset_url = props.get('ChartAssetURL', None) - version = props.get('Version', None) - wait = props.get('Wait', False) - atomic = props.get('Atomic', False) - timeout = props.get('Timeout', None) - namespace = props.get('Namespace', None) - create_namespace = props.get('CreateNamespace', None) - repository = props.get('Repository', None) - values_text = props.get('Values', None) - skip_crds = props.get('SkipCrds', False) - - # "log in" to the cluster - subprocess.check_call([ 'aws', 'eks', 'update-kubeconfig', - '--name', cluster_name, - '--kubeconfig', kubeconfig - ]) - - if os.path.isfile(kubeconfig): - os.chmod(kubeconfig, 0o600) - - # Write out the values to a file and include them with the install and upgrade - values_file = None - if not request_type == "Delete" and not values_text is None: - values = json.loads(values_text) - values_file = os.path.join(outdir, 'values.yaml') - with open(values_file, "w") as f: - f.write(json.dumps(values, indent=2)) - - if request_type == 'Create' or request_type == 'Update': - # Ensure chart or chart_asset_url are set - if chart == None and chart_asset_url == None: - raise RuntimeError(f'chart or chartAsset must be specified') - - if chart_asset_url != None: - assert(chart==None) - assert(repository==None) - assert(version==None) - if not chart_asset_url.startswith('s3://'): - raise RuntimeError(f'ChartAssetURL must point to as s3 location but is {chart_asset_url}') - # future work: support versions from s3 assets - chart = get_chart_asset_from_url(chart_asset_url) - - if repository is not None and repository.startswith('oci://'): - tmpdir = tempfile.TemporaryDirectory() - chart_dir = get_chart_from_oci(tmpdir.name, repository, version) - chart = chart_dir - - helm('upgrade', release, chart, repository, values_file, namespace, version, wait, timeout, create_namespace, atomic=atomic) - elif request_type == "Delete": - try: - helm('uninstall', release, namespace=namespace, wait=wait, timeout=timeout) - except Exception as e: - logger.info("delete error: %s" % e) - - -def get_oci_cmd(repository, version): - # Generates OCI command based on pattern. Public ECR vs Private ECR are treated differently. - private_ecr_pattern = 'oci://(?P\d+\.dkr\.ecr\.(?P[a-z0-9\-]+)\.(?P[a-z0-9\.-]+))*' - public_ecr_pattern = 'oci://(?Ppublic\.ecr\.aws)*' - - private_registry = re.match(private_ecr_pattern, repository).groupdict() - public_registry = re.match(public_ecr_pattern, repository).groupdict() - - if private_registry['registry'] is not None: - logger.info("Found AWS private repository") - cmnd = [ - f"aws ecr get-login-password --region {private_registry['region']} | " \ - f"helm registry login --username AWS --password-stdin {private_registry['registry']}; helm pull {repository} --version {version} --untar" - ] - elif public_registry['registry'] is not None: - logger.info("Found AWS public repository, will use default region as deployment") - region = os.environ.get('AWS_REGION', 'us-east-1') - - if is_ecr_public_available(region): - cmnd = [ - f"aws ecr-public get-login-password --region us-east-1 | " \ - f"helm registry login --username AWS --password-stdin {public_registry['registry']}; helm pull {repository} --version {version} --untar" - ] - else: - # `aws ecr-public get-login-password` and `helm registry login` not required as ecr public is not available in current region - # see https://helm.sh/docs/helm/helm_registry_login/ - cmnd = [f"helm pull {repository} --version {version} --untar"] - else: - logger.error("OCI repository format not recognized, falling back to helm pull") - cmnd = [f"helm pull {repository} --version {version} --untar"] - - return cmnd - - -def get_chart_from_oci(tmpdir, repository = None, version = None): - - cmnd = get_oci_cmd(repository, version) - - maxAttempts = 3 - retry = maxAttempts - while retry > 0: - try: - logger.info(cmnd) - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=tmpdir, shell=True) - logger.info(output) - - # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. - # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service - return os.path.join(tmpdir, repository.rpartition('/')[-1]) - except subprocess.CalledProcessError as exc: - output = exc.output - if b'Broken pipe' in output: - retry = retry - 1 - logger.info("Broken pipe, retries left: %s" % retry) - else: - raise Exception(output) - raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') - - -def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): - import subprocess - - cmnd = ['helm', verb, release] - if not chart is None: - cmnd.append(chart) - if verb == 'upgrade': - cmnd.append('--install') - if create_namespace: - cmnd.append('--create-namespace') - if not repo is None: - cmnd.extend(['--repo', repo]) - if not file is None: - cmnd.extend(['--values', file]) - if not version is None: - cmnd.extend(['--version', version]) - if not namespace is None: - cmnd.extend(['--namespace', namespace]) - if wait: - cmnd.append('--wait') - if skip_crds: - cmnd.append('--skip-crds') - if not timeout is None: - cmnd.extend(['--timeout', timeout]) - if atomic: - cmnd.append('--atomic') - cmnd.extend(['--kubeconfig', kubeconfig]) - - # Log the full helm command for better troubleshooting - logger.info("Running command: %s", cmnd) - - maxAttempts = 3 - retry = maxAttempts - while retry > 0: - try: - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=outdir) - logger.info(output.decode('utf-8', errors='replace')) - return - except subprocess.CalledProcessError as exc: - output = exc.output - if b'Broken pipe' in output: - retry = retry - 1 - logger.info("Broken pipe, retries left: %s" % retry) - else: - error_message = output.decode('utf-8', errors='replace') - logger.error("Command failed: %s", cmnd) - logger.error("Error output: %s", error_message) - raise Exception(output) - raise Exception(f'Operation failed after {maxAttempts} attempts: {output.decode("utf-8", errors="replace")}') diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py new file mode 100644 index 0000000000000..6c7838f182a45 --- /dev/null +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py @@ -0,0 +1,250 @@ +import json +import logging +import os +import re +import subprocess +import shutil +import tempfile +import zipfile +import boto3 + +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +# these are coming from the kubectl layer +os.environ['PATH'] = '/opt/helm:/opt/awscli:' + os.environ['PATH'] + +outdir = os.environ.get('TEST_OUTDIR', '/tmp') +kubeconfig = os.path.join(outdir, 'kubeconfig') + +def get_chart_asset_from_url(chart_asset_url): + chart_zip = os.path.join(outdir, 'chart.zip') + shutil.rmtree(chart_zip, ignore_errors=True) + subprocess.check_call(['aws', 's3', 'cp', chart_asset_url, chart_zip]) + chart_dir = os.path.join(outdir, 'chart') + shutil.rmtree(chart_dir, ignore_errors=True) + os.mkdir(chart_dir) + with zipfile.ZipFile(chart_zip, 'r') as zip_ref: + zip_ref.extractall(chart_dir) + return chart_dir + +def is_ecr_public_available(region): + s = boto3.Session() + return s.get_partition_for_region(region) == 'aws' + +def helm_handler(event, context): + logger.info(json.dumps(dict(event, ResponseURL='...'))) + + request_type = event['RequestType'] + props = event['ResourceProperties'] + + # resource properties + cluster_name = props['ClusterName'] + release = props['Release'] + chart = props.get('Chart', None) + chart_asset_url = props.get('ChartAssetURL', None) + version = props.get('Version', None) + wait = props.get('Wait', False) + atomic = props.get('Atomic', False) + timeout = props.get('Timeout', None) + namespace = props.get('Namespace', None) + create_namespace = props.get('CreateNamespace', None) + repository = props.get('Repository', None) + values_text = props.get('Values', None) + skip_crds = props.get('SkipCrds', False) + + # "log in" to the cluster + subprocess.check_call([ 'aws', 'eks', 'update-kubeconfig', + '--name', cluster_name, + '--kubeconfig', kubeconfig + ]) + + if os.path.isfile(kubeconfig): + os.chmod(kubeconfig, 0o600) + + # Write out the values to a file and include them with the install and upgrade + values_file = None + if not request_type == "Delete" and not values_text is None: + values = json.loads(values_text) + values_file = os.path.join(outdir, 'values.yaml') + with open(values_file, "w") as f: + f.write(json.dumps(values, indent=2)) + + if request_type == 'Create' or request_type == 'Update': + # Ensure chart or chart_asset_url are set + if chart == None and chart_asset_url == None: + raise RuntimeError(f'chart or chartAsset must be specified') + + if chart_asset_url != None: + assert(chart==None) + assert(repository==None) + assert(version==None) + if not chart_asset_url.startswith('s3://'): + raise RuntimeError(f'ChartAssetURL must point to as s3 location but is {chart_asset_url}') + # future work: support versions from s3 assets + chart = get_chart_asset_from_url(chart_asset_url) + + if repository is not None and repository.startswith('oci://'): + tmpdir = tempfile.TemporaryDirectory() + chart_dir = get_chart_from_oci(tmpdir.name, repository, version) + chart = chart_dir + + helm('upgrade', release, chart, repository, values_file, namespace, version, wait, timeout, create_namespace, atomic=atomic) + elif request_type == "Delete": + try: + helm('uninstall', release, namespace=namespace, wait=wait, timeout=timeout) + except Exception as e: + logger.info("delete error: %s" % e) + + +def get_oci_cmd(repository, version): + # Generates OCI command based on pattern. Public ECR vs Private ECR are treated differently. + private_ecr_pattern = 'oci://(?P\d+\.dkr\.ecr\.(?P[a-z0-9\-]+)\.(?P[a-z0-9\.-]+))*' + public_ecr_pattern = 'oci://(?Ppublic\.ecr\.aws)*' + + private_registry = re.match(private_ecr_pattern, repository).groupdict() + public_registry = re.match(public_ecr_pattern, repository).groupdict() + + # Build helm pull command as array + helm_cmd = ['helm', 'pull', repository, '--version', version , '--untar'] + + if private_registry['registry'] is not None: + logger.info("Found AWS private repository") + ecr_login = ['aws', 'ecr', 'get-login-password', '--region', private_registry['region']] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', private_registry['registry']] + return {'ecr_login': ecr_login, 'registry_login': helm_registry_login, 'helm': helm_cmd} + elif public_registry['registry'] is not None: + logger.info("Found AWS public repository, will use default region as deployment") + region = os.environ.get('AWS_REGION', 'us-east-1') + + if is_ecr_public_available(region): + # Public ECR auth is always in us-east-1: https://docs.aws.amazon.com/AmazonECR/latest/public/public-registry-auth.html + ecr_login = ['aws', 'ecr-public', 'get-login-password', '--region', 'us-east-1'] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', public_registry['registry']] + return {'ecr_login': ecr_login, 'helm_registry_login': helm_registry_login, 'helm': helm_cmd} + else: + # No login required for public ECR in non-aws regions + # see https://helm.sh/docs/helm/helm_registry_login/ + return {'helm': helm_cmd} + else: + logger.error("OCI repository format not recognized, falling back to helm pull") + return {'helm': helm_cmd} + + +def get_chart_from_oci(tmpdir, repository=None, version=None): + from subprocess import Popen, PIPE + + commands = get_oci_cmd(repository, version) + + maxAttempts = 3 + retry = maxAttempts + while retry > 0: + try: + # Execute login commands if needed + if 'ecr_login' in commands and 'helm_registry_login' in commands: + logger.info("Running login command: %s", commands['ecr_login']) + logger.info("Running registry login command: %s", commands['helm_registry_login']) + + # Start first process: aws ecr get-login-password + # NOTE: We do NOT call p1.wait() here before starting p2. + # Doing so could deadlock if p1's output fills the pipe buffer + # before p2 starts reading. Instead, start p2 immediately so it + # can consume p1's stdout as it's produced. + p1 = Popen(commands['ecr_login'], stdout=PIPE, stderr=PIPE, cwd=tmpdir) + + # Start second process: helm registry login + p2 = Popen(commands['helm_registry_login'], stdin=p1.stdout, stdout=PIPE, stderr=PIPE, cwd=tmpdir) + p1.stdout.close() # Allow p1 to receive SIGPIPE if p2 exits early + + # Wait for p2 to finish first (ensures full pipeline completes) + _, p2_err = p2.communicate() + + # Now wait for p1 so we have a complete stderr and an exit code + p1.wait() + + # Handle p1 failure + if p1.returncode != 0: + p1_err = p1.stderr.read().decode('utf-8', errors='replace') if p1.stderr else '' + logger.error( + "ECR get-login-password failed for repository %s. Error: %s", + repository, + p1_err or "No error details" + ) + raise subprocess.CalledProcessError(p1.returncode, commands['ecr_login'], p1_err.encode()) + + # Handle p2 failure + if p2.returncode != 0: + logger.error( + "Helm registry authentication failed for repository %s. Error: %s", + repository, + p2_err.decode('utf-8', errors='replace') or "No error details" + ) + raise subprocess.CalledProcessError(p2.returncode, commands['helm_registry_login'], p2_err) + + # Execute helm pull command + logger.info("Running helm command: %s", commands['helm']) + output = subprocess.check_output(commands['helm'], stderr=subprocess.STDOUT, cwd=tmpdir) + logger.info(output) + + # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. + # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service + return os.path.join(tmpdir, repository.rpartition('/')[-1]) + + except subprocess.CalledProcessError as exc: + output = exc.output + if b'Broken pipe' in output: + retry = retry - 1 + logger.info("Broken pipe, retries left: %s" % retry) + else: + raise Exception(output) + + raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') + + +def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): + cmnd = ['helm', verb, release] + if not chart is None: + cmnd.append(chart) + if verb == 'upgrade': + cmnd.append('--install') + if create_namespace: + cmnd.append('--create-namespace') + if not repo is None: + cmnd.extend(['--repo', repo]) + if not file is None: + cmnd.extend(['--values', file]) + if not version is None: + cmnd.extend(['--version', version]) + if not namespace is None: + cmnd.extend(['--namespace', namespace]) + if wait: + cmnd.append('--wait') + if skip_crds: + cmnd.append('--skip-crds') + if not timeout is None: + cmnd.extend(['--timeout', timeout]) + if atomic: + cmnd.append('--atomic') + cmnd.extend(['--kubeconfig', kubeconfig]) + + # Log the full helm command for better troubleshooting + logger.info("Running command: %s", cmnd) + + maxAttempts = 3 + retry = maxAttempts + while retry > 0: + try: + output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=outdir) + logger.info(output.decode('utf-8', errors='replace')) + return + except subprocess.CalledProcessError as exc: + output = exc.output + if b'Broken pipe' in output: + retry = retry - 1 + logger.info("Broken pipe, retries left: %s" % retry) + else: + error_message = output.decode('utf-8', errors='replace') + logger.error("Command failed: %s", cmnd) + logger.error("Error output: %s", error_message) + raise Exception(output) + raise Exception(f'Operation failed after {maxAttempts} attempts: {output.decode("utf-8", errors="replace")}') diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/aws-cdk-eks-import-cluster-test.assets.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/aws-cdk-eks-import-cluster-test.assets.json index 699d94c43cb20..8fd0482c11c80 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/aws-cdk-eks-import-cluster-test.assets.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/aws-cdk-eks-import-cluster-test.assets.json @@ -15,16 +15,16 @@ } } }, - "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069": { + "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a": { "displayName": "Cluster/KubectlProvider/Handler/Code", "source": { - "path": "asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069", + "path": "asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a", "packaging": "zip" }, "destinations": { - "current_account-current_region-0ee668da": { + "current_account-current_region-5b09798b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip", + "objectKey": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -99,16 +99,16 @@ } } }, - "a1d7e0c5e28a233b38d04aff801af5a0e66a492a65348cd1c6a3377e5218877b": { + "b1f12ac3ea9a5f954babd5d1709d727de192a9b6960521dd4f410c2ae2a5f833": { "displayName": "aws-cdk-eks-import-cluster-test Template", "source": { "path": "aws-cdk-eks-import-cluster-test.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-267ca31c": { + "current_account-current_region-bda273fe": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "a1d7e0c5e28a233b38d04aff801af5a0e66a492a65348cd1c6a3377e5218877b.json", + "objectKey": "b1f12ac3ea9a5f954babd5d1709d727de192a9b6960521dd4f410c2ae2a5f833.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/aws-cdk-eks-import-cluster-test.template.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/aws-cdk-eks-import-cluster-test.template.json index c554fff5746c2..49fa384cdbaef 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/aws-cdk-eks-import-cluster-test.template.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/aws-cdk-eks-import-cluster-test.template.json @@ -737,7 +737,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip" + "S3Key": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip" }, "Description": "onEvent handler for EKS kubectl resource provider", "Environment": { diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/manifest.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/manifest.json index a0e4a80131629..76eb6285d0d56 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "artifacts": { "aws-cdk-eks-import-cluster-test.assets": { "type": "cdk:asset-manifest", @@ -18,7 +18,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/a1d7e0c5e28a233b38d04aff801af5a0e66a492a65348cd1c6a3377e5218877b.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/b1f12ac3ea9a5f954babd5d1709d727de192a9b6960521dd4f410c2ae2a5f833.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -617,7 +617,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -1555,6 +1555,7 @@ "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." }, "@aws-cdk/core:explicitStackTags": { + "userValue": true, "recommendedValue": true, "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." }, @@ -1707,5 +1708,5 @@ } } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1023.0" } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/tree.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/tree.json index af9a6025be7d5..8f80b19a00bcd 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/tree.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-imported.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"aws-cdk-eks-import-cluster-test":{"id":"aws-cdk-eks-import-cluster-test","path":"aws-cdk-eks-import-cluster-test","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"Vpc":{"id":"Vpc","path":"aws-cdk-eks-import-cluster-test/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"maxAzs":"*","natGateways":"*","restrictDefaultSecurityGroup":false}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"aws-cdk-eks-import-cluster-test/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"aws-cdk-eks-import-cluster-test/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"EksAdminRole":{"id":"EksAdminRole","path":"aws-cdk-eks-import-cluster-test/EksAdminRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportEksAdminRole":{"id":"ImportEksAdminRole","path":"aws-cdk-eks-import-cluster-test/EksAdminRole/ImportEksAdminRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/EksAdminRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}}}],"Version":"2012-10-17"},"roleName":"eksAdminrole-aws-cdk-eks-import-cluster-test"}}}}},"kubectlLayer":{"id":"kubectlLayer","path":"aws-cdk-eks-import-cluster-test/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-import-cluster-test/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-import-cluster-test/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-import-cluster-test/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"aws-cdk-eks-import-cluster-test/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*","*","*"]},"children":{"Role":{"id":"Role","path":"aws-cdk-eks-import-cluster-test/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-import-cluster-test/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"aws-cdk-eks-import-cluster-test/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":false},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":false}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":false}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"aws-cdk-eks-import-cluster-test/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}},{"Action":["s3:GetBucket*","s3:GetObject*","s3:List*"],"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"}]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole081AD342A","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"aws-cdk-eks-import-cluster-test/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}},"mastersRoleAccess":{"id":"mastersRoleAccess","path":"aws-cdk-eks-import-cluster-test/Cluster/mastersRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/mastersRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["EksAdminRole1C96C514","Arn"]}}}}}},"NodegroupDefaultCapacity":{"id":"NodegroupDefaultCapacity","path":"aws-cdk-eks-import-cluster-test/Cluster/NodegroupDefaultCapacity","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-import-cluster-test/Cluster/NodegroupDefaultCapacity/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-import-cluster-test/Cluster/NodegroupDefaultCapacity/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/NodegroupDefaultCapacity/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/NodegroupDefaultCapacity/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2_x86_64","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"instanceTypes":["m5.large"],"nodeRole":{"Fn::GetAtt":["ClusterNodegroupDefaultCapacityNodeGroupRole55953B04","Arn"]},"scalingConfig":{"desiredSize":2,"maxSize":2,"minSize":2},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"ConfigCommand":{"id":"ConfigCommand","path":"aws-cdk-eks-import-cluster-test/Cluster/ConfigCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"GetTokenCommand":{"id":"GetTokenCommand","path":"aws-cdk-eks-import-cluster-test/Cluster/GetTokenCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"OpenIdConnectProvider":{"id":"OpenIdConnectProvider","path":"aws-cdk-eks-import-cluster-test/Cluster/OpenIdConnectProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.OpenIdConnectProvider","version":"0.0.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/OpenIdConnectProvider/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/Cluster/OpenIdConnectProvider/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"aws-cdk-eks-import-cluster-test/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"KubectlProvider":{"id":"KubectlProvider","path":"aws-cdk-eks-import-cluster-test/KubectlProvider","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider":{"id":"Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider","path":"aws-cdk-eks-import-cluster-test/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-import-cluster-test/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-import-cluster-test/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-import-cluster-test/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"ImportedCluster":{"id":"ImportedCluster","path":"aws-cdk-eks-import-cluster-test/ImportedCluster","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]},"children":{"manifest-HelloApp":{"id":"manifest-HelloApp","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/manifest-HelloApp","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/manifest-HelloApp/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/manifest-HelloApp/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"chart-dashboard":{"id":"chart-dashboard","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/chart-dashboard","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/chart-dashboard/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/chart-dashboard/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"chart-test-chart":{"id":"chart-test-chart","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/chart-test-chart","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/chart-test-chart/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/chart-test-chart/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"cdk8s-chart":{"id":"cdk8s-chart","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/cdk8s-chart","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/cdk8s-chart/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/cdk8s-chart/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"manifest-nginx-namespace":{"id":"manifest-nginx-namespace","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/manifest-nginx-namespace","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/manifest-nginx-namespace/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/manifest-nginx-namespace/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"chart-nginx-ingress":{"id":"chart-nginx-ingress","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/chart-nginx-ingress","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/chart-nginx-ingress/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/chart-nginx-ingress/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"MyServiceAccount":{"id":"MyServiceAccount","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyServiceAccount","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.ServiceAccount","version":"0.0.0"},"children":{"ConditionJson":{"id":"ConditionJson","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyServiceAccount/ConditionJson","constructInfo":{"fqn":"aws-cdk-lib.CfnJson","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyServiceAccount/ConditionJson/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyServiceAccount/ConditionJson/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"Role":{"id":"Role","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyServiceAccount/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyServiceAccount/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyServiceAccount/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"Fn::GetAtt":["ImportedClusterMyServiceAccountConditionJsonA074D166","Value"]}},"Effect":"Allow","Principal":{"Federated":{"Ref":"ClusterOpenIdConnectProviderE7EB0530"}}}],"Version":"2012-10-17"}}}}}},"manifest-MyServiceAccountServiceAccountResource":{"id":"manifest-MyServiceAccountServiceAccountResource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyServiceAccount/manifest-MyServiceAccountServiceAccountResource","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyServiceAccount/manifest-MyServiceAccountServiceAccountResource/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyServiceAccount/manifest-MyServiceAccountServiceAccountResource/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"MyExtendedServiceAccount":{"id":"MyExtendedServiceAccount","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyExtendedServiceAccount","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.ServiceAccount","version":"0.0.0"},"children":{"ConditionJson":{"id":"ConditionJson","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyExtendedServiceAccount/ConditionJson","constructInfo":{"fqn":"aws-cdk-lib.CfnJson","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyExtendedServiceAccount/ConditionJson/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyExtendedServiceAccount/ConditionJson/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"Role":{"id":"Role","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyExtendedServiceAccount/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyExtendedServiceAccount/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyExtendedServiceAccount/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"Fn::GetAtt":["ImportedClusterMyExtendedServiceAccountConditionJson1D9B1957","Value"]}},"Effect":"Allow","Principal":{"Federated":{"Ref":"ClusterOpenIdConnectProviderE7EB0530"}}}],"Version":"2012-10-17"}}}}}},"manifest-MyExtendedServiceAccountServiceAccountResource":{"id":"manifest-MyExtendedServiceAccountServiceAccountResource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyExtendedServiceAccount/manifest-MyExtendedServiceAccountServiceAccountResource","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyExtendedServiceAccount/manifest-MyExtendedServiceAccountServiceAccountResource/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyExtendedServiceAccount/manifest-MyExtendedServiceAccountServiceAccountResource/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}}}},"HelloAppWithoutValidation":{"id":"HelloAppWithoutValidation","path":"aws-cdk-eks-import-cluster-test/HelloAppWithoutValidation","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/HelloAppWithoutValidation/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/HelloAppWithoutValidation/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"ChartAsset":{"id":"ChartAsset","path":"aws-cdk-eks-import-cluster-test/ChartAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-import-cluster-test/ChartAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-import-cluster-test/ChartAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"AWSCDKCfnUtilsProviderCustomResourceProvider":{"id":"AWSCDKCfnUtilsProviderCustomResourceProvider","path":"aws-cdk-eks-import-cluster-test/AWSCDKCfnUtilsProviderCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-import-cluster-test/AWSCDKCfnUtilsProviderCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-import-cluster-test/AWSCDKCfnUtilsProviderCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-import-cluster-test/AWSCDKCfnUtilsProviderCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"ClusterRole":{"id":"ClusterRole","path":"aws-cdk-eks-import-cluster-test/ClusterRole","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"EksMastersRoleOutput":{"id":"EksMastersRoleOutput","path":"aws-cdk-eks-import-cluster-test/EksMastersRoleOutput","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-import-cluster-test/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-import-cluster-test/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-eks-import-cluster":{"id":"aws-cdk-eks-import-cluster","path":"aws-cdk-eks-import-cluster","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-eks-import-cluster/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-eks-import-cluster/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-import-cluster/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-import-cluster/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"aws-cdk-eks-import-cluster-test":{"id":"aws-cdk-eks-import-cluster-test","path":"aws-cdk-eks-import-cluster-test","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"Vpc":{"id":"Vpc","path":"aws-cdk-eks-import-cluster-test/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"maxAzs":"*","natGateways":"*","restrictDefaultSecurityGroup":false}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-import-cluster-test/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-import-cluster-test/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"aws-cdk-eks-import-cluster-test/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"aws-cdk-eks-import-cluster-test/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"aws-cdk-eks-import-cluster-test/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"EksAdminRole":{"id":"EksAdminRole","path":"aws-cdk-eks-import-cluster-test/EksAdminRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportEksAdminRole":{"id":"ImportEksAdminRole","path":"aws-cdk-eks-import-cluster-test/EksAdminRole/ImportEksAdminRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/EksAdminRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}}}],"Version":"2012-10-17"},"roleName":"eksAdminrole-aws-cdk-eks-import-cluster-test"}}}}},"kubectlLayer":{"id":"kubectlLayer","path":"aws-cdk-eks-import-cluster-test/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-import-cluster-test/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-import-cluster-test/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-import-cluster-test/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"aws-cdk-eks-import-cluster-test/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*","*","*"]},"children":{"Role":{"id":"Role","path":"aws-cdk-eks-import-cluster-test/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-import-cluster-test/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"aws-cdk-eks-import-cluster-test/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":false},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":false}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":false}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"aws-cdk-eks-import-cluster-test/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}},{"Action":["s3:GetBucket*","s3:GetObject*","s3:List*"],"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"}]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole081AD342A","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"aws-cdk-eks-import-cluster-test/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}},"mastersRoleAccess":{"id":"mastersRoleAccess","path":"aws-cdk-eks-import-cluster-test/Cluster/mastersRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/mastersRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["EksAdminRole1C96C514","Arn"]}}}}}},"NodegroupDefaultCapacity":{"id":"NodegroupDefaultCapacity","path":"aws-cdk-eks-import-cluster-test/Cluster/NodegroupDefaultCapacity","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-import-cluster-test/Cluster/NodegroupDefaultCapacity/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-import-cluster-test/Cluster/NodegroupDefaultCapacity/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/NodegroupDefaultCapacity/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/NodegroupDefaultCapacity/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2_x86_64","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"instanceTypes":["m5.large"],"nodeRole":{"Fn::GetAtt":["ClusterNodegroupDefaultCapacityNodeGroupRole55953B04","Arn"]},"scalingConfig":{"desiredSize":2,"maxSize":2,"minSize":2},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"ConfigCommand":{"id":"ConfigCommand","path":"aws-cdk-eks-import-cluster-test/Cluster/ConfigCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"GetTokenCommand":{"id":"GetTokenCommand","path":"aws-cdk-eks-import-cluster-test/Cluster/GetTokenCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"OpenIdConnectProvider":{"id":"OpenIdConnectProvider","path":"aws-cdk-eks-import-cluster-test/Cluster/OpenIdConnectProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.OpenIdConnectProvider","version":"0.0.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/Cluster/OpenIdConnectProvider/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/Cluster/OpenIdConnectProvider/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"aws-cdk-eks-import-cluster-test/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"KubectlProvider":{"id":"KubectlProvider","path":"aws-cdk-eks-import-cluster-test/KubectlProvider","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider":{"id":"Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider","path":"aws-cdk-eks-import-cluster-test/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-import-cluster-test/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-import-cluster-test/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-import-cluster-test/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"ImportedCluster":{"id":"ImportedCluster","path":"aws-cdk-eks-import-cluster-test/ImportedCluster","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]},"children":{"manifest-HelloApp":{"id":"manifest-HelloApp","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/manifest-HelloApp","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/manifest-HelloApp/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/manifest-HelloApp/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"chart-dashboard":{"id":"chart-dashboard","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/chart-dashboard","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/chart-dashboard/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/chart-dashboard/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"chart-test-chart":{"id":"chart-test-chart","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/chart-test-chart","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/chart-test-chart/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/chart-test-chart/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"cdk8s-chart":{"id":"cdk8s-chart","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/cdk8s-chart","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/cdk8s-chart/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/cdk8s-chart/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"manifest-nginx-namespace":{"id":"manifest-nginx-namespace","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/manifest-nginx-namespace","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/manifest-nginx-namespace/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/manifest-nginx-namespace/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"chart-nginx-ingress":{"id":"chart-nginx-ingress","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/chart-nginx-ingress","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/chart-nginx-ingress/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/chart-nginx-ingress/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"MyServiceAccount":{"id":"MyServiceAccount","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyServiceAccount","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.ServiceAccount","version":"0.0.0"},"children":{"ConditionJson":{"id":"ConditionJson","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyServiceAccount/ConditionJson","constructInfo":{"fqn":"aws-cdk-lib.CfnJson","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyServiceAccount/ConditionJson/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyServiceAccount/ConditionJson/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"Role":{"id":"Role","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyServiceAccount/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyServiceAccount/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyServiceAccount/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"Fn::GetAtt":["ImportedClusterMyServiceAccountConditionJsonA074D166","Value"]}},"Effect":"Allow","Principal":{"Federated":{"Ref":"ClusterOpenIdConnectProviderE7EB0530"}}}],"Version":"2012-10-17"}}}}}},"manifest-MyServiceAccountServiceAccountResource":{"id":"manifest-MyServiceAccountServiceAccountResource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyServiceAccount/manifest-MyServiceAccountServiceAccountResource","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyServiceAccount/manifest-MyServiceAccountServiceAccountResource/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyServiceAccount/manifest-MyServiceAccountServiceAccountResource/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"MyExtendedServiceAccount":{"id":"MyExtendedServiceAccount","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyExtendedServiceAccount","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.ServiceAccount","version":"0.0.0"},"children":{"ConditionJson":{"id":"ConditionJson","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyExtendedServiceAccount/ConditionJson","constructInfo":{"fqn":"aws-cdk-lib.CfnJson","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyExtendedServiceAccount/ConditionJson/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyExtendedServiceAccount/ConditionJson/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"Role":{"id":"Role","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyExtendedServiceAccount/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyExtendedServiceAccount/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyExtendedServiceAccount/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"Fn::GetAtt":["ImportedClusterMyExtendedServiceAccountConditionJson1D9B1957","Value"]}},"Effect":"Allow","Principal":{"Federated":{"Ref":"ClusterOpenIdConnectProviderE7EB0530"}}}],"Version":"2012-10-17"}}}}}},"manifest-MyExtendedServiceAccountServiceAccountResource":{"id":"manifest-MyExtendedServiceAccountServiceAccountResource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyExtendedServiceAccount/manifest-MyExtendedServiceAccountServiceAccountResource","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyExtendedServiceAccount/manifest-MyExtendedServiceAccountServiceAccountResource/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/ImportedCluster/MyExtendedServiceAccount/manifest-MyExtendedServiceAccountServiceAccountResource/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}}}},"HelloAppWithoutValidation":{"id":"HelloAppWithoutValidation","path":"aws-cdk-eks-import-cluster-test/HelloAppWithoutValidation","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-import-cluster-test/HelloAppWithoutValidation/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster-test/HelloAppWithoutValidation/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"ChartAsset":{"id":"ChartAsset","path":"aws-cdk-eks-import-cluster-test/ChartAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-import-cluster-test/ChartAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-import-cluster-test/ChartAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"AWSCDKCfnUtilsProviderCustomResourceProvider":{"id":"AWSCDKCfnUtilsProviderCustomResourceProvider","path":"aws-cdk-eks-import-cluster-test/AWSCDKCfnUtilsProviderCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-import-cluster-test/AWSCDKCfnUtilsProviderCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-import-cluster-test/AWSCDKCfnUtilsProviderCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-import-cluster-test/AWSCDKCfnUtilsProviderCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"ClusterRole":{"id":"ClusterRole","path":"aws-cdk-eks-import-cluster-test/ClusterRole","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"EksMastersRoleOutput":{"id":"EksMastersRoleOutput","path":"aws-cdk-eks-import-cluster-test/EksMastersRoleOutput","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-import-cluster-test/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-import-cluster-test/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-eks-import-cluster":{"id":"aws-cdk-eks-import-cluster","path":"aws-cdk-eks-import-cluster","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-eks-import-cluster/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-import-cluster/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-eks-import-cluster/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-import-cluster/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-import-cluster/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py deleted file mode 100644 index 00d794acd0c73..0000000000000 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py +++ /dev/null @@ -1,207 +0,0 @@ -import json -import logging -import os -import re -import subprocess -import shutil -import tempfile -import zipfile -import boto3 - -logger = logging.getLogger() -logger.setLevel(logging.INFO) - -# these are coming from the kubectl layer -os.environ['PATH'] = '/opt/helm:/opt/awscli:' + os.environ['PATH'] - -outdir = os.environ.get('TEST_OUTDIR', '/tmp') -kubeconfig = os.path.join(outdir, 'kubeconfig') - -def get_chart_asset_from_url(chart_asset_url): - chart_zip = os.path.join(outdir, 'chart.zip') - shutil.rmtree(chart_zip, ignore_errors=True) - subprocess.check_call(['aws', 's3', 'cp', chart_asset_url, chart_zip]) - chart_dir = os.path.join(outdir, 'chart') - shutil.rmtree(chart_dir, ignore_errors=True) - os.mkdir(chart_dir) - with zipfile.ZipFile(chart_zip, 'r') as zip_ref: - zip_ref.extractall(chart_dir) - return chart_dir - -def is_ecr_public_available(region): - s = boto3.Session() - return s.get_partition_for_region(region) == 'aws' - -def helm_handler(event, context): - logger.info(json.dumps(dict(event, ResponseURL='...'))) - - request_type = event['RequestType'] - props = event['ResourceProperties'] - - # resource properties - cluster_name = props['ClusterName'] - release = props['Release'] - chart = props.get('Chart', None) - chart_asset_url = props.get('ChartAssetURL', None) - version = props.get('Version', None) - wait = props.get('Wait', False) - atomic = props.get('Atomic', False) - timeout = props.get('Timeout', None) - namespace = props.get('Namespace', None) - create_namespace = props.get('CreateNamespace', None) - repository = props.get('Repository', None) - values_text = props.get('Values', None) - skip_crds = props.get('SkipCrds', False) - - # "log in" to the cluster - subprocess.check_call([ 'aws', 'eks', 'update-kubeconfig', - '--name', cluster_name, - '--kubeconfig', kubeconfig - ]) - - if os.path.isfile(kubeconfig): - os.chmod(kubeconfig, 0o600) - - # Write out the values to a file and include them with the install and upgrade - values_file = None - if not request_type == "Delete" and not values_text is None: - values = json.loads(values_text) - values_file = os.path.join(outdir, 'values.yaml') - with open(values_file, "w") as f: - f.write(json.dumps(values, indent=2)) - - if request_type == 'Create' or request_type == 'Update': - # Ensure chart or chart_asset_url are set - if chart == None and chart_asset_url == None: - raise RuntimeError(f'chart or chartAsset must be specified') - - if chart_asset_url != None: - assert(chart==None) - assert(repository==None) - assert(version==None) - if not chart_asset_url.startswith('s3://'): - raise RuntimeError(f'ChartAssetURL must point to as s3 location but is {chart_asset_url}') - # future work: support versions from s3 assets - chart = get_chart_asset_from_url(chart_asset_url) - - if repository is not None and repository.startswith('oci://'): - tmpdir = tempfile.TemporaryDirectory() - chart_dir = get_chart_from_oci(tmpdir.name, repository, version) - chart = chart_dir - - helm('upgrade', release, chart, repository, values_file, namespace, version, wait, timeout, create_namespace, atomic=atomic) - elif request_type == "Delete": - try: - helm('uninstall', release, namespace=namespace, wait=wait, timeout=timeout) - except Exception as e: - logger.info("delete error: %s" % e) - - -def get_oci_cmd(repository, version): - # Generates OCI command based on pattern. Public ECR vs Private ECR are treated differently. - private_ecr_pattern = 'oci://(?P\d+\.dkr\.ecr\.(?P[a-z0-9\-]+)\.(?P[a-z0-9\.-]+))*' - public_ecr_pattern = 'oci://(?Ppublic\.ecr\.aws)*' - - private_registry = re.match(private_ecr_pattern, repository).groupdict() - public_registry = re.match(public_ecr_pattern, repository).groupdict() - - if private_registry['registry'] is not None: - logger.info("Found AWS private repository") - cmnd = [ - f"aws ecr get-login-password --region {private_registry['region']} | " \ - f"helm registry login --username AWS --password-stdin {private_registry['registry']}; helm pull {repository} --version {version} --untar" - ] - elif public_registry['registry'] is not None: - logger.info("Found AWS public repository, will use default region as deployment") - region = os.environ.get('AWS_REGION', 'us-east-1') - - if is_ecr_public_available(region): - cmnd = [ - f"aws ecr-public get-login-password --region us-east-1 | " \ - f"helm registry login --username AWS --password-stdin {public_registry['registry']}; helm pull {repository} --version {version} --untar" - ] - else: - # `aws ecr-public get-login-password` and `helm registry login` not required as ecr public is not available in current region - # see https://helm.sh/docs/helm/helm_registry_login/ - cmnd = [f"helm pull {repository} --version {version} --untar"] - else: - logger.error("OCI repository format not recognized, falling back to helm pull") - cmnd = [f"helm pull {repository} --version {version} --untar"] - - return cmnd - - -def get_chart_from_oci(tmpdir, repository = None, version = None): - - cmnd = get_oci_cmd(repository, version) - - maxAttempts = 3 - retry = maxAttempts - while retry > 0: - try: - logger.info(cmnd) - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=tmpdir, shell=True) - logger.info(output) - - # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. - # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service - return os.path.join(tmpdir, repository.rpartition('/')[-1]) - except subprocess.CalledProcessError as exc: - output = exc.output - if b'Broken pipe' in output: - retry = retry - 1 - logger.info("Broken pipe, retries left: %s" % retry) - else: - raise Exception(output) - raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') - - -def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): - import subprocess - - cmnd = ['helm', verb, release] - if not chart is None: - cmnd.append(chart) - if verb == 'upgrade': - cmnd.append('--install') - if create_namespace: - cmnd.append('--create-namespace') - if not repo is None: - cmnd.extend(['--repo', repo]) - if not file is None: - cmnd.extend(['--values', file]) - if not version is None: - cmnd.extend(['--version', version]) - if not namespace is None: - cmnd.extend(['--namespace', namespace]) - if wait: - cmnd.append('--wait') - if skip_crds: - cmnd.append('--skip-crds') - if not timeout is None: - cmnd.extend(['--timeout', timeout]) - if atomic: - cmnd.append('--atomic') - cmnd.extend(['--kubeconfig', kubeconfig]) - - # Log the full helm command for better troubleshooting - logger.info("Running command: %s", cmnd) - - maxAttempts = 3 - retry = maxAttempts - while retry > 0: - try: - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=outdir) - logger.info(output.decode('utf-8', errors='replace')) - return - except subprocess.CalledProcessError as exc: - output = exc.output - if b'Broken pipe' in output: - retry = retry - 1 - logger.info("Broken pipe, retries left: %s" % retry) - else: - error_message = output.decode('utf-8', errors='replace') - logger.error("Command failed: %s", cmnd) - logger.error("Error output: %s", error_message) - raise Exception(output) - raise Exception(f'Operation failed after {maxAttempts} attempts: {output.decode("utf-8", errors="replace")}') diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py new file mode 100644 index 0000000000000..6c7838f182a45 --- /dev/null +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py @@ -0,0 +1,250 @@ +import json +import logging +import os +import re +import subprocess +import shutil +import tempfile +import zipfile +import boto3 + +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +# these are coming from the kubectl layer +os.environ['PATH'] = '/opt/helm:/opt/awscli:' + os.environ['PATH'] + +outdir = os.environ.get('TEST_OUTDIR', '/tmp') +kubeconfig = os.path.join(outdir, 'kubeconfig') + +def get_chart_asset_from_url(chart_asset_url): + chart_zip = os.path.join(outdir, 'chart.zip') + shutil.rmtree(chart_zip, ignore_errors=True) + subprocess.check_call(['aws', 's3', 'cp', chart_asset_url, chart_zip]) + chart_dir = os.path.join(outdir, 'chart') + shutil.rmtree(chart_dir, ignore_errors=True) + os.mkdir(chart_dir) + with zipfile.ZipFile(chart_zip, 'r') as zip_ref: + zip_ref.extractall(chart_dir) + return chart_dir + +def is_ecr_public_available(region): + s = boto3.Session() + return s.get_partition_for_region(region) == 'aws' + +def helm_handler(event, context): + logger.info(json.dumps(dict(event, ResponseURL='...'))) + + request_type = event['RequestType'] + props = event['ResourceProperties'] + + # resource properties + cluster_name = props['ClusterName'] + release = props['Release'] + chart = props.get('Chart', None) + chart_asset_url = props.get('ChartAssetURL', None) + version = props.get('Version', None) + wait = props.get('Wait', False) + atomic = props.get('Atomic', False) + timeout = props.get('Timeout', None) + namespace = props.get('Namespace', None) + create_namespace = props.get('CreateNamespace', None) + repository = props.get('Repository', None) + values_text = props.get('Values', None) + skip_crds = props.get('SkipCrds', False) + + # "log in" to the cluster + subprocess.check_call([ 'aws', 'eks', 'update-kubeconfig', + '--name', cluster_name, + '--kubeconfig', kubeconfig + ]) + + if os.path.isfile(kubeconfig): + os.chmod(kubeconfig, 0o600) + + # Write out the values to a file and include them with the install and upgrade + values_file = None + if not request_type == "Delete" and not values_text is None: + values = json.loads(values_text) + values_file = os.path.join(outdir, 'values.yaml') + with open(values_file, "w") as f: + f.write(json.dumps(values, indent=2)) + + if request_type == 'Create' or request_type == 'Update': + # Ensure chart or chart_asset_url are set + if chart == None and chart_asset_url == None: + raise RuntimeError(f'chart or chartAsset must be specified') + + if chart_asset_url != None: + assert(chart==None) + assert(repository==None) + assert(version==None) + if not chart_asset_url.startswith('s3://'): + raise RuntimeError(f'ChartAssetURL must point to as s3 location but is {chart_asset_url}') + # future work: support versions from s3 assets + chart = get_chart_asset_from_url(chart_asset_url) + + if repository is not None and repository.startswith('oci://'): + tmpdir = tempfile.TemporaryDirectory() + chart_dir = get_chart_from_oci(tmpdir.name, repository, version) + chart = chart_dir + + helm('upgrade', release, chart, repository, values_file, namespace, version, wait, timeout, create_namespace, atomic=atomic) + elif request_type == "Delete": + try: + helm('uninstall', release, namespace=namespace, wait=wait, timeout=timeout) + except Exception as e: + logger.info("delete error: %s" % e) + + +def get_oci_cmd(repository, version): + # Generates OCI command based on pattern. Public ECR vs Private ECR are treated differently. + private_ecr_pattern = 'oci://(?P\d+\.dkr\.ecr\.(?P[a-z0-9\-]+)\.(?P[a-z0-9\.-]+))*' + public_ecr_pattern = 'oci://(?Ppublic\.ecr\.aws)*' + + private_registry = re.match(private_ecr_pattern, repository).groupdict() + public_registry = re.match(public_ecr_pattern, repository).groupdict() + + # Build helm pull command as array + helm_cmd = ['helm', 'pull', repository, '--version', version , '--untar'] + + if private_registry['registry'] is not None: + logger.info("Found AWS private repository") + ecr_login = ['aws', 'ecr', 'get-login-password', '--region', private_registry['region']] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', private_registry['registry']] + return {'ecr_login': ecr_login, 'registry_login': helm_registry_login, 'helm': helm_cmd} + elif public_registry['registry'] is not None: + logger.info("Found AWS public repository, will use default region as deployment") + region = os.environ.get('AWS_REGION', 'us-east-1') + + if is_ecr_public_available(region): + # Public ECR auth is always in us-east-1: https://docs.aws.amazon.com/AmazonECR/latest/public/public-registry-auth.html + ecr_login = ['aws', 'ecr-public', 'get-login-password', '--region', 'us-east-1'] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', public_registry['registry']] + return {'ecr_login': ecr_login, 'helm_registry_login': helm_registry_login, 'helm': helm_cmd} + else: + # No login required for public ECR in non-aws regions + # see https://helm.sh/docs/helm/helm_registry_login/ + return {'helm': helm_cmd} + else: + logger.error("OCI repository format not recognized, falling back to helm pull") + return {'helm': helm_cmd} + + +def get_chart_from_oci(tmpdir, repository=None, version=None): + from subprocess import Popen, PIPE + + commands = get_oci_cmd(repository, version) + + maxAttempts = 3 + retry = maxAttempts + while retry > 0: + try: + # Execute login commands if needed + if 'ecr_login' in commands and 'helm_registry_login' in commands: + logger.info("Running login command: %s", commands['ecr_login']) + logger.info("Running registry login command: %s", commands['helm_registry_login']) + + # Start first process: aws ecr get-login-password + # NOTE: We do NOT call p1.wait() here before starting p2. + # Doing so could deadlock if p1's output fills the pipe buffer + # before p2 starts reading. Instead, start p2 immediately so it + # can consume p1's stdout as it's produced. + p1 = Popen(commands['ecr_login'], stdout=PIPE, stderr=PIPE, cwd=tmpdir) + + # Start second process: helm registry login + p2 = Popen(commands['helm_registry_login'], stdin=p1.stdout, stdout=PIPE, stderr=PIPE, cwd=tmpdir) + p1.stdout.close() # Allow p1 to receive SIGPIPE if p2 exits early + + # Wait for p2 to finish first (ensures full pipeline completes) + _, p2_err = p2.communicate() + + # Now wait for p1 so we have a complete stderr and an exit code + p1.wait() + + # Handle p1 failure + if p1.returncode != 0: + p1_err = p1.stderr.read().decode('utf-8', errors='replace') if p1.stderr else '' + logger.error( + "ECR get-login-password failed for repository %s. Error: %s", + repository, + p1_err or "No error details" + ) + raise subprocess.CalledProcessError(p1.returncode, commands['ecr_login'], p1_err.encode()) + + # Handle p2 failure + if p2.returncode != 0: + logger.error( + "Helm registry authentication failed for repository %s. Error: %s", + repository, + p2_err.decode('utf-8', errors='replace') or "No error details" + ) + raise subprocess.CalledProcessError(p2.returncode, commands['helm_registry_login'], p2_err) + + # Execute helm pull command + logger.info("Running helm command: %s", commands['helm']) + output = subprocess.check_output(commands['helm'], stderr=subprocess.STDOUT, cwd=tmpdir) + logger.info(output) + + # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. + # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service + return os.path.join(tmpdir, repository.rpartition('/')[-1]) + + except subprocess.CalledProcessError as exc: + output = exc.output + if b'Broken pipe' in output: + retry = retry - 1 + logger.info("Broken pipe, retries left: %s" % retry) + else: + raise Exception(output) + + raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') + + +def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): + cmnd = ['helm', verb, release] + if not chart is None: + cmnd.append(chart) + if verb == 'upgrade': + cmnd.append('--install') + if create_namespace: + cmnd.append('--create-namespace') + if not repo is None: + cmnd.extend(['--repo', repo]) + if not file is None: + cmnd.extend(['--values', file]) + if not version is None: + cmnd.extend(['--version', version]) + if not namespace is None: + cmnd.extend(['--namespace', namespace]) + if wait: + cmnd.append('--wait') + if skip_crds: + cmnd.append('--skip-crds') + if not timeout is None: + cmnd.extend(['--timeout', timeout]) + if atomic: + cmnd.append('--atomic') + cmnd.extend(['--kubeconfig', kubeconfig]) + + # Log the full helm command for better troubleshooting + logger.info("Running command: %s", cmnd) + + maxAttempts = 3 + retry = maxAttempts + while retry > 0: + try: + output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=outdir) + logger.info(output.decode('utf-8', errors='replace')) + return + except subprocess.CalledProcessError as exc: + output = exc.output + if b'Broken pipe' in output: + retry = retry - 1 + logger.info("Broken pipe, retries left: %s" % retry) + else: + error_message = output.decode('utf-8', errors='replace') + logger.error("Command failed: %s", cmnd) + logger.error("Error output: %s", error_message) + raise Exception(output) + raise Exception(f'Operation failed after {maxAttempts} attempts: {output.decode("utf-8", errors="replace")}') diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/aws-cdk-eks-cluster-private-endpoint-test.assets.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/aws-cdk-eks-cluster-private-endpoint-test.assets.json index 27bcf652b78ff..db57a299f8fe2 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/aws-cdk-eks-cluster-private-endpoint-test.assets.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/aws-cdk-eks-cluster-private-endpoint-test.assets.json @@ -15,16 +15,16 @@ } } }, - "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069": { + "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a": { "displayName": "Cluster/KubectlProvider/Handler/Code", "source": { - "path": "asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069", + "path": "asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a", "packaging": "zip" }, "destinations": { - "current_account-current_region-0ee668da": { + "current_account-current_region-5b09798b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip", + "objectKey": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -57,16 +57,16 @@ } } }, - "acf981146c35feb8a72cdec170f7a22c70d3d4bc20112c34aa27a9e550b692d4": { + "7cf4184506330c0685b39a0fcb7e59188470b30b7778cffd371c11fa46088578": { "displayName": "aws-cdk-eks-cluster-private-endpoint-test Template", "source": { "path": "aws-cdk-eks-cluster-private-endpoint-test.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-50f985b3": { + "current_account-current_region-5c41da65": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "acf981146c35feb8a72cdec170f7a22c70d3d4bc20112c34aa27a9e550b692d4.json", + "objectKey": "7cf4184506330c0685b39a0fcb7e59188470b30b7778cffd371c11fa46088578.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/aws-cdk-eks-cluster-private-endpoint-test.template.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/aws-cdk-eks-cluster-private-endpoint-test.template.json index 426f4487357c9..7e7e7f2016985 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/aws-cdk-eks-cluster-private-endpoint-test.template.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/aws-cdk-eks-cluster-private-endpoint-test.template.json @@ -799,7 +799,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip" + "S3Key": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip" }, "Description": "onEvent handler for EKS kubectl resource provider", "Environment": { diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/manifest.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/manifest.json index 233508d5b55e8..3b1736898a97f 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "artifacts": { "aws-cdk-eks-cluster-private-endpoint-test.assets": { "type": "cdk:asset-manifest", @@ -18,7 +18,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/acf981146c35feb8a72cdec170f7a22c70d3d4bc20112c34aa27a9e550b692d4.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/7cf4184506330c0685b39a0fcb7e59188470b30b7778cffd371c11fa46088578.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -667,7 +667,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -1286,6 +1286,7 @@ "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." }, "@aws-cdk/core:explicitStackTags": { + "userValue": true, "recommendedValue": true, "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." }, @@ -1438,5 +1439,5 @@ } } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1023.0" } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/tree.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/tree.json index 0f1e8002218b4..2303fed97ecb3 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/tree.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster-private-endpoint.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"aws-cdk-eks-cluster-private-endpoint-test":{"id":"aws-cdk-eks-cluster-private-endpoint-test","path":"aws-cdk-eks-cluster-private-endpoint-test","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"AdminRole":{"id":"AdminRole","path":"aws-cdk-eks-cluster-private-endpoint-test/AdminRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportAdminRole":{"id":"ImportAdminRole","path":"aws-cdk-eks-cluster-private-endpoint-test/AdminRole/ImportAdminRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/AdminRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}}}],"Version":"2012-10-17"}}}}}},"Vpc":{"id":"Vpc","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"maxAzs":"*","natGateways":"*","restrictDefaultSecurityGroup":false}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"kubectlLayer":{"id":"kubectlLayer","path":"aws-cdk-eks-cluster-private-endpoint-test/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-private-endpoint-test/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-private-endpoint-test/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-private-endpoint-test/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*","*"]},"children":{"Role":{"id":"Role","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":["sts:AssumeRole","sts:TagSession"],"Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSComputePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSBlockStoragePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSLoadBalancingPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSNetworkingPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"ClusternodePoolRole":{"id":"ClusternodePoolRole","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/ClusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]}]},"children":{"ImportClusternodePoolRole":{"id":"ImportClusternodePoolRole","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/ClusternodePoolRole/ImportClusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/ClusternodePoolRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":true,"nodePools":["system","general-purpose"],"nodeRoleArn":{"Fn::GetAtt":["ClusterClusternodePoolRole69276141","Arn"]}},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":true}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":false},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":true}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole081AD342A","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}},"mastersRoleAccess":{"id":"mastersRoleAccess","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/mastersRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/mastersRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["AdminRole38563C57","Arn"]}}}}}},"ConfigCommand":{"id":"ConfigCommand","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/ConfigCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"GetTokenCommand":{"id":"GetTokenCommand","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/GetTokenCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"manifest-config-map":{"id":"manifest-config-map","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/manifest-config-map","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/manifest-config-map/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/manifest-config-map/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"aws-cdk-eks-cluster-private-endpoint-test/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-private-endpoint-test/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-private-endpoint-test/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-eks-cluster-private-endpoint":{"id":"aws-cdk-eks-cluster-private-endpoint","path":"aws-cdk-eks-cluster-private-endpoint","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-eks-cluster-private-endpoint/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-private-endpoint/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-eks-cluster-private-endpoint/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-private-endpoint/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-private-endpoint/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"aws-cdk-eks-cluster-private-endpoint-test":{"id":"aws-cdk-eks-cluster-private-endpoint-test","path":"aws-cdk-eks-cluster-private-endpoint-test","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"AdminRole":{"id":"AdminRole","path":"aws-cdk-eks-cluster-private-endpoint-test/AdminRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportAdminRole":{"id":"ImportAdminRole","path":"aws-cdk-eks-cluster-private-endpoint-test/AdminRole/ImportAdminRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/AdminRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}}}],"Version":"2012-10-17"}}}}}},"Vpc":{"id":"Vpc","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"maxAzs":"*","natGateways":"*","restrictDefaultSecurityGroup":false}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"aws-cdk-eks-cluster-private-endpoint-test/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"aws-cdk-eks-cluster-private-endpoint-test/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"kubectlLayer":{"id":"kubectlLayer","path":"aws-cdk-eks-cluster-private-endpoint-test/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-private-endpoint-test/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-private-endpoint-test/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-private-endpoint-test/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*","*"]},"children":{"Role":{"id":"Role","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":["sts:AssumeRole","sts:TagSession"],"Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSComputePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSBlockStoragePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSLoadBalancingPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSNetworkingPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"ClusternodePoolRole":{"id":"ClusternodePoolRole","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/ClusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]}]},"children":{"ImportClusternodePoolRole":{"id":"ImportClusternodePoolRole","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/ClusternodePoolRole/ImportClusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/ClusternodePoolRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":true,"nodePools":["system","general-purpose"],"nodeRoleArn":{"Fn::GetAtt":["ClusterClusternodePoolRole69276141","Arn"]}},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":true}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":false},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":true}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole081AD342A","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}},"mastersRoleAccess":{"id":"mastersRoleAccess","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/mastersRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/mastersRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["AdminRole38563C57","Arn"]}}}}}},"ConfigCommand":{"id":"ConfigCommand","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/ConfigCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"GetTokenCommand":{"id":"GetTokenCommand","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/GetTokenCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"manifest-config-map":{"id":"manifest-config-map","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/manifest-config-map","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/manifest-config-map/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-private-endpoint-test/Cluster/manifest-config-map/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"aws-cdk-eks-cluster-private-endpoint-test/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-private-endpoint-test/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-private-endpoint-test/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-eks-cluster-private-endpoint":{"id":"aws-cdk-eks-cluster-private-endpoint","path":"aws-cdk-eks-cluster-private-endpoint","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-eks-cluster-private-endpoint/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-private-endpoint/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-eks-cluster-private-endpoint/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-private-endpoint/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-private-endpoint/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py deleted file mode 100644 index 00d794acd0c73..0000000000000 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py +++ /dev/null @@ -1,207 +0,0 @@ -import json -import logging -import os -import re -import subprocess -import shutil -import tempfile -import zipfile -import boto3 - -logger = logging.getLogger() -logger.setLevel(logging.INFO) - -# these are coming from the kubectl layer -os.environ['PATH'] = '/opt/helm:/opt/awscli:' + os.environ['PATH'] - -outdir = os.environ.get('TEST_OUTDIR', '/tmp') -kubeconfig = os.path.join(outdir, 'kubeconfig') - -def get_chart_asset_from_url(chart_asset_url): - chart_zip = os.path.join(outdir, 'chart.zip') - shutil.rmtree(chart_zip, ignore_errors=True) - subprocess.check_call(['aws', 's3', 'cp', chart_asset_url, chart_zip]) - chart_dir = os.path.join(outdir, 'chart') - shutil.rmtree(chart_dir, ignore_errors=True) - os.mkdir(chart_dir) - with zipfile.ZipFile(chart_zip, 'r') as zip_ref: - zip_ref.extractall(chart_dir) - return chart_dir - -def is_ecr_public_available(region): - s = boto3.Session() - return s.get_partition_for_region(region) == 'aws' - -def helm_handler(event, context): - logger.info(json.dumps(dict(event, ResponseURL='...'))) - - request_type = event['RequestType'] - props = event['ResourceProperties'] - - # resource properties - cluster_name = props['ClusterName'] - release = props['Release'] - chart = props.get('Chart', None) - chart_asset_url = props.get('ChartAssetURL', None) - version = props.get('Version', None) - wait = props.get('Wait', False) - atomic = props.get('Atomic', False) - timeout = props.get('Timeout', None) - namespace = props.get('Namespace', None) - create_namespace = props.get('CreateNamespace', None) - repository = props.get('Repository', None) - values_text = props.get('Values', None) - skip_crds = props.get('SkipCrds', False) - - # "log in" to the cluster - subprocess.check_call([ 'aws', 'eks', 'update-kubeconfig', - '--name', cluster_name, - '--kubeconfig', kubeconfig - ]) - - if os.path.isfile(kubeconfig): - os.chmod(kubeconfig, 0o600) - - # Write out the values to a file and include them with the install and upgrade - values_file = None - if not request_type == "Delete" and not values_text is None: - values = json.loads(values_text) - values_file = os.path.join(outdir, 'values.yaml') - with open(values_file, "w") as f: - f.write(json.dumps(values, indent=2)) - - if request_type == 'Create' or request_type == 'Update': - # Ensure chart or chart_asset_url are set - if chart == None and chart_asset_url == None: - raise RuntimeError(f'chart or chartAsset must be specified') - - if chart_asset_url != None: - assert(chart==None) - assert(repository==None) - assert(version==None) - if not chart_asset_url.startswith('s3://'): - raise RuntimeError(f'ChartAssetURL must point to as s3 location but is {chart_asset_url}') - # future work: support versions from s3 assets - chart = get_chart_asset_from_url(chart_asset_url) - - if repository is not None and repository.startswith('oci://'): - tmpdir = tempfile.TemporaryDirectory() - chart_dir = get_chart_from_oci(tmpdir.name, repository, version) - chart = chart_dir - - helm('upgrade', release, chart, repository, values_file, namespace, version, wait, timeout, create_namespace, atomic=atomic) - elif request_type == "Delete": - try: - helm('uninstall', release, namespace=namespace, wait=wait, timeout=timeout) - except Exception as e: - logger.info("delete error: %s" % e) - - -def get_oci_cmd(repository, version): - # Generates OCI command based on pattern. Public ECR vs Private ECR are treated differently. - private_ecr_pattern = 'oci://(?P\d+\.dkr\.ecr\.(?P[a-z0-9\-]+)\.(?P[a-z0-9\.-]+))*' - public_ecr_pattern = 'oci://(?Ppublic\.ecr\.aws)*' - - private_registry = re.match(private_ecr_pattern, repository).groupdict() - public_registry = re.match(public_ecr_pattern, repository).groupdict() - - if private_registry['registry'] is not None: - logger.info("Found AWS private repository") - cmnd = [ - f"aws ecr get-login-password --region {private_registry['region']} | " \ - f"helm registry login --username AWS --password-stdin {private_registry['registry']}; helm pull {repository} --version {version} --untar" - ] - elif public_registry['registry'] is not None: - logger.info("Found AWS public repository, will use default region as deployment") - region = os.environ.get('AWS_REGION', 'us-east-1') - - if is_ecr_public_available(region): - cmnd = [ - f"aws ecr-public get-login-password --region us-east-1 | " \ - f"helm registry login --username AWS --password-stdin {public_registry['registry']}; helm pull {repository} --version {version} --untar" - ] - else: - # `aws ecr-public get-login-password` and `helm registry login` not required as ecr public is not available in current region - # see https://helm.sh/docs/helm/helm_registry_login/ - cmnd = [f"helm pull {repository} --version {version} --untar"] - else: - logger.error("OCI repository format not recognized, falling back to helm pull") - cmnd = [f"helm pull {repository} --version {version} --untar"] - - return cmnd - - -def get_chart_from_oci(tmpdir, repository = None, version = None): - - cmnd = get_oci_cmd(repository, version) - - maxAttempts = 3 - retry = maxAttempts - while retry > 0: - try: - logger.info(cmnd) - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=tmpdir, shell=True) - logger.info(output) - - # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. - # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service - return os.path.join(tmpdir, repository.rpartition('/')[-1]) - except subprocess.CalledProcessError as exc: - output = exc.output - if b'Broken pipe' in output: - retry = retry - 1 - logger.info("Broken pipe, retries left: %s" % retry) - else: - raise Exception(output) - raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') - - -def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): - import subprocess - - cmnd = ['helm', verb, release] - if not chart is None: - cmnd.append(chart) - if verb == 'upgrade': - cmnd.append('--install') - if create_namespace: - cmnd.append('--create-namespace') - if not repo is None: - cmnd.extend(['--repo', repo]) - if not file is None: - cmnd.extend(['--values', file]) - if not version is None: - cmnd.extend(['--version', version]) - if not namespace is None: - cmnd.extend(['--namespace', namespace]) - if wait: - cmnd.append('--wait') - if skip_crds: - cmnd.append('--skip-crds') - if not timeout is None: - cmnd.extend(['--timeout', timeout]) - if atomic: - cmnd.append('--atomic') - cmnd.extend(['--kubeconfig', kubeconfig]) - - # Log the full helm command for better troubleshooting - logger.info("Running command: %s", cmnd) - - maxAttempts = 3 - retry = maxAttempts - while retry > 0: - try: - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=outdir) - logger.info(output.decode('utf-8', errors='replace')) - return - except subprocess.CalledProcessError as exc: - output = exc.output - if b'Broken pipe' in output: - retry = retry - 1 - logger.info("Broken pipe, retries left: %s" % retry) - else: - error_message = output.decode('utf-8', errors='replace') - logger.error("Command failed: %s", cmnd) - logger.error("Error output: %s", error_message) - raise Exception(output) - raise Exception(f'Operation failed after {maxAttempts} attempts: {output.decode("utf-8", errors="replace")}') diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py new file mode 100644 index 0000000000000..6c7838f182a45 --- /dev/null +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py @@ -0,0 +1,250 @@ +import json +import logging +import os +import re +import subprocess +import shutil +import tempfile +import zipfile +import boto3 + +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +# these are coming from the kubectl layer +os.environ['PATH'] = '/opt/helm:/opt/awscli:' + os.environ['PATH'] + +outdir = os.environ.get('TEST_OUTDIR', '/tmp') +kubeconfig = os.path.join(outdir, 'kubeconfig') + +def get_chart_asset_from_url(chart_asset_url): + chart_zip = os.path.join(outdir, 'chart.zip') + shutil.rmtree(chart_zip, ignore_errors=True) + subprocess.check_call(['aws', 's3', 'cp', chart_asset_url, chart_zip]) + chart_dir = os.path.join(outdir, 'chart') + shutil.rmtree(chart_dir, ignore_errors=True) + os.mkdir(chart_dir) + with zipfile.ZipFile(chart_zip, 'r') as zip_ref: + zip_ref.extractall(chart_dir) + return chart_dir + +def is_ecr_public_available(region): + s = boto3.Session() + return s.get_partition_for_region(region) == 'aws' + +def helm_handler(event, context): + logger.info(json.dumps(dict(event, ResponseURL='...'))) + + request_type = event['RequestType'] + props = event['ResourceProperties'] + + # resource properties + cluster_name = props['ClusterName'] + release = props['Release'] + chart = props.get('Chart', None) + chart_asset_url = props.get('ChartAssetURL', None) + version = props.get('Version', None) + wait = props.get('Wait', False) + atomic = props.get('Atomic', False) + timeout = props.get('Timeout', None) + namespace = props.get('Namespace', None) + create_namespace = props.get('CreateNamespace', None) + repository = props.get('Repository', None) + values_text = props.get('Values', None) + skip_crds = props.get('SkipCrds', False) + + # "log in" to the cluster + subprocess.check_call([ 'aws', 'eks', 'update-kubeconfig', + '--name', cluster_name, + '--kubeconfig', kubeconfig + ]) + + if os.path.isfile(kubeconfig): + os.chmod(kubeconfig, 0o600) + + # Write out the values to a file and include them with the install and upgrade + values_file = None + if not request_type == "Delete" and not values_text is None: + values = json.loads(values_text) + values_file = os.path.join(outdir, 'values.yaml') + with open(values_file, "w") as f: + f.write(json.dumps(values, indent=2)) + + if request_type == 'Create' or request_type == 'Update': + # Ensure chart or chart_asset_url are set + if chart == None and chart_asset_url == None: + raise RuntimeError(f'chart or chartAsset must be specified') + + if chart_asset_url != None: + assert(chart==None) + assert(repository==None) + assert(version==None) + if not chart_asset_url.startswith('s3://'): + raise RuntimeError(f'ChartAssetURL must point to as s3 location but is {chart_asset_url}') + # future work: support versions from s3 assets + chart = get_chart_asset_from_url(chart_asset_url) + + if repository is not None and repository.startswith('oci://'): + tmpdir = tempfile.TemporaryDirectory() + chart_dir = get_chart_from_oci(tmpdir.name, repository, version) + chart = chart_dir + + helm('upgrade', release, chart, repository, values_file, namespace, version, wait, timeout, create_namespace, atomic=atomic) + elif request_type == "Delete": + try: + helm('uninstall', release, namespace=namespace, wait=wait, timeout=timeout) + except Exception as e: + logger.info("delete error: %s" % e) + + +def get_oci_cmd(repository, version): + # Generates OCI command based on pattern. Public ECR vs Private ECR are treated differently. + private_ecr_pattern = 'oci://(?P\d+\.dkr\.ecr\.(?P[a-z0-9\-]+)\.(?P[a-z0-9\.-]+))*' + public_ecr_pattern = 'oci://(?Ppublic\.ecr\.aws)*' + + private_registry = re.match(private_ecr_pattern, repository).groupdict() + public_registry = re.match(public_ecr_pattern, repository).groupdict() + + # Build helm pull command as array + helm_cmd = ['helm', 'pull', repository, '--version', version , '--untar'] + + if private_registry['registry'] is not None: + logger.info("Found AWS private repository") + ecr_login = ['aws', 'ecr', 'get-login-password', '--region', private_registry['region']] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', private_registry['registry']] + return {'ecr_login': ecr_login, 'registry_login': helm_registry_login, 'helm': helm_cmd} + elif public_registry['registry'] is not None: + logger.info("Found AWS public repository, will use default region as deployment") + region = os.environ.get('AWS_REGION', 'us-east-1') + + if is_ecr_public_available(region): + # Public ECR auth is always in us-east-1: https://docs.aws.amazon.com/AmazonECR/latest/public/public-registry-auth.html + ecr_login = ['aws', 'ecr-public', 'get-login-password', '--region', 'us-east-1'] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', public_registry['registry']] + return {'ecr_login': ecr_login, 'helm_registry_login': helm_registry_login, 'helm': helm_cmd} + else: + # No login required for public ECR in non-aws regions + # see https://helm.sh/docs/helm/helm_registry_login/ + return {'helm': helm_cmd} + else: + logger.error("OCI repository format not recognized, falling back to helm pull") + return {'helm': helm_cmd} + + +def get_chart_from_oci(tmpdir, repository=None, version=None): + from subprocess import Popen, PIPE + + commands = get_oci_cmd(repository, version) + + maxAttempts = 3 + retry = maxAttempts + while retry > 0: + try: + # Execute login commands if needed + if 'ecr_login' in commands and 'helm_registry_login' in commands: + logger.info("Running login command: %s", commands['ecr_login']) + logger.info("Running registry login command: %s", commands['helm_registry_login']) + + # Start first process: aws ecr get-login-password + # NOTE: We do NOT call p1.wait() here before starting p2. + # Doing so could deadlock if p1's output fills the pipe buffer + # before p2 starts reading. Instead, start p2 immediately so it + # can consume p1's stdout as it's produced. + p1 = Popen(commands['ecr_login'], stdout=PIPE, stderr=PIPE, cwd=tmpdir) + + # Start second process: helm registry login + p2 = Popen(commands['helm_registry_login'], stdin=p1.stdout, stdout=PIPE, stderr=PIPE, cwd=tmpdir) + p1.stdout.close() # Allow p1 to receive SIGPIPE if p2 exits early + + # Wait for p2 to finish first (ensures full pipeline completes) + _, p2_err = p2.communicate() + + # Now wait for p1 so we have a complete stderr and an exit code + p1.wait() + + # Handle p1 failure + if p1.returncode != 0: + p1_err = p1.stderr.read().decode('utf-8', errors='replace') if p1.stderr else '' + logger.error( + "ECR get-login-password failed for repository %s. Error: %s", + repository, + p1_err or "No error details" + ) + raise subprocess.CalledProcessError(p1.returncode, commands['ecr_login'], p1_err.encode()) + + # Handle p2 failure + if p2.returncode != 0: + logger.error( + "Helm registry authentication failed for repository %s. Error: %s", + repository, + p2_err.decode('utf-8', errors='replace') or "No error details" + ) + raise subprocess.CalledProcessError(p2.returncode, commands['helm_registry_login'], p2_err) + + # Execute helm pull command + logger.info("Running helm command: %s", commands['helm']) + output = subprocess.check_output(commands['helm'], stderr=subprocess.STDOUT, cwd=tmpdir) + logger.info(output) + + # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. + # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service + return os.path.join(tmpdir, repository.rpartition('/')[-1]) + + except subprocess.CalledProcessError as exc: + output = exc.output + if b'Broken pipe' in output: + retry = retry - 1 + logger.info("Broken pipe, retries left: %s" % retry) + else: + raise Exception(output) + + raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') + + +def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): + cmnd = ['helm', verb, release] + if not chart is None: + cmnd.append(chart) + if verb == 'upgrade': + cmnd.append('--install') + if create_namespace: + cmnd.append('--create-namespace') + if not repo is None: + cmnd.extend(['--repo', repo]) + if not file is None: + cmnd.extend(['--values', file]) + if not version is None: + cmnd.extend(['--version', version]) + if not namespace is None: + cmnd.extend(['--namespace', namespace]) + if wait: + cmnd.append('--wait') + if skip_crds: + cmnd.append('--skip-crds') + if not timeout is None: + cmnd.extend(['--timeout', timeout]) + if atomic: + cmnd.append('--atomic') + cmnd.extend(['--kubeconfig', kubeconfig]) + + # Log the full helm command for better troubleshooting + logger.info("Running command: %s", cmnd) + + maxAttempts = 3 + retry = maxAttempts + while retry > 0: + try: + output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=outdir) + logger.info(output.decode('utf-8', errors='replace')) + return + except subprocess.CalledProcessError as exc: + output = exc.output + if b'Broken pipe' in output: + retry = retry - 1 + logger.info("Broken pipe, retries left: %s" % retry) + else: + error_message = output.decode('utf-8', errors='replace') + logger.error("Command failed: %s", cmnd) + logger.error("Error output: %s", error_message) + raise Exception(output) + raise Exception(f'Operation failed after {maxAttempts} attempts: {output.decode("utf-8", errors="replace")}') diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/aws-cdk-eks-cluster.assets.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/aws-cdk-eks-cluster.assets.json index 292d1c8d6f8bd..769a0bc4465c1 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/aws-cdk-eks-cluster.assets.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/aws-cdk-eks-cluster.assets.json @@ -8,7 +8,7 @@ "packaging": "file" }, "destinations": { - "current_account-us-east-1": { + "current_account-us-east-1-050baa8b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", "objectKey": "6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip", "region": "us-east-1", @@ -16,16 +16,16 @@ } } }, - "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069": { + "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a": { "displayName": "Cluster/KubectlProvider/Handler/Code", "source": { - "path": "asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069", + "path": "asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a", "packaging": "zip" }, "destinations": { - "current_account-us-east-1": { + "current_account-us-east-1-e98e539f": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip", + "objectKey": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip", "region": "us-east-1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" } @@ -38,7 +38,7 @@ "packaging": "file" }, "destinations": { - "current_account-us-east-1": { + "current_account-us-east-1-61982482": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", "objectKey": "c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip", "region": "us-east-1", @@ -53,7 +53,7 @@ "packaging": "zip" }, "destinations": { - "current_account-us-east-1": { + "current_account-us-east-1-23eb53bb": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", "objectKey": "39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip", "region": "us-east-1", @@ -68,7 +68,7 @@ "packaging": "zip" }, "destinations": { - "current_account-us-east-1": { + "current_account-us-east-1-e12dd96b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", "objectKey": "d65fbdc11b108e0386ed8577c454d4544f6d4e7960f84a0d2e211478d6324dbf.zip", "region": "us-east-1", @@ -83,7 +83,7 @@ "packaging": "zip" }, "destinations": { - "current_account-us-east-1": { + "current_account-us-east-1-77fa68f9": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", "objectKey": "2ef56be7a7906182ed8d1a8479be348cf836b925a9956cafededbd08199ba5c4.zip", "region": "us-east-1", @@ -98,7 +98,7 @@ "packaging": "zip" }, "destinations": { - "current_account-us-east-1": { + "current_account-us-east-1-4773c154": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", "objectKey": "0d94926290549a70008a6e1e24fe1f1b29c5b53364bc1c09c60ef9cb02f562ca.zip", "region": "us-east-1", @@ -106,16 +106,16 @@ } } }, - "6f880241355e815bf5037bff60a2b1ed370a06fbd3eb6f13dd0ef1ce029cb2a5": { + "66e456af67a5015d7b27b7ab07058b1c0066928af10b611da7b276ba3d89094e": { "displayName": "aws-cdk-eks-cluster Template", "source": { "path": "aws-cdk-eks-cluster.template.json", "packaging": "file" }, "destinations": { - "current_account-us-east-1": { + "current_account-us-east-1-e0f348ce": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "6f880241355e815bf5037bff60a2b1ed370a06fbd3eb6f13dd0ef1ce029cb2a5.json", + "objectKey": "66e456af67a5015d7b27b7ab07058b1c0066928af10b611da7b276ba3d89094e.json", "region": "us-east-1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" } diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/aws-cdk-eks-cluster.template.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/aws-cdk-eks-cluster.template.json index 12eca6c32f29e..df47494c77e5a 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/aws-cdk-eks-cluster.template.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/aws-cdk-eks-cluster.template.json @@ -1161,7 +1161,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1" }, - "S3Key": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip" + "S3Key": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip" }, "Description": "onEvent handler for EKS kubectl resource provider", "Environment": { diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/awscdkeksclusterintegDefaultTestDeployAssertB6AAB3A3.assets.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/awscdkeksclusterintegDefaultTestDeployAssertB6AAB3A3.assets.json index 718d287e50b00..5514f51e17d51 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/awscdkeksclusterintegDefaultTestDeployAssertB6AAB3A3.assets.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/awscdkeksclusterintegDefaultTestDeployAssertB6AAB3A3.assets.json @@ -8,7 +8,7 @@ "packaging": "file" }, "destinations": { - "current_account-current_region": { + "current_account-current_region-d8d86b35": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/integ.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/integ.json index 80a59edcf1f67..b9c6e48e1376b 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/integ.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/integ.json @@ -17,5 +17,5 @@ "assertionStackName": "awscdkeksclusterintegDefaultTestDeployAssertB6AAB3A3" } }, - "minimumCliVersion": "2.1020.1" + "minimumCliVersion": "2.1020.2" } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/manifest.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/manifest.json index d2dc40c3dfa3f..8014cb40ecfcf 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "artifacts": { "aws-cdk-eks-cluster.assets": { "type": "cdk:asset-manifest", @@ -18,7 +18,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-us-east-1", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-us-east-1", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/6f880241355e815bf5037bff60a2b1ed370a06fbd3eb6f13dd0ef1ce029cb2a5.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/66e456af67a5015d7b27b7ab07058b1c0066928af10b611da7b276ba3d89094e.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -1044,7 +1044,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -3756,6 +3756,11 @@ "recommendedValue": true, "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." }, + "@aws-cdk/core:explicitStackTags": { + "userValue": true, + "recommendedValue": true, + "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." + }, "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": { "userValue": false, "recommendedValue": false, @@ -3905,5 +3910,5 @@ } } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1023.0" } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/tree.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/tree.json index f30586f94e85e..118ad66460b7b 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/tree.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-cluster.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"aws-cdk-eks-cluster":{"id":"aws-cdk-eks-cluster","path":"aws-cdk-eks-cluster","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"AdminRole":{"id":"AdminRole","path":"aws-cdk-eks-cluster/AdminRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportAdminRole":{"id":"ImportAdminRole","path":"aws-cdk-eks-cluster/AdminRole/ImportAdminRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/AdminRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:aws:iam::",{"Ref":"AWS::AccountId"},":root"]]}}}],"Version":"2012-10-17"}}}}}},"SecretsKey":{"id":"SecretsKey","path":"aws-cdk-eks-cluster/SecretsKey","constructInfo":{"fqn":"aws-cdk-lib.aws_kms.Key","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/SecretsKey/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kms.CfnKey","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::KMS::Key","aws:cdk:cloudformation:props":{"keyPolicy":{"Statement":[{"Action":"kms:*","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:aws:iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":"*"}],"Version":"2012-10-17"}}}}}},"Vpc":{"id":"Vpc","path":"aws-cdk-eks-cluster/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"maxAzs":"*","natGateways":"*","restrictDefaultSecurityGroup":false}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"aws-cdk-eks-cluster/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"aws-cdk-eks-cluster/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"aws-cdk-eks-cluster/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"aws-cdk-eks-cluster/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"kubectlLayer":{"id":"kubectlLayer","path":"aws-cdk-eks-cluster/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"aws-cdk-eks-cluster/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*","*","*","*","*","*","*","*","*","*","*","*","*","*"]},"children":{"Role":{"id":"Role","path":"aws-cdk-eks-cluster/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-cluster/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"aws-cdk-eks-cluster/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"},{"addEgressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addIngressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addIngressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addIngressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addIngressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addIngressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addIngressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addIngressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addIngressRule":["*",{},"*",true]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:443":{"id":"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:443","path":"aws-cdk-eks-cluster/Cluster/ControlPlaneSecurityGroup/from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterNodesInstanceSecurityGroup899246BD","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","path":"aws-cdk-eks-cluster/Cluster/ControlPlaneSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"toPort":443}}},"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:443":{"id":"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:443","path":"aws-cdk-eks-cluster/Cluster/ControlPlaneSecurityGroup/from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterNodesArmInstanceSecurityGroup599F388B","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:443":{"id":"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:443","path":"aws-cdk-eks-cluster/Cluster/ControlPlaneSecurityGroup/from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceSecurityGroup3794A94B","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:443":{"id":"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:443","path":"aws-cdk-eks-cluster/Cluster/ControlPlaneSecurityGroup/from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterspotInstanceSecurityGroup01F7B1CE","GroupId"]},"toPort":443}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":false},"encryptionConfig":[{"provider":{"keyArn":{"Fn::GetAtt":["SecretsKey317DCF94","Arn"]}},"resources":["secrets"]}],"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":false}},"logging":{"clusterLogging":{"enabledTypes":[{"type":"api"},{"type":"authenticator"},{"type":"scheduler"}]}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"},{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":false}},"tags":[{"key":"foo","value":"bar"}],"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"aws-cdk-eks-cluster/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]},"children":{"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:443":{"id":"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:443","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterNodesInstanceSecurityGroup899246BD","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterNodesInstanceSecurityGroup899246BD","GroupId"]}}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"toPort":443}}},"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443":{"id":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","fromPort":1025,"groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"toPort":65535}}},"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535":{"id":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","fromPort":1025,"groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"toPort":65535}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}}}},"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:443":{"id":"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:443","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterNodesArmInstanceSecurityGroup599F388B","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterNodesArmInstanceSecurityGroup599F388B","GroupId"]}}}},"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:443":{"id":"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:443","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceSecurityGroup3794A94B","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceSecurityGroup3794A94B","GroupId"]}}}},"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:443":{"id":"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:443","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterspotInstanceSecurityGroup01F7B1CE","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterspotInstanceSecurityGroup01F7B1CE","GroupId"]}}}}}},"KubectlProvider":{"id":"KubectlProvider","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}},{"Action":["s3:GetBucket*","s3:GetObject*","s3:List*"],"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:aws:s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"/*"]]},{"Fn::Join":["",["arn:aws:s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"}]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":"nodejs22.x","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole081AD342A","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"aws-cdk-eks-cluster/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}},"mastersRoleAccess":{"id":"mastersRoleAccess","path":"aws-cdk-eks-cluster/Cluster/mastersRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/mastersRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["AdminRole38563C57","Arn"]}}}}}},"NodegroupDefaultCapacity":{"id":"NodegroupDefaultCapacity","path":"aws-cdk-eks-cluster/Cluster/NodegroupDefaultCapacity","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/NodegroupDefaultCapacity/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/NodegroupDefaultCapacity/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/NodegroupDefaultCapacity/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/NodegroupDefaultCapacity/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2_x86_64","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"instanceTypes":["m5.large"],"nodeRole":{"Fn::GetAtt":["ClusterNodegroupDefaultCapacityNodeGroupRole55953B04","Arn"]},"scalingConfig":{"desiredSize":2,"maxSize":2,"minSize":2},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"ConfigCommand":{"id":"ConfigCommand","path":"aws-cdk-eks-cluster/Cluster/ConfigCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"GetTokenCommand":{"id":"GetTokenCommand","path":"aws-cdk-eks-cluster/Cluster/GetTokenCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"fargate-profile-default":{"id":"fargate-profile-default","path":"aws-cdk-eks-cluster/Cluster/fargate-profile-default","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.FargateProfile","version":"0.0.0"},"children":{"PodExecutionRole":{"id":"PodExecutionRole","path":"aws-cdk-eks-cluster/Cluster/fargate-profile-default/PodExecutionRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportPodExecutionRole":{"id":"ImportPodExecutionRole","path":"aws-cdk-eks-cluster/Cluster/fargate-profile-default/PodExecutionRole/ImportPodExecutionRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/fargate-profile-default/PodExecutionRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"eks-fargate-pods.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/fargate-profile-default/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnFargateProfile","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::FargateProfile","aws:cdk:cloudformation:props":{"clusterName":{"Ref":"ClusterEB0386A7"},"podExecutionRoleArn":{"Fn::GetAtt":["ClusterfargateprofiledefaultPodExecutionRole09952CFF","Arn"]},"selectors":[{"namespace":"default","labels":[]}]}}}}},"Nodes":{"id":"Nodes","path":"aws-cdk-eks-cluster/Cluster/Nodes","constructInfo":{"fqn":"aws-cdk-lib.aws_autoscaling.AutoScalingGroup","version":"0.0.0","metadata":[{"instanceType":"*","minCapacity":"*","vpc":"*","machineImage":"*"},{"addSecurityGroup":["*"]},{"addUserData":["*","*","*"]}]},"children":{"InstanceSecurityGroup":{"id":"InstanceSecurityGroup","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":["*",{},"*"]},{"addEgressRule":["*",{},"*"]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addEgressRule":["*",{},"*",false]},{"addEgressRule":["*",{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addIngressRule":["*",{},"*"]},{"addEgressRule":["*",{},"*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceSecurityGroup","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"tags":[{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/Nodes"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceSecurityGroup/from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterNodesInstanceSecurityGroup899246BD","GroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterNodesInstanceSecurityGroup899246BD","GroupId"]}}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterNodesInstanceSecurityGroup899246BD","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"toPort":443}}},"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443":{"id":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceSecurityGroup/from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterNodesInstanceSecurityGroup899246BD","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","fromPort":1025,"groupId":{"Fn::GetAtt":["ClusterNodesInstanceSecurityGroup899246BD","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"toPort":65535}}},"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535":{"id":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceSecurityGroup/from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","fromPort":1025,"groupId":{"Fn::GetAtt":["ClusterNodesInstanceSecurityGroup899246BD","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"toPort":65535}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterNodesInstanceSecurityGroup899246BD","GroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}}}}}},"InstanceRole":{"id":"InstanceRole","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportInstanceRole":{"id":"ImportInstanceRole","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceRole/ImportInstanceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}],"tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/Nodes"}]}}}}},"InstanceProfile":{"id":"InstanceProfile","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceProfile","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnInstanceProfile","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::InstanceProfile","aws:cdk:cloudformation:props":{"roles":[{"Ref":"ClusterNodesInstanceRoleC3C01328"}]}}},"ImportedInstanceProfile":{"id":"ImportedInstanceProfile","path":"aws-cdk-eks-cluster/Cluster/Nodes/ImportedInstanceProfile","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"LaunchTemplate":{"id":"LaunchTemplate","path":"aws-cdk-eks-cluster/Cluster/Nodes/LaunchTemplate","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.LaunchTemplate","version":"0.0.0","metadata":[{"machineImage":"*","instanceType":"*","detailedMonitoring":false,"securityGroup":"*","userData":"*","associatePublicIpAddress":"*","spotOptions":"*","blockDevices":"*","instanceProfile":"*","keyPair":"*"},{"addSecurityGroup":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodes/LaunchTemplate/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnLaunchTemplate","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::LaunchTemplate","aws:cdk:cloudformation:props":{"launchTemplateData":{"iamInstanceProfile":{"arn":{"Fn::GetAtt":["ClusterNodesInstanceProfileF2DD0E21","Arn"]}},"imageId":{"Ref":"SsmParameterValueawsserviceeksoptimizedami132amazonlinux2recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter"},"instanceType":"t2.medium","monitoring":{"enabled":false},"securityGroupIds":[{"Fn::GetAtt":["ClusterNodesInstanceSecurityGroup899246BD","GroupId"]},{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}],"tagSpecifications":[{"resourceType":"instance","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/Nodes/LaunchTemplate"}]},{"resourceType":"volume","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/Nodes/LaunchTemplate"}]}],"userData":{"Fn::Base64":{"Fn::Join":["",["#!/bin/bash\nset -o xtrace\n/etc/eks/bootstrap.sh ",{"Ref":"ClusterEB0386A7"}," --kubelet-extra-args \"--node-labels lifecycle=OnDemand\" --apiserver-endpoint '",{"Fn::GetAtt":["ClusterEB0386A7","Endpoint"]},"' --b64-cluster-ca '",{"Fn::GetAtt":["ClusterEB0386A7","CertificateAuthorityData"]},"' --use-max-pods true\n/opt/aws/bin/cfn-signal --exit-code $? --stack aws-cdk-eks-cluster --resource ClusterNodesASGF172BD19 --region us-east-1"]]}}},"tagSpecifications":[{"resourceType":"launch-template","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/Nodes/LaunchTemplate"}]}]}}}}},"ASG":{"id":"ASG","path":"aws-cdk-eks-cluster/Cluster/Nodes/ASG","constructInfo":{"fqn":"aws-cdk-lib.aws_autoscaling.CfnAutoScalingGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::AutoScaling::AutoScalingGroup","aws:cdk:cloudformation:props":{"launchTemplate":{"launchTemplateId":{"Ref":"ClusterNodesLaunchTemplateD1028D0D"},"version":{"Fn::GetAtt":["ClusterNodesLaunchTemplateD1028D0D","LatestVersionNumber"]}},"maxSize":"3","minSize":"3","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned","propagateAtLaunch":true},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/Nodes","propagateAtLaunch":true}],"vpcZoneIdentifier":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}},"InstanceRoleARN":{"id":"InstanceRoleARN","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceRoleARN","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}}}},"NodesArm":{"id":"NodesArm","path":"aws-cdk-eks-cluster/Cluster/NodesArm","constructInfo":{"fqn":"aws-cdk-lib.aws_autoscaling.AutoScalingGroup","version":"0.0.0","metadata":[{"instanceType":"*","minCapacity":"*","vpc":"*","machineImage":"*"},{"addSecurityGroup":["*"]},{"addUserData":["*","*","*"]}]},"children":{"InstanceSecurityGroup":{"id":"InstanceSecurityGroup","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":["*",{},"*"]},{"addEgressRule":["*",{},"*"]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addEgressRule":["*",{},"*",false]},{"addEgressRule":["*",{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addIngressRule":["*",{},"*"]},{"addEgressRule":["*",{},"*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceSecurityGroup","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"tags":[{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/NodesArm"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceSecurityGroup/from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterNodesArmInstanceSecurityGroup599F388B","GroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterNodesArmInstanceSecurityGroup599F388B","GroupId"]}}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterNodesArmInstanceSecurityGroup599F388B","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"toPort":443}}},"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443":{"id":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceSecurityGroup/from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterNodesArmInstanceSecurityGroup599F388B","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","fromPort":1025,"groupId":{"Fn::GetAtt":["ClusterNodesArmInstanceSecurityGroup599F388B","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"toPort":65535}}},"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535":{"id":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceSecurityGroup/from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","fromPort":1025,"groupId":{"Fn::GetAtt":["ClusterNodesArmInstanceSecurityGroup599F388B","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"toPort":65535}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterNodesArmInstanceSecurityGroup599F388B","GroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}}}}}},"InstanceRole":{"id":"InstanceRole","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportInstanceRole":{"id":"ImportInstanceRole","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceRole/ImportInstanceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}],"tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/NodesArm"}]}}}}},"InstanceProfile":{"id":"InstanceProfile","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceProfile","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnInstanceProfile","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::InstanceProfile","aws:cdk:cloudformation:props":{"roles":[{"Ref":"ClusterNodesArmInstanceRoleB93D3298"}]}}},"ImportedInstanceProfile":{"id":"ImportedInstanceProfile","path":"aws-cdk-eks-cluster/Cluster/NodesArm/ImportedInstanceProfile","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"LaunchTemplate":{"id":"LaunchTemplate","path":"aws-cdk-eks-cluster/Cluster/NodesArm/LaunchTemplate","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.LaunchTemplate","version":"0.0.0","metadata":[{"machineImage":"*","instanceType":"*","detailedMonitoring":false,"securityGroup":"*","userData":"*","associatePublicIpAddress":"*","spotOptions":"*","blockDevices":"*","instanceProfile":"*","keyPair":"*"},{"addSecurityGroup":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/NodesArm/LaunchTemplate/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnLaunchTemplate","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::LaunchTemplate","aws:cdk:cloudformation:props":{"launchTemplateData":{"iamInstanceProfile":{"arn":{"Fn::GetAtt":["ClusterNodesArmInstanceProfile158C5C9F","Arn"]}},"imageId":{"Ref":"SsmParameterValueawsserviceeksoptimizedami132amazonlinux2arm64recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter"},"instanceType":"m6g.medium","monitoring":{"enabled":false},"securityGroupIds":[{"Fn::GetAtt":["ClusterNodesArmInstanceSecurityGroup599F388B","GroupId"]},{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}],"tagSpecifications":[{"resourceType":"instance","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/NodesArm/LaunchTemplate"}]},{"resourceType":"volume","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/NodesArm/LaunchTemplate"}]}],"userData":{"Fn::Base64":{"Fn::Join":["",["#!/bin/bash\nset -o xtrace\n/etc/eks/bootstrap.sh ",{"Ref":"ClusterEB0386A7"}," --kubelet-extra-args \"--node-labels lifecycle=OnDemand\" --apiserver-endpoint '",{"Fn::GetAtt":["ClusterEB0386A7","Endpoint"]},"' --b64-cluster-ca '",{"Fn::GetAtt":["ClusterEB0386A7","CertificateAuthorityData"]},"' --use-max-pods true\n/opt/aws/bin/cfn-signal --exit-code $? --stack aws-cdk-eks-cluster --resource ClusterNodesArmASG40A593D0 --region us-east-1"]]}}},"tagSpecifications":[{"resourceType":"launch-template","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/NodesArm/LaunchTemplate"}]}]}}}}},"ASG":{"id":"ASG","path":"aws-cdk-eks-cluster/Cluster/NodesArm/ASG","constructInfo":{"fqn":"aws-cdk-lib.aws_autoscaling.CfnAutoScalingGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::AutoScaling::AutoScalingGroup","aws:cdk:cloudformation:props":{"launchTemplate":{"launchTemplateId":{"Ref":"ClusterNodesArmLaunchTemplateB6CFBA44"},"version":{"Fn::GetAtt":["ClusterNodesArmLaunchTemplateB6CFBA44","LatestVersionNumber"]}},"maxSize":"1","minSize":"1","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned","propagateAtLaunch":true},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/NodesArm","propagateAtLaunch":true}],"vpcZoneIdentifier":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}},"InstanceRoleARN":{"id":"InstanceRoleARN","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceRoleARN","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}}}},"BottlerocketNodes":{"id":"BottlerocketNodes","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes","constructInfo":{"fqn":"aws-cdk-lib.aws_autoscaling.AutoScalingGroup","version":"0.0.0","metadata":[{"instanceType":"*","minCapacity":"*","vpc":"*","machineImage":"*"},{"addSecurityGroup":["*"]},{"addUserData":["*","*","*","*"]}]},"children":{"InstanceSecurityGroup":{"id":"InstanceSecurityGroup","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":["*",{},"*"]},{"addEgressRule":["*",{},"*"]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addEgressRule":["*",{},"*",false]},{"addEgressRule":["*",{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addIngressRule":["*",{},"*"]},{"addEgressRule":["*",{},"*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceSecurityGroup","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"tags":[{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceSecurityGroup/from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceSecurityGroup3794A94B","GroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceSecurityGroup3794A94B","GroupId"]}}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceSecurityGroup3794A94B","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"toPort":443}}},"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443":{"id":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceSecurityGroup/from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceSecurityGroup3794A94B","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","fromPort":1025,"groupId":{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceSecurityGroup3794A94B","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"toPort":65535}}},"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535":{"id":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceSecurityGroup/from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","fromPort":1025,"groupId":{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceSecurityGroup3794A94B","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"toPort":65535}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceSecurityGroup3794A94B","GroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}}}}}},"InstanceRole":{"id":"InstanceRole","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportInstanceRole":{"id":"ImportInstanceRole","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceRole/ImportInstanceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}],"tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes"}]}}}}},"InstanceProfile":{"id":"InstanceProfile","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceProfile","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnInstanceProfile","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::InstanceProfile","aws:cdk:cloudformation:props":{"roles":[{"Ref":"ClusterBottlerocketNodesInstanceRole68E4BCFB"}]}}},"ImportedInstanceProfile":{"id":"ImportedInstanceProfile","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/ImportedInstanceProfile","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"LaunchTemplate":{"id":"LaunchTemplate","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/LaunchTemplate","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.LaunchTemplate","version":"0.0.0","metadata":[{"machineImage":"*","instanceType":"*","detailedMonitoring":false,"securityGroup":"*","userData":"*","associatePublicIpAddress":"*","spotOptions":"*","blockDevices":"*","instanceProfile":"*","keyPair":"*"},{"addSecurityGroup":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/LaunchTemplate/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnLaunchTemplate","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::LaunchTemplate","aws:cdk:cloudformation:props":{"launchTemplateData":{"iamInstanceProfile":{"arn":{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceProfileB6E2F25A","Arn"]}},"imageId":{"Ref":"SsmParameterValueawsservicebottlerocketawsk8s132x8664latestimageidC96584B6F00A464EAD1953AFF4B05118Parameter"},"instanceType":"t3.small","monitoring":{"enabled":false},"securityGroupIds":[{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceSecurityGroup3794A94B","GroupId"]},{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}],"tagSpecifications":[{"resourceType":"instance","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/LaunchTemplate"}]},{"resourceType":"volume","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/LaunchTemplate"}]}],"userData":{"Fn::Base64":{"Fn::Join":["",["\n[settings.kubernetes]\napi-server=\"",{"Fn::GetAtt":["ClusterEB0386A7","Endpoint"]},"\"\ncluster-certificate=\"",{"Fn::GetAtt":["ClusterEB0386A7","CertificateAuthorityData"]},"\"\ncluster-name=\"",{"Ref":"ClusterEB0386A7"},"\""]]}}},"tagSpecifications":[{"resourceType":"launch-template","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/LaunchTemplate"}]}]}}}}},"ASG":{"id":"ASG","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/ASG","constructInfo":{"fqn":"aws-cdk-lib.aws_autoscaling.CfnAutoScalingGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::AutoScaling::AutoScalingGroup","aws:cdk:cloudformation:props":{"launchTemplate":{"launchTemplateId":{"Ref":"ClusterBottlerocketNodesLaunchTemplate54246C29"},"version":{"Fn::GetAtt":["ClusterBottlerocketNodesLaunchTemplate54246C29","LatestVersionNumber"]}},"maxSize":"2","minSize":"2","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned","propagateAtLaunch":true},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes","propagateAtLaunch":true}],"vpcZoneIdentifier":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}},"InstanceRoleARN":{"id":"InstanceRoleARN","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceRoleARN","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}}}},"spot":{"id":"spot","path":"aws-cdk-eks-cluster/Cluster/spot","constructInfo":{"fqn":"aws-cdk-lib.aws_autoscaling.AutoScalingGroup","version":"0.0.0","metadata":[{"spotPrice":"*","instanceType":"*","maxCapacity":"*","vpc":"*","machineImage":"*"},{"addSecurityGroup":["*"]},{"addUserData":["*","*","*"]}]},"children":{"InstanceSecurityGroup":{"id":"InstanceSecurityGroup","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":["*",{},"*"]},{"addEgressRule":["*",{},"*"]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addEgressRule":["*",{},"*",false]},{"addEgressRule":["*",{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addIngressRule":["*",{},"*"]},{"addEgressRule":["*",{},"*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"aws-cdk-eks-cluster/Cluster/spot/InstanceSecurityGroup","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"tags":[{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/spot"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceSecurityGroup/from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterspotInstanceSecurityGroup01F7B1CE","GroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterspotInstanceSecurityGroup01F7B1CE","GroupId"]}}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterspotInstanceSecurityGroup01F7B1CE","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"toPort":443}}},"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443":{"id":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceSecurityGroup/from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterspotInstanceSecurityGroup01F7B1CE","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","fromPort":1025,"groupId":{"Fn::GetAtt":["ClusterspotInstanceSecurityGroup01F7B1CE","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"toPort":65535}}},"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535":{"id":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceSecurityGroup/from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","fromPort":1025,"groupId":{"Fn::GetAtt":["ClusterspotInstanceSecurityGroup01F7B1CE","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"toPort":65535}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterspotInstanceSecurityGroup01F7B1CE","GroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}}}}}},"InstanceRole":{"id":"InstanceRole","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportInstanceRole":{"id":"ImportInstanceRole","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceRole/ImportInstanceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}],"tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/spot"}]}}}}},"InstanceProfile":{"id":"InstanceProfile","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceProfile","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnInstanceProfile","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::InstanceProfile","aws:cdk:cloudformation:props":{"roles":[{"Ref":"ClusterspotInstanceRole39043830"}]}}},"ImportedInstanceProfile":{"id":"ImportedInstanceProfile","path":"aws-cdk-eks-cluster/Cluster/spot/ImportedInstanceProfile","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"LaunchTemplate":{"id":"LaunchTemplate","path":"aws-cdk-eks-cluster/Cluster/spot/LaunchTemplate","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.LaunchTemplate","version":"0.0.0","metadata":[{"machineImage":"*","instanceType":"*","detailedMonitoring":false,"securityGroup":"*","userData":"*","associatePublicIpAddress":"*","spotOptions":{"maxPrice":"*"},"blockDevices":"*","instanceProfile":"*","keyPair":"*"},{"addSecurityGroup":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/spot/LaunchTemplate/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnLaunchTemplate","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::LaunchTemplate","aws:cdk:cloudformation:props":{"launchTemplateData":{"iamInstanceProfile":{"arn":{"Fn::GetAtt":["ClusterspotInstanceProfileAB88D077","Arn"]}},"imageId":{"Ref":"SsmParameterValueawsserviceeksoptimizedami132amazonlinux2recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter"},"instanceType":"t3.large","instanceMarketOptions":{"marketType":"spot","spotOptions":{"maxPrice":"0.1094"}},"monitoring":{"enabled":false},"securityGroupIds":[{"Fn::GetAtt":["ClusterspotInstanceSecurityGroup01F7B1CE","GroupId"]},{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}],"tagSpecifications":[{"resourceType":"instance","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/spot/LaunchTemplate"}]},{"resourceType":"volume","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/spot/LaunchTemplate"}]}],"userData":{"Fn::Base64":{"Fn::Join":["",["#!/bin/bash\nset -o xtrace\n/etc/eks/bootstrap.sh ",{"Ref":"ClusterEB0386A7"}," --kubelet-extra-args \"--node-labels lifecycle=Ec2Spot --register-with-taints=spotInstance=true:PreferNoSchedule --node-labels foo=bar,goo=far\" --apiserver-endpoint '",{"Fn::GetAtt":["ClusterEB0386A7","Endpoint"]},"' --b64-cluster-ca '",{"Fn::GetAtt":["ClusterEB0386A7","CertificateAuthorityData"]},"' --use-max-pods true --aws-api-retry-attempts 5\n/opt/aws/bin/cfn-signal --exit-code $? --stack aws-cdk-eks-cluster --resource ClusterspotASG857494B6 --region us-east-1"]]}}},"tagSpecifications":[{"resourceType":"launch-template","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/spot/LaunchTemplate"}]}]}}}}},"ASG":{"id":"ASG","path":"aws-cdk-eks-cluster/Cluster/spot/ASG","constructInfo":{"fqn":"aws-cdk-lib.aws_autoscaling.CfnAutoScalingGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::AutoScaling::AutoScalingGroup","aws:cdk:cloudformation:props":{"launchTemplate":{"launchTemplateId":{"Ref":"ClusterspotLaunchTemplate5652F38D"},"version":{"Fn::GetAtt":["ClusterspotLaunchTemplate5652F38D","LatestVersionNumber"]}},"maxSize":"10","minSize":"1","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned","propagateAtLaunch":true},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/spot","propagateAtLaunch":true}],"vpcZoneIdentifier":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}},"InstanceRoleARN":{"id":"InstanceRoleARN","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceRoleARN","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}}}},"Nodegroupextra-ng":{"id":"Nodegroupextra-ng","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2_x86_64","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"instanceTypes":["t3.small"],"nodeRole":{"Fn::GetAtt":["ClusterNodegroupextrangNodeGroupRole23AE23D0","Arn"]},"scalingConfig":{"desiredSize":1,"maxSize":4,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"updateConfig":{"maxUnavailable":3}}}}}},"Nodegroupextra-ng-spot":{"id":"Nodegroupextra-ng-spot","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-spot","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-spot/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-spot/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-spot/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-spot/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2_x86_64","capacityType":"SPOT","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"instanceTypes":["c5.large","c5a.large","m7i-flex.large"],"nodeRole":{"Fn::GetAtt":["ClusterNodegroupextrangspotNodeGroupRoleB53B4857","Arn"]},"scalingConfig":{"desiredSize":3,"maxSize":3,"minSize":3},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"Nodegroupextra-ng-arm":{"id":"Nodegroupextra-ng-arm","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-arm","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-arm/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-arm/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-arm/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-arm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2_ARM_64","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"instanceTypes":["m6g.medium"],"nodeRole":{"Fn::GetAtt":["ClusterNodegroupextrangarmNodeGroupRoleADF5749F","Arn"]},"scalingConfig":{"desiredSize":1,"maxSize":1,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"updateConfig":{"maxUnavailablePercentage":33}}}}}},"Nodegroupextra-ng-arm3":{"id":"Nodegroupextra-ng-arm3","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-arm3","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-arm3/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-arm3/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-arm3/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-arm3/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2_ARM_64","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"instanceTypes":["c7g.large"],"nodeRole":{"Fn::GetAtt":["ClusterNodegroupextrangarm3NodeGroupRole3A6AB3EC","Arn"]},"scalingConfig":{"desiredSize":1,"maxSize":1,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"Nodegroupextra-ng2":{"id":"Nodegroupextra-ng2","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng2","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng2/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"launchTemplate":{"id":{"Ref":"LaunchTemplate"},"version":{"Fn::GetAtt":["LaunchTemplate","DefaultVersionNumber"]}},"nodeRole":{"Fn::GetAtt":["ClusterNodegroupDefaultCapacityNodeGroupRole55953B04","Arn"]},"scalingConfig":{"desiredSize":1,"maxSize":1,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"Nodegroupextra-ng-gpu":{"id":"Nodegroupextra-ng-gpu","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-gpu","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-gpu/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-gpu/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-gpu/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-gpu/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2_x86_64_GPU","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"instanceTypes":["p2.xlarge","g5.xlarge","g6e.xlarge"],"nodeRole":{"Fn::GetAtt":["ClusterNodegroupextranggpuNodeGroupRoleBCDD4AB4","Arn"]},"scalingConfig":{"desiredSize":1,"maxSize":1,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"manifest-HelloApp":{"id":"manifest-HelloApp","path":"aws-cdk-eks-cluster/Cluster/manifest-HelloApp","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/manifest-HelloApp/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/Cluster/manifest-HelloApp/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"chart-dashboard":{"id":"chart-dashboard","path":"aws-cdk-eks-cluster/Cluster/chart-dashboard","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/chart-dashboard/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/Cluster/chart-dashboard/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"chart-test-chart":{"id":"chart-test-chart","path":"aws-cdk-eks-cluster/Cluster/chart-test-chart","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/chart-test-chart/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/Cluster/chart-test-chart/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"cdk8s-chart":{"id":"cdk8s-chart","path":"aws-cdk-eks-cluster/Cluster/cdk8s-chart","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/cdk8s-chart/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/Cluster/cdk8s-chart/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"manifest-nginx-namespace":{"id":"manifest-nginx-namespace","path":"aws-cdk-eks-cluster/Cluster/manifest-nginx-namespace","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/manifest-nginx-namespace/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/Cluster/manifest-nginx-namespace/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"chart-nginx-ingress":{"id":"chart-nginx-ingress","path":"aws-cdk-eks-cluster/Cluster/chart-nginx-ingress","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/chart-nginx-ingress/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/Cluster/chart-nginx-ingress/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"MyServiceAccount":{"id":"MyServiceAccount","path":"aws-cdk-eks-cluster/Cluster/MyServiceAccount","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.ServiceAccount","version":"0.0.0"},"children":{"ConditionJson":{"id":"ConditionJson","path":"aws-cdk-eks-cluster/Cluster/MyServiceAccount/ConditionJson","constructInfo":{"fqn":"aws-cdk-lib.CfnJson","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/MyServiceAccount/ConditionJson/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/Cluster/MyServiceAccount/ConditionJson/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster/Cluster/MyServiceAccount/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-cluster/Cluster/MyServiceAccount/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/MyServiceAccount/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"Fn::GetAtt":["ClusterMyServiceAccountConditionJson671C0633","Value"]}},"Effect":"Allow","Principal":{"Federated":{"Ref":"ClusterOpenIdConnectProviderE7EB0530"}}}],"Version":"2012-10-17"}}}}}},"manifest-MyServiceAccountServiceAccountResource":{"id":"manifest-MyServiceAccountServiceAccountResource","path":"aws-cdk-eks-cluster/Cluster/MyServiceAccount/manifest-MyServiceAccountServiceAccountResource","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/MyServiceAccount/manifest-MyServiceAccountServiceAccountResource/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/Cluster/MyServiceAccount/manifest-MyServiceAccountServiceAccountResource/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"OpenIdConnectProvider":{"id":"OpenIdConnectProvider","path":"aws-cdk-eks-cluster/Cluster/OpenIdConnectProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.OpenIdConnectProvider","version":"0.0.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/OpenIdConnectProvider/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/Cluster/OpenIdConnectProvider/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"MyExtendedServiceAccount":{"id":"MyExtendedServiceAccount","path":"aws-cdk-eks-cluster/Cluster/MyExtendedServiceAccount","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.ServiceAccount","version":"0.0.0"},"children":{"ConditionJson":{"id":"ConditionJson","path":"aws-cdk-eks-cluster/Cluster/MyExtendedServiceAccount/ConditionJson","constructInfo":{"fqn":"aws-cdk-lib.CfnJson","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/MyExtendedServiceAccount/ConditionJson/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/Cluster/MyExtendedServiceAccount/ConditionJson/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster/Cluster/MyExtendedServiceAccount/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-cluster/Cluster/MyExtendedServiceAccount/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/MyExtendedServiceAccount/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"Fn::GetAtt":["ClusterMyExtendedServiceAccountConditionJsonF780F28A","Value"]}},"Effect":"Allow","Principal":{"Federated":{"Ref":"ClusterOpenIdConnectProviderE7EB0530"}}}],"Version":"2012-10-17"}}}}}},"manifest-MyExtendedServiceAccountServiceAccountResource":{"id":"manifest-MyExtendedServiceAccountServiceAccountResource","path":"aws-cdk-eks-cluster/Cluster/MyExtendedServiceAccount/manifest-MyExtendedServiceAccountServiceAccountResource","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/MyExtendedServiceAccount/manifest-MyExtendedServiceAccountServiceAccountResource/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/Cluster/MyExtendedServiceAccount/manifest-MyExtendedServiceAccountServiceAccountResource/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}}}},"SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter":{"id":"SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter","path":"aws-cdk-eks-cluster/SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118":{"id":"SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118","path":"aws-cdk-eks-cluster/SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter":{"id":"SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter","path":"aws-cdk-eks-cluster/SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118":{"id":"SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118","path":"aws-cdk-eks-cluster/SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.32--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter":{"id":"SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.32--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter","path":"aws-cdk-eks-cluster/SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.32--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.32--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118":{"id":"SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.32--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118","path":"aws-cdk-eks-cluster/SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.32--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"SsmParameterValue:--aws--service--eks--optimized-ami--1.25--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter":{"id":"SsmParameterValue:--aws--service--eks--optimized-ami--1.25--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter","path":"aws-cdk-eks-cluster/SsmParameterValue:--aws--service--eks--optimized-ami--1.25--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"SsmParameterValue:--aws--service--eks--optimized-ami--1.25--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118":{"id":"SsmParameterValue:--aws--service--eks--optimized-ami--1.25--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118","path":"aws-cdk-eks-cluster/SsmParameterValue:--aws--service--eks--optimized-ami--1.25--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"LaunchTemplate":{"id":"LaunchTemplate","path":"aws-cdk-eks-cluster/LaunchTemplate","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnLaunchTemplate","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::LaunchTemplate","aws:cdk:cloudformation:props":{"launchTemplateData":{"imageId":{"Ref":"SsmParameterValueawsserviceeksoptimizedami125amazonlinux2recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter"},"instanceType":"t3.small","userData":{"Fn::Base64":{"Fn::Join":["",["#!/bin/bash\nset -o xtrace\n/etc/eks/bootstrap.sh ",{"Ref":"ClusterEB0386A7"}]]}}}}}},"HelloAppWithoutValidation":{"id":"HelloAppWithoutValidation","path":"aws-cdk-eks-cluster/HelloAppWithoutValidation","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/HelloAppWithoutValidation/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/HelloAppWithoutValidation/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"ChartAsset":{"id":"ChartAsset","path":"aws-cdk-eks-cluster/ChartAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster/ChartAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster/ChartAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider":{"id":"Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider","path":"aws-cdk-eks-cluster/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-cluster/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"AWSCDKCfnUtilsProviderCustomResourceProvider":{"id":"AWSCDKCfnUtilsProviderCustomResourceProvider","path":"aws-cdk-eks-cluster/AWSCDKCfnUtilsProviderCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-cluster/AWSCDKCfnUtilsProviderCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster/AWSCDKCfnUtilsProviderCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster/AWSCDKCfnUtilsProviderCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"ClusterEndpoint":{"id":"ClusterEndpoint","path":"aws-cdk-eks-cluster/ClusterEndpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"ClusterArn":{"id":"ClusterArn","path":"aws-cdk-eks-cluster/ClusterArn","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"ClusterCertificateAuthorityData":{"id":"ClusterCertificateAuthorityData","path":"aws-cdk-eks-cluster/ClusterCertificateAuthorityData","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"ClusterSecurityGroupId":{"id":"ClusterSecurityGroupId","path":"aws-cdk-eks-cluster/ClusterSecurityGroupId","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"ClusterEncryptionConfigKeyArn":{"id":"ClusterEncryptionConfigKeyArn","path":"aws-cdk-eks-cluster/ClusterEncryptionConfigKeyArn","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"ClusterName":{"id":"ClusterName","path":"aws-cdk-eks-cluster/ClusterName","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"NodegroupName":{"id":"NodegroupName","path":"aws-cdk-eks-cluster/NodegroupName","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-eks-cluster-integ":{"id":"aws-cdk-eks-cluster-integ","path":"aws-cdk-eks-cluster-integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-eks-cluster-integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-eks-cluster-integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"aws-cdk-eks-cluster":{"id":"aws-cdk-eks-cluster","path":"aws-cdk-eks-cluster","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"AdminRole":{"id":"AdminRole","path":"aws-cdk-eks-cluster/AdminRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportAdminRole":{"id":"ImportAdminRole","path":"aws-cdk-eks-cluster/AdminRole/ImportAdminRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/AdminRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:aws:iam::",{"Ref":"AWS::AccountId"},":root"]]}}}],"Version":"2012-10-17"}}}}}},"SecretsKey":{"id":"SecretsKey","path":"aws-cdk-eks-cluster/SecretsKey","constructInfo":{"fqn":"aws-cdk-lib.aws_kms.Key","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/SecretsKey/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_kms.CfnKey","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::KMS::Key","aws:cdk:cloudformation:props":{"keyPolicy":{"Statement":[{"Action":"kms:*","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:aws:iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":"*"}],"Version":"2012-10-17"}}}}}},"Vpc":{"id":"Vpc","path":"aws-cdk-eks-cluster/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"maxAzs":"*","natGateways":"*","restrictDefaultSecurityGroup":false}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"aws-cdk-eks-cluster/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"aws-cdk-eks-cluster/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"aws-cdk-eks-cluster/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"aws-cdk-eks-cluster/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"kubectlLayer":{"id":"kubectlLayer","path":"aws-cdk-eks-cluster/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"aws-cdk-eks-cluster/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*","*","*","*","*","*","*","*","*","*","*","*","*","*"]},"children":{"Role":{"id":"Role","path":"aws-cdk-eks-cluster/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-cluster/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"aws-cdk-eks-cluster/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"},{"addEgressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addIngressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addIngressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addIngressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addIngressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addIngressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addIngressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addIngressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addEgressRule":["*",{},"*",true]},{"addIngressRule":["*",{},"*",true]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:443":{"id":"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:443","path":"aws-cdk-eks-cluster/Cluster/ControlPlaneSecurityGroup/from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterNodesInstanceSecurityGroup899246BD","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","path":"aws-cdk-eks-cluster/Cluster/ControlPlaneSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"toPort":443}}},"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:443":{"id":"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:443","path":"aws-cdk-eks-cluster/Cluster/ControlPlaneSecurityGroup/from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterNodesArmInstanceSecurityGroup599F388B","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:443":{"id":"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:443","path":"aws-cdk-eks-cluster/Cluster/ControlPlaneSecurityGroup/from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceSecurityGroup3794A94B","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:443":{"id":"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:443","path":"aws-cdk-eks-cluster/Cluster/ControlPlaneSecurityGroup/from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterspotInstanceSecurityGroup01F7B1CE","GroupId"]},"toPort":443}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":false},"encryptionConfig":[{"provider":{"keyArn":{"Fn::GetAtt":["SecretsKey317DCF94","Arn"]}},"resources":["secrets"]}],"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":false}},"logging":{"clusterLogging":{"enabledTypes":[{"type":"api"},{"type":"authenticator"},{"type":"scheduler"}]}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"},{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":false}},"tags":[{"key":"foo","value":"bar"}],"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"aws-cdk-eks-cluster/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]},"children":{"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:443":{"id":"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:443","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterNodesInstanceSecurityGroup899246BD","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterNodesInstanceSecurityGroup899246BD","GroupId"]}}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"toPort":443}}},"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443":{"id":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","fromPort":1025,"groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"toPort":65535}}},"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535":{"id":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","fromPort":1025,"groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"toPort":65535}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}}}},"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:443":{"id":"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:443","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterNodesArmInstanceSecurityGroup599F388B","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterNodesArmInstanceSecurityGroup599F388B","GroupId"]}}}},"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:443":{"id":"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:443","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceSecurityGroup3794A94B","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceSecurityGroup3794A94B","GroupId"]}}}},"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:443":{"id":"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:443","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterspotInstanceSecurityGroup01F7B1CE","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/ClusterSecurityGroup/from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterspotInstanceSecurityGroup01F7B1CE","GroupId"]}}}}}},"KubectlProvider":{"id":"KubectlProvider","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}},{"Action":["s3:GetBucket*","s3:GetObject*","s3:List*"],"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:aws:s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"/*"]]},{"Fn::Join":["",["arn:aws:s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"}]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":"nodejs22.x","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole081AD342A","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"aws-cdk-eks-cluster/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}},"mastersRoleAccess":{"id":"mastersRoleAccess","path":"aws-cdk-eks-cluster/Cluster/mastersRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/mastersRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["AdminRole38563C57","Arn"]}}}}}},"NodegroupDefaultCapacity":{"id":"NodegroupDefaultCapacity","path":"aws-cdk-eks-cluster/Cluster/NodegroupDefaultCapacity","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/NodegroupDefaultCapacity/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/NodegroupDefaultCapacity/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/NodegroupDefaultCapacity/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/NodegroupDefaultCapacity/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2_x86_64","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"instanceTypes":["m5.large"],"nodeRole":{"Fn::GetAtt":["ClusterNodegroupDefaultCapacityNodeGroupRole55953B04","Arn"]},"scalingConfig":{"desiredSize":2,"maxSize":2,"minSize":2},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"ConfigCommand":{"id":"ConfigCommand","path":"aws-cdk-eks-cluster/Cluster/ConfigCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"GetTokenCommand":{"id":"GetTokenCommand","path":"aws-cdk-eks-cluster/Cluster/GetTokenCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"fargate-profile-default":{"id":"fargate-profile-default","path":"aws-cdk-eks-cluster/Cluster/fargate-profile-default","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.FargateProfile","version":"0.0.0"},"children":{"PodExecutionRole":{"id":"PodExecutionRole","path":"aws-cdk-eks-cluster/Cluster/fargate-profile-default/PodExecutionRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportPodExecutionRole":{"id":"ImportPodExecutionRole","path":"aws-cdk-eks-cluster/Cluster/fargate-profile-default/PodExecutionRole/ImportPodExecutionRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/fargate-profile-default/PodExecutionRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"eks-fargate-pods.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/fargate-profile-default/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnFargateProfile","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::FargateProfile","aws:cdk:cloudformation:props":{"clusterName":{"Ref":"ClusterEB0386A7"},"podExecutionRoleArn":{"Fn::GetAtt":["ClusterfargateprofiledefaultPodExecutionRole09952CFF","Arn"]},"selectors":[{"namespace":"default","labels":[]}]}}}}},"Nodes":{"id":"Nodes","path":"aws-cdk-eks-cluster/Cluster/Nodes","constructInfo":{"fqn":"aws-cdk-lib.aws_autoscaling.AutoScalingGroup","version":"0.0.0","metadata":[{"instanceType":"*","minCapacity":"*","vpc":"*","machineImage":"*"},{"addSecurityGroup":["*"]},{"addUserData":["*","*","*"]}]},"children":{"InstanceSecurityGroup":{"id":"InstanceSecurityGroup","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":["*",{},"*"]},{"addEgressRule":["*",{},"*"]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addEgressRule":["*",{},"*",false]},{"addEgressRule":["*",{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addIngressRule":["*",{},"*"]},{"addEgressRule":["*",{},"*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceSecurityGroup","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"tags":[{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/Nodes"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceSecurityGroup/from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterNodesInstanceSecurityGroup06345DB9:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterNodesInstanceSecurityGroup899246BD","GroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterNodesInstanceSecurityGroup899246BD","GroupId"]}}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterNodesInstanceSecurityGroup899246BD","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"toPort":443}}},"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443":{"id":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceSecurityGroup/from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterNodesInstanceSecurityGroup899246BD","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","fromPort":1025,"groupId":{"Fn::GetAtt":["ClusterNodesInstanceSecurityGroup899246BD","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"toPort":65535}}},"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535":{"id":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceSecurityGroup/from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","fromPort":1025,"groupId":{"Fn::GetAtt":["ClusterNodesInstanceSecurityGroup899246BD","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"toPort":65535}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterNodesInstanceSecurityGroup899246BD","GroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}}}}}},"InstanceRole":{"id":"InstanceRole","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportInstanceRole":{"id":"ImportInstanceRole","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceRole/ImportInstanceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}],"tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/Nodes"}]}}}}},"InstanceProfile":{"id":"InstanceProfile","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceProfile","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnInstanceProfile","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::InstanceProfile","aws:cdk:cloudformation:props":{"roles":[{"Ref":"ClusterNodesInstanceRoleC3C01328"}]}}},"ImportedInstanceProfile":{"id":"ImportedInstanceProfile","path":"aws-cdk-eks-cluster/Cluster/Nodes/ImportedInstanceProfile","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"LaunchTemplate":{"id":"LaunchTemplate","path":"aws-cdk-eks-cluster/Cluster/Nodes/LaunchTemplate","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.LaunchTemplate","version":"0.0.0","metadata":[{"machineImage":"*","instanceType":"*","detailedMonitoring":false,"securityGroup":"*","userData":"*","associatePublicIpAddress":"*","spotOptions":"*","blockDevices":"*","instanceProfile":"*","keyPair":"*"},{"addSecurityGroup":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodes/LaunchTemplate/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnLaunchTemplate","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::LaunchTemplate","aws:cdk:cloudformation:props":{"launchTemplateData":{"iamInstanceProfile":{"arn":{"Fn::GetAtt":["ClusterNodesInstanceProfileF2DD0E21","Arn"]}},"imageId":{"Ref":"SsmParameterValueawsserviceeksoptimizedami132amazonlinux2recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter"},"instanceType":"t2.medium","monitoring":{"enabled":false},"securityGroupIds":[{"Fn::GetAtt":["ClusterNodesInstanceSecurityGroup899246BD","GroupId"]},{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}],"tagSpecifications":[{"resourceType":"instance","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/Nodes/LaunchTemplate"}]},{"resourceType":"volume","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/Nodes/LaunchTemplate"}]}],"userData":{"Fn::Base64":{"Fn::Join":["",["#!/bin/bash\nset -o xtrace\n/etc/eks/bootstrap.sh ",{"Ref":"ClusterEB0386A7"}," --kubelet-extra-args \"--node-labels lifecycle=OnDemand\" --apiserver-endpoint '",{"Fn::GetAtt":["ClusterEB0386A7","Endpoint"]},"' --b64-cluster-ca '",{"Fn::GetAtt":["ClusterEB0386A7","CertificateAuthorityData"]},"' --use-max-pods true\n/opt/aws/bin/cfn-signal --exit-code $? --stack aws-cdk-eks-cluster --resource ClusterNodesASGF172BD19 --region us-east-1"]]}}},"tagSpecifications":[{"resourceType":"launch-template","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/Nodes/LaunchTemplate"}]}]}}}}},"ASG":{"id":"ASG","path":"aws-cdk-eks-cluster/Cluster/Nodes/ASG","constructInfo":{"fqn":"aws-cdk-lib.aws_autoscaling.CfnAutoScalingGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::AutoScaling::AutoScalingGroup","aws:cdk:cloudformation:props":{"launchTemplate":{"launchTemplateId":{"Ref":"ClusterNodesLaunchTemplateD1028D0D"},"version":{"Fn::GetAtt":["ClusterNodesLaunchTemplateD1028D0D","LatestVersionNumber"]}},"maxSize":"3","minSize":"3","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned","propagateAtLaunch":true},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/Nodes","propagateAtLaunch":true}],"vpcZoneIdentifier":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}},"InstanceRoleARN":{"id":"InstanceRoleARN","path":"aws-cdk-eks-cluster/Cluster/Nodes/InstanceRoleARN","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}}}},"NodesArm":{"id":"NodesArm","path":"aws-cdk-eks-cluster/Cluster/NodesArm","constructInfo":{"fqn":"aws-cdk-lib.aws_autoscaling.AutoScalingGroup","version":"0.0.0","metadata":[{"instanceType":"*","minCapacity":"*","vpc":"*","machineImage":"*"},{"addSecurityGroup":["*"]},{"addUserData":["*","*","*"]}]},"children":{"InstanceSecurityGroup":{"id":"InstanceSecurityGroup","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":["*",{},"*"]},{"addEgressRule":["*",{},"*"]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addEgressRule":["*",{},"*",false]},{"addEgressRule":["*",{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addIngressRule":["*",{},"*"]},{"addEgressRule":["*",{},"*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceSecurityGroup","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"tags":[{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/NodesArm"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceSecurityGroup/from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterNodesArmInstanceSecurityGroup37959CA0:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterNodesArmInstanceSecurityGroup599F388B","GroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterNodesArmInstanceSecurityGroup599F388B","GroupId"]}}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterNodesArmInstanceSecurityGroup599F388B","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"toPort":443}}},"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443":{"id":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceSecurityGroup/from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterNodesArmInstanceSecurityGroup599F388B","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","fromPort":1025,"groupId":{"Fn::GetAtt":["ClusterNodesArmInstanceSecurityGroup599F388B","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"toPort":65535}}},"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535":{"id":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceSecurityGroup/from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","fromPort":1025,"groupId":{"Fn::GetAtt":["ClusterNodesArmInstanceSecurityGroup599F388B","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"toPort":65535}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterNodesArmInstanceSecurityGroup599F388B","GroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}}}}}},"InstanceRole":{"id":"InstanceRole","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportInstanceRole":{"id":"ImportInstanceRole","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceRole/ImportInstanceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}],"tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/NodesArm"}]}}}}},"InstanceProfile":{"id":"InstanceProfile","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceProfile","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnInstanceProfile","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::InstanceProfile","aws:cdk:cloudformation:props":{"roles":[{"Ref":"ClusterNodesArmInstanceRoleB93D3298"}]}}},"ImportedInstanceProfile":{"id":"ImportedInstanceProfile","path":"aws-cdk-eks-cluster/Cluster/NodesArm/ImportedInstanceProfile","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"LaunchTemplate":{"id":"LaunchTemplate","path":"aws-cdk-eks-cluster/Cluster/NodesArm/LaunchTemplate","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.LaunchTemplate","version":"0.0.0","metadata":[{"machineImage":"*","instanceType":"*","detailedMonitoring":false,"securityGroup":"*","userData":"*","associatePublicIpAddress":"*","spotOptions":"*","blockDevices":"*","instanceProfile":"*","keyPair":"*"},{"addSecurityGroup":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/NodesArm/LaunchTemplate/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnLaunchTemplate","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::LaunchTemplate","aws:cdk:cloudformation:props":{"launchTemplateData":{"iamInstanceProfile":{"arn":{"Fn::GetAtt":["ClusterNodesArmInstanceProfile158C5C9F","Arn"]}},"imageId":{"Ref":"SsmParameterValueawsserviceeksoptimizedami132amazonlinux2arm64recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter"},"instanceType":"m6g.medium","monitoring":{"enabled":false},"securityGroupIds":[{"Fn::GetAtt":["ClusterNodesArmInstanceSecurityGroup599F388B","GroupId"]},{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}],"tagSpecifications":[{"resourceType":"instance","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/NodesArm/LaunchTemplate"}]},{"resourceType":"volume","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/NodesArm/LaunchTemplate"}]}],"userData":{"Fn::Base64":{"Fn::Join":["",["#!/bin/bash\nset -o xtrace\n/etc/eks/bootstrap.sh ",{"Ref":"ClusterEB0386A7"}," --kubelet-extra-args \"--node-labels lifecycle=OnDemand\" --apiserver-endpoint '",{"Fn::GetAtt":["ClusterEB0386A7","Endpoint"]},"' --b64-cluster-ca '",{"Fn::GetAtt":["ClusterEB0386A7","CertificateAuthorityData"]},"' --use-max-pods true\n/opt/aws/bin/cfn-signal --exit-code $? --stack aws-cdk-eks-cluster --resource ClusterNodesArmASG40A593D0 --region us-east-1"]]}}},"tagSpecifications":[{"resourceType":"launch-template","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/NodesArm/LaunchTemplate"}]}]}}}}},"ASG":{"id":"ASG","path":"aws-cdk-eks-cluster/Cluster/NodesArm/ASG","constructInfo":{"fqn":"aws-cdk-lib.aws_autoscaling.CfnAutoScalingGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::AutoScaling::AutoScalingGroup","aws:cdk:cloudformation:props":{"launchTemplate":{"launchTemplateId":{"Ref":"ClusterNodesArmLaunchTemplateB6CFBA44"},"version":{"Fn::GetAtt":["ClusterNodesArmLaunchTemplateB6CFBA44","LatestVersionNumber"]}},"maxSize":"1","minSize":"1","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned","propagateAtLaunch":true},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/NodesArm","propagateAtLaunch":true}],"vpcZoneIdentifier":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}},"InstanceRoleARN":{"id":"InstanceRoleARN","path":"aws-cdk-eks-cluster/Cluster/NodesArm/InstanceRoleARN","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}}}},"BottlerocketNodes":{"id":"BottlerocketNodes","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes","constructInfo":{"fqn":"aws-cdk-lib.aws_autoscaling.AutoScalingGroup","version":"0.0.0","metadata":[{"instanceType":"*","minCapacity":"*","vpc":"*","machineImage":"*"},{"addSecurityGroup":["*"]},{"addUserData":["*","*","*","*"]}]},"children":{"InstanceSecurityGroup":{"id":"InstanceSecurityGroup","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":["*",{},"*"]},{"addEgressRule":["*",{},"*"]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addEgressRule":["*",{},"*",false]},{"addEgressRule":["*",{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addIngressRule":["*",{},"*"]},{"addEgressRule":["*",{},"*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceSecurityGroup","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"tags":[{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceSecurityGroup/from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterBottlerocketNodesInstanceSecurityGroupCDA88166:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceSecurityGroup3794A94B","GroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceSecurityGroup3794A94B","GroupId"]}}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceSecurityGroup3794A94B","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"toPort":443}}},"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443":{"id":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceSecurityGroup/from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceSecurityGroup3794A94B","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","fromPort":1025,"groupId":{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceSecurityGroup3794A94B","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"toPort":65535}}},"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535":{"id":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceSecurityGroup/from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","fromPort":1025,"groupId":{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceSecurityGroup3794A94B","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"toPort":65535}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceSecurityGroup3794A94B","GroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}}}}}},"InstanceRole":{"id":"InstanceRole","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportInstanceRole":{"id":"ImportInstanceRole","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceRole/ImportInstanceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}],"tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes"}]}}}}},"InstanceProfile":{"id":"InstanceProfile","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceProfile","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnInstanceProfile","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::InstanceProfile","aws:cdk:cloudformation:props":{"roles":[{"Ref":"ClusterBottlerocketNodesInstanceRole68E4BCFB"}]}}},"ImportedInstanceProfile":{"id":"ImportedInstanceProfile","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/ImportedInstanceProfile","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"LaunchTemplate":{"id":"LaunchTemplate","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/LaunchTemplate","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.LaunchTemplate","version":"0.0.0","metadata":[{"machineImage":"*","instanceType":"*","detailedMonitoring":false,"securityGroup":"*","userData":"*","associatePublicIpAddress":"*","spotOptions":"*","blockDevices":"*","instanceProfile":"*","keyPair":"*"},{"addSecurityGroup":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/LaunchTemplate/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnLaunchTemplate","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::LaunchTemplate","aws:cdk:cloudformation:props":{"launchTemplateData":{"iamInstanceProfile":{"arn":{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceProfileB6E2F25A","Arn"]}},"imageId":{"Ref":"SsmParameterValueawsservicebottlerocketawsk8s132x8664latestimageidC96584B6F00A464EAD1953AFF4B05118Parameter"},"instanceType":"t3.small","monitoring":{"enabled":false},"securityGroupIds":[{"Fn::GetAtt":["ClusterBottlerocketNodesInstanceSecurityGroup3794A94B","GroupId"]},{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}],"tagSpecifications":[{"resourceType":"instance","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/LaunchTemplate"}]},{"resourceType":"volume","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/LaunchTemplate"}]}],"userData":{"Fn::Base64":{"Fn::Join":["",["\n[settings.kubernetes]\napi-server=\"",{"Fn::GetAtt":["ClusterEB0386A7","Endpoint"]},"\"\ncluster-certificate=\"",{"Fn::GetAtt":["ClusterEB0386A7","CertificateAuthorityData"]},"\"\ncluster-name=\"",{"Ref":"ClusterEB0386A7"},"\""]]}}},"tagSpecifications":[{"resourceType":"launch-template","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/LaunchTemplate"}]}]}}}}},"ASG":{"id":"ASG","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/ASG","constructInfo":{"fqn":"aws-cdk-lib.aws_autoscaling.CfnAutoScalingGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::AutoScaling::AutoScalingGroup","aws:cdk:cloudformation:props":{"launchTemplate":{"launchTemplateId":{"Ref":"ClusterBottlerocketNodesLaunchTemplate54246C29"},"version":{"Fn::GetAtt":["ClusterBottlerocketNodesLaunchTemplate54246C29","LatestVersionNumber"]}},"maxSize":"2","minSize":"2","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned","propagateAtLaunch":true},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes","propagateAtLaunch":true}],"vpcZoneIdentifier":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}},"InstanceRoleARN":{"id":"InstanceRoleARN","path":"aws-cdk-eks-cluster/Cluster/BottlerocketNodes/InstanceRoleARN","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}}}},"spot":{"id":"spot","path":"aws-cdk-eks-cluster/Cluster/spot","constructInfo":{"fqn":"aws-cdk-lib.aws_autoscaling.AutoScalingGroup","version":"0.0.0","metadata":[{"spotPrice":"*","instanceType":"*","maxCapacity":"*","vpc":"*","machineImage":"*"},{"addSecurityGroup":["*"]},{"addUserData":["*","*","*"]}]},"children":{"InstanceSecurityGroup":{"id":"InstanceSecurityGroup","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","allowAllOutbound":true},{"addIngressRule":["*",{},"*"]},{"addEgressRule":["*",{},"*"]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addIngressRule":["*",{},"*",false]},{"addEgressRule":["*",{},"*",false]},{"addEgressRule":["*",{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addEgressRule":[{"canInlineRule":true,"connections":"*","uniqueId":"*"},{},"*",false]},{"addIngressRule":["*",{},"*"]},{"addEgressRule":["*",{},"*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"aws-cdk-eks-cluster/Cluster/spot/InstanceSecurityGroup","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"tags":[{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/spot"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceSecurityGroup/from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterspotInstanceSecurityGroup888199F5:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterspotInstanceSecurityGroup01F7B1CE","GroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterspotInstanceSecurityGroup01F7B1CE","GroupId"]}}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterspotInstanceSecurityGroup01F7B1CE","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"toPort":443}}},"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443":{"id":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceSecurityGroup/from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:443","fromPort":443,"groupId":{"Fn::GetAtt":["ClusterspotInstanceSecurityGroup01F7B1CE","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"toPort":443}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:1025-65535","fromPort":1025,"groupId":{"Fn::GetAtt":["ClusterspotInstanceSecurityGroup01F7B1CE","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]},"toPort":65535}}},"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535":{"id":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceSecurityGroup/from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterControlPlaneSecurityGroupA0FC1FC2:1025-65535","fromPort":1025,"groupId":{"Fn::GetAtt":["ClusterspotInstanceSecurityGroup01F7B1CE","GroupId"]},"ipProtocol":"tcp","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]},"toPort":65535}}},"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC":{"id":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceSecurityGroup/from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"from awscdkeksclusterClusterClusterSecurityGroup9876E2FB:ALL TRAFFIC","groupId":{"Fn::GetAtt":["ClusterspotInstanceSecurityGroup01F7B1CE","GroupId"]},"ipProtocol":"-1","sourceSecurityGroupId":{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}}}}}},"InstanceRole":{"id":"InstanceRole","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportInstanceRole":{"id":"ImportInstanceRole","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceRole/ImportInstanceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}],"tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/spot"}]}}}}},"InstanceProfile":{"id":"InstanceProfile","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceProfile","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnInstanceProfile","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::InstanceProfile","aws:cdk:cloudformation:props":{"roles":[{"Ref":"ClusterspotInstanceRole39043830"}]}}},"ImportedInstanceProfile":{"id":"ImportedInstanceProfile","path":"aws-cdk-eks-cluster/Cluster/spot/ImportedInstanceProfile","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"LaunchTemplate":{"id":"LaunchTemplate","path":"aws-cdk-eks-cluster/Cluster/spot/LaunchTemplate","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.LaunchTemplate","version":"0.0.0","metadata":[{"machineImage":"*","instanceType":"*","detailedMonitoring":false,"securityGroup":"*","userData":"*","associatePublicIpAddress":"*","spotOptions":{"maxPrice":"*"},"blockDevices":"*","instanceProfile":"*","keyPair":"*"},{"addSecurityGroup":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/spot/LaunchTemplate/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnLaunchTemplate","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::LaunchTemplate","aws:cdk:cloudformation:props":{"launchTemplateData":{"iamInstanceProfile":{"arn":{"Fn::GetAtt":["ClusterspotInstanceProfileAB88D077","Arn"]}},"imageId":{"Ref":"SsmParameterValueawsserviceeksoptimizedami132amazonlinux2recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter"},"instanceType":"t3.large","instanceMarketOptions":{"marketType":"spot","spotOptions":{"maxPrice":"0.1094"}},"monitoring":{"enabled":false},"securityGroupIds":[{"Fn::GetAtt":["ClusterspotInstanceSecurityGroup01F7B1CE","GroupId"]},{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}],"tagSpecifications":[{"resourceType":"instance","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/spot/LaunchTemplate"}]},{"resourceType":"volume","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/spot/LaunchTemplate"}]}],"userData":{"Fn::Base64":{"Fn::Join":["",["#!/bin/bash\nset -o xtrace\n/etc/eks/bootstrap.sh ",{"Ref":"ClusterEB0386A7"}," --kubelet-extra-args \"--node-labels lifecycle=Ec2Spot --register-with-taints=spotInstance=true:PreferNoSchedule --node-labels foo=bar,goo=far\" --apiserver-endpoint '",{"Fn::GetAtt":["ClusterEB0386A7","Endpoint"]},"' --b64-cluster-ca '",{"Fn::GetAtt":["ClusterEB0386A7","CertificateAuthorityData"]},"' --use-max-pods true --aws-api-retry-attempts 5\n/opt/aws/bin/cfn-signal --exit-code $? --stack aws-cdk-eks-cluster --resource ClusterspotASG857494B6 --region us-east-1"]]}}},"tagSpecifications":[{"resourceType":"launch-template","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned"},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/spot/LaunchTemplate"}]}]}}}}},"ASG":{"id":"ASG","path":"aws-cdk-eks-cluster/Cluster/spot/ASG","constructInfo":{"fqn":"aws-cdk-lib.aws_autoscaling.CfnAutoScalingGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::AutoScaling::AutoScalingGroup","aws:cdk:cloudformation:props":{"launchTemplate":{"launchTemplateId":{"Ref":"ClusterspotLaunchTemplate5652F38D"},"version":{"Fn::GetAtt":["ClusterspotLaunchTemplate5652F38D","LatestVersionNumber"]}},"maxSize":"10","minSize":"1","tags":[{"key":{"Fn::Join":["",["kubernetes.io/cluster/",{"Ref":"ClusterEB0386A7"}]]},"value":"owned","propagateAtLaunch":true},{"key":"Name","value":"aws-cdk-eks-cluster/Cluster/spot","propagateAtLaunch":true}],"vpcZoneIdentifier":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}},"InstanceRoleARN":{"id":"InstanceRoleARN","path":"aws-cdk-eks-cluster/Cluster/spot/InstanceRoleARN","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}}}},"Nodegroupextra-ng":{"id":"Nodegroupextra-ng","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2_x86_64","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"instanceTypes":["t3.small"],"nodeRole":{"Fn::GetAtt":["ClusterNodegroupextrangNodeGroupRole23AE23D0","Arn"]},"scalingConfig":{"desiredSize":1,"maxSize":4,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"updateConfig":{"maxUnavailable":3}}}}}},"Nodegroupextra-ng-spot":{"id":"Nodegroupextra-ng-spot","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-spot","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-spot/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-spot/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-spot/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-spot/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2_x86_64","capacityType":"SPOT","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"instanceTypes":["c5.large","c5a.large","m7i-flex.large"],"nodeRole":{"Fn::GetAtt":["ClusterNodegroupextrangspotNodeGroupRoleB53B4857","Arn"]},"scalingConfig":{"desiredSize":3,"maxSize":3,"minSize":3},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"Nodegroupextra-ng-arm":{"id":"Nodegroupextra-ng-arm","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-arm","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-arm/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-arm/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-arm/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-arm/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2_ARM_64","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"instanceTypes":["m6g.medium"],"nodeRole":{"Fn::GetAtt":["ClusterNodegroupextrangarmNodeGroupRoleADF5749F","Arn"]},"scalingConfig":{"desiredSize":1,"maxSize":1,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"updateConfig":{"maxUnavailablePercentage":33}}}}}},"Nodegroupextra-ng-arm3":{"id":"Nodegroupextra-ng-arm3","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-arm3","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-arm3/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-arm3/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-arm3/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-arm3/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2_ARM_64","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"instanceTypes":["c7g.large"],"nodeRole":{"Fn::GetAtt":["ClusterNodegroupextrangarm3NodeGroupRole3A6AB3EC","Arn"]},"scalingConfig":{"desiredSize":1,"maxSize":1,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"Nodegroupextra-ng2":{"id":"Nodegroupextra-ng2","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng2","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng2/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"launchTemplate":{"id":{"Ref":"LaunchTemplate"},"version":{"Fn::GetAtt":["LaunchTemplate","DefaultVersionNumber"]}},"nodeRole":{"Fn::GetAtt":["ClusterNodegroupDefaultCapacityNodeGroupRole55953B04","Arn"]},"scalingConfig":{"desiredSize":1,"maxSize":1,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"Nodegroupextra-ng-gpu":{"id":"Nodegroupextra-ng-gpu","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-gpu","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-gpu/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-gpu/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-gpu/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/Nodegroupextra-ng-gpu/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2_x86_64_GPU","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"instanceTypes":["p2.xlarge","g5.xlarge","g6e.xlarge"],"nodeRole":{"Fn::GetAtt":["ClusterNodegroupextranggpuNodeGroupRoleBCDD4AB4","Arn"]},"scalingConfig":{"desiredSize":1,"maxSize":1,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"manifest-HelloApp":{"id":"manifest-HelloApp","path":"aws-cdk-eks-cluster/Cluster/manifest-HelloApp","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/manifest-HelloApp/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/Cluster/manifest-HelloApp/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"chart-dashboard":{"id":"chart-dashboard","path":"aws-cdk-eks-cluster/Cluster/chart-dashboard","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/chart-dashboard/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/Cluster/chart-dashboard/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"chart-test-chart":{"id":"chart-test-chart","path":"aws-cdk-eks-cluster/Cluster/chart-test-chart","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/chart-test-chart/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/Cluster/chart-test-chart/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"cdk8s-chart":{"id":"cdk8s-chart","path":"aws-cdk-eks-cluster/Cluster/cdk8s-chart","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/cdk8s-chart/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/Cluster/cdk8s-chart/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"manifest-nginx-namespace":{"id":"manifest-nginx-namespace","path":"aws-cdk-eks-cluster/Cluster/manifest-nginx-namespace","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/manifest-nginx-namespace/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/Cluster/manifest-nginx-namespace/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"chart-nginx-ingress":{"id":"chart-nginx-ingress","path":"aws-cdk-eks-cluster/Cluster/chart-nginx-ingress","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/chart-nginx-ingress/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/Cluster/chart-nginx-ingress/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"MyServiceAccount":{"id":"MyServiceAccount","path":"aws-cdk-eks-cluster/Cluster/MyServiceAccount","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.ServiceAccount","version":"0.0.0"},"children":{"ConditionJson":{"id":"ConditionJson","path":"aws-cdk-eks-cluster/Cluster/MyServiceAccount/ConditionJson","constructInfo":{"fqn":"aws-cdk-lib.CfnJson","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/MyServiceAccount/ConditionJson/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/Cluster/MyServiceAccount/ConditionJson/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster/Cluster/MyServiceAccount/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-cluster/Cluster/MyServiceAccount/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/MyServiceAccount/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"Fn::GetAtt":["ClusterMyServiceAccountConditionJson671C0633","Value"]}},"Effect":"Allow","Principal":{"Federated":{"Ref":"ClusterOpenIdConnectProviderE7EB0530"}}}],"Version":"2012-10-17"}}}}}},"manifest-MyServiceAccountServiceAccountResource":{"id":"manifest-MyServiceAccountServiceAccountResource","path":"aws-cdk-eks-cluster/Cluster/MyServiceAccount/manifest-MyServiceAccountServiceAccountResource","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/MyServiceAccount/manifest-MyServiceAccountServiceAccountResource/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/Cluster/MyServiceAccount/manifest-MyServiceAccountServiceAccountResource/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"OpenIdConnectProvider":{"id":"OpenIdConnectProvider","path":"aws-cdk-eks-cluster/Cluster/OpenIdConnectProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.OpenIdConnectProvider","version":"0.0.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/OpenIdConnectProvider/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/Cluster/OpenIdConnectProvider/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"MyExtendedServiceAccount":{"id":"MyExtendedServiceAccount","path":"aws-cdk-eks-cluster/Cluster/MyExtendedServiceAccount","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.ServiceAccount","version":"0.0.0"},"children":{"ConditionJson":{"id":"ConditionJson","path":"aws-cdk-eks-cluster/Cluster/MyExtendedServiceAccount/ConditionJson","constructInfo":{"fqn":"aws-cdk-lib.CfnJson","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/MyExtendedServiceAccount/ConditionJson/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/Cluster/MyExtendedServiceAccount/ConditionJson/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster/Cluster/MyExtendedServiceAccount/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-cluster/Cluster/MyExtendedServiceAccount/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/MyExtendedServiceAccount/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"Fn::GetAtt":["ClusterMyExtendedServiceAccountConditionJsonF780F28A","Value"]}},"Effect":"Allow","Principal":{"Federated":{"Ref":"ClusterOpenIdConnectProviderE7EB0530"}}}],"Version":"2012-10-17"}}}}}},"manifest-MyExtendedServiceAccountServiceAccountResource":{"id":"manifest-MyExtendedServiceAccountServiceAccountResource","path":"aws-cdk-eks-cluster/Cluster/MyExtendedServiceAccount/manifest-MyExtendedServiceAccountServiceAccountResource","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/Cluster/MyExtendedServiceAccount/manifest-MyExtendedServiceAccountServiceAccountResource/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/Cluster/MyExtendedServiceAccount/manifest-MyExtendedServiceAccountServiceAccountResource/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}}}},"SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter":{"id":"SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter","path":"aws-cdk-eks-cluster/SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118":{"id":"SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118","path":"aws-cdk-eks-cluster/SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter":{"id":"SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter","path":"aws-cdk-eks-cluster/SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118":{"id":"SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118","path":"aws-cdk-eks-cluster/SsmParameterValue:--aws--service--eks--optimized-ami--1.32--amazon-linux-2-arm64--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.32--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter":{"id":"SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.32--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter","path":"aws-cdk-eks-cluster/SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.32--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.32--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118":{"id":"SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.32--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118","path":"aws-cdk-eks-cluster/SsmParameterValue:--aws--service--bottlerocket--aws-k8s-1.32--x86_64--latest--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"SsmParameterValue:--aws--service--eks--optimized-ami--1.25--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter":{"id":"SsmParameterValue:--aws--service--eks--optimized-ami--1.25--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter","path":"aws-cdk-eks-cluster/SsmParameterValue:--aws--service--eks--optimized-ami--1.25--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"SsmParameterValue:--aws--service--eks--optimized-ami--1.25--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118":{"id":"SsmParameterValue:--aws--service--eks--optimized-ami--1.25--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118","path":"aws-cdk-eks-cluster/SsmParameterValue:--aws--service--eks--optimized-ami--1.25--amazon-linux-2--recommended--image_id:C96584B6-F00A-464E-AD19-53AFF4B05118","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"LaunchTemplate":{"id":"LaunchTemplate","path":"aws-cdk-eks-cluster/LaunchTemplate","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnLaunchTemplate","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::LaunchTemplate","aws:cdk:cloudformation:props":{"launchTemplateData":{"imageId":{"Ref":"SsmParameterValueawsserviceeksoptimizedami125amazonlinux2recommendedimageidC96584B6F00A464EAD1953AFF4B05118Parameter"},"instanceType":"t3.small","userData":{"Fn::Base64":{"Fn::Join":["",["#!/bin/bash\nset -o xtrace\n/etc/eks/bootstrap.sh ",{"Ref":"ClusterEB0386A7"}]]}}}}}},"HelloAppWithoutValidation":{"id":"HelloAppWithoutValidation","path":"aws-cdk-eks-cluster/HelloAppWithoutValidation","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster/HelloAppWithoutValidation/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/HelloAppWithoutValidation/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"ChartAsset":{"id":"ChartAsset","path":"aws-cdk-eks-cluster/ChartAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster/ChartAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster/ChartAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider":{"id":"Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider","path":"aws-cdk-eks-cluster/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-cluster/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"AWSCDKCfnUtilsProviderCustomResourceProvider":{"id":"AWSCDKCfnUtilsProviderCustomResourceProvider","path":"aws-cdk-eks-cluster/AWSCDKCfnUtilsProviderCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-cluster/AWSCDKCfnUtilsProviderCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster/AWSCDKCfnUtilsProviderCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster/AWSCDKCfnUtilsProviderCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"ClusterEndpoint":{"id":"ClusterEndpoint","path":"aws-cdk-eks-cluster/ClusterEndpoint","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"ClusterArn":{"id":"ClusterArn","path":"aws-cdk-eks-cluster/ClusterArn","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"ClusterCertificateAuthorityData":{"id":"ClusterCertificateAuthorityData","path":"aws-cdk-eks-cluster/ClusterCertificateAuthorityData","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"ClusterSecurityGroupId":{"id":"ClusterSecurityGroupId","path":"aws-cdk-eks-cluster/ClusterSecurityGroupId","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"ClusterEncryptionConfigKeyArn":{"id":"ClusterEncryptionConfigKeyArn","path":"aws-cdk-eks-cluster/ClusterEncryptionConfigKeyArn","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"ClusterName":{"id":"ClusterName","path":"aws-cdk-eks-cluster/ClusterName","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"NodegroupName":{"id":"NodegroupName","path":"aws-cdk-eks-cluster/NodegroupName","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-eks-cluster-integ":{"id":"aws-cdk-eks-cluster-integ","path":"aws-cdk-eks-cluster-integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-eks-cluster-integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-eks-cluster-integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py deleted file mode 100644 index 00d794acd0c73..0000000000000 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py +++ /dev/null @@ -1,207 +0,0 @@ -import json -import logging -import os -import re -import subprocess -import shutil -import tempfile -import zipfile -import boto3 - -logger = logging.getLogger() -logger.setLevel(logging.INFO) - -# these are coming from the kubectl layer -os.environ['PATH'] = '/opt/helm:/opt/awscli:' + os.environ['PATH'] - -outdir = os.environ.get('TEST_OUTDIR', '/tmp') -kubeconfig = os.path.join(outdir, 'kubeconfig') - -def get_chart_asset_from_url(chart_asset_url): - chart_zip = os.path.join(outdir, 'chart.zip') - shutil.rmtree(chart_zip, ignore_errors=True) - subprocess.check_call(['aws', 's3', 'cp', chart_asset_url, chart_zip]) - chart_dir = os.path.join(outdir, 'chart') - shutil.rmtree(chart_dir, ignore_errors=True) - os.mkdir(chart_dir) - with zipfile.ZipFile(chart_zip, 'r') as zip_ref: - zip_ref.extractall(chart_dir) - return chart_dir - -def is_ecr_public_available(region): - s = boto3.Session() - return s.get_partition_for_region(region) == 'aws' - -def helm_handler(event, context): - logger.info(json.dumps(dict(event, ResponseURL='...'))) - - request_type = event['RequestType'] - props = event['ResourceProperties'] - - # resource properties - cluster_name = props['ClusterName'] - release = props['Release'] - chart = props.get('Chart', None) - chart_asset_url = props.get('ChartAssetURL', None) - version = props.get('Version', None) - wait = props.get('Wait', False) - atomic = props.get('Atomic', False) - timeout = props.get('Timeout', None) - namespace = props.get('Namespace', None) - create_namespace = props.get('CreateNamespace', None) - repository = props.get('Repository', None) - values_text = props.get('Values', None) - skip_crds = props.get('SkipCrds', False) - - # "log in" to the cluster - subprocess.check_call([ 'aws', 'eks', 'update-kubeconfig', - '--name', cluster_name, - '--kubeconfig', kubeconfig - ]) - - if os.path.isfile(kubeconfig): - os.chmod(kubeconfig, 0o600) - - # Write out the values to a file and include them with the install and upgrade - values_file = None - if not request_type == "Delete" and not values_text is None: - values = json.loads(values_text) - values_file = os.path.join(outdir, 'values.yaml') - with open(values_file, "w") as f: - f.write(json.dumps(values, indent=2)) - - if request_type == 'Create' or request_type == 'Update': - # Ensure chart or chart_asset_url are set - if chart == None and chart_asset_url == None: - raise RuntimeError(f'chart or chartAsset must be specified') - - if chart_asset_url != None: - assert(chart==None) - assert(repository==None) - assert(version==None) - if not chart_asset_url.startswith('s3://'): - raise RuntimeError(f'ChartAssetURL must point to as s3 location but is {chart_asset_url}') - # future work: support versions from s3 assets - chart = get_chart_asset_from_url(chart_asset_url) - - if repository is not None and repository.startswith('oci://'): - tmpdir = tempfile.TemporaryDirectory() - chart_dir = get_chart_from_oci(tmpdir.name, repository, version) - chart = chart_dir - - helm('upgrade', release, chart, repository, values_file, namespace, version, wait, timeout, create_namespace, atomic=atomic) - elif request_type == "Delete": - try: - helm('uninstall', release, namespace=namespace, wait=wait, timeout=timeout) - except Exception as e: - logger.info("delete error: %s" % e) - - -def get_oci_cmd(repository, version): - # Generates OCI command based on pattern. Public ECR vs Private ECR are treated differently. - private_ecr_pattern = 'oci://(?P\d+\.dkr\.ecr\.(?P[a-z0-9\-]+)\.(?P[a-z0-9\.-]+))*' - public_ecr_pattern = 'oci://(?Ppublic\.ecr\.aws)*' - - private_registry = re.match(private_ecr_pattern, repository).groupdict() - public_registry = re.match(public_ecr_pattern, repository).groupdict() - - if private_registry['registry'] is not None: - logger.info("Found AWS private repository") - cmnd = [ - f"aws ecr get-login-password --region {private_registry['region']} | " \ - f"helm registry login --username AWS --password-stdin {private_registry['registry']}; helm pull {repository} --version {version} --untar" - ] - elif public_registry['registry'] is not None: - logger.info("Found AWS public repository, will use default region as deployment") - region = os.environ.get('AWS_REGION', 'us-east-1') - - if is_ecr_public_available(region): - cmnd = [ - f"aws ecr-public get-login-password --region us-east-1 | " \ - f"helm registry login --username AWS --password-stdin {public_registry['registry']}; helm pull {repository} --version {version} --untar" - ] - else: - # `aws ecr-public get-login-password` and `helm registry login` not required as ecr public is not available in current region - # see https://helm.sh/docs/helm/helm_registry_login/ - cmnd = [f"helm pull {repository} --version {version} --untar"] - else: - logger.error("OCI repository format not recognized, falling back to helm pull") - cmnd = [f"helm pull {repository} --version {version} --untar"] - - return cmnd - - -def get_chart_from_oci(tmpdir, repository = None, version = None): - - cmnd = get_oci_cmd(repository, version) - - maxAttempts = 3 - retry = maxAttempts - while retry > 0: - try: - logger.info(cmnd) - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=tmpdir, shell=True) - logger.info(output) - - # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. - # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service - return os.path.join(tmpdir, repository.rpartition('/')[-1]) - except subprocess.CalledProcessError as exc: - output = exc.output - if b'Broken pipe' in output: - retry = retry - 1 - logger.info("Broken pipe, retries left: %s" % retry) - else: - raise Exception(output) - raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') - - -def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): - import subprocess - - cmnd = ['helm', verb, release] - if not chart is None: - cmnd.append(chart) - if verb == 'upgrade': - cmnd.append('--install') - if create_namespace: - cmnd.append('--create-namespace') - if not repo is None: - cmnd.extend(['--repo', repo]) - if not file is None: - cmnd.extend(['--values', file]) - if not version is None: - cmnd.extend(['--version', version]) - if not namespace is None: - cmnd.extend(['--namespace', namespace]) - if wait: - cmnd.append('--wait') - if skip_crds: - cmnd.append('--skip-crds') - if not timeout is None: - cmnd.extend(['--timeout', timeout]) - if atomic: - cmnd.append('--atomic') - cmnd.extend(['--kubeconfig', kubeconfig]) - - # Log the full helm command for better troubleshooting - logger.info("Running command: %s", cmnd) - - maxAttempts = 3 - retry = maxAttempts - while retry > 0: - try: - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=outdir) - logger.info(output.decode('utf-8', errors='replace')) - return - except subprocess.CalledProcessError as exc: - output = exc.output - if b'Broken pipe' in output: - retry = retry - 1 - logger.info("Broken pipe, retries left: %s" % retry) - else: - error_message = output.decode('utf-8', errors='replace') - logger.error("Command failed: %s", cmnd) - logger.error("Error output: %s", error_message) - raise Exception(output) - raise Exception(f'Operation failed after {maxAttempts} attempts: {output.decode("utf-8", errors="replace")}') diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py new file mode 100644 index 0000000000000..6c7838f182a45 --- /dev/null +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py @@ -0,0 +1,250 @@ +import json +import logging +import os +import re +import subprocess +import shutil +import tempfile +import zipfile +import boto3 + +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +# these are coming from the kubectl layer +os.environ['PATH'] = '/opt/helm:/opt/awscli:' + os.environ['PATH'] + +outdir = os.environ.get('TEST_OUTDIR', '/tmp') +kubeconfig = os.path.join(outdir, 'kubeconfig') + +def get_chart_asset_from_url(chart_asset_url): + chart_zip = os.path.join(outdir, 'chart.zip') + shutil.rmtree(chart_zip, ignore_errors=True) + subprocess.check_call(['aws', 's3', 'cp', chart_asset_url, chart_zip]) + chart_dir = os.path.join(outdir, 'chart') + shutil.rmtree(chart_dir, ignore_errors=True) + os.mkdir(chart_dir) + with zipfile.ZipFile(chart_zip, 'r') as zip_ref: + zip_ref.extractall(chart_dir) + return chart_dir + +def is_ecr_public_available(region): + s = boto3.Session() + return s.get_partition_for_region(region) == 'aws' + +def helm_handler(event, context): + logger.info(json.dumps(dict(event, ResponseURL='...'))) + + request_type = event['RequestType'] + props = event['ResourceProperties'] + + # resource properties + cluster_name = props['ClusterName'] + release = props['Release'] + chart = props.get('Chart', None) + chart_asset_url = props.get('ChartAssetURL', None) + version = props.get('Version', None) + wait = props.get('Wait', False) + atomic = props.get('Atomic', False) + timeout = props.get('Timeout', None) + namespace = props.get('Namespace', None) + create_namespace = props.get('CreateNamespace', None) + repository = props.get('Repository', None) + values_text = props.get('Values', None) + skip_crds = props.get('SkipCrds', False) + + # "log in" to the cluster + subprocess.check_call([ 'aws', 'eks', 'update-kubeconfig', + '--name', cluster_name, + '--kubeconfig', kubeconfig + ]) + + if os.path.isfile(kubeconfig): + os.chmod(kubeconfig, 0o600) + + # Write out the values to a file and include them with the install and upgrade + values_file = None + if not request_type == "Delete" and not values_text is None: + values = json.loads(values_text) + values_file = os.path.join(outdir, 'values.yaml') + with open(values_file, "w") as f: + f.write(json.dumps(values, indent=2)) + + if request_type == 'Create' or request_type == 'Update': + # Ensure chart or chart_asset_url are set + if chart == None and chart_asset_url == None: + raise RuntimeError(f'chart or chartAsset must be specified') + + if chart_asset_url != None: + assert(chart==None) + assert(repository==None) + assert(version==None) + if not chart_asset_url.startswith('s3://'): + raise RuntimeError(f'ChartAssetURL must point to as s3 location but is {chart_asset_url}') + # future work: support versions from s3 assets + chart = get_chart_asset_from_url(chart_asset_url) + + if repository is not None and repository.startswith('oci://'): + tmpdir = tempfile.TemporaryDirectory() + chart_dir = get_chart_from_oci(tmpdir.name, repository, version) + chart = chart_dir + + helm('upgrade', release, chart, repository, values_file, namespace, version, wait, timeout, create_namespace, atomic=atomic) + elif request_type == "Delete": + try: + helm('uninstall', release, namespace=namespace, wait=wait, timeout=timeout) + except Exception as e: + logger.info("delete error: %s" % e) + + +def get_oci_cmd(repository, version): + # Generates OCI command based on pattern. Public ECR vs Private ECR are treated differently. + private_ecr_pattern = 'oci://(?P\d+\.dkr\.ecr\.(?P[a-z0-9\-]+)\.(?P[a-z0-9\.-]+))*' + public_ecr_pattern = 'oci://(?Ppublic\.ecr\.aws)*' + + private_registry = re.match(private_ecr_pattern, repository).groupdict() + public_registry = re.match(public_ecr_pattern, repository).groupdict() + + # Build helm pull command as array + helm_cmd = ['helm', 'pull', repository, '--version', version , '--untar'] + + if private_registry['registry'] is not None: + logger.info("Found AWS private repository") + ecr_login = ['aws', 'ecr', 'get-login-password', '--region', private_registry['region']] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', private_registry['registry']] + return {'ecr_login': ecr_login, 'registry_login': helm_registry_login, 'helm': helm_cmd} + elif public_registry['registry'] is not None: + logger.info("Found AWS public repository, will use default region as deployment") + region = os.environ.get('AWS_REGION', 'us-east-1') + + if is_ecr_public_available(region): + # Public ECR auth is always in us-east-1: https://docs.aws.amazon.com/AmazonECR/latest/public/public-registry-auth.html + ecr_login = ['aws', 'ecr-public', 'get-login-password', '--region', 'us-east-1'] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', public_registry['registry']] + return {'ecr_login': ecr_login, 'helm_registry_login': helm_registry_login, 'helm': helm_cmd} + else: + # No login required for public ECR in non-aws regions + # see https://helm.sh/docs/helm/helm_registry_login/ + return {'helm': helm_cmd} + else: + logger.error("OCI repository format not recognized, falling back to helm pull") + return {'helm': helm_cmd} + + +def get_chart_from_oci(tmpdir, repository=None, version=None): + from subprocess import Popen, PIPE + + commands = get_oci_cmd(repository, version) + + maxAttempts = 3 + retry = maxAttempts + while retry > 0: + try: + # Execute login commands if needed + if 'ecr_login' in commands and 'helm_registry_login' in commands: + logger.info("Running login command: %s", commands['ecr_login']) + logger.info("Running registry login command: %s", commands['helm_registry_login']) + + # Start first process: aws ecr get-login-password + # NOTE: We do NOT call p1.wait() here before starting p2. + # Doing so could deadlock if p1's output fills the pipe buffer + # before p2 starts reading. Instead, start p2 immediately so it + # can consume p1's stdout as it's produced. + p1 = Popen(commands['ecr_login'], stdout=PIPE, stderr=PIPE, cwd=tmpdir) + + # Start second process: helm registry login + p2 = Popen(commands['helm_registry_login'], stdin=p1.stdout, stdout=PIPE, stderr=PIPE, cwd=tmpdir) + p1.stdout.close() # Allow p1 to receive SIGPIPE if p2 exits early + + # Wait for p2 to finish first (ensures full pipeline completes) + _, p2_err = p2.communicate() + + # Now wait for p1 so we have a complete stderr and an exit code + p1.wait() + + # Handle p1 failure + if p1.returncode != 0: + p1_err = p1.stderr.read().decode('utf-8', errors='replace') if p1.stderr else '' + logger.error( + "ECR get-login-password failed for repository %s. Error: %s", + repository, + p1_err or "No error details" + ) + raise subprocess.CalledProcessError(p1.returncode, commands['ecr_login'], p1_err.encode()) + + # Handle p2 failure + if p2.returncode != 0: + logger.error( + "Helm registry authentication failed for repository %s. Error: %s", + repository, + p2_err.decode('utf-8', errors='replace') or "No error details" + ) + raise subprocess.CalledProcessError(p2.returncode, commands['helm_registry_login'], p2_err) + + # Execute helm pull command + logger.info("Running helm command: %s", commands['helm']) + output = subprocess.check_output(commands['helm'], stderr=subprocess.STDOUT, cwd=tmpdir) + logger.info(output) + + # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. + # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service + return os.path.join(tmpdir, repository.rpartition('/')[-1]) + + except subprocess.CalledProcessError as exc: + output = exc.output + if b'Broken pipe' in output: + retry = retry - 1 + logger.info("Broken pipe, retries left: %s" % retry) + else: + raise Exception(output) + + raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') + + +def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): + cmnd = ['helm', verb, release] + if not chart is None: + cmnd.append(chart) + if verb == 'upgrade': + cmnd.append('--install') + if create_namespace: + cmnd.append('--create-namespace') + if not repo is None: + cmnd.extend(['--repo', repo]) + if not file is None: + cmnd.extend(['--values', file]) + if not version is None: + cmnd.extend(['--version', version]) + if not namespace is None: + cmnd.extend(['--namespace', namespace]) + if wait: + cmnd.append('--wait') + if skip_crds: + cmnd.append('--skip-crds') + if not timeout is None: + cmnd.extend(['--timeout', timeout]) + if atomic: + cmnd.append('--atomic') + cmnd.extend(['--kubeconfig', kubeconfig]) + + # Log the full helm command for better troubleshooting + logger.info("Running command: %s", cmnd) + + maxAttempts = 3 + retry = maxAttempts + while retry > 0: + try: + output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=outdir) + logger.info(output.decode('utf-8', errors='replace')) + return + except subprocess.CalledProcessError as exc: + output = exc.output + if b'Broken pipe' in output: + retry = retry - 1 + logger.info("Broken pipe, retries left: %s" % retry) + else: + error_message = output.decode('utf-8', errors='replace') + logger.error("Command failed: %s", cmnd) + logger.error("Error output: %s", error_message) + raise Exception(output) + raise Exception(f'Operation failed after {maxAttempts} attempts: {output.decode("utf-8", errors="replace")}') diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/aws-cdk-eks-helm-test.assets.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/aws-cdk-eks-helm-test.assets.json index 5882e46ccfc0a..051915795a08c 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/aws-cdk-eks-helm-test.assets.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/aws-cdk-eks-helm-test.assets.json @@ -15,16 +15,16 @@ } } }, - "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069": { + "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a": { "displayName": "Cluster/KubectlProvider/Handler/Code", "source": { - "path": "asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069", + "path": "asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a", "packaging": "zip" }, "destinations": { - "current_account-current_region-0ee668da": { + "current_account-current_region-5b09798b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip", + "objectKey": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -99,16 +99,16 @@ } } }, - "53b41530cea3288624b48416235f455b6d6c7b71df53950fde4480f930e8e025": { + "5cdf7e978507ccee1cd7ab1c5047111d06fc08212cd072f119943ca1ee18013b": { "displayName": "aws-cdk-eks-helm-test Template", "source": { "path": "aws-cdk-eks-helm-test.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-020605e0": { + "current_account-current_region-d5b4b021": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "53b41530cea3288624b48416235f455b6d6c7b71df53950fde4480f930e8e025.json", + "objectKey": "5cdf7e978507ccee1cd7ab1c5047111d06fc08212cd072f119943ca1ee18013b.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/aws-cdk-eks-helm-test.template.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/aws-cdk-eks-helm-test.template.json index a757e6c6cfd44..edcb5b9e6821c 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/aws-cdk-eks-helm-test.template.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/aws-cdk-eks-helm-test.template.json @@ -840,7 +840,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip" + "S3Key": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip" }, "Description": "onEvent handler for EKS kubectl resource provider", "Environment": { diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/manifest.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/manifest.json index cc572c8c96eb8..ac311da5d575e 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "artifacts": { "aws-cdk-eks-helm-test.assets": { "type": "cdk:asset-manifest", @@ -18,7 +18,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/53b41530cea3288624b48416235f455b6d6c7b71df53950fde4480f930e8e025.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/5cdf7e978507ccee1cd7ab1c5047111d06fc08212cd072f119943ca1ee18013b.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -682,7 +682,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -1484,6 +1484,7 @@ "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." }, "@aws-cdk/core:explicitStackTags": { + "userValue": true, "recommendedValue": true, "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." }, @@ -1636,5 +1637,5 @@ } } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1023.0" } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/tree.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/tree.json index f4dad85c729d7..aa1095d6daece 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/tree.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-helm-asset.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"aws-cdk-eks-helm-test":{"id":"aws-cdk-eks-helm-test","path":"aws-cdk-eks-helm-test","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"AdminRole":{"id":"AdminRole","path":"aws-cdk-eks-helm-test/AdminRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportAdminRole":{"id":"ImportAdminRole","path":"aws-cdk-eks-helm-test/AdminRole/ImportAdminRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/AdminRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}}}],"Version":"2012-10-17"}}}}}},"Vpc":{"id":"Vpc","path":"aws-cdk-eks-helm-test/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"natGateways":"*","restrictDefaultSecurityGroup":false}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"aws-cdk-eks-helm-test/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"aws-cdk-eks-helm-test/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"kubectlLayer":{"id":"kubectlLayer","path":"aws-cdk-eks-helm-test/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-helm-test/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-helm-test/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-helm-test/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"aws-cdk-eks-helm-test/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*","*"]},"children":{"Role":{"id":"Role","path":"aws-cdk-eks-helm-test/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-helm-test/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":["sts:AssumeRole","sts:TagSession"],"Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSComputePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSBlockStoragePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSLoadBalancingPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSNetworkingPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"aws-cdk-eks-helm-test/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"ClusternodePoolRole":{"id":"ClusternodePoolRole","path":"aws-cdk-eks-helm-test/Cluster/ClusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]}]},"children":{"ImportClusternodePoolRole":{"id":"ImportClusternodePoolRole","path":"aws-cdk-eks-helm-test/Cluster/ClusternodePoolRole/ImportClusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/ClusternodePoolRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":true,"nodePools":["system","general-purpose"],"nodeRoleArn":{"Fn::GetAtt":["ClusterClusternodePoolRole69276141","Arn"]}},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":true}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":true}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"aws-cdk-eks-helm-test/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"aws-cdk-eks-helm-test/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}},{"Action":["s3:GetBucket*","s3:GetObject*","s3:List*"],"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"}]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole081AD342A","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"aws-cdk-eks-helm-test/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}},"mastersRoleAccess":{"id":"mastersRoleAccess","path":"aws-cdk-eks-helm-test/Cluster/mastersRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/mastersRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["AdminRole38563C57","Arn"]}}}}}},"ConfigCommand":{"id":"ConfigCommand","path":"aws-cdk-eks-helm-test/Cluster/ConfigCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"GetTokenCommand":{"id":"GetTokenCommand","path":"aws-cdk-eks-helm-test/Cluster/GetTokenCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"chart-test-chart":{"id":"chart-test-chart","path":"aws-cdk-eks-helm-test/Cluster/chart-test-chart","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/chart-test-chart/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-helm-test/Cluster/chart-test-chart/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"chart-test-oci-chart":{"id":"chart-test-oci-chart","path":"aws-cdk-eks-helm-test/Cluster/chart-test-oci-chart","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/chart-test-oci-chart/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-helm-test/Cluster/chart-test-oci-chart/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"chart-test-oci-chart-different-release-name":{"id":"chart-test-oci-chart-different-release-name","path":"aws-cdk-eks-helm-test/Cluster/chart-test-oci-chart-different-release-name","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/chart-test-oci-chart-different-release-name/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-helm-test/Cluster/chart-test-oci-chart-different-release-name/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"chart-test-skip-crd-installation":{"id":"chart-test-skip-crd-installation","path":"aws-cdk-eks-helm-test/Cluster/chart-test-skip-crd-installation","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/chart-test-skip-crd-installation/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-helm-test/Cluster/chart-test-skip-crd-installation/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"ec2-controller-sa":{"id":"ec2-controller-sa","path":"aws-cdk-eks-helm-test/Cluster/ec2-controller-sa","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.ServiceAccount","version":"0.0.0"},"children":{"ConditionJson":{"id":"ConditionJson","path":"aws-cdk-eks-helm-test/Cluster/ec2-controller-sa/ConditionJson","constructInfo":{"fqn":"aws-cdk-lib.CfnJson","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/ec2-controller-sa/ConditionJson/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-helm-test/Cluster/ec2-controller-sa/ConditionJson/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"Role":{"id":"Role","path":"aws-cdk-eks-helm-test/Cluster/ec2-controller-sa/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-helm-test/Cluster/ec2-controller-sa/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/ec2-controller-sa/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"Fn::GetAtt":["Clusterec2controllersaConditionJson93A80A33","Value"]}},"Effect":"Allow","Principal":{"Federated":{"Ref":"ClusterOpenIdConnectProviderE7EB0530"}}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2FullAccess"]]}]}}}}},"manifest-ec2-controller-saServiceAccountResource":{"id":"manifest-ec2-controller-saServiceAccountResource","path":"aws-cdk-eks-helm-test/Cluster/ec2-controller-sa/manifest-ec2-controller-saServiceAccountResource","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/ec2-controller-sa/manifest-ec2-controller-saServiceAccountResource/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-helm-test/Cluster/ec2-controller-sa/manifest-ec2-controller-saServiceAccountResource/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"OpenIdConnectProvider":{"id":"OpenIdConnectProvider","path":"aws-cdk-eks-helm-test/Cluster/OpenIdConnectProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.OpenIdConnectProvider","version":"0.0.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/OpenIdConnectProvider/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-helm-test/Cluster/OpenIdConnectProvider/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"chart-test-atomic-installation":{"id":"chart-test-atomic-installation","path":"aws-cdk-eks-helm-test/Cluster/chart-test-atomic-installation","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/chart-test-atomic-installation/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-helm-test/Cluster/chart-test-atomic-installation/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"chart-test-non-ecr-oci-chart":{"id":"chart-test-non-ecr-oci-chart","path":"aws-cdk-eks-helm-test/Cluster/chart-test-non-ecr-oci-chart","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/chart-test-non-ecr-oci-chart/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-helm-test/Cluster/chart-test-non-ecr-oci-chart/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"aws-cdk-eks-helm-test/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"ChartAsset":{"id":"ChartAsset","path":"aws-cdk-eks-helm-test/ChartAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-helm-test/ChartAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-helm-test/ChartAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider":{"id":"Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider","path":"aws-cdk-eks-helm-test/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-helm-test/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-helm-test/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-helm-test/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"AWSCDKCfnUtilsProviderCustomResourceProvider":{"id":"AWSCDKCfnUtilsProviderCustomResourceProvider","path":"aws-cdk-eks-helm-test/AWSCDKCfnUtilsProviderCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-helm-test/AWSCDKCfnUtilsProviderCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-helm-test/AWSCDKCfnUtilsProviderCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-helm-test/AWSCDKCfnUtilsProviderCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-helm-test/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-helm-test/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-eks-helm":{"id":"aws-cdk-eks-helm","path":"aws-cdk-eks-helm","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-eks-helm/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-helm/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-eks-helm/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-helm/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-helm/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"aws-cdk-eks-helm-test":{"id":"aws-cdk-eks-helm-test","path":"aws-cdk-eks-helm-test","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"AdminRole":{"id":"AdminRole","path":"aws-cdk-eks-helm-test/AdminRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportAdminRole":{"id":"ImportAdminRole","path":"aws-cdk-eks-helm-test/AdminRole/ImportAdminRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/AdminRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}}}],"Version":"2012-10-17"}}}}}},"Vpc":{"id":"Vpc","path":"aws-cdk-eks-helm-test/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"natGateways":"*","restrictDefaultSecurityGroup":false}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-helm-test/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-helm-test/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"aws-cdk-eks-helm-test/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"aws-cdk-eks-helm-test/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"aws-cdk-eks-helm-test/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"kubectlLayer":{"id":"kubectlLayer","path":"aws-cdk-eks-helm-test/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-helm-test/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-helm-test/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-helm-test/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"aws-cdk-eks-helm-test/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*","*"]},"children":{"Role":{"id":"Role","path":"aws-cdk-eks-helm-test/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-helm-test/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":["sts:AssumeRole","sts:TagSession"],"Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSComputePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSBlockStoragePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSLoadBalancingPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSNetworkingPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"aws-cdk-eks-helm-test/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"ClusternodePoolRole":{"id":"ClusternodePoolRole","path":"aws-cdk-eks-helm-test/Cluster/ClusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]}]},"children":{"ImportClusternodePoolRole":{"id":"ImportClusternodePoolRole","path":"aws-cdk-eks-helm-test/Cluster/ClusternodePoolRole/ImportClusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/ClusternodePoolRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":true,"nodePools":["system","general-purpose"],"nodeRoleArn":{"Fn::GetAtt":["ClusterClusternodePoolRole69276141","Arn"]}},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":true}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":true}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"aws-cdk-eks-helm-test/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"aws-cdk-eks-helm-test/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}},{"Action":["s3:GetBucket*","s3:GetObject*","s3:List*"],"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::",{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"}]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole081AD342A","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"aws-cdk-eks-helm-test/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}},"mastersRoleAccess":{"id":"mastersRoleAccess","path":"aws-cdk-eks-helm-test/Cluster/mastersRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/mastersRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["AdminRole38563C57","Arn"]}}}}}},"ConfigCommand":{"id":"ConfigCommand","path":"aws-cdk-eks-helm-test/Cluster/ConfigCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"GetTokenCommand":{"id":"GetTokenCommand","path":"aws-cdk-eks-helm-test/Cluster/GetTokenCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"chart-test-chart":{"id":"chart-test-chart","path":"aws-cdk-eks-helm-test/Cluster/chart-test-chart","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/chart-test-chart/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-helm-test/Cluster/chart-test-chart/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"chart-test-oci-chart":{"id":"chart-test-oci-chart","path":"aws-cdk-eks-helm-test/Cluster/chart-test-oci-chart","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/chart-test-oci-chart/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-helm-test/Cluster/chart-test-oci-chart/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"chart-test-oci-chart-different-release-name":{"id":"chart-test-oci-chart-different-release-name","path":"aws-cdk-eks-helm-test/Cluster/chart-test-oci-chart-different-release-name","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/chart-test-oci-chart-different-release-name/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-helm-test/Cluster/chart-test-oci-chart-different-release-name/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"chart-test-skip-crd-installation":{"id":"chart-test-skip-crd-installation","path":"aws-cdk-eks-helm-test/Cluster/chart-test-skip-crd-installation","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/chart-test-skip-crd-installation/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-helm-test/Cluster/chart-test-skip-crd-installation/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"ec2-controller-sa":{"id":"ec2-controller-sa","path":"aws-cdk-eks-helm-test/Cluster/ec2-controller-sa","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.ServiceAccount","version":"0.0.0"},"children":{"ConditionJson":{"id":"ConditionJson","path":"aws-cdk-eks-helm-test/Cluster/ec2-controller-sa/ConditionJson","constructInfo":{"fqn":"aws-cdk-lib.CfnJson","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/ec2-controller-sa/ConditionJson/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-helm-test/Cluster/ec2-controller-sa/ConditionJson/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"Role":{"id":"Role","path":"aws-cdk-eks-helm-test/Cluster/ec2-controller-sa/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-helm-test/Cluster/ec2-controller-sa/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/ec2-controller-sa/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"Fn::GetAtt":["Clusterec2controllersaConditionJson93A80A33","Value"]}},"Effect":"Allow","Principal":{"Federated":{"Ref":"ClusterOpenIdConnectProviderE7EB0530"}}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2FullAccess"]]}]}}}}},"manifest-ec2-controller-saServiceAccountResource":{"id":"manifest-ec2-controller-saServiceAccountResource","path":"aws-cdk-eks-helm-test/Cluster/ec2-controller-sa/manifest-ec2-controller-saServiceAccountResource","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/ec2-controller-sa/manifest-ec2-controller-saServiceAccountResource/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-helm-test/Cluster/ec2-controller-sa/manifest-ec2-controller-saServiceAccountResource/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"OpenIdConnectProvider":{"id":"OpenIdConnectProvider","path":"aws-cdk-eks-helm-test/Cluster/OpenIdConnectProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.OpenIdConnectProvider","version":"0.0.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/OpenIdConnectProvider/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-helm-test/Cluster/OpenIdConnectProvider/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"chart-test-atomic-installation":{"id":"chart-test-atomic-installation","path":"aws-cdk-eks-helm-test/Cluster/chart-test-atomic-installation","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/chart-test-atomic-installation/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-helm-test/Cluster/chart-test-atomic-installation/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"chart-test-non-ecr-oci-chart":{"id":"chart-test-non-ecr-oci-chart","path":"aws-cdk-eks-helm-test/Cluster/chart-test-non-ecr-oci-chart","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-helm-test/Cluster/chart-test-non-ecr-oci-chart/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-helm-test/Cluster/chart-test-non-ecr-oci-chart/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"aws-cdk-eks-helm-test/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"ChartAsset":{"id":"ChartAsset","path":"aws-cdk-eks-helm-test/ChartAsset","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-helm-test/ChartAsset/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-helm-test/ChartAsset/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider":{"id":"Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider","path":"aws-cdk-eks-helm-test/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-helm-test/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-helm-test/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-helm-test/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"AWSCDKCfnUtilsProviderCustomResourceProvider":{"id":"AWSCDKCfnUtilsProviderCustomResourceProvider","path":"aws-cdk-eks-helm-test/AWSCDKCfnUtilsProviderCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-helm-test/AWSCDKCfnUtilsProviderCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-helm-test/AWSCDKCfnUtilsProviderCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-helm-test/AWSCDKCfnUtilsProviderCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-helm-test/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-helm-test/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-eks-helm":{"id":"aws-cdk-eks-helm","path":"aws-cdk-eks-helm","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-eks-helm/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-helm/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-eks-helm/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-helm/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-helm/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py deleted file mode 100644 index 00d794acd0c73..0000000000000 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py +++ /dev/null @@ -1,207 +0,0 @@ -import json -import logging -import os -import re -import subprocess -import shutil -import tempfile -import zipfile -import boto3 - -logger = logging.getLogger() -logger.setLevel(logging.INFO) - -# these are coming from the kubectl layer -os.environ['PATH'] = '/opt/helm:/opt/awscli:' + os.environ['PATH'] - -outdir = os.environ.get('TEST_OUTDIR', '/tmp') -kubeconfig = os.path.join(outdir, 'kubeconfig') - -def get_chart_asset_from_url(chart_asset_url): - chart_zip = os.path.join(outdir, 'chart.zip') - shutil.rmtree(chart_zip, ignore_errors=True) - subprocess.check_call(['aws', 's3', 'cp', chart_asset_url, chart_zip]) - chart_dir = os.path.join(outdir, 'chart') - shutil.rmtree(chart_dir, ignore_errors=True) - os.mkdir(chart_dir) - with zipfile.ZipFile(chart_zip, 'r') as zip_ref: - zip_ref.extractall(chart_dir) - return chart_dir - -def is_ecr_public_available(region): - s = boto3.Session() - return s.get_partition_for_region(region) == 'aws' - -def helm_handler(event, context): - logger.info(json.dumps(dict(event, ResponseURL='...'))) - - request_type = event['RequestType'] - props = event['ResourceProperties'] - - # resource properties - cluster_name = props['ClusterName'] - release = props['Release'] - chart = props.get('Chart', None) - chart_asset_url = props.get('ChartAssetURL', None) - version = props.get('Version', None) - wait = props.get('Wait', False) - atomic = props.get('Atomic', False) - timeout = props.get('Timeout', None) - namespace = props.get('Namespace', None) - create_namespace = props.get('CreateNamespace', None) - repository = props.get('Repository', None) - values_text = props.get('Values', None) - skip_crds = props.get('SkipCrds', False) - - # "log in" to the cluster - subprocess.check_call([ 'aws', 'eks', 'update-kubeconfig', - '--name', cluster_name, - '--kubeconfig', kubeconfig - ]) - - if os.path.isfile(kubeconfig): - os.chmod(kubeconfig, 0o600) - - # Write out the values to a file and include them with the install and upgrade - values_file = None - if not request_type == "Delete" and not values_text is None: - values = json.loads(values_text) - values_file = os.path.join(outdir, 'values.yaml') - with open(values_file, "w") as f: - f.write(json.dumps(values, indent=2)) - - if request_type == 'Create' or request_type == 'Update': - # Ensure chart or chart_asset_url are set - if chart == None and chart_asset_url == None: - raise RuntimeError(f'chart or chartAsset must be specified') - - if chart_asset_url != None: - assert(chart==None) - assert(repository==None) - assert(version==None) - if not chart_asset_url.startswith('s3://'): - raise RuntimeError(f'ChartAssetURL must point to as s3 location but is {chart_asset_url}') - # future work: support versions from s3 assets - chart = get_chart_asset_from_url(chart_asset_url) - - if repository is not None and repository.startswith('oci://'): - tmpdir = tempfile.TemporaryDirectory() - chart_dir = get_chart_from_oci(tmpdir.name, repository, version) - chart = chart_dir - - helm('upgrade', release, chart, repository, values_file, namespace, version, wait, timeout, create_namespace, atomic=atomic) - elif request_type == "Delete": - try: - helm('uninstall', release, namespace=namespace, wait=wait, timeout=timeout) - except Exception as e: - logger.info("delete error: %s" % e) - - -def get_oci_cmd(repository, version): - # Generates OCI command based on pattern. Public ECR vs Private ECR are treated differently. - private_ecr_pattern = 'oci://(?P\d+\.dkr\.ecr\.(?P[a-z0-9\-]+)\.(?P[a-z0-9\.-]+))*' - public_ecr_pattern = 'oci://(?Ppublic\.ecr\.aws)*' - - private_registry = re.match(private_ecr_pattern, repository).groupdict() - public_registry = re.match(public_ecr_pattern, repository).groupdict() - - if private_registry['registry'] is not None: - logger.info("Found AWS private repository") - cmnd = [ - f"aws ecr get-login-password --region {private_registry['region']} | " \ - f"helm registry login --username AWS --password-stdin {private_registry['registry']}; helm pull {repository} --version {version} --untar" - ] - elif public_registry['registry'] is not None: - logger.info("Found AWS public repository, will use default region as deployment") - region = os.environ.get('AWS_REGION', 'us-east-1') - - if is_ecr_public_available(region): - cmnd = [ - f"aws ecr-public get-login-password --region us-east-1 | " \ - f"helm registry login --username AWS --password-stdin {public_registry['registry']}; helm pull {repository} --version {version} --untar" - ] - else: - # `aws ecr-public get-login-password` and `helm registry login` not required as ecr public is not available in current region - # see https://helm.sh/docs/helm/helm_registry_login/ - cmnd = [f"helm pull {repository} --version {version} --untar"] - else: - logger.error("OCI repository format not recognized, falling back to helm pull") - cmnd = [f"helm pull {repository} --version {version} --untar"] - - return cmnd - - -def get_chart_from_oci(tmpdir, repository = None, version = None): - - cmnd = get_oci_cmd(repository, version) - - maxAttempts = 3 - retry = maxAttempts - while retry > 0: - try: - logger.info(cmnd) - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=tmpdir, shell=True) - logger.info(output) - - # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. - # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service - return os.path.join(tmpdir, repository.rpartition('/')[-1]) - except subprocess.CalledProcessError as exc: - output = exc.output - if b'Broken pipe' in output: - retry = retry - 1 - logger.info("Broken pipe, retries left: %s" % retry) - else: - raise Exception(output) - raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') - - -def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): - import subprocess - - cmnd = ['helm', verb, release] - if not chart is None: - cmnd.append(chart) - if verb == 'upgrade': - cmnd.append('--install') - if create_namespace: - cmnd.append('--create-namespace') - if not repo is None: - cmnd.extend(['--repo', repo]) - if not file is None: - cmnd.extend(['--values', file]) - if not version is None: - cmnd.extend(['--version', version]) - if not namespace is None: - cmnd.extend(['--namespace', namespace]) - if wait: - cmnd.append('--wait') - if skip_crds: - cmnd.append('--skip-crds') - if not timeout is None: - cmnd.extend(['--timeout', timeout]) - if atomic: - cmnd.append('--atomic') - cmnd.extend(['--kubeconfig', kubeconfig]) - - # Log the full helm command for better troubleshooting - logger.info("Running command: %s", cmnd) - - maxAttempts = 3 - retry = maxAttempts - while retry > 0: - try: - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=outdir) - logger.info(output.decode('utf-8', errors='replace')) - return - except subprocess.CalledProcessError as exc: - output = exc.output - if b'Broken pipe' in output: - retry = retry - 1 - logger.info("Broken pipe, retries left: %s" % retry) - else: - error_message = output.decode('utf-8', errors='replace') - logger.error("Command failed: %s", cmnd) - logger.error("Error output: %s", error_message) - raise Exception(output) - raise Exception(f'Operation failed after {maxAttempts} attempts: {output.decode("utf-8", errors="replace")}') diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py new file mode 100644 index 0000000000000..6c7838f182a45 --- /dev/null +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py @@ -0,0 +1,250 @@ +import json +import logging +import os +import re +import subprocess +import shutil +import tempfile +import zipfile +import boto3 + +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +# these are coming from the kubectl layer +os.environ['PATH'] = '/opt/helm:/opt/awscli:' + os.environ['PATH'] + +outdir = os.environ.get('TEST_OUTDIR', '/tmp') +kubeconfig = os.path.join(outdir, 'kubeconfig') + +def get_chart_asset_from_url(chart_asset_url): + chart_zip = os.path.join(outdir, 'chart.zip') + shutil.rmtree(chart_zip, ignore_errors=True) + subprocess.check_call(['aws', 's3', 'cp', chart_asset_url, chart_zip]) + chart_dir = os.path.join(outdir, 'chart') + shutil.rmtree(chart_dir, ignore_errors=True) + os.mkdir(chart_dir) + with zipfile.ZipFile(chart_zip, 'r') as zip_ref: + zip_ref.extractall(chart_dir) + return chart_dir + +def is_ecr_public_available(region): + s = boto3.Session() + return s.get_partition_for_region(region) == 'aws' + +def helm_handler(event, context): + logger.info(json.dumps(dict(event, ResponseURL='...'))) + + request_type = event['RequestType'] + props = event['ResourceProperties'] + + # resource properties + cluster_name = props['ClusterName'] + release = props['Release'] + chart = props.get('Chart', None) + chart_asset_url = props.get('ChartAssetURL', None) + version = props.get('Version', None) + wait = props.get('Wait', False) + atomic = props.get('Atomic', False) + timeout = props.get('Timeout', None) + namespace = props.get('Namespace', None) + create_namespace = props.get('CreateNamespace', None) + repository = props.get('Repository', None) + values_text = props.get('Values', None) + skip_crds = props.get('SkipCrds', False) + + # "log in" to the cluster + subprocess.check_call([ 'aws', 'eks', 'update-kubeconfig', + '--name', cluster_name, + '--kubeconfig', kubeconfig + ]) + + if os.path.isfile(kubeconfig): + os.chmod(kubeconfig, 0o600) + + # Write out the values to a file and include them with the install and upgrade + values_file = None + if not request_type == "Delete" and not values_text is None: + values = json.loads(values_text) + values_file = os.path.join(outdir, 'values.yaml') + with open(values_file, "w") as f: + f.write(json.dumps(values, indent=2)) + + if request_type == 'Create' or request_type == 'Update': + # Ensure chart or chart_asset_url are set + if chart == None and chart_asset_url == None: + raise RuntimeError(f'chart or chartAsset must be specified') + + if chart_asset_url != None: + assert(chart==None) + assert(repository==None) + assert(version==None) + if not chart_asset_url.startswith('s3://'): + raise RuntimeError(f'ChartAssetURL must point to as s3 location but is {chart_asset_url}') + # future work: support versions from s3 assets + chart = get_chart_asset_from_url(chart_asset_url) + + if repository is not None and repository.startswith('oci://'): + tmpdir = tempfile.TemporaryDirectory() + chart_dir = get_chart_from_oci(tmpdir.name, repository, version) + chart = chart_dir + + helm('upgrade', release, chart, repository, values_file, namespace, version, wait, timeout, create_namespace, atomic=atomic) + elif request_type == "Delete": + try: + helm('uninstall', release, namespace=namespace, wait=wait, timeout=timeout) + except Exception as e: + logger.info("delete error: %s" % e) + + +def get_oci_cmd(repository, version): + # Generates OCI command based on pattern. Public ECR vs Private ECR are treated differently. + private_ecr_pattern = 'oci://(?P\d+\.dkr\.ecr\.(?P[a-z0-9\-]+)\.(?P[a-z0-9\.-]+))*' + public_ecr_pattern = 'oci://(?Ppublic\.ecr\.aws)*' + + private_registry = re.match(private_ecr_pattern, repository).groupdict() + public_registry = re.match(public_ecr_pattern, repository).groupdict() + + # Build helm pull command as array + helm_cmd = ['helm', 'pull', repository, '--version', version , '--untar'] + + if private_registry['registry'] is not None: + logger.info("Found AWS private repository") + ecr_login = ['aws', 'ecr', 'get-login-password', '--region', private_registry['region']] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', private_registry['registry']] + return {'ecr_login': ecr_login, 'registry_login': helm_registry_login, 'helm': helm_cmd} + elif public_registry['registry'] is not None: + logger.info("Found AWS public repository, will use default region as deployment") + region = os.environ.get('AWS_REGION', 'us-east-1') + + if is_ecr_public_available(region): + # Public ECR auth is always in us-east-1: https://docs.aws.amazon.com/AmazonECR/latest/public/public-registry-auth.html + ecr_login = ['aws', 'ecr-public', 'get-login-password', '--region', 'us-east-1'] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', public_registry['registry']] + return {'ecr_login': ecr_login, 'helm_registry_login': helm_registry_login, 'helm': helm_cmd} + else: + # No login required for public ECR in non-aws regions + # see https://helm.sh/docs/helm/helm_registry_login/ + return {'helm': helm_cmd} + else: + logger.error("OCI repository format not recognized, falling back to helm pull") + return {'helm': helm_cmd} + + +def get_chart_from_oci(tmpdir, repository=None, version=None): + from subprocess import Popen, PIPE + + commands = get_oci_cmd(repository, version) + + maxAttempts = 3 + retry = maxAttempts + while retry > 0: + try: + # Execute login commands if needed + if 'ecr_login' in commands and 'helm_registry_login' in commands: + logger.info("Running login command: %s", commands['ecr_login']) + logger.info("Running registry login command: %s", commands['helm_registry_login']) + + # Start first process: aws ecr get-login-password + # NOTE: We do NOT call p1.wait() here before starting p2. + # Doing so could deadlock if p1's output fills the pipe buffer + # before p2 starts reading. Instead, start p2 immediately so it + # can consume p1's stdout as it's produced. + p1 = Popen(commands['ecr_login'], stdout=PIPE, stderr=PIPE, cwd=tmpdir) + + # Start second process: helm registry login + p2 = Popen(commands['helm_registry_login'], stdin=p1.stdout, stdout=PIPE, stderr=PIPE, cwd=tmpdir) + p1.stdout.close() # Allow p1 to receive SIGPIPE if p2 exits early + + # Wait for p2 to finish first (ensures full pipeline completes) + _, p2_err = p2.communicate() + + # Now wait for p1 so we have a complete stderr and an exit code + p1.wait() + + # Handle p1 failure + if p1.returncode != 0: + p1_err = p1.stderr.read().decode('utf-8', errors='replace') if p1.stderr else '' + logger.error( + "ECR get-login-password failed for repository %s. Error: %s", + repository, + p1_err or "No error details" + ) + raise subprocess.CalledProcessError(p1.returncode, commands['ecr_login'], p1_err.encode()) + + # Handle p2 failure + if p2.returncode != 0: + logger.error( + "Helm registry authentication failed for repository %s. Error: %s", + repository, + p2_err.decode('utf-8', errors='replace') or "No error details" + ) + raise subprocess.CalledProcessError(p2.returncode, commands['helm_registry_login'], p2_err) + + # Execute helm pull command + logger.info("Running helm command: %s", commands['helm']) + output = subprocess.check_output(commands['helm'], stderr=subprocess.STDOUT, cwd=tmpdir) + logger.info(output) + + # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. + # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service + return os.path.join(tmpdir, repository.rpartition('/')[-1]) + + except subprocess.CalledProcessError as exc: + output = exc.output + if b'Broken pipe' in output: + retry = retry - 1 + logger.info("Broken pipe, retries left: %s" % retry) + else: + raise Exception(output) + + raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') + + +def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): + cmnd = ['helm', verb, release] + if not chart is None: + cmnd.append(chart) + if verb == 'upgrade': + cmnd.append('--install') + if create_namespace: + cmnd.append('--create-namespace') + if not repo is None: + cmnd.extend(['--repo', repo]) + if not file is None: + cmnd.extend(['--values', file]) + if not version is None: + cmnd.extend(['--version', version]) + if not namespace is None: + cmnd.extend(['--namespace', namespace]) + if wait: + cmnd.append('--wait') + if skip_crds: + cmnd.append('--skip-crds') + if not timeout is None: + cmnd.extend(['--timeout', timeout]) + if atomic: + cmnd.append('--atomic') + cmnd.extend(['--kubeconfig', kubeconfig]) + + # Log the full helm command for better troubleshooting + logger.info("Running command: %s", cmnd) + + maxAttempts = 3 + retry = maxAttempts + while retry > 0: + try: + output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=outdir) + logger.info(output.decode('utf-8', errors='replace')) + return + except subprocess.CalledProcessError as exc: + output = exc.output + if b'Broken pipe' in output: + retry = retry - 1 + logger.info("Broken pipe, retries left: %s" % retry) + else: + error_message = output.decode('utf-8', errors='replace') + logger.error("Command failed: %s", cmnd) + logger.error("Error output: %s", error_message) + raise Exception(output) + raise Exception(f'Operation failed after {maxAttempts} attempts: {output.decode("utf-8", errors="replace")}') diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/aws-cdk-eks-cluster-inference-nodegroup.assets.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/aws-cdk-eks-cluster-inference-nodegroup.assets.json index f3e6f77233118..e6affbc6655a4 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/aws-cdk-eks-cluster-inference-nodegroup.assets.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/aws-cdk-eks-cluster-inference-nodegroup.assets.json @@ -15,16 +15,16 @@ } } }, - "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069": { + "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a": { "displayName": "Cluster/KubectlProvider/Handler/Code", "source": { - "path": "asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069", + "path": "asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a", "packaging": "zip" }, "destinations": { - "current_account-current_region-0ee668da": { + "current_account-current_region-5b09798b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip", + "objectKey": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -85,16 +85,16 @@ } } }, - "12e9811f0dcf21cafd536ba10628eff998772cb46fd8145d23a65360cc7fb611": { + "df626523ac2f52a55f6617a64f9d26c16beb1847656f1de5267c78a1da63b7e4": { "displayName": "aws-cdk-eks-cluster-inference-nodegroup Template", "source": { "path": "aws-cdk-eks-cluster-inference-nodegroup.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-cd064c77": { + "current_account-current_region-cd29a79a": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "12e9811f0dcf21cafd536ba10628eff998772cb46fd8145d23a65360cc7fb611.json", + "objectKey": "df626523ac2f52a55f6617a64f9d26c16beb1847656f1de5267c78a1da63b7e4.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/aws-cdk-eks-cluster-inference-nodegroup.template.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/aws-cdk-eks-cluster-inference-nodegroup.template.json index 13e9940535603..2c6d4dff5cb8f 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/aws-cdk-eks-cluster-inference-nodegroup.template.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/aws-cdk-eks-cluster-inference-nodegroup.template.json @@ -663,7 +663,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip" + "S3Key": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip" }, "Description": "onEvent handler for EKS kubectl resource provider", "Environment": { diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/manifest.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/manifest.json index c3e28b0904091..14910009147bb 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "artifacts": { "aws-cdk-eks-cluster-inference-nodegroup.assets": { "type": "cdk:asset-manifest", @@ -18,7 +18,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/12e9811f0dcf21cafd536ba10628eff998772cb46fd8145d23a65360cc7fb611.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/df626523ac2f52a55f6617a64f9d26c16beb1847656f1de5267c78a1da63b7e4.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -581,7 +581,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -1796,6 +1796,7 @@ "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." }, "@aws-cdk/core:explicitStackTags": { + "userValue": true, "recommendedValue": true, "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." }, @@ -1948,5 +1949,5 @@ } } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1023.0" } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/tree.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/tree.json index da7591093ae7b..e55321f9e067d 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/tree.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-inference-nodegroup.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"aws-cdk-eks-cluster-inference-nodegroup":{"id":"aws-cdk-eks-cluster-inference-nodegroup","path":"aws-cdk-eks-cluster-inference-nodegroup","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"Vpc":{"id":"Vpc","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"maxAzs":"*","natGateways":"*","restrictDefaultSecurityGroup":false}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"kubectlLayer":{"id":"kubectlLayer","path":"aws-cdk-eks-cluster-inference-nodegroup/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-inference-nodegroup/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-inference-nodegroup/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-inference-nodegroup/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*","*","*","*"]},"children":{"Role":{"id":"Role","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":false},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":false}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":false}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole081AD342A","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}},"OpenIdConnectProvider":{"id":"OpenIdConnectProvider","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/OpenIdConnectProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.OpenIdConnectProvider","version":"0.0.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/OpenIdConnectProvider/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/OpenIdConnectProvider/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"NodegroupDefaultCapacity":{"id":"NodegroupDefaultCapacity","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupDefaultCapacity","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupDefaultCapacity/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupDefaultCapacity/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupDefaultCapacity/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupDefaultCapacity/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2_x86_64","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"instanceTypes":["m5.large"],"nodeRole":{"Fn::GetAtt":["ClusterNodegroupDefaultCapacityNodeGroupRole55953B04","Arn"]},"scalingConfig":{"desiredSize":2,"maxSize":2,"minSize":2},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"manifest-NeuronDevicePlugin":{"id":"manifest-NeuronDevicePlugin","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/manifest-NeuronDevicePlugin","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/manifest-NeuronDevicePlugin/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/manifest-NeuronDevicePlugin/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"NodegroupInferenceInstances":{"id":"NodegroupInferenceInstances","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupInferenceInstances","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupInferenceInstances/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupInferenceInstances/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupInferenceInstances/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupInferenceInstances/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2_x86_64_GPU","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"instanceTypes":["inf1.2xlarge"],"nodeRole":{"Fn::GetAtt":["ClusterNodegroupInferenceInstancesNodeGroupRole80013868","Arn"]},"scalingConfig":{"desiredSize":2,"maxSize":2,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"NodegroupInference2Instances":{"id":"NodegroupInference2Instances","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupInference2Instances","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupInference2Instances/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupInference2Instances/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupInference2Instances/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupInference2Instances/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2_x86_64_GPU","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"instanceTypes":["inf2.xlarge"],"nodeRole":{"Fn::GetAtt":["ClusterNodegroupInference2InstancesNodeGroupRole3A8C7FF7","Arn"]},"scalingConfig":{"desiredSize":2,"maxSize":2,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"aws-cdk-eks-cluster-inference-nodegroup/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController":{"id":"awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AlbController","version":"0.0.0"},"children":{"alb-sa":{"id":"alb-sa","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.ServiceAccount","version":"0.0.0"},"children":{"ConditionJson":{"id":"ConditionJson","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa/ConditionJson","constructInfo":{"fqn":"aws-cdk-lib.CfnJson","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa/ConditionJson/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa/ConditionJson/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"Fn::GetAtt":["awscdkeksclusterinferencenodegroupCluster4FEA031EAlbControlleralbsaConditionJsonD4837132","Value"]}},"Effect":"Allow","Principal":{"Federated":{"Ref":"ClusterOpenIdConnectProviderE7EB0530"}}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"iam:CreateServiceLinkedRole","Condition":{"StringEquals":{"iam:AWSServiceName":"elasticloadbalancing.amazonaws.com"}},"Effect":"Allow","Resource":"*"},{"Action":["acm:DescribeCertificate","acm:ListCertificates","cognito-idp:DescribeUserPoolClient","ec2:AuthorizeSecurityGroupIngress","ec2:CreateSecurityGroup","ec2:DescribeAccountAttributes","ec2:DescribeAddresses","ec2:DescribeAvailabilityZones","ec2:DescribeCoipPools","ec2:DescribeInstances","ec2:DescribeInternetGateways","ec2:DescribeNetworkInterfaces","ec2:DescribeSecurityGroups","ec2:DescribeSubnets","ec2:DescribeTags","ec2:DescribeVpcPeeringConnections","ec2:DescribeVpcs","ec2:GetCoipPoolUsage","ec2:RevokeSecurityGroupIngress","elasticloadbalancing:AddListenerCertificates","elasticloadbalancing:CreateListener","elasticloadbalancing:CreateRule","elasticloadbalancing:DeleteListener","elasticloadbalancing:DeleteRule","elasticloadbalancing:DescribeListenerCertificates","elasticloadbalancing:DescribeListeners","elasticloadbalancing:DescribeLoadBalancerAttributes","elasticloadbalancing:DescribeLoadBalancers","elasticloadbalancing:DescribeRules","elasticloadbalancing:DescribeSSLPolicies","elasticloadbalancing:DescribeTags","elasticloadbalancing:DescribeTargetGroupAttributes","elasticloadbalancing:DescribeTargetGroups","elasticloadbalancing:DescribeTargetHealth","elasticloadbalancing:DescribeTrustStores","elasticloadbalancing:ModifyListener","elasticloadbalancing:ModifyRule","elasticloadbalancing:RemoveListenerCertificates","elasticloadbalancing:SetWebAcl","iam:GetServerCertificate","iam:ListServerCertificates","shield:CreateProtection","shield:DeleteProtection","shield:DescribeProtection","shield:GetSubscriptionState","waf-regional:AssociateWebACL","waf-regional:DisassociateWebACL","waf-regional:GetWebACL","waf-regional:GetWebACLForResource","wafv2:AssociateWebACL","wafv2:DisassociateWebACL","wafv2:GetWebACL","wafv2:GetWebACLForResource"],"Effect":"Allow","Resource":"*"},{"Action":"ec2:CreateTags","Condition":{"StringEquals":{"ec2:CreateAction":"CreateSecurityGroup"},"Null":{"aws:RequestTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ec2:*:*:security-group/*"]]}},{"Action":["ec2:CreateTags","ec2:DeleteTags"],"Condition":{"Null":{"aws:RequestTag/elbv2.k8s.aws/cluster":"true","aws:ResourceTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ec2:*:*:security-group/*"]]}},{"Action":["ec2:AuthorizeSecurityGroupIngress","ec2:DeleteSecurityGroup","ec2:RevokeSecurityGroupIngress","elasticloadbalancing:DeleteLoadBalancer","elasticloadbalancing:DeleteTargetGroup","elasticloadbalancing:ModifyLoadBalancerAttributes","elasticloadbalancing:ModifyTargetGroup","elasticloadbalancing:ModifyTargetGroupAttributes","elasticloadbalancing:SetIpAddressType","elasticloadbalancing:SetSecurityGroups","elasticloadbalancing:SetSubnets"],"Condition":{"Null":{"aws:ResourceTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":"*"},{"Action":["elasticloadbalancing:CreateLoadBalancer","elasticloadbalancing:CreateTargetGroup"],"Condition":{"Null":{"aws:RequestTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":"*"},{"Action":["elasticloadbalancing:AddTags","elasticloadbalancing:RemoveTags"],"Condition":{"Null":{"aws:RequestTag/elbv2.k8s.aws/cluster":"true","aws:ResourceTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:loadbalancer/app/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:loadbalancer/net/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:targetgroup/*/*"]]}]},{"Action":["elasticloadbalancing:AddTags","elasticloadbalancing:RemoveTags"],"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:listener-rule/app/*/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:listener-rule/net/*/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:listener/app/*/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:listener/net/*/*/*"]]}]},{"Action":"elasticloadbalancing:AddTags","Condition":{"StringEquals":{"elasticloadbalancing:CreateAction":["CreateTargetGroup","CreateLoadBalancer"]},"Null":{"aws:RequestTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:loadbalancer/app/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:loadbalancer/net/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:targetgroup/*/*"]]}]},{"Action":["elasticloadbalancing:DeregisterTargets","elasticloadbalancing:RegisterTargets"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:targetgroup/*/*"]]}}],"Version":"2012-10-17"},"policyName":"awscdkeksclusterinferencenodegroupCluster4FEA031EAlbControlleralbsaRoleDefaultPolicyD6B360F4","roles":[{"Ref":"awscdkeksclusterinferencenodegroupCluster4FEA031EAlbControlleralbsaRoleCBC0A7F6"}]}}}}}}},"manifest-alb-saServiceAccountResource":{"id":"manifest-alb-saServiceAccountResource","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa/manifest-alb-saServiceAccountResource","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa/manifest-alb-saServiceAccountResource/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa/manifest-alb-saServiceAccountResource/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/Resource","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/Resource/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/Resource/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider":{"id":"Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider","path":"aws-cdk-eks-cluster-inference-nodegroup/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-cluster-inference-nodegroup/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster-inference-nodegroup/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-inference-nodegroup/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"AWSCDKCfnUtilsProviderCustomResourceProvider":{"id":"AWSCDKCfnUtilsProviderCustomResourceProvider","path":"aws-cdk-eks-cluster-inference-nodegroup/AWSCDKCfnUtilsProviderCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-cluster-inference-nodegroup/AWSCDKCfnUtilsProviderCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster-inference-nodegroup/AWSCDKCfnUtilsProviderCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-inference-nodegroup/AWSCDKCfnUtilsProviderCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-inference-nodegroup/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-inference-nodegroup/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-eks-cluster-interence-nodegroup-integ":{"id":"aws-cdk-eks-cluster-interence-nodegroup-integ","path":"aws-cdk-eks-cluster-interence-nodegroup-integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-eks-cluster-interence-nodegroup-integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-interence-nodegroup-integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-eks-cluster-interence-nodegroup-integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-interence-nodegroup-integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-interence-nodegroup-integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"aws-cdk-eks-cluster-inference-nodegroup":{"id":"aws-cdk-eks-cluster-inference-nodegroup","path":"aws-cdk-eks-cluster-inference-nodegroup","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"Vpc":{"id":"Vpc","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"maxAzs":"*","natGateways":"*","restrictDefaultSecurityGroup":false}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"aws-cdk-eks-cluster-inference-nodegroup/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"aws-cdk-eks-cluster-inference-nodegroup/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"kubectlLayer":{"id":"kubectlLayer","path":"aws-cdk-eks-cluster-inference-nodegroup/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-inference-nodegroup/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-inference-nodegroup/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-inference-nodegroup/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*","*","*","*"]},"children":{"Role":{"id":"Role","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":false},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":false}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":false}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole081AD342A","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}},"OpenIdConnectProvider":{"id":"OpenIdConnectProvider","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/OpenIdConnectProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.OpenIdConnectProvider","version":"0.0.0","metadata":["*","*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/OpenIdConnectProvider/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/OpenIdConnectProvider/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"NodegroupDefaultCapacity":{"id":"NodegroupDefaultCapacity","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupDefaultCapacity","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupDefaultCapacity/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupDefaultCapacity/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupDefaultCapacity/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupDefaultCapacity/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2_x86_64","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"instanceTypes":["m5.large"],"nodeRole":{"Fn::GetAtt":["ClusterNodegroupDefaultCapacityNodeGroupRole55953B04","Arn"]},"scalingConfig":{"desiredSize":2,"maxSize":2,"minSize":2},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"manifest-NeuronDevicePlugin":{"id":"manifest-NeuronDevicePlugin","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/manifest-NeuronDevicePlugin","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/manifest-NeuronDevicePlugin/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/manifest-NeuronDevicePlugin/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"NodegroupInferenceInstances":{"id":"NodegroupInferenceInstances","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupInferenceInstances","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupInferenceInstances/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupInferenceInstances/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupInferenceInstances/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupInferenceInstances/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2_x86_64_GPU","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"instanceTypes":["inf1.2xlarge"],"nodeRole":{"Fn::GetAtt":["ClusterNodegroupInferenceInstancesNodeGroupRole80013868","Arn"]},"scalingConfig":{"desiredSize":2,"maxSize":2,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"NodegroupInference2Instances":{"id":"NodegroupInference2Instances","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupInference2Instances","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupInference2Instances/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupInference2Instances/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupInference2Instances/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/Cluster/NodegroupInference2Instances/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2_x86_64_GPU","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"instanceTypes":["inf2.xlarge"],"nodeRole":{"Fn::GetAtt":["ClusterNodegroupInference2InstancesNodeGroupRole3A8C7FF7","Arn"]},"scalingConfig":{"desiredSize":2,"maxSize":2,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"aws-cdk-eks-cluster-inference-nodegroup/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController":{"id":"awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AlbController","version":"0.0.0"},"children":{"alb-sa":{"id":"alb-sa","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.ServiceAccount","version":"0.0.0"},"children":{"ConditionJson":{"id":"ConditionJson","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa/ConditionJson","constructInfo":{"fqn":"aws-cdk-lib.CfnJson","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa/ConditionJson/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*","*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa/ConditionJson/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRoleWithWebIdentity","Condition":{"StringEquals":{"Fn::GetAtt":["awscdkeksclusterinferencenodegroupCluster4FEA031EAlbControlleralbsaConditionJsonD4837132","Value"]}},"Effect":"Allow","Principal":{"Federated":{"Ref":"ClusterOpenIdConnectProviderE7EB0530"}}}],"Version":"2012-10-17"}}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa/Role/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa/Role/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"iam:CreateServiceLinkedRole","Condition":{"StringEquals":{"iam:AWSServiceName":"elasticloadbalancing.amazonaws.com"}},"Effect":"Allow","Resource":"*"},{"Action":["acm:DescribeCertificate","acm:ListCertificates","cognito-idp:DescribeUserPoolClient","ec2:AuthorizeSecurityGroupIngress","ec2:CreateSecurityGroup","ec2:DescribeAccountAttributes","ec2:DescribeAddresses","ec2:DescribeAvailabilityZones","ec2:DescribeCoipPools","ec2:DescribeInstances","ec2:DescribeInternetGateways","ec2:DescribeNetworkInterfaces","ec2:DescribeSecurityGroups","ec2:DescribeSubnets","ec2:DescribeTags","ec2:DescribeVpcPeeringConnections","ec2:DescribeVpcs","ec2:GetCoipPoolUsage","ec2:RevokeSecurityGroupIngress","elasticloadbalancing:AddListenerCertificates","elasticloadbalancing:CreateListener","elasticloadbalancing:CreateRule","elasticloadbalancing:DeleteListener","elasticloadbalancing:DeleteRule","elasticloadbalancing:DescribeListenerCertificates","elasticloadbalancing:DescribeListeners","elasticloadbalancing:DescribeLoadBalancerAttributes","elasticloadbalancing:DescribeLoadBalancers","elasticloadbalancing:DescribeRules","elasticloadbalancing:DescribeSSLPolicies","elasticloadbalancing:DescribeTags","elasticloadbalancing:DescribeTargetGroupAttributes","elasticloadbalancing:DescribeTargetGroups","elasticloadbalancing:DescribeTargetHealth","elasticloadbalancing:DescribeTrustStores","elasticloadbalancing:ModifyListener","elasticloadbalancing:ModifyRule","elasticloadbalancing:RemoveListenerCertificates","elasticloadbalancing:SetWebAcl","iam:GetServerCertificate","iam:ListServerCertificates","shield:CreateProtection","shield:DeleteProtection","shield:DescribeProtection","shield:GetSubscriptionState","waf-regional:AssociateWebACL","waf-regional:DisassociateWebACL","waf-regional:GetWebACL","waf-regional:GetWebACLForResource","wafv2:AssociateWebACL","wafv2:DisassociateWebACL","wafv2:GetWebACL","wafv2:GetWebACLForResource"],"Effect":"Allow","Resource":"*"},{"Action":"ec2:CreateTags","Condition":{"StringEquals":{"ec2:CreateAction":"CreateSecurityGroup"},"Null":{"aws:RequestTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ec2:*:*:security-group/*"]]}},{"Action":["ec2:CreateTags","ec2:DeleteTags"],"Condition":{"Null":{"aws:RequestTag/elbv2.k8s.aws/cluster":"true","aws:ResourceTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ec2:*:*:security-group/*"]]}},{"Action":["ec2:AuthorizeSecurityGroupIngress","ec2:DeleteSecurityGroup","ec2:RevokeSecurityGroupIngress","elasticloadbalancing:DeleteLoadBalancer","elasticloadbalancing:DeleteTargetGroup","elasticloadbalancing:ModifyLoadBalancerAttributes","elasticloadbalancing:ModifyTargetGroup","elasticloadbalancing:ModifyTargetGroupAttributes","elasticloadbalancing:SetIpAddressType","elasticloadbalancing:SetSecurityGroups","elasticloadbalancing:SetSubnets"],"Condition":{"Null":{"aws:ResourceTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":"*"},{"Action":["elasticloadbalancing:CreateLoadBalancer","elasticloadbalancing:CreateTargetGroup"],"Condition":{"Null":{"aws:RequestTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":"*"},{"Action":["elasticloadbalancing:AddTags","elasticloadbalancing:RemoveTags"],"Condition":{"Null":{"aws:RequestTag/elbv2.k8s.aws/cluster":"true","aws:ResourceTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:loadbalancer/app/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:loadbalancer/net/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:targetgroup/*/*"]]}]},{"Action":["elasticloadbalancing:AddTags","elasticloadbalancing:RemoveTags"],"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:listener-rule/app/*/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:listener-rule/net/*/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:listener/app/*/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:listener/net/*/*/*"]]}]},{"Action":"elasticloadbalancing:AddTags","Condition":{"StringEquals":{"elasticloadbalancing:CreateAction":["CreateTargetGroup","CreateLoadBalancer"]},"Null":{"aws:RequestTag/elbv2.k8s.aws/cluster":"false"}},"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:loadbalancer/app/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:loadbalancer/net/*/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:targetgroup/*/*"]]}]},{"Action":["elasticloadbalancing:DeregisterTargets","elasticloadbalancing:RegisterTargets"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":elasticloadbalancing:*:*:targetgroup/*/*"]]}}],"Version":"2012-10-17"},"policyName":"awscdkeksclusterinferencenodegroupCluster4FEA031EAlbControlleralbsaRoleDefaultPolicyD6B360F4","roles":[{"Ref":"awscdkeksclusterinferencenodegroupCluster4FEA031EAlbControlleralbsaRoleCBC0A7F6"}]}}}}}}},"manifest-alb-saServiceAccountResource":{"id":"manifest-alb-saServiceAccountResource","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa/manifest-alb-saServiceAccountResource","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesManifest","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa/manifest-alb-saServiceAccountResource/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/alb-sa/manifest-alb-saServiceAccountResource/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/Resource","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/Resource/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-inference-nodegroup/awscdkeksclusterinferencenodegroupCluster4FEA031E-AlbController/Resource/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider":{"id":"Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider","path":"aws-cdk-eks-cluster-inference-nodegroup/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-cluster-inference-nodegroup/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster-inference-nodegroup/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-inference-nodegroup/Custom::AWSCDKOpenIdConnectProviderCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"AWSCDKCfnUtilsProviderCustomResourceProvider":{"id":"AWSCDKCfnUtilsProviderCustomResourceProvider","path":"aws-cdk-eks-cluster-inference-nodegroup/AWSCDKCfnUtilsProviderCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-cluster-inference-nodegroup/AWSCDKCfnUtilsProviderCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster-inference-nodegroup/AWSCDKCfnUtilsProviderCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-inference-nodegroup/AWSCDKCfnUtilsProviderCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-inference-nodegroup/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-inference-nodegroup/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-eks-cluster-interence-nodegroup-integ":{"id":"aws-cdk-eks-cluster-interence-nodegroup-integ","path":"aws-cdk-eks-cluster-interence-nodegroup-integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-eks-cluster-interence-nodegroup-integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-interence-nodegroup-integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-eks-cluster-interence-nodegroup-integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-interence-nodegroup-integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-interence-nodegroup-integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-oidc-provider.js.snapshot/manifest.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-oidc-provider.js.snapshot/manifest.json index 7de19dc3261fe..bdf100891ef35 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-oidc-provider.js.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-oidc-provider.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "artifacts": { "aws-eks-oidc-provider-test.assets": { "type": "cdk:asset-manifest", @@ -470,6 +470,7 @@ "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." }, "@aws-cdk/core:explicitStackTags": { + "userValue": true, "recommendedValue": true, "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." }, @@ -622,5 +623,5 @@ } } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1023.0" } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/EKSStandardAccessEntry.assets.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/EKSStandardAccessEntry.assets.json index a5b320095df6b..e57021e985477 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/EKSStandardAccessEntry.assets.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/EKSStandardAccessEntry.assets.json @@ -15,16 +15,16 @@ } } }, - "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069": { + "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a": { "displayName": "Cluster/KubectlProvider/Handler/Code", "source": { - "path": "asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069", + "path": "asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a", "packaging": "zip" }, "destinations": { - "current_account-current_region-0ee668da": { + "current_account-current_region-5b09798b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip", + "objectKey": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -57,16 +57,16 @@ } } }, - "3fc468d134de9a13e565c8f2f8fd664ee210fd787073a3957c3b7b9badc4a93b": { + "4d880a0f5ce8a332b5c55871420b549d40425bb700c513dbf473ae04aaa8cbd3": { "displayName": "EKSStandardAccessEntry Template", "source": { "path": "EKSStandardAccessEntry.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-7a233cb2": { + "current_account-current_region-178a078b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3fc468d134de9a13e565c8f2f8fd664ee210fd787073a3957c3b7b9badc4a93b.json", + "objectKey": "4d880a0f5ce8a332b5c55871420b549d40425bb700c513dbf473ae04aaa8cbd3.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/EKSStandardAccessEntry.template.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/EKSStandardAccessEntry.template.json index f62f4bd9215fa..46cbe8cc74d12 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/EKSStandardAccessEntry.template.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/EKSStandardAccessEntry.template.json @@ -663,7 +663,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip" + "S3Key": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip" }, "Description": "onEvent handler for EKS kubectl resource provider", "Environment": { diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py deleted file mode 100644 index 00d794acd0c73..0000000000000 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py +++ /dev/null @@ -1,207 +0,0 @@ -import json -import logging -import os -import re -import subprocess -import shutil -import tempfile -import zipfile -import boto3 - -logger = logging.getLogger() -logger.setLevel(logging.INFO) - -# these are coming from the kubectl layer -os.environ['PATH'] = '/opt/helm:/opt/awscli:' + os.environ['PATH'] - -outdir = os.environ.get('TEST_OUTDIR', '/tmp') -kubeconfig = os.path.join(outdir, 'kubeconfig') - -def get_chart_asset_from_url(chart_asset_url): - chart_zip = os.path.join(outdir, 'chart.zip') - shutil.rmtree(chart_zip, ignore_errors=True) - subprocess.check_call(['aws', 's3', 'cp', chart_asset_url, chart_zip]) - chart_dir = os.path.join(outdir, 'chart') - shutil.rmtree(chart_dir, ignore_errors=True) - os.mkdir(chart_dir) - with zipfile.ZipFile(chart_zip, 'r') as zip_ref: - zip_ref.extractall(chart_dir) - return chart_dir - -def is_ecr_public_available(region): - s = boto3.Session() - return s.get_partition_for_region(region) == 'aws' - -def helm_handler(event, context): - logger.info(json.dumps(dict(event, ResponseURL='...'))) - - request_type = event['RequestType'] - props = event['ResourceProperties'] - - # resource properties - cluster_name = props['ClusterName'] - release = props['Release'] - chart = props.get('Chart', None) - chart_asset_url = props.get('ChartAssetURL', None) - version = props.get('Version', None) - wait = props.get('Wait', False) - atomic = props.get('Atomic', False) - timeout = props.get('Timeout', None) - namespace = props.get('Namespace', None) - create_namespace = props.get('CreateNamespace', None) - repository = props.get('Repository', None) - values_text = props.get('Values', None) - skip_crds = props.get('SkipCrds', False) - - # "log in" to the cluster - subprocess.check_call([ 'aws', 'eks', 'update-kubeconfig', - '--name', cluster_name, - '--kubeconfig', kubeconfig - ]) - - if os.path.isfile(kubeconfig): - os.chmod(kubeconfig, 0o600) - - # Write out the values to a file and include them with the install and upgrade - values_file = None - if not request_type == "Delete" and not values_text is None: - values = json.loads(values_text) - values_file = os.path.join(outdir, 'values.yaml') - with open(values_file, "w") as f: - f.write(json.dumps(values, indent=2)) - - if request_type == 'Create' or request_type == 'Update': - # Ensure chart or chart_asset_url are set - if chart == None and chart_asset_url == None: - raise RuntimeError(f'chart or chartAsset must be specified') - - if chart_asset_url != None: - assert(chart==None) - assert(repository==None) - assert(version==None) - if not chart_asset_url.startswith('s3://'): - raise RuntimeError(f'ChartAssetURL must point to as s3 location but is {chart_asset_url}') - # future work: support versions from s3 assets - chart = get_chart_asset_from_url(chart_asset_url) - - if repository is not None and repository.startswith('oci://'): - tmpdir = tempfile.TemporaryDirectory() - chart_dir = get_chart_from_oci(tmpdir.name, repository, version) - chart = chart_dir - - helm('upgrade', release, chart, repository, values_file, namespace, version, wait, timeout, create_namespace, atomic=atomic) - elif request_type == "Delete": - try: - helm('uninstall', release, namespace=namespace, wait=wait, timeout=timeout) - except Exception as e: - logger.info("delete error: %s" % e) - - -def get_oci_cmd(repository, version): - # Generates OCI command based on pattern. Public ECR vs Private ECR are treated differently. - private_ecr_pattern = 'oci://(?P\d+\.dkr\.ecr\.(?P[a-z0-9\-]+)\.(?P[a-z0-9\.-]+))*' - public_ecr_pattern = 'oci://(?Ppublic\.ecr\.aws)*' - - private_registry = re.match(private_ecr_pattern, repository).groupdict() - public_registry = re.match(public_ecr_pattern, repository).groupdict() - - if private_registry['registry'] is not None: - logger.info("Found AWS private repository") - cmnd = [ - f"aws ecr get-login-password --region {private_registry['region']} | " \ - f"helm registry login --username AWS --password-stdin {private_registry['registry']}; helm pull {repository} --version {version} --untar" - ] - elif public_registry['registry'] is not None: - logger.info("Found AWS public repository, will use default region as deployment") - region = os.environ.get('AWS_REGION', 'us-east-1') - - if is_ecr_public_available(region): - cmnd = [ - f"aws ecr-public get-login-password --region us-east-1 | " \ - f"helm registry login --username AWS --password-stdin {public_registry['registry']}; helm pull {repository} --version {version} --untar" - ] - else: - # `aws ecr-public get-login-password` and `helm registry login` not required as ecr public is not available in current region - # see https://helm.sh/docs/helm/helm_registry_login/ - cmnd = [f"helm pull {repository} --version {version} --untar"] - else: - logger.error("OCI repository format not recognized, falling back to helm pull") - cmnd = [f"helm pull {repository} --version {version} --untar"] - - return cmnd - - -def get_chart_from_oci(tmpdir, repository = None, version = None): - - cmnd = get_oci_cmd(repository, version) - - maxAttempts = 3 - retry = maxAttempts - while retry > 0: - try: - logger.info(cmnd) - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=tmpdir, shell=True) - logger.info(output) - - # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. - # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service - return os.path.join(tmpdir, repository.rpartition('/')[-1]) - except subprocess.CalledProcessError as exc: - output = exc.output - if b'Broken pipe' in output: - retry = retry - 1 - logger.info("Broken pipe, retries left: %s" % retry) - else: - raise Exception(output) - raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') - - -def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): - import subprocess - - cmnd = ['helm', verb, release] - if not chart is None: - cmnd.append(chart) - if verb == 'upgrade': - cmnd.append('--install') - if create_namespace: - cmnd.append('--create-namespace') - if not repo is None: - cmnd.extend(['--repo', repo]) - if not file is None: - cmnd.extend(['--values', file]) - if not version is None: - cmnd.extend(['--version', version]) - if not namespace is None: - cmnd.extend(['--namespace', namespace]) - if wait: - cmnd.append('--wait') - if skip_crds: - cmnd.append('--skip-crds') - if not timeout is None: - cmnd.extend(['--timeout', timeout]) - if atomic: - cmnd.append('--atomic') - cmnd.extend(['--kubeconfig', kubeconfig]) - - # Log the full helm command for better troubleshooting - logger.info("Running command: %s", cmnd) - - maxAttempts = 3 - retry = maxAttempts - while retry > 0: - try: - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=outdir) - logger.info(output.decode('utf-8', errors='replace')) - return - except subprocess.CalledProcessError as exc: - output = exc.output - if b'Broken pipe' in output: - retry = retry - 1 - logger.info("Broken pipe, retries left: %s" % retry) - else: - error_message = output.decode('utf-8', errors='replace') - logger.error("Command failed: %s", cmnd) - logger.error("Error output: %s", error_message) - raise Exception(output) - raise Exception(f'Operation failed after {maxAttempts} attempts: {output.decode("utf-8", errors="replace")}') diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py new file mode 100644 index 0000000000000..6c7838f182a45 --- /dev/null +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py @@ -0,0 +1,250 @@ +import json +import logging +import os +import re +import subprocess +import shutil +import tempfile +import zipfile +import boto3 + +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +# these are coming from the kubectl layer +os.environ['PATH'] = '/opt/helm:/opt/awscli:' + os.environ['PATH'] + +outdir = os.environ.get('TEST_OUTDIR', '/tmp') +kubeconfig = os.path.join(outdir, 'kubeconfig') + +def get_chart_asset_from_url(chart_asset_url): + chart_zip = os.path.join(outdir, 'chart.zip') + shutil.rmtree(chart_zip, ignore_errors=True) + subprocess.check_call(['aws', 's3', 'cp', chart_asset_url, chart_zip]) + chart_dir = os.path.join(outdir, 'chart') + shutil.rmtree(chart_dir, ignore_errors=True) + os.mkdir(chart_dir) + with zipfile.ZipFile(chart_zip, 'r') as zip_ref: + zip_ref.extractall(chart_dir) + return chart_dir + +def is_ecr_public_available(region): + s = boto3.Session() + return s.get_partition_for_region(region) == 'aws' + +def helm_handler(event, context): + logger.info(json.dumps(dict(event, ResponseURL='...'))) + + request_type = event['RequestType'] + props = event['ResourceProperties'] + + # resource properties + cluster_name = props['ClusterName'] + release = props['Release'] + chart = props.get('Chart', None) + chart_asset_url = props.get('ChartAssetURL', None) + version = props.get('Version', None) + wait = props.get('Wait', False) + atomic = props.get('Atomic', False) + timeout = props.get('Timeout', None) + namespace = props.get('Namespace', None) + create_namespace = props.get('CreateNamespace', None) + repository = props.get('Repository', None) + values_text = props.get('Values', None) + skip_crds = props.get('SkipCrds', False) + + # "log in" to the cluster + subprocess.check_call([ 'aws', 'eks', 'update-kubeconfig', + '--name', cluster_name, + '--kubeconfig', kubeconfig + ]) + + if os.path.isfile(kubeconfig): + os.chmod(kubeconfig, 0o600) + + # Write out the values to a file and include them with the install and upgrade + values_file = None + if not request_type == "Delete" and not values_text is None: + values = json.loads(values_text) + values_file = os.path.join(outdir, 'values.yaml') + with open(values_file, "w") as f: + f.write(json.dumps(values, indent=2)) + + if request_type == 'Create' or request_type == 'Update': + # Ensure chart or chart_asset_url are set + if chart == None and chart_asset_url == None: + raise RuntimeError(f'chart or chartAsset must be specified') + + if chart_asset_url != None: + assert(chart==None) + assert(repository==None) + assert(version==None) + if not chart_asset_url.startswith('s3://'): + raise RuntimeError(f'ChartAssetURL must point to as s3 location but is {chart_asset_url}') + # future work: support versions from s3 assets + chart = get_chart_asset_from_url(chart_asset_url) + + if repository is not None and repository.startswith('oci://'): + tmpdir = tempfile.TemporaryDirectory() + chart_dir = get_chart_from_oci(tmpdir.name, repository, version) + chart = chart_dir + + helm('upgrade', release, chart, repository, values_file, namespace, version, wait, timeout, create_namespace, atomic=atomic) + elif request_type == "Delete": + try: + helm('uninstall', release, namespace=namespace, wait=wait, timeout=timeout) + except Exception as e: + logger.info("delete error: %s" % e) + + +def get_oci_cmd(repository, version): + # Generates OCI command based on pattern. Public ECR vs Private ECR are treated differently. + private_ecr_pattern = 'oci://(?P\d+\.dkr\.ecr\.(?P[a-z0-9\-]+)\.(?P[a-z0-9\.-]+))*' + public_ecr_pattern = 'oci://(?Ppublic\.ecr\.aws)*' + + private_registry = re.match(private_ecr_pattern, repository).groupdict() + public_registry = re.match(public_ecr_pattern, repository).groupdict() + + # Build helm pull command as array + helm_cmd = ['helm', 'pull', repository, '--version', version , '--untar'] + + if private_registry['registry'] is not None: + logger.info("Found AWS private repository") + ecr_login = ['aws', 'ecr', 'get-login-password', '--region', private_registry['region']] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', private_registry['registry']] + return {'ecr_login': ecr_login, 'registry_login': helm_registry_login, 'helm': helm_cmd} + elif public_registry['registry'] is not None: + logger.info("Found AWS public repository, will use default region as deployment") + region = os.environ.get('AWS_REGION', 'us-east-1') + + if is_ecr_public_available(region): + # Public ECR auth is always in us-east-1: https://docs.aws.amazon.com/AmazonECR/latest/public/public-registry-auth.html + ecr_login = ['aws', 'ecr-public', 'get-login-password', '--region', 'us-east-1'] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', public_registry['registry']] + return {'ecr_login': ecr_login, 'helm_registry_login': helm_registry_login, 'helm': helm_cmd} + else: + # No login required for public ECR in non-aws regions + # see https://helm.sh/docs/helm/helm_registry_login/ + return {'helm': helm_cmd} + else: + logger.error("OCI repository format not recognized, falling back to helm pull") + return {'helm': helm_cmd} + + +def get_chart_from_oci(tmpdir, repository=None, version=None): + from subprocess import Popen, PIPE + + commands = get_oci_cmd(repository, version) + + maxAttempts = 3 + retry = maxAttempts + while retry > 0: + try: + # Execute login commands if needed + if 'ecr_login' in commands and 'helm_registry_login' in commands: + logger.info("Running login command: %s", commands['ecr_login']) + logger.info("Running registry login command: %s", commands['helm_registry_login']) + + # Start first process: aws ecr get-login-password + # NOTE: We do NOT call p1.wait() here before starting p2. + # Doing so could deadlock if p1's output fills the pipe buffer + # before p2 starts reading. Instead, start p2 immediately so it + # can consume p1's stdout as it's produced. + p1 = Popen(commands['ecr_login'], stdout=PIPE, stderr=PIPE, cwd=tmpdir) + + # Start second process: helm registry login + p2 = Popen(commands['helm_registry_login'], stdin=p1.stdout, stdout=PIPE, stderr=PIPE, cwd=tmpdir) + p1.stdout.close() # Allow p1 to receive SIGPIPE if p2 exits early + + # Wait for p2 to finish first (ensures full pipeline completes) + _, p2_err = p2.communicate() + + # Now wait for p1 so we have a complete stderr and an exit code + p1.wait() + + # Handle p1 failure + if p1.returncode != 0: + p1_err = p1.stderr.read().decode('utf-8', errors='replace') if p1.stderr else '' + logger.error( + "ECR get-login-password failed for repository %s. Error: %s", + repository, + p1_err or "No error details" + ) + raise subprocess.CalledProcessError(p1.returncode, commands['ecr_login'], p1_err.encode()) + + # Handle p2 failure + if p2.returncode != 0: + logger.error( + "Helm registry authentication failed for repository %s. Error: %s", + repository, + p2_err.decode('utf-8', errors='replace') or "No error details" + ) + raise subprocess.CalledProcessError(p2.returncode, commands['helm_registry_login'], p2_err) + + # Execute helm pull command + logger.info("Running helm command: %s", commands['helm']) + output = subprocess.check_output(commands['helm'], stderr=subprocess.STDOUT, cwd=tmpdir) + logger.info(output) + + # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. + # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service + return os.path.join(tmpdir, repository.rpartition('/')[-1]) + + except subprocess.CalledProcessError as exc: + output = exc.output + if b'Broken pipe' in output: + retry = retry - 1 + logger.info("Broken pipe, retries left: %s" % retry) + else: + raise Exception(output) + + raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') + + +def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): + cmnd = ['helm', verb, release] + if not chart is None: + cmnd.append(chart) + if verb == 'upgrade': + cmnd.append('--install') + if create_namespace: + cmnd.append('--create-namespace') + if not repo is None: + cmnd.extend(['--repo', repo]) + if not file is None: + cmnd.extend(['--values', file]) + if not version is None: + cmnd.extend(['--version', version]) + if not namespace is None: + cmnd.extend(['--namespace', namespace]) + if wait: + cmnd.append('--wait') + if skip_crds: + cmnd.append('--skip-crds') + if not timeout is None: + cmnd.extend(['--timeout', timeout]) + if atomic: + cmnd.append('--atomic') + cmnd.extend(['--kubeconfig', kubeconfig]) + + # Log the full helm command for better troubleshooting + logger.info("Running command: %s", cmnd) + + maxAttempts = 3 + retry = maxAttempts + while retry > 0: + try: + output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=outdir) + logger.info(output.decode('utf-8', errors='replace')) + return + except subprocess.CalledProcessError as exc: + output = exc.output + if b'Broken pipe' in output: + retry = retry - 1 + logger.info("Broken pipe, retries left: %s" % retry) + else: + error_message = output.decode('utf-8', errors='replace') + logger.error("Command failed: %s", cmnd) + logger.error("Error output: %s", error_message) + raise Exception(output) + raise Exception(f'Operation failed after {maxAttempts} attempts: {output.decode("utf-8", errors="replace")}') diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/manifest.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/manifest.json index d33698bfe4755..2686cfe9358a6 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "artifacts": { "EKSStandardAccessEntry.assets": { "type": "cdk:asset-manifest", @@ -18,7 +18,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/3fc468d134de9a13e565c8f2f8fd664ee210fd787073a3957c3b7b9badc4a93b.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/4d880a0f5ce8a332b5c55871420b549d40425bb700c513dbf473ae04aaa8cbd3.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -569,7 +569,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -1187,6 +1187,7 @@ "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." }, "@aws-cdk/core:explicitStackTags": { + "userValue": true, "recommendedValue": true, "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." }, @@ -1339,5 +1340,5 @@ } } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1023.0" } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/tree.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/tree.json index ef45161e21908..5ade763d2129d 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/tree.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-standard-access-entry.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"EKSStandardAccessEntry":{"id":"EKSStandardAccessEntry","path":"EKSStandardAccessEntry","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"Vpc":{"id":"Vpc","path":"EKSStandardAccessEntry/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"maxAzs":"*","natGateways":"*","restrictDefaultSecurityGroup":false}]},"children":{"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"EKSStandardAccessEntry/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"EKSStandardAccessEntry/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"EKSStandardAccessEntry/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EKSStandardAccessEntry/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"EKSStandardAccessEntry/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"EKSStandardAccessEntry/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EKSStandardAccessEntry/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"EKSStandardAccessEntry/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"EKSStandardAccessEntry/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"EKSStandardAccessEntry/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EKSStandardAccessEntry/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"EKSStandardAccessEntry/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EKSStandardAccessEntry/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"EKSStandardAccessEntry/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"EKSStandardAccessEntry/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EKSStandardAccessEntry/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"EKSStandardAccessEntry/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"EKSStandardAccessEntry/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EKSStandardAccessEntry/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"EKSStandardAccessEntry/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"EKSStandardAccessEntry/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"EKSStandardAccessEntry/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"EKSStandardAccessEntry/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"EKSStandardAccessEntry/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"EKSStandardAccessEntry/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"EKSStandardAccessEntry/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"EKSStandardAccessEntry/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"EKSStandardAccessEntry/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"kubectlLayer":{"id":"kubectlLayer","path":"EKSStandardAccessEntry/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"EKSStandardAccessEntry/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"EKSStandardAccessEntry/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"EKSStandardAccessEntry/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"EKSStandardAccessEntry/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*"]},"children":{"Role":{"id":"Role","path":"EKSStandardAccessEntry/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"EKSStandardAccessEntry/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"EKSStandardAccessEntry/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":false},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":false}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":false}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"EKSStandardAccessEntry/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"EKSStandardAccessEntry/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"EKSStandardAccessEntry/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (EKSStandardAccessEntry/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole081AD342A","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"EKSStandardAccessEntry/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"EKSStandardAccessEntry/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"Role":{"id":"Role","path":"EKSStandardAccessEntry/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportRole":{"id":"ImportRole","path":"EKSStandardAccessEntry/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"AccessEntry":{"id":"AccessEntry","path":"EKSStandardAccessEntry/AccessEntry","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/AccessEntry/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["Role1ABCC5F0","Arn"]},"type":"STANDARD"}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"EKSStandardAccessEntry/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"EKSStandardAccessEntry/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-eks-standard-access-entry-integ":{"id":"aws-cdk-eks-standard-access-entry-integ","path":"aws-cdk-eks-standard-access-entry-integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-eks-standard-access-entry-integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-standard-access-entry-integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-eks-standard-access-entry-integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-standard-access-entry-integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-standard-access-entry-integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"EKSStandardAccessEntry":{"id":"EKSStandardAccessEntry","path":"EKSStandardAccessEntry","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"Vpc":{"id":"Vpc","path":"EKSStandardAccessEntry/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"maxAzs":"*","natGateways":"*","restrictDefaultSecurityGroup":false}]},"children":{"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"EKSStandardAccessEntry/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"EKSStandardAccessEntry/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"EKSStandardAccessEntry/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EKSStandardAccessEntry/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"EKSStandardAccessEntry/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"EKSStandardAccessEntry/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EKSStandardAccessEntry/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"EKSStandardAccessEntry/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"EKSStandardAccessEntry/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"EKSStandardAccessEntry/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EKSStandardAccessEntry/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"EKSStandardAccessEntry/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EKSStandardAccessEntry/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"EKSStandardAccessEntry/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"EKSStandardAccessEntry/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EKSStandardAccessEntry/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"EKSStandardAccessEntry/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"EKSStandardAccessEntry/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"EKSStandardAccessEntry/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"EKSStandardAccessEntry/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"EKSStandardAccessEntry/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"EKSStandardAccessEntry/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"EKSStandardAccessEntry/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"EKSStandardAccessEntry/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"EKSStandardAccessEntry/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"EKSStandardAccessEntry/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"EKSStandardAccessEntry/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"EKSStandardAccessEntry/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"EKSStandardAccessEntry/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"kubectlLayer":{"id":"kubectlLayer","path":"EKSStandardAccessEntry/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"EKSStandardAccessEntry/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"EKSStandardAccessEntry/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"EKSStandardAccessEntry/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"EKSStandardAccessEntry/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*"]},"children":{"Role":{"id":"Role","path":"EKSStandardAccessEntry/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"EKSStandardAccessEntry/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"EKSStandardAccessEntry/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":false},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":false}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":false}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"EKSStandardAccessEntry/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"EKSStandardAccessEntry/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"EKSStandardAccessEntry/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (EKSStandardAccessEntry/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole081AD342A","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"EKSStandardAccessEntry/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"EKSStandardAccessEntry/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"Role":{"id":"Role","path":"EKSStandardAccessEntry/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportRole":{"id":"ImportRole","path":"EKSStandardAccessEntry/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"}}}}}},"AccessEntry":{"id":"AccessEntry","path":"EKSStandardAccessEntry/AccessEntry","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"EKSStandardAccessEntry/AccessEntry/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["Role1ABCC5F0","Arn"]},"type":"STANDARD"}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"EKSStandardAccessEntry/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"EKSStandardAccessEntry/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-eks-standard-access-entry-integ":{"id":"aws-cdk-eks-standard-access-entry-integ","path":"aws-cdk-eks-standard-access-entry-integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-eks-standard-access-entry-integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-standard-access-entry-integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-eks-standard-access-entry-integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-standard-access-entry-integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-standard-access-entry-integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py deleted file mode 100644 index 00d794acd0c73..0000000000000 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py +++ /dev/null @@ -1,207 +0,0 @@ -import json -import logging -import os -import re -import subprocess -import shutil -import tempfile -import zipfile -import boto3 - -logger = logging.getLogger() -logger.setLevel(logging.INFO) - -# these are coming from the kubectl layer -os.environ['PATH'] = '/opt/helm:/opt/awscli:' + os.environ['PATH'] - -outdir = os.environ.get('TEST_OUTDIR', '/tmp') -kubeconfig = os.path.join(outdir, 'kubeconfig') - -def get_chart_asset_from_url(chart_asset_url): - chart_zip = os.path.join(outdir, 'chart.zip') - shutil.rmtree(chart_zip, ignore_errors=True) - subprocess.check_call(['aws', 's3', 'cp', chart_asset_url, chart_zip]) - chart_dir = os.path.join(outdir, 'chart') - shutil.rmtree(chart_dir, ignore_errors=True) - os.mkdir(chart_dir) - with zipfile.ZipFile(chart_zip, 'r') as zip_ref: - zip_ref.extractall(chart_dir) - return chart_dir - -def is_ecr_public_available(region): - s = boto3.Session() - return s.get_partition_for_region(region) == 'aws' - -def helm_handler(event, context): - logger.info(json.dumps(dict(event, ResponseURL='...'))) - - request_type = event['RequestType'] - props = event['ResourceProperties'] - - # resource properties - cluster_name = props['ClusterName'] - release = props['Release'] - chart = props.get('Chart', None) - chart_asset_url = props.get('ChartAssetURL', None) - version = props.get('Version', None) - wait = props.get('Wait', False) - atomic = props.get('Atomic', False) - timeout = props.get('Timeout', None) - namespace = props.get('Namespace', None) - create_namespace = props.get('CreateNamespace', None) - repository = props.get('Repository', None) - values_text = props.get('Values', None) - skip_crds = props.get('SkipCrds', False) - - # "log in" to the cluster - subprocess.check_call([ 'aws', 'eks', 'update-kubeconfig', - '--name', cluster_name, - '--kubeconfig', kubeconfig - ]) - - if os.path.isfile(kubeconfig): - os.chmod(kubeconfig, 0o600) - - # Write out the values to a file and include them with the install and upgrade - values_file = None - if not request_type == "Delete" and not values_text is None: - values = json.loads(values_text) - values_file = os.path.join(outdir, 'values.yaml') - with open(values_file, "w") as f: - f.write(json.dumps(values, indent=2)) - - if request_type == 'Create' or request_type == 'Update': - # Ensure chart or chart_asset_url are set - if chart == None and chart_asset_url == None: - raise RuntimeError(f'chart or chartAsset must be specified') - - if chart_asset_url != None: - assert(chart==None) - assert(repository==None) - assert(version==None) - if not chart_asset_url.startswith('s3://'): - raise RuntimeError(f'ChartAssetURL must point to as s3 location but is {chart_asset_url}') - # future work: support versions from s3 assets - chart = get_chart_asset_from_url(chart_asset_url) - - if repository is not None and repository.startswith('oci://'): - tmpdir = tempfile.TemporaryDirectory() - chart_dir = get_chart_from_oci(tmpdir.name, repository, version) - chart = chart_dir - - helm('upgrade', release, chart, repository, values_file, namespace, version, wait, timeout, create_namespace, atomic=atomic) - elif request_type == "Delete": - try: - helm('uninstall', release, namespace=namespace, wait=wait, timeout=timeout) - except Exception as e: - logger.info("delete error: %s" % e) - - -def get_oci_cmd(repository, version): - # Generates OCI command based on pattern. Public ECR vs Private ECR are treated differently. - private_ecr_pattern = 'oci://(?P\d+\.dkr\.ecr\.(?P[a-z0-9\-]+)\.(?P[a-z0-9\.-]+))*' - public_ecr_pattern = 'oci://(?Ppublic\.ecr\.aws)*' - - private_registry = re.match(private_ecr_pattern, repository).groupdict() - public_registry = re.match(public_ecr_pattern, repository).groupdict() - - if private_registry['registry'] is not None: - logger.info("Found AWS private repository") - cmnd = [ - f"aws ecr get-login-password --region {private_registry['region']} | " \ - f"helm registry login --username AWS --password-stdin {private_registry['registry']}; helm pull {repository} --version {version} --untar" - ] - elif public_registry['registry'] is not None: - logger.info("Found AWS public repository, will use default region as deployment") - region = os.environ.get('AWS_REGION', 'us-east-1') - - if is_ecr_public_available(region): - cmnd = [ - f"aws ecr-public get-login-password --region us-east-1 | " \ - f"helm registry login --username AWS --password-stdin {public_registry['registry']}; helm pull {repository} --version {version} --untar" - ] - else: - # `aws ecr-public get-login-password` and `helm registry login` not required as ecr public is not available in current region - # see https://helm.sh/docs/helm/helm_registry_login/ - cmnd = [f"helm pull {repository} --version {version} --untar"] - else: - logger.error("OCI repository format not recognized, falling back to helm pull") - cmnd = [f"helm pull {repository} --version {version} --untar"] - - return cmnd - - -def get_chart_from_oci(tmpdir, repository = None, version = None): - - cmnd = get_oci_cmd(repository, version) - - maxAttempts = 3 - retry = maxAttempts - while retry > 0: - try: - logger.info(cmnd) - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=tmpdir, shell=True) - logger.info(output) - - # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. - # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service - return os.path.join(tmpdir, repository.rpartition('/')[-1]) - except subprocess.CalledProcessError as exc: - output = exc.output - if b'Broken pipe' in output: - retry = retry - 1 - logger.info("Broken pipe, retries left: %s" % retry) - else: - raise Exception(output) - raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') - - -def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): - import subprocess - - cmnd = ['helm', verb, release] - if not chart is None: - cmnd.append(chart) - if verb == 'upgrade': - cmnd.append('--install') - if create_namespace: - cmnd.append('--create-namespace') - if not repo is None: - cmnd.extend(['--repo', repo]) - if not file is None: - cmnd.extend(['--values', file]) - if not version is None: - cmnd.extend(['--version', version]) - if not namespace is None: - cmnd.extend(['--namespace', namespace]) - if wait: - cmnd.append('--wait') - if skip_crds: - cmnd.append('--skip-crds') - if not timeout is None: - cmnd.extend(['--timeout', timeout]) - if atomic: - cmnd.append('--atomic') - cmnd.extend(['--kubeconfig', kubeconfig]) - - # Log the full helm command for better troubleshooting - logger.info("Running command: %s", cmnd) - - maxAttempts = 3 - retry = maxAttempts - while retry > 0: - try: - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=outdir) - logger.info(output.decode('utf-8', errors='replace')) - return - except subprocess.CalledProcessError as exc: - output = exc.output - if b'Broken pipe' in output: - retry = retry - 1 - logger.info("Broken pipe, retries left: %s" % retry) - else: - error_message = output.decode('utf-8', errors='replace') - logger.error("Command failed: %s", cmnd) - logger.error("Error output: %s", error_message) - raise Exception(output) - raise Exception(f'Operation failed after {maxAttempts} attempts: {output.decode("utf-8", errors="replace")}') diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py new file mode 100644 index 0000000000000..6c7838f182a45 --- /dev/null +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py @@ -0,0 +1,250 @@ +import json +import logging +import os +import re +import subprocess +import shutil +import tempfile +import zipfile +import boto3 + +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +# these are coming from the kubectl layer +os.environ['PATH'] = '/opt/helm:/opt/awscli:' + os.environ['PATH'] + +outdir = os.environ.get('TEST_OUTDIR', '/tmp') +kubeconfig = os.path.join(outdir, 'kubeconfig') + +def get_chart_asset_from_url(chart_asset_url): + chart_zip = os.path.join(outdir, 'chart.zip') + shutil.rmtree(chart_zip, ignore_errors=True) + subprocess.check_call(['aws', 's3', 'cp', chart_asset_url, chart_zip]) + chart_dir = os.path.join(outdir, 'chart') + shutil.rmtree(chart_dir, ignore_errors=True) + os.mkdir(chart_dir) + with zipfile.ZipFile(chart_zip, 'r') as zip_ref: + zip_ref.extractall(chart_dir) + return chart_dir + +def is_ecr_public_available(region): + s = boto3.Session() + return s.get_partition_for_region(region) == 'aws' + +def helm_handler(event, context): + logger.info(json.dumps(dict(event, ResponseURL='...'))) + + request_type = event['RequestType'] + props = event['ResourceProperties'] + + # resource properties + cluster_name = props['ClusterName'] + release = props['Release'] + chart = props.get('Chart', None) + chart_asset_url = props.get('ChartAssetURL', None) + version = props.get('Version', None) + wait = props.get('Wait', False) + atomic = props.get('Atomic', False) + timeout = props.get('Timeout', None) + namespace = props.get('Namespace', None) + create_namespace = props.get('CreateNamespace', None) + repository = props.get('Repository', None) + values_text = props.get('Values', None) + skip_crds = props.get('SkipCrds', False) + + # "log in" to the cluster + subprocess.check_call([ 'aws', 'eks', 'update-kubeconfig', + '--name', cluster_name, + '--kubeconfig', kubeconfig + ]) + + if os.path.isfile(kubeconfig): + os.chmod(kubeconfig, 0o600) + + # Write out the values to a file and include them with the install and upgrade + values_file = None + if not request_type == "Delete" and not values_text is None: + values = json.loads(values_text) + values_file = os.path.join(outdir, 'values.yaml') + with open(values_file, "w") as f: + f.write(json.dumps(values, indent=2)) + + if request_type == 'Create' or request_type == 'Update': + # Ensure chart or chart_asset_url are set + if chart == None and chart_asset_url == None: + raise RuntimeError(f'chart or chartAsset must be specified') + + if chart_asset_url != None: + assert(chart==None) + assert(repository==None) + assert(version==None) + if not chart_asset_url.startswith('s3://'): + raise RuntimeError(f'ChartAssetURL must point to as s3 location but is {chart_asset_url}') + # future work: support versions from s3 assets + chart = get_chart_asset_from_url(chart_asset_url) + + if repository is not None and repository.startswith('oci://'): + tmpdir = tempfile.TemporaryDirectory() + chart_dir = get_chart_from_oci(tmpdir.name, repository, version) + chart = chart_dir + + helm('upgrade', release, chart, repository, values_file, namespace, version, wait, timeout, create_namespace, atomic=atomic) + elif request_type == "Delete": + try: + helm('uninstall', release, namespace=namespace, wait=wait, timeout=timeout) + except Exception as e: + logger.info("delete error: %s" % e) + + +def get_oci_cmd(repository, version): + # Generates OCI command based on pattern. Public ECR vs Private ECR are treated differently. + private_ecr_pattern = 'oci://(?P\d+\.dkr\.ecr\.(?P[a-z0-9\-]+)\.(?P[a-z0-9\.-]+))*' + public_ecr_pattern = 'oci://(?Ppublic\.ecr\.aws)*' + + private_registry = re.match(private_ecr_pattern, repository).groupdict() + public_registry = re.match(public_ecr_pattern, repository).groupdict() + + # Build helm pull command as array + helm_cmd = ['helm', 'pull', repository, '--version', version , '--untar'] + + if private_registry['registry'] is not None: + logger.info("Found AWS private repository") + ecr_login = ['aws', 'ecr', 'get-login-password', '--region', private_registry['region']] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', private_registry['registry']] + return {'ecr_login': ecr_login, 'registry_login': helm_registry_login, 'helm': helm_cmd} + elif public_registry['registry'] is not None: + logger.info("Found AWS public repository, will use default region as deployment") + region = os.environ.get('AWS_REGION', 'us-east-1') + + if is_ecr_public_available(region): + # Public ECR auth is always in us-east-1: https://docs.aws.amazon.com/AmazonECR/latest/public/public-registry-auth.html + ecr_login = ['aws', 'ecr-public', 'get-login-password', '--region', 'us-east-1'] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', public_registry['registry']] + return {'ecr_login': ecr_login, 'helm_registry_login': helm_registry_login, 'helm': helm_cmd} + else: + # No login required for public ECR in non-aws regions + # see https://helm.sh/docs/helm/helm_registry_login/ + return {'helm': helm_cmd} + else: + logger.error("OCI repository format not recognized, falling back to helm pull") + return {'helm': helm_cmd} + + +def get_chart_from_oci(tmpdir, repository=None, version=None): + from subprocess import Popen, PIPE + + commands = get_oci_cmd(repository, version) + + maxAttempts = 3 + retry = maxAttempts + while retry > 0: + try: + # Execute login commands if needed + if 'ecr_login' in commands and 'helm_registry_login' in commands: + logger.info("Running login command: %s", commands['ecr_login']) + logger.info("Running registry login command: %s", commands['helm_registry_login']) + + # Start first process: aws ecr get-login-password + # NOTE: We do NOT call p1.wait() here before starting p2. + # Doing so could deadlock if p1's output fills the pipe buffer + # before p2 starts reading. Instead, start p2 immediately so it + # can consume p1's stdout as it's produced. + p1 = Popen(commands['ecr_login'], stdout=PIPE, stderr=PIPE, cwd=tmpdir) + + # Start second process: helm registry login + p2 = Popen(commands['helm_registry_login'], stdin=p1.stdout, stdout=PIPE, stderr=PIPE, cwd=tmpdir) + p1.stdout.close() # Allow p1 to receive SIGPIPE if p2 exits early + + # Wait for p2 to finish first (ensures full pipeline completes) + _, p2_err = p2.communicate() + + # Now wait for p1 so we have a complete stderr and an exit code + p1.wait() + + # Handle p1 failure + if p1.returncode != 0: + p1_err = p1.stderr.read().decode('utf-8', errors='replace') if p1.stderr else '' + logger.error( + "ECR get-login-password failed for repository %s. Error: %s", + repository, + p1_err or "No error details" + ) + raise subprocess.CalledProcessError(p1.returncode, commands['ecr_login'], p1_err.encode()) + + # Handle p2 failure + if p2.returncode != 0: + logger.error( + "Helm registry authentication failed for repository %s. Error: %s", + repository, + p2_err.decode('utf-8', errors='replace') or "No error details" + ) + raise subprocess.CalledProcessError(p2.returncode, commands['helm_registry_login'], p2_err) + + # Execute helm pull command + logger.info("Running helm command: %s", commands['helm']) + output = subprocess.check_output(commands['helm'], stderr=subprocess.STDOUT, cwd=tmpdir) + logger.info(output) + + # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. + # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service + return os.path.join(tmpdir, repository.rpartition('/')[-1]) + + except subprocess.CalledProcessError as exc: + output = exc.output + if b'Broken pipe' in output: + retry = retry - 1 + logger.info("Broken pipe, retries left: %s" % retry) + else: + raise Exception(output) + + raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') + + +def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): + cmnd = ['helm', verb, release] + if not chart is None: + cmnd.append(chart) + if verb == 'upgrade': + cmnd.append('--install') + if create_namespace: + cmnd.append('--create-namespace') + if not repo is None: + cmnd.extend(['--repo', repo]) + if not file is None: + cmnd.extend(['--values', file]) + if not version is None: + cmnd.extend(['--version', version]) + if not namespace is None: + cmnd.extend(['--namespace', namespace]) + if wait: + cmnd.append('--wait') + if skip_crds: + cmnd.append('--skip-crds') + if not timeout is None: + cmnd.extend(['--timeout', timeout]) + if atomic: + cmnd.append('--atomic') + cmnd.extend(['--kubeconfig', kubeconfig]) + + # Log the full helm command for better troubleshooting + logger.info("Running command: %s", cmnd) + + maxAttempts = 3 + retry = maxAttempts + while retry > 0: + try: + output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=outdir) + logger.info(output.decode('utf-8', errors='replace')) + return + except subprocess.CalledProcessError as exc: + output = exc.output + if b'Broken pipe' in output: + retry = retry - 1 + logger.info("Broken pipe, retries left: %s" % retry) + else: + error_message = output.decode('utf-8', errors='replace') + logger.error("Command failed: %s", cmnd) + logger.error("Error output: %s", error_message) + raise Exception(output) + raise Exception(f'Operation failed after {maxAttempts} attempts: {output.decode("utf-8", errors="replace")}') diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/aws-cdk-eks-cluster-stack.assets.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/aws-cdk-eks-cluster-stack.assets.json index 0992c0eea5f5b..ec328c35d5dbd 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/aws-cdk-eks-cluster-stack.assets.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/aws-cdk-eks-cluster-stack.assets.json @@ -29,16 +29,16 @@ } } }, - "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069": { + "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a": { "displayName": "Cluster/KubectlProvider/Handler/Code", "source": { - "path": "asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069", + "path": "asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a", "packaging": "zip" }, "destinations": { - "current_account-current_region-0ee668da": { + "current_account-current_region-5b09798b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip", + "objectKey": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -71,16 +71,16 @@ } } }, - "20ef5419d6e7dcc5b629c7ea45b4be37e69e8911c0a268218597ad0468d2713d": { + "8e332cfa9ddbb01627f4e272a4fad4c59b9d5647c6eb50d35d47ea41e65169e4": { "displayName": "aws-cdk-eks-cluster-stack Template", "source": { "path": "aws-cdk-eks-cluster-stack.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-94d42f9d": { + "current_account-current_region-693e01b0": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "20ef5419d6e7dcc5b629c7ea45b4be37e69e8911c0a268218597ad0468d2713d.json", + "objectKey": "8e332cfa9ddbb01627f4e272a4fad4c59b9d5647c6eb50d35d47ea41e65169e4.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/aws-cdk-eks-cluster-stack.template.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/aws-cdk-eks-cluster-stack.template.json index 33ac091225ec8..e61963f82c11a 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/aws-cdk-eks-cluster-stack.template.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/aws-cdk-eks-cluster-stack.template.json @@ -734,7 +734,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip" + "S3Key": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip" }, "Description": "onEvent handler for EKS kubectl resource provider", "Environment": { diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/manifest.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/manifest.json index 79f45cae44796..580fed8089eaa 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "artifacts": { "aws-cdk-eks-cluster-stack.assets": { "type": "cdk:asset-manifest", @@ -18,7 +18,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/20ef5419d6e7dcc5b629c7ea45b4be37e69e8911c0a268218597ad0468d2713d.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/8e332cfa9ddbb01627f4e272a4fad4c59b9d5647c6eb50d35d47ea41e65169e4.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -583,7 +583,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -1170,6 +1170,7 @@ "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." }, "@aws-cdk/core:explicitStackTags": { + "userValue": true, "recommendedValue": true, "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." }, @@ -1322,5 +1323,5 @@ } } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1023.0" } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/tree.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/tree.json index b329e0ef6832b..68fd529597272 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/tree.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-subnet-updates.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"aws-cdk-eks-cluster-stack":{"id":"aws-cdk-eks-cluster-stack","path":"aws-cdk-eks-cluster-stack","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"Vpc":{"id":"Vpc","path":"aws-cdk-eks-cluster-stack/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"natGateways":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"aws-cdk-eks-cluster-stack/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"aws-cdk-eks-cluster-stack/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"aws-cdk-eks-cluster-stack/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-stack/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"aws-cdk-eks-cluster-stack/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"aws-cdk-eks-cluster-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-cluster-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"kubectlLayer":{"id":"kubectlLayer","path":"aws-cdk-eks-cluster-stack/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-stack/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-stack/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-stack/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"aws-cdk-eks-cluster-stack/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*"]},"children":{"Role":{"id":"Role","path":"aws-cdk-eks-cluster-stack/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-cluster-stack/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"aws-cdk-eks-cluster-stack/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":false},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":false}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":false}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"aws-cdk-eks-cluster-stack/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":"*","vpcSubnets":"*"},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"SecurityGroup":{"id":"SecurityGroup","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/SecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*","allowAllOutbound":"*","allowAllIpv6Outbound":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/SecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"Automatic security group for Lambda Function awscdkeksclusterstackClusterKubectlProviderframeworkonEventC550C962","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventSecurityGroupE2538617","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole081AD342A","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"aws-cdk-eks-cluster-stack/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-stack/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-stack/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-eks-cluster":{"id":"aws-cdk-eks-cluster","path":"aws-cdk-eks-cluster","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-eks-cluster/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-eks-cluster/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"aws-cdk-eks-cluster-stack":{"id":"aws-cdk-eks-cluster-stack","path":"aws-cdk-eks-cluster-stack","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"Vpc":{"id":"Vpc","path":"aws-cdk-eks-cluster-stack/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"natGateways":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-stack/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-stack/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"aws-cdk-eks-cluster-stack/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"aws-cdk-eks-cluster-stack/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"aws-cdk-eks-cluster-stack/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"aws-cdk-eks-cluster-stack/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-stack/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"aws-cdk-eks-cluster-stack/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"aws-cdk-eks-cluster-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-cluster-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"kubectlLayer":{"id":"kubectlLayer","path":"aws-cdk-eks-cluster-stack/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-stack/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-stack/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-stack/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"aws-cdk-eks-cluster-stack/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*"]},"children":{"Role":{"id":"Role","path":"aws-cdk-eks-cluster-stack/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-cluster-stack/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"aws-cdk-eks-cluster-stack/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":false},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":false}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":false}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"aws-cdk-eks-cluster-stack/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":"*","vpcSubnets":"*"},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"SecurityGroup":{"id":"SecurityGroup","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/SecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*","allowAllOutbound":"*","allowAllIpv6Outbound":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/SecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"Automatic security group for Lambda Function awscdkeksclusterstackClusterKubectlProviderframeworkonEventC550C962","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventSecurityGroupE2538617","GroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole081AD342A","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"aws-cdk-eks-cluster-stack/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-stack/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-stack/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-stack/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-eks-cluster":{"id":"aws-cdk-eks-cluster","path":"aws-cdk-eks-cluster","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-eks-cluster/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-eks-cluster/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py deleted file mode 100644 index 00d794acd0c73..0000000000000 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py +++ /dev/null @@ -1,207 +0,0 @@ -import json -import logging -import os -import re -import subprocess -import shutil -import tempfile -import zipfile -import boto3 - -logger = logging.getLogger() -logger.setLevel(logging.INFO) - -# these are coming from the kubectl layer -os.environ['PATH'] = '/opt/helm:/opt/awscli:' + os.environ['PATH'] - -outdir = os.environ.get('TEST_OUTDIR', '/tmp') -kubeconfig = os.path.join(outdir, 'kubeconfig') - -def get_chart_asset_from_url(chart_asset_url): - chart_zip = os.path.join(outdir, 'chart.zip') - shutil.rmtree(chart_zip, ignore_errors=True) - subprocess.check_call(['aws', 's3', 'cp', chart_asset_url, chart_zip]) - chart_dir = os.path.join(outdir, 'chart') - shutil.rmtree(chart_dir, ignore_errors=True) - os.mkdir(chart_dir) - with zipfile.ZipFile(chart_zip, 'r') as zip_ref: - zip_ref.extractall(chart_dir) - return chart_dir - -def is_ecr_public_available(region): - s = boto3.Session() - return s.get_partition_for_region(region) == 'aws' - -def helm_handler(event, context): - logger.info(json.dumps(dict(event, ResponseURL='...'))) - - request_type = event['RequestType'] - props = event['ResourceProperties'] - - # resource properties - cluster_name = props['ClusterName'] - release = props['Release'] - chart = props.get('Chart', None) - chart_asset_url = props.get('ChartAssetURL', None) - version = props.get('Version', None) - wait = props.get('Wait', False) - atomic = props.get('Atomic', False) - timeout = props.get('Timeout', None) - namespace = props.get('Namespace', None) - create_namespace = props.get('CreateNamespace', None) - repository = props.get('Repository', None) - values_text = props.get('Values', None) - skip_crds = props.get('SkipCrds', False) - - # "log in" to the cluster - subprocess.check_call([ 'aws', 'eks', 'update-kubeconfig', - '--name', cluster_name, - '--kubeconfig', kubeconfig - ]) - - if os.path.isfile(kubeconfig): - os.chmod(kubeconfig, 0o600) - - # Write out the values to a file and include them with the install and upgrade - values_file = None - if not request_type == "Delete" and not values_text is None: - values = json.loads(values_text) - values_file = os.path.join(outdir, 'values.yaml') - with open(values_file, "w") as f: - f.write(json.dumps(values, indent=2)) - - if request_type == 'Create' or request_type == 'Update': - # Ensure chart or chart_asset_url are set - if chart == None and chart_asset_url == None: - raise RuntimeError(f'chart or chartAsset must be specified') - - if chart_asset_url != None: - assert(chart==None) - assert(repository==None) - assert(version==None) - if not chart_asset_url.startswith('s3://'): - raise RuntimeError(f'ChartAssetURL must point to as s3 location but is {chart_asset_url}') - # future work: support versions from s3 assets - chart = get_chart_asset_from_url(chart_asset_url) - - if repository is not None and repository.startswith('oci://'): - tmpdir = tempfile.TemporaryDirectory() - chart_dir = get_chart_from_oci(tmpdir.name, repository, version) - chart = chart_dir - - helm('upgrade', release, chart, repository, values_file, namespace, version, wait, timeout, create_namespace, atomic=atomic) - elif request_type == "Delete": - try: - helm('uninstall', release, namespace=namespace, wait=wait, timeout=timeout) - except Exception as e: - logger.info("delete error: %s" % e) - - -def get_oci_cmd(repository, version): - # Generates OCI command based on pattern. Public ECR vs Private ECR are treated differently. - private_ecr_pattern = 'oci://(?P\d+\.dkr\.ecr\.(?P[a-z0-9\-]+)\.(?P[a-z0-9\.-]+))*' - public_ecr_pattern = 'oci://(?Ppublic\.ecr\.aws)*' - - private_registry = re.match(private_ecr_pattern, repository).groupdict() - public_registry = re.match(public_ecr_pattern, repository).groupdict() - - if private_registry['registry'] is not None: - logger.info("Found AWS private repository") - cmnd = [ - f"aws ecr get-login-password --region {private_registry['region']} | " \ - f"helm registry login --username AWS --password-stdin {private_registry['registry']}; helm pull {repository} --version {version} --untar" - ] - elif public_registry['registry'] is not None: - logger.info("Found AWS public repository, will use default region as deployment") - region = os.environ.get('AWS_REGION', 'us-east-1') - - if is_ecr_public_available(region): - cmnd = [ - f"aws ecr-public get-login-password --region us-east-1 | " \ - f"helm registry login --username AWS --password-stdin {public_registry['registry']}; helm pull {repository} --version {version} --untar" - ] - else: - # `aws ecr-public get-login-password` and `helm registry login` not required as ecr public is not available in current region - # see https://helm.sh/docs/helm/helm_registry_login/ - cmnd = [f"helm pull {repository} --version {version} --untar"] - else: - logger.error("OCI repository format not recognized, falling back to helm pull") - cmnd = [f"helm pull {repository} --version {version} --untar"] - - return cmnd - - -def get_chart_from_oci(tmpdir, repository = None, version = None): - - cmnd = get_oci_cmd(repository, version) - - maxAttempts = 3 - retry = maxAttempts - while retry > 0: - try: - logger.info(cmnd) - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=tmpdir, shell=True) - logger.info(output) - - # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. - # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service - return os.path.join(tmpdir, repository.rpartition('/')[-1]) - except subprocess.CalledProcessError as exc: - output = exc.output - if b'Broken pipe' in output: - retry = retry - 1 - logger.info("Broken pipe, retries left: %s" % retry) - else: - raise Exception(output) - raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') - - -def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): - import subprocess - - cmnd = ['helm', verb, release] - if not chart is None: - cmnd.append(chart) - if verb == 'upgrade': - cmnd.append('--install') - if create_namespace: - cmnd.append('--create-namespace') - if not repo is None: - cmnd.extend(['--repo', repo]) - if not file is None: - cmnd.extend(['--values', file]) - if not version is None: - cmnd.extend(['--version', version]) - if not namespace is None: - cmnd.extend(['--namespace', namespace]) - if wait: - cmnd.append('--wait') - if skip_crds: - cmnd.append('--skip-crds') - if not timeout is None: - cmnd.extend(['--timeout', timeout]) - if atomic: - cmnd.append('--atomic') - cmnd.extend(['--kubeconfig', kubeconfig]) - - # Log the full helm command for better troubleshooting - logger.info("Running command: %s", cmnd) - - maxAttempts = 3 - retry = maxAttempts - while retry > 0: - try: - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=outdir) - logger.info(output.decode('utf-8', errors='replace')) - return - except subprocess.CalledProcessError as exc: - output = exc.output - if b'Broken pipe' in output: - retry = retry - 1 - logger.info("Broken pipe, retries left: %s" % retry) - else: - error_message = output.decode('utf-8', errors='replace') - logger.error("Command failed: %s", cmnd) - logger.error("Error output: %s", error_message) - raise Exception(output) - raise Exception(f'Operation failed after {maxAttempts} attempts: {output.decode("utf-8", errors="replace")}') diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py new file mode 100644 index 0000000000000..6c7838f182a45 --- /dev/null +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py @@ -0,0 +1,250 @@ +import json +import logging +import os +import re +import subprocess +import shutil +import tempfile +import zipfile +import boto3 + +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +# these are coming from the kubectl layer +os.environ['PATH'] = '/opt/helm:/opt/awscli:' + os.environ['PATH'] + +outdir = os.environ.get('TEST_OUTDIR', '/tmp') +kubeconfig = os.path.join(outdir, 'kubeconfig') + +def get_chart_asset_from_url(chart_asset_url): + chart_zip = os.path.join(outdir, 'chart.zip') + shutil.rmtree(chart_zip, ignore_errors=True) + subprocess.check_call(['aws', 's3', 'cp', chart_asset_url, chart_zip]) + chart_dir = os.path.join(outdir, 'chart') + shutil.rmtree(chart_dir, ignore_errors=True) + os.mkdir(chart_dir) + with zipfile.ZipFile(chart_zip, 'r') as zip_ref: + zip_ref.extractall(chart_dir) + return chart_dir + +def is_ecr_public_available(region): + s = boto3.Session() + return s.get_partition_for_region(region) == 'aws' + +def helm_handler(event, context): + logger.info(json.dumps(dict(event, ResponseURL='...'))) + + request_type = event['RequestType'] + props = event['ResourceProperties'] + + # resource properties + cluster_name = props['ClusterName'] + release = props['Release'] + chart = props.get('Chart', None) + chart_asset_url = props.get('ChartAssetURL', None) + version = props.get('Version', None) + wait = props.get('Wait', False) + atomic = props.get('Atomic', False) + timeout = props.get('Timeout', None) + namespace = props.get('Namespace', None) + create_namespace = props.get('CreateNamespace', None) + repository = props.get('Repository', None) + values_text = props.get('Values', None) + skip_crds = props.get('SkipCrds', False) + + # "log in" to the cluster + subprocess.check_call([ 'aws', 'eks', 'update-kubeconfig', + '--name', cluster_name, + '--kubeconfig', kubeconfig + ]) + + if os.path.isfile(kubeconfig): + os.chmod(kubeconfig, 0o600) + + # Write out the values to a file and include them with the install and upgrade + values_file = None + if not request_type == "Delete" and not values_text is None: + values = json.loads(values_text) + values_file = os.path.join(outdir, 'values.yaml') + with open(values_file, "w") as f: + f.write(json.dumps(values, indent=2)) + + if request_type == 'Create' or request_type == 'Update': + # Ensure chart or chart_asset_url are set + if chart == None and chart_asset_url == None: + raise RuntimeError(f'chart or chartAsset must be specified') + + if chart_asset_url != None: + assert(chart==None) + assert(repository==None) + assert(version==None) + if not chart_asset_url.startswith('s3://'): + raise RuntimeError(f'ChartAssetURL must point to as s3 location but is {chart_asset_url}') + # future work: support versions from s3 assets + chart = get_chart_asset_from_url(chart_asset_url) + + if repository is not None and repository.startswith('oci://'): + tmpdir = tempfile.TemporaryDirectory() + chart_dir = get_chart_from_oci(tmpdir.name, repository, version) + chart = chart_dir + + helm('upgrade', release, chart, repository, values_file, namespace, version, wait, timeout, create_namespace, atomic=atomic) + elif request_type == "Delete": + try: + helm('uninstall', release, namespace=namespace, wait=wait, timeout=timeout) + except Exception as e: + logger.info("delete error: %s" % e) + + +def get_oci_cmd(repository, version): + # Generates OCI command based on pattern. Public ECR vs Private ECR are treated differently. + private_ecr_pattern = 'oci://(?P\d+\.dkr\.ecr\.(?P[a-z0-9\-]+)\.(?P[a-z0-9\.-]+))*' + public_ecr_pattern = 'oci://(?Ppublic\.ecr\.aws)*' + + private_registry = re.match(private_ecr_pattern, repository).groupdict() + public_registry = re.match(public_ecr_pattern, repository).groupdict() + + # Build helm pull command as array + helm_cmd = ['helm', 'pull', repository, '--version', version , '--untar'] + + if private_registry['registry'] is not None: + logger.info("Found AWS private repository") + ecr_login = ['aws', 'ecr', 'get-login-password', '--region', private_registry['region']] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', private_registry['registry']] + return {'ecr_login': ecr_login, 'registry_login': helm_registry_login, 'helm': helm_cmd} + elif public_registry['registry'] is not None: + logger.info("Found AWS public repository, will use default region as deployment") + region = os.environ.get('AWS_REGION', 'us-east-1') + + if is_ecr_public_available(region): + # Public ECR auth is always in us-east-1: https://docs.aws.amazon.com/AmazonECR/latest/public/public-registry-auth.html + ecr_login = ['aws', 'ecr-public', 'get-login-password', '--region', 'us-east-1'] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', public_registry['registry']] + return {'ecr_login': ecr_login, 'helm_registry_login': helm_registry_login, 'helm': helm_cmd} + else: + # No login required for public ECR in non-aws regions + # see https://helm.sh/docs/helm/helm_registry_login/ + return {'helm': helm_cmd} + else: + logger.error("OCI repository format not recognized, falling back to helm pull") + return {'helm': helm_cmd} + + +def get_chart_from_oci(tmpdir, repository=None, version=None): + from subprocess import Popen, PIPE + + commands = get_oci_cmd(repository, version) + + maxAttempts = 3 + retry = maxAttempts + while retry > 0: + try: + # Execute login commands if needed + if 'ecr_login' in commands and 'helm_registry_login' in commands: + logger.info("Running login command: %s", commands['ecr_login']) + logger.info("Running registry login command: %s", commands['helm_registry_login']) + + # Start first process: aws ecr get-login-password + # NOTE: We do NOT call p1.wait() here before starting p2. + # Doing so could deadlock if p1's output fills the pipe buffer + # before p2 starts reading. Instead, start p2 immediately so it + # can consume p1's stdout as it's produced. + p1 = Popen(commands['ecr_login'], stdout=PIPE, stderr=PIPE, cwd=tmpdir) + + # Start second process: helm registry login + p2 = Popen(commands['helm_registry_login'], stdin=p1.stdout, stdout=PIPE, stderr=PIPE, cwd=tmpdir) + p1.stdout.close() # Allow p1 to receive SIGPIPE if p2 exits early + + # Wait for p2 to finish first (ensures full pipeline completes) + _, p2_err = p2.communicate() + + # Now wait for p1 so we have a complete stderr and an exit code + p1.wait() + + # Handle p1 failure + if p1.returncode != 0: + p1_err = p1.stderr.read().decode('utf-8', errors='replace') if p1.stderr else '' + logger.error( + "ECR get-login-password failed for repository %s. Error: %s", + repository, + p1_err or "No error details" + ) + raise subprocess.CalledProcessError(p1.returncode, commands['ecr_login'], p1_err.encode()) + + # Handle p2 failure + if p2.returncode != 0: + logger.error( + "Helm registry authentication failed for repository %s. Error: %s", + repository, + p2_err.decode('utf-8', errors='replace') or "No error details" + ) + raise subprocess.CalledProcessError(p2.returncode, commands['helm_registry_login'], p2_err) + + # Execute helm pull command + logger.info("Running helm command: %s", commands['helm']) + output = subprocess.check_output(commands['helm'], stderr=subprocess.STDOUT, cwd=tmpdir) + logger.info(output) + + # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. + # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service + return os.path.join(tmpdir, repository.rpartition('/')[-1]) + + except subprocess.CalledProcessError as exc: + output = exc.output + if b'Broken pipe' in output: + retry = retry - 1 + logger.info("Broken pipe, retries left: %s" % retry) + else: + raise Exception(output) + + raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') + + +def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): + cmnd = ['helm', verb, release] + if not chart is None: + cmnd.append(chart) + if verb == 'upgrade': + cmnd.append('--install') + if create_namespace: + cmnd.append('--create-namespace') + if not repo is None: + cmnd.extend(['--repo', repo]) + if not file is None: + cmnd.extend(['--values', file]) + if not version is None: + cmnd.extend(['--version', version]) + if not namespace is None: + cmnd.extend(['--namespace', namespace]) + if wait: + cmnd.append('--wait') + if skip_crds: + cmnd.append('--skip-crds') + if not timeout is None: + cmnd.extend(['--timeout', timeout]) + if atomic: + cmnd.append('--atomic') + cmnd.extend(['--kubeconfig', kubeconfig]) + + # Log the full helm command for better troubleshooting + logger.info("Running command: %s", cmnd) + + maxAttempts = 3 + retry = maxAttempts + while retry > 0: + try: + output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=outdir) + logger.info(output.decode('utf-8', errors='replace')) + return + except subprocess.CalledProcessError as exc: + output = exc.output + if b'Broken pipe' in output: + retry = retry - 1 + logger.info("Broken pipe, retries left: %s" % retry) + else: + error_message = output.decode('utf-8', errors='replace') + logger.error("Command failed: %s", cmnd) + logger.error("Error output: %s", error_message) + raise Exception(output) + raise Exception(f'Operation failed after {maxAttempts} attempts: {output.decode("utf-8", errors="replace")}') diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/aws-cdk-eks-cluster-windows-ng-test.assets.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/aws-cdk-eks-cluster-windows-ng-test.assets.json index 1179f184ba915..98ca08e26083e 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/aws-cdk-eks-cluster-windows-ng-test.assets.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/aws-cdk-eks-cluster-windows-ng-test.assets.json @@ -29,16 +29,16 @@ } } }, - "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069": { + "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a": { "displayName": "Cluster/KubectlProvider/Handler/Code", "source": { - "path": "asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069", + "path": "asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a", "packaging": "zip" }, "destinations": { - "current_account-current_region-0ee668da": { + "current_account-current_region-5b09798b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip", + "objectKey": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -71,16 +71,16 @@ } } }, - "91e1f928f6e28dfe8d82396263032b05da98fc9cb866599429de1d260216e94b": { + "9c3a06162fea284705632ec39bdc4567887961f47e2728e0bc26be3bcb2d0efc": { "displayName": "aws-cdk-eks-cluster-windows-ng-test Template", "source": { "path": "aws-cdk-eks-cluster-windows-ng-test.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-62068362": { + "current_account-current_region-3e2c67d4": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "91e1f928f6e28dfe8d82396263032b05da98fc9cb866599429de1d260216e94b.json", + "objectKey": "9c3a06162fea284705632ec39bdc4567887961f47e2728e0bc26be3bcb2d0efc.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/aws-cdk-eks-cluster-windows-ng-test.template.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/aws-cdk-eks-cluster-windows-ng-test.template.json index 15ffa1a0bfd67..c895c9960085d 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/aws-cdk-eks-cluster-windows-ng-test.template.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/aws-cdk-eks-cluster-windows-ng-test.template.json @@ -820,7 +820,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip" + "S3Key": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip" }, "Description": "onEvent handler for EKS kubectl resource provider", "Environment": { diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/manifest.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/manifest.json index 7f54e093d2a67..058e6ae3a9375 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "artifacts": { "aws-cdk-eks-cluster-windows-ng-test.assets": { "type": "cdk:asset-manifest", @@ -18,7 +18,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/91e1f928f6e28dfe8d82396263032b05da98fc9cb866599429de1d260216e94b.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/9c3a06162fea284705632ec39bdc4567887961f47e2728e0bc26be3bcb2d0efc.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -638,7 +638,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -1369,6 +1369,7 @@ "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." }, "@aws-cdk/core:explicitStackTags": { + "userValue": true, "recommendedValue": true, "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." }, @@ -1521,5 +1522,5 @@ } } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1023.0" } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/tree.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/tree.json index b6f4a7a838808..8616e47247356 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/tree.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.eks-windows-ng.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"aws-cdk-eks-cluster-windows-ng-test":{"id":"aws-cdk-eks-cluster-windows-ng-test","path":"aws-cdk-eks-cluster-windows-ng-test","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"AdminRole":{"id":"AdminRole","path":"aws-cdk-eks-cluster-windows-ng-test/AdminRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportAdminRole":{"id":"ImportAdminRole","path":"aws-cdk-eks-cluster-windows-ng-test/AdminRole/ImportAdminRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/AdminRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}}}],"Version":"2012-10-17"}}}}}},"Vpc":{"id":"Vpc","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"natGateways":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"aws-cdk-eks-cluster-windows-ng-test/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"aws-cdk-eks-cluster-windows-ng-test/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-cluster-windows-ng-test/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster-windows-ng-test/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-windows-ng-test/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"kubectlLayer":{"id":"kubectlLayer","path":"aws-cdk-eks-cluster-windows-ng-test/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-windows-ng-test/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-windows-ng-test/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-windows-ng-test/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*","*","*","*"]},"children":{"Role":{"id":"Role","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":false},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":false}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":false}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole081AD342A","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}},"mastersRoleAccess":{"id":"mastersRoleAccess","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/mastersRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/mastersRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["AdminRole38563C57","Arn"]}}}}}},"ConfigCommand":{"id":"ConfigCommand","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/ConfigCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"GetTokenCommand":{"id":"GetTokenCommand","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/GetTokenCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"NodegroupLinuxNodegroup":{"id":"NodegroupLinuxNodegroup","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/NodegroupLinuxNodegroup","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/NodegroupLinuxNodegroup/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/NodegroupLinuxNodegroup/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/NodegroupLinuxNodegroup/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/NodegroupLinuxNodegroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2_x86_64","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"nodeRole":{"Fn::GetAtt":["ClusterNodegroupLinuxNodegroupNodeGroupRoleF14B6D19","Arn"]},"scalingConfig":{"desiredSize":2,"maxSize":2,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"NodegroupWindowsNodegroup":{"id":"NodegroupWindowsNodegroup","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/NodegroupWindowsNodegroup","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/NodegroupWindowsNodegroup/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/NodegroupWindowsNodegroup/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/NodegroupWindowsNodegroup/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/NodegroupWindowsNodegroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"WINDOWS_FULL_2022_x86_64","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"nodeRole":{"Fn::GetAtt":["ClusterNodegroupWindowsNodegroupNodeGroupRoleD51D4054","Arn"]},"scalingConfig":{"desiredSize":2,"maxSize":2,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"taints":[{"effect":"NO_SCHEDULE","key":"os","value":"windows"}]}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-windows-ng-test/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-windows-ng-test/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-eks-cluster-windows-ng":{"id":"aws-cdk-eks-cluster-windows-ng","path":"aws-cdk-eks-cluster-windows-ng","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-eks-cluster-windows-ng/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-windows-ng/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-eks-cluster-windows-ng/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-windows-ng/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-windows-ng/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"aws-cdk-eks-cluster-windows-ng-test":{"id":"aws-cdk-eks-cluster-windows-ng-test","path":"aws-cdk-eks-cluster-windows-ng-test","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"AdminRole":{"id":"AdminRole","path":"aws-cdk-eks-cluster-windows-ng-test/AdminRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}}]},"children":{"ImportAdminRole":{"id":"ImportAdminRole","path":"aws-cdk-eks-cluster-windows-ng-test/AdminRole/ImportAdminRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/AdminRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}}}],"Version":"2012-10-17"}}}}}},"Vpc":{"id":"Vpc","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"natGateways":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"aws-cdk-eks-cluster-windows-ng-test/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-windows-ng-test/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"aws-cdk-eks-cluster-windows-ng-test/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"aws-cdk-eks-cluster-windows-ng-test/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"aws-cdk-eks-cluster-windows-ng-test/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"aws-cdk-eks-cluster-windows-ng-test/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-windows-ng-test/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"kubectlLayer":{"id":"kubectlLayer","path":"aws-cdk-eks-cluster-windows-ng-test/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-windows-ng-test/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-windows-ng-test/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-windows-ng-test/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*","*","*","*"]},"children":{"Role":{"id":"Role","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":false},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":false}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":false}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole081AD342A","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}},"mastersRoleAccess":{"id":"mastersRoleAccess","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/mastersRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/mastersRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["AdminRole38563C57","Arn"]}}}}}},"ConfigCommand":{"id":"ConfigCommand","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/ConfigCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"GetTokenCommand":{"id":"GetTokenCommand","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/GetTokenCommand","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"0.0.0"}},"NodegroupLinuxNodegroup":{"id":"NodegroupLinuxNodegroup","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/NodegroupLinuxNodegroup","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/NodegroupLinuxNodegroup/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/NodegroupLinuxNodegroup/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/NodegroupLinuxNodegroup/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/NodegroupLinuxNodegroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"AL2_x86_64","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"nodeRole":{"Fn::GetAtt":["ClusterNodegroupLinuxNodegroupNodeGroupRoleF14B6D19","Arn"]},"scalingConfig":{"desiredSize":2,"maxSize":2,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}]}}}}},"NodegroupWindowsNodegroup":{"id":"NodegroupWindowsNodegroup","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/NodegroupWindowsNodegroup","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Nodegroup","version":"0.0.0","metadata":["*"]},"children":{"NodeGroupRole":{"id":"NodeGroupRole","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/NodegroupWindowsNodegroup/NodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportNodeGroupRole":{"id":"ImportNodeGroupRole","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/NodegroupWindowsNodegroup/NodeGroupRole/ImportNodeGroupRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/NodegroupWindowsNodegroup/NodeGroupRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKS_CNI_Policy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-cluster-windows-ng-test/Cluster/NodegroupWindowsNodegroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnNodegroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Nodegroup","aws:cdk:cloudformation:props":{"amiType":"WINDOWS_FULL_2022_x86_64","clusterName":{"Ref":"ClusterEB0386A7"},"forceUpdateEnabled":true,"nodeRole":{"Fn::GetAtt":["ClusterNodegroupWindowsNodegroupNodeGroupRoleD51D4054","Arn"]},"scalingConfig":{"desiredSize":2,"maxSize":2,"minSize":1},"subnets":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"taints":[{"effect":"NO_SCHEDULE","key":"os","value":"windows"}]}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-windows-ng-test/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-windows-ng-test/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-eks-cluster-windows-ng":{"id":"aws-cdk-eks-cluster-windows-ng","path":"aws-cdk-eks-cluster-windows-ng","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-eks-cluster-windows-ng/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-cluster-windows-ng/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-eks-cluster-windows-ng/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-cluster-windows-ng/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-cluster-windows-ng/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py deleted file mode 100644 index 00d794acd0c73..0000000000000 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py +++ /dev/null @@ -1,207 +0,0 @@ -import json -import logging -import os -import re -import subprocess -import shutil -import tempfile -import zipfile -import boto3 - -logger = logging.getLogger() -logger.setLevel(logging.INFO) - -# these are coming from the kubectl layer -os.environ['PATH'] = '/opt/helm:/opt/awscli:' + os.environ['PATH'] - -outdir = os.environ.get('TEST_OUTDIR', '/tmp') -kubeconfig = os.path.join(outdir, 'kubeconfig') - -def get_chart_asset_from_url(chart_asset_url): - chart_zip = os.path.join(outdir, 'chart.zip') - shutil.rmtree(chart_zip, ignore_errors=True) - subprocess.check_call(['aws', 's3', 'cp', chart_asset_url, chart_zip]) - chart_dir = os.path.join(outdir, 'chart') - shutil.rmtree(chart_dir, ignore_errors=True) - os.mkdir(chart_dir) - with zipfile.ZipFile(chart_zip, 'r') as zip_ref: - zip_ref.extractall(chart_dir) - return chart_dir - -def is_ecr_public_available(region): - s = boto3.Session() - return s.get_partition_for_region(region) == 'aws' - -def helm_handler(event, context): - logger.info(json.dumps(dict(event, ResponseURL='...'))) - - request_type = event['RequestType'] - props = event['ResourceProperties'] - - # resource properties - cluster_name = props['ClusterName'] - release = props['Release'] - chart = props.get('Chart', None) - chart_asset_url = props.get('ChartAssetURL', None) - version = props.get('Version', None) - wait = props.get('Wait', False) - atomic = props.get('Atomic', False) - timeout = props.get('Timeout', None) - namespace = props.get('Namespace', None) - create_namespace = props.get('CreateNamespace', None) - repository = props.get('Repository', None) - values_text = props.get('Values', None) - skip_crds = props.get('SkipCrds', False) - - # "log in" to the cluster - subprocess.check_call([ 'aws', 'eks', 'update-kubeconfig', - '--name', cluster_name, - '--kubeconfig', kubeconfig - ]) - - if os.path.isfile(kubeconfig): - os.chmod(kubeconfig, 0o600) - - # Write out the values to a file and include them with the install and upgrade - values_file = None - if not request_type == "Delete" and not values_text is None: - values = json.loads(values_text) - values_file = os.path.join(outdir, 'values.yaml') - with open(values_file, "w") as f: - f.write(json.dumps(values, indent=2)) - - if request_type == 'Create' or request_type == 'Update': - # Ensure chart or chart_asset_url are set - if chart == None and chart_asset_url == None: - raise RuntimeError(f'chart or chartAsset must be specified') - - if chart_asset_url != None: - assert(chart==None) - assert(repository==None) - assert(version==None) - if not chart_asset_url.startswith('s3://'): - raise RuntimeError(f'ChartAssetURL must point to as s3 location but is {chart_asset_url}') - # future work: support versions from s3 assets - chart = get_chart_asset_from_url(chart_asset_url) - - if repository is not None and repository.startswith('oci://'): - tmpdir = tempfile.TemporaryDirectory() - chart_dir = get_chart_from_oci(tmpdir.name, repository, version) - chart = chart_dir - - helm('upgrade', release, chart, repository, values_file, namespace, version, wait, timeout, create_namespace, atomic=atomic) - elif request_type == "Delete": - try: - helm('uninstall', release, namespace=namespace, wait=wait, timeout=timeout) - except Exception as e: - logger.info("delete error: %s" % e) - - -def get_oci_cmd(repository, version): - # Generates OCI command based on pattern. Public ECR vs Private ECR are treated differently. - private_ecr_pattern = 'oci://(?P\d+\.dkr\.ecr\.(?P[a-z0-9\-]+)\.(?P[a-z0-9\.-]+))*' - public_ecr_pattern = 'oci://(?Ppublic\.ecr\.aws)*' - - private_registry = re.match(private_ecr_pattern, repository).groupdict() - public_registry = re.match(public_ecr_pattern, repository).groupdict() - - if private_registry['registry'] is not None: - logger.info("Found AWS private repository") - cmnd = [ - f"aws ecr get-login-password --region {private_registry['region']} | " \ - f"helm registry login --username AWS --password-stdin {private_registry['registry']}; helm pull {repository} --version {version} --untar" - ] - elif public_registry['registry'] is not None: - logger.info("Found AWS public repository, will use default region as deployment") - region = os.environ.get('AWS_REGION', 'us-east-1') - - if is_ecr_public_available(region): - cmnd = [ - f"aws ecr-public get-login-password --region us-east-1 | " \ - f"helm registry login --username AWS --password-stdin {public_registry['registry']}; helm pull {repository} --version {version} --untar" - ] - else: - # `aws ecr-public get-login-password` and `helm registry login` not required as ecr public is not available in current region - # see https://helm.sh/docs/helm/helm_registry_login/ - cmnd = [f"helm pull {repository} --version {version} --untar"] - else: - logger.error("OCI repository format not recognized, falling back to helm pull") - cmnd = [f"helm pull {repository} --version {version} --untar"] - - return cmnd - - -def get_chart_from_oci(tmpdir, repository = None, version = None): - - cmnd = get_oci_cmd(repository, version) - - maxAttempts = 3 - retry = maxAttempts - while retry > 0: - try: - logger.info(cmnd) - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=tmpdir, shell=True) - logger.info(output) - - # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. - # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service - return os.path.join(tmpdir, repository.rpartition('/')[-1]) - except subprocess.CalledProcessError as exc: - output = exc.output - if b'Broken pipe' in output: - retry = retry - 1 - logger.info("Broken pipe, retries left: %s" % retry) - else: - raise Exception(output) - raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') - - -def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): - import subprocess - - cmnd = ['helm', verb, release] - if not chart is None: - cmnd.append(chart) - if verb == 'upgrade': - cmnd.append('--install') - if create_namespace: - cmnd.append('--create-namespace') - if not repo is None: - cmnd.extend(['--repo', repo]) - if not file is None: - cmnd.extend(['--values', file]) - if not version is None: - cmnd.extend(['--version', version]) - if not namespace is None: - cmnd.extend(['--namespace', namespace]) - if wait: - cmnd.append('--wait') - if skip_crds: - cmnd.append('--skip-crds') - if not timeout is None: - cmnd.extend(['--timeout', timeout]) - if atomic: - cmnd.append('--atomic') - cmnd.extend(['--kubeconfig', kubeconfig]) - - # Log the full helm command for better troubleshooting - logger.info("Running command: %s", cmnd) - - maxAttempts = 3 - retry = maxAttempts - while retry > 0: - try: - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=outdir) - logger.info(output.decode('utf-8', errors='replace')) - return - except subprocess.CalledProcessError as exc: - output = exc.output - if b'Broken pipe' in output: - retry = retry - 1 - logger.info("Broken pipe, retries left: %s" % retry) - else: - error_message = output.decode('utf-8', errors='replace') - logger.error("Command failed: %s", cmnd) - logger.error("Error output: %s", error_message) - raise Exception(output) - raise Exception(f'Operation failed after {maxAttempts} attempts: {output.decode("utf-8", errors="replace")}') diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py new file mode 100644 index 0000000000000..6c7838f182a45 --- /dev/null +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py @@ -0,0 +1,250 @@ +import json +import logging +import os +import re +import subprocess +import shutil +import tempfile +import zipfile +import boto3 + +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +# these are coming from the kubectl layer +os.environ['PATH'] = '/opt/helm:/opt/awscli:' + os.environ['PATH'] + +outdir = os.environ.get('TEST_OUTDIR', '/tmp') +kubeconfig = os.path.join(outdir, 'kubeconfig') + +def get_chart_asset_from_url(chart_asset_url): + chart_zip = os.path.join(outdir, 'chart.zip') + shutil.rmtree(chart_zip, ignore_errors=True) + subprocess.check_call(['aws', 's3', 'cp', chart_asset_url, chart_zip]) + chart_dir = os.path.join(outdir, 'chart') + shutil.rmtree(chart_dir, ignore_errors=True) + os.mkdir(chart_dir) + with zipfile.ZipFile(chart_zip, 'r') as zip_ref: + zip_ref.extractall(chart_dir) + return chart_dir + +def is_ecr_public_available(region): + s = boto3.Session() + return s.get_partition_for_region(region) == 'aws' + +def helm_handler(event, context): + logger.info(json.dumps(dict(event, ResponseURL='...'))) + + request_type = event['RequestType'] + props = event['ResourceProperties'] + + # resource properties + cluster_name = props['ClusterName'] + release = props['Release'] + chart = props.get('Chart', None) + chart_asset_url = props.get('ChartAssetURL', None) + version = props.get('Version', None) + wait = props.get('Wait', False) + atomic = props.get('Atomic', False) + timeout = props.get('Timeout', None) + namespace = props.get('Namespace', None) + create_namespace = props.get('CreateNamespace', None) + repository = props.get('Repository', None) + values_text = props.get('Values', None) + skip_crds = props.get('SkipCrds', False) + + # "log in" to the cluster + subprocess.check_call([ 'aws', 'eks', 'update-kubeconfig', + '--name', cluster_name, + '--kubeconfig', kubeconfig + ]) + + if os.path.isfile(kubeconfig): + os.chmod(kubeconfig, 0o600) + + # Write out the values to a file and include them with the install and upgrade + values_file = None + if not request_type == "Delete" and not values_text is None: + values = json.loads(values_text) + values_file = os.path.join(outdir, 'values.yaml') + with open(values_file, "w") as f: + f.write(json.dumps(values, indent=2)) + + if request_type == 'Create' or request_type == 'Update': + # Ensure chart or chart_asset_url are set + if chart == None and chart_asset_url == None: + raise RuntimeError(f'chart or chartAsset must be specified') + + if chart_asset_url != None: + assert(chart==None) + assert(repository==None) + assert(version==None) + if not chart_asset_url.startswith('s3://'): + raise RuntimeError(f'ChartAssetURL must point to as s3 location but is {chart_asset_url}') + # future work: support versions from s3 assets + chart = get_chart_asset_from_url(chart_asset_url) + + if repository is not None and repository.startswith('oci://'): + tmpdir = tempfile.TemporaryDirectory() + chart_dir = get_chart_from_oci(tmpdir.name, repository, version) + chart = chart_dir + + helm('upgrade', release, chart, repository, values_file, namespace, version, wait, timeout, create_namespace, atomic=atomic) + elif request_type == "Delete": + try: + helm('uninstall', release, namespace=namespace, wait=wait, timeout=timeout) + except Exception as e: + logger.info("delete error: %s" % e) + + +def get_oci_cmd(repository, version): + # Generates OCI command based on pattern. Public ECR vs Private ECR are treated differently. + private_ecr_pattern = 'oci://(?P\d+\.dkr\.ecr\.(?P[a-z0-9\-]+)\.(?P[a-z0-9\.-]+))*' + public_ecr_pattern = 'oci://(?Ppublic\.ecr\.aws)*' + + private_registry = re.match(private_ecr_pattern, repository).groupdict() + public_registry = re.match(public_ecr_pattern, repository).groupdict() + + # Build helm pull command as array + helm_cmd = ['helm', 'pull', repository, '--version', version , '--untar'] + + if private_registry['registry'] is not None: + logger.info("Found AWS private repository") + ecr_login = ['aws', 'ecr', 'get-login-password', '--region', private_registry['region']] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', private_registry['registry']] + return {'ecr_login': ecr_login, 'registry_login': helm_registry_login, 'helm': helm_cmd} + elif public_registry['registry'] is not None: + logger.info("Found AWS public repository, will use default region as deployment") + region = os.environ.get('AWS_REGION', 'us-east-1') + + if is_ecr_public_available(region): + # Public ECR auth is always in us-east-1: https://docs.aws.amazon.com/AmazonECR/latest/public/public-registry-auth.html + ecr_login = ['aws', 'ecr-public', 'get-login-password', '--region', 'us-east-1'] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', public_registry['registry']] + return {'ecr_login': ecr_login, 'helm_registry_login': helm_registry_login, 'helm': helm_cmd} + else: + # No login required for public ECR in non-aws regions + # see https://helm.sh/docs/helm/helm_registry_login/ + return {'helm': helm_cmd} + else: + logger.error("OCI repository format not recognized, falling back to helm pull") + return {'helm': helm_cmd} + + +def get_chart_from_oci(tmpdir, repository=None, version=None): + from subprocess import Popen, PIPE + + commands = get_oci_cmd(repository, version) + + maxAttempts = 3 + retry = maxAttempts + while retry > 0: + try: + # Execute login commands if needed + if 'ecr_login' in commands and 'helm_registry_login' in commands: + logger.info("Running login command: %s", commands['ecr_login']) + logger.info("Running registry login command: %s", commands['helm_registry_login']) + + # Start first process: aws ecr get-login-password + # NOTE: We do NOT call p1.wait() here before starting p2. + # Doing so could deadlock if p1's output fills the pipe buffer + # before p2 starts reading. Instead, start p2 immediately so it + # can consume p1's stdout as it's produced. + p1 = Popen(commands['ecr_login'], stdout=PIPE, stderr=PIPE, cwd=tmpdir) + + # Start second process: helm registry login + p2 = Popen(commands['helm_registry_login'], stdin=p1.stdout, stdout=PIPE, stderr=PIPE, cwd=tmpdir) + p1.stdout.close() # Allow p1 to receive SIGPIPE if p2 exits early + + # Wait for p2 to finish first (ensures full pipeline completes) + _, p2_err = p2.communicate() + + # Now wait for p1 so we have a complete stderr and an exit code + p1.wait() + + # Handle p1 failure + if p1.returncode != 0: + p1_err = p1.stderr.read().decode('utf-8', errors='replace') if p1.stderr else '' + logger.error( + "ECR get-login-password failed for repository %s. Error: %s", + repository, + p1_err or "No error details" + ) + raise subprocess.CalledProcessError(p1.returncode, commands['ecr_login'], p1_err.encode()) + + # Handle p2 failure + if p2.returncode != 0: + logger.error( + "Helm registry authentication failed for repository %s. Error: %s", + repository, + p2_err.decode('utf-8', errors='replace') or "No error details" + ) + raise subprocess.CalledProcessError(p2.returncode, commands['helm_registry_login'], p2_err) + + # Execute helm pull command + logger.info("Running helm command: %s", commands['helm']) + output = subprocess.check_output(commands['helm'], stderr=subprocess.STDOUT, cwd=tmpdir) + logger.info(output) + + # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. + # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service + return os.path.join(tmpdir, repository.rpartition('/')[-1]) + + except subprocess.CalledProcessError as exc: + output = exc.output + if b'Broken pipe' in output: + retry = retry - 1 + logger.info("Broken pipe, retries left: %s" % retry) + else: + raise Exception(output) + + raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') + + +def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): + cmnd = ['helm', verb, release] + if not chart is None: + cmnd.append(chart) + if verb == 'upgrade': + cmnd.append('--install') + if create_namespace: + cmnd.append('--create-namespace') + if not repo is None: + cmnd.extend(['--repo', repo]) + if not file is None: + cmnd.extend(['--values', file]) + if not version is None: + cmnd.extend(['--version', version]) + if not namespace is None: + cmnd.extend(['--namespace', namespace]) + if wait: + cmnd.append('--wait') + if skip_crds: + cmnd.append('--skip-crds') + if not timeout is None: + cmnd.extend(['--timeout', timeout]) + if atomic: + cmnd.append('--atomic') + cmnd.extend(['--kubeconfig', kubeconfig]) + + # Log the full helm command for better troubleshooting + logger.info("Running command: %s", cmnd) + + maxAttempts = 3 + retry = maxAttempts + while retry > 0: + try: + output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=outdir) + logger.info(output.decode('utf-8', errors='replace')) + return + except subprocess.CalledProcessError as exc: + output = exc.output + if b'Broken pipe' in output: + retry = retry - 1 + logger.info("Broken pipe, retries left: %s" % retry) + else: + error_message = output.decode('utf-8', errors='replace') + logger.error("Command failed: %s", cmnd) + logger.error("Error output: %s", error_message) + raise Exception(output) + raise Exception(f'Operation failed after {maxAttempts} attempts: {output.decode("utf-8", errors="replace")}') diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/eks-fargate-cluster-test-stack.assets.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/eks-fargate-cluster-test-stack.assets.json index a303046b139dd..0ca15983f249c 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/eks-fargate-cluster-test-stack.assets.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/eks-fargate-cluster-test-stack.assets.json @@ -29,16 +29,16 @@ } } }, - "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069": { + "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a": { "displayName": "FargateTestCluster/KubectlProvider/Handler/Code", "source": { - "path": "asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069", + "path": "asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a", "packaging": "zip" }, "destinations": { - "current_account-current_region-0ee668da": { + "current_account-current_region-5b09798b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip", + "objectKey": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -71,16 +71,16 @@ } } }, - "0ade739f9573112cad3108d2949c31b31b3593b25ba50fd1f61c3b84b5aacb63": { + "280674231c36f0e1e66d7d7268743be80a6f3ad9ac2cff023d59ab4228b7033e": { "displayName": "eks-fargate-cluster-test-stack Template", "source": { "path": "eks-fargate-cluster-test-stack.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-3ad9c05d": { + "current_account-current_region-da89f7a4": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "0ade739f9573112cad3108d2949c31b31b3593b25ba50fd1f61c3b84b5aacb63.json", + "objectKey": "280674231c36f0e1e66d7d7268743be80a6f3ad9ac2cff023d59ab4228b7033e.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/eks-fargate-cluster-test-stack.template.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/eks-fargate-cluster-test-stack.template.json index 38254fbdac18b..33c8298f8213d 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/eks-fargate-cluster-test-stack.template.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/eks-fargate-cluster-test-stack.template.json @@ -734,7 +734,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip" + "S3Key": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip" }, "Description": "onEvent handler for EKS kubectl resource provider", "Environment": { diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/manifest.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/manifest.json index 4624c3ca7d45d..d441125a6765a 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "artifacts": { "eks-fargate-cluster-test-stack.assets": { "type": "cdk:asset-manifest", @@ -18,7 +18,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/0ade739f9573112cad3108d2949c31b31b3593b25ba50fd1f61c3b84b5aacb63.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/280674231c36f0e1e66d7d7268743be80a6f3ad9ac2cff023d59ab4228b7033e.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -605,7 +605,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -1252,6 +1252,7 @@ "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." }, "@aws-cdk/core:explicitStackTags": { + "userValue": true, "recommendedValue": true, "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." }, @@ -1404,5 +1405,5 @@ } } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1023.0" } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/tree.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/tree.json index 94d7a1fae28d8..d4179f43215c6 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/tree.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.fargate-cluster.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"eks-fargate-cluster-test-stack":{"id":"eks-fargate-cluster-test-stack","path":"eks-fargate-cluster-test-stack","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"kubectlLayer":{"id":"kubectlLayer","path":"eks-fargate-cluster-test-stack/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"eks-fargate-cluster-test-stack/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-fargate-cluster-test-stack/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-fargate-cluster-test-stack/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"FargateTestCluster":{"id":"FargateTestCluster","path":"eks-fargate-cluster-test-stack/FargateTestCluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.FargateCluster","version":"0.0.0","metadata":["*","*","*","*"]},"children":{"DefaultVpc":{"id":"DefaultVpc","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1"}],"vpcId":{"Ref":"FargateTestClusterDefaultVpcEA353EBF"}}}},"Acl":{"id":"Acl","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1"}],"vpcId":{"Ref":"FargateTestClusterDefaultVpcEA353EBF"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"FargateTestClusterDefaultVpcPublicSubnet1RouteTableB500F1D5"},"subnetId":{"Ref":"FargateTestClusterDefaultVpcPublicSubnet1Subnet5D09A042"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"FargateTestClusterDefaultVpcIGW5D07D60C"},"routeTableId":{"Ref":"FargateTestClusterDefaultVpcPublicSubnet1RouteTableB500F1D5"}}}},"EIP":{"id":"EIP","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["FargateTestClusterDefaultVpcPublicSubnet1EIPC3787A01","AllocationId"]},"subnetId":{"Ref":"FargateTestClusterDefaultVpcPublicSubnet1Subnet5D09A042"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2"}],"vpcId":{"Ref":"FargateTestClusterDefaultVpcEA353EBF"}}}},"Acl":{"id":"Acl","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2"}],"vpcId":{"Ref":"FargateTestClusterDefaultVpcEA353EBF"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"FargateTestClusterDefaultVpcPublicSubnet2RouteTable4195A330"},"subnetId":{"Ref":"FargateTestClusterDefaultVpcPublicSubnet2SubnetDFD56340"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"FargateTestClusterDefaultVpcIGW5D07D60C"},"routeTableId":{"Ref":"FargateTestClusterDefaultVpcPublicSubnet2RouteTable4195A330"}}}},"EIP":{"id":"EIP","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["FargateTestClusterDefaultVpcPublicSubnet2EIP0C04AB7C","AllocationId"]},"subnetId":{"Ref":"FargateTestClusterDefaultVpcPublicSubnet2SubnetDFD56340"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet1"}],"vpcId":{"Ref":"FargateTestClusterDefaultVpcEA353EBF"}}}},"Acl":{"id":"Acl","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet1"}],"vpcId":{"Ref":"FargateTestClusterDefaultVpcEA353EBF"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet1RouteTableC927E408"},"subnetId":{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet1Subnet974738F7"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"FargateTestClusterDefaultVpcPublicSubnet1NATGatewayC7755095"},"routeTableId":{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet1RouteTableC927E408"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet2"}],"vpcId":{"Ref":"FargateTestClusterDefaultVpcEA353EBF"}}}},"Acl":{"id":"Acl","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet2"}],"vpcId":{"Ref":"FargateTestClusterDefaultVpcEA353EBF"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet2RouteTableEE3ED096"},"subnetId":{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet2SubnetAEE82747"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"FargateTestClusterDefaultVpcPublicSubnet2NATGatewayB1FD6513"},"routeTableId":{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet2RouteTableEE3ED096"}}}}}},"IGW":{"id":"IGW","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc"}]}}},"VPCGW":{"id":"VPCGW","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"FargateTestClusterDefaultVpcIGW5D07D60C"},"vpcId":{"Ref":"FargateTestClusterDefaultVpcEA353EBF"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"Role":{"id":"Role","path":"eks-fargate-cluster-test-stack/FargateTestCluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"eks-fargate-cluster-test-stack/FargateTestCluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"eks-fargate-cluster-test-stack/FargateTestCluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"FargateTestClusterDefaultVpcEA353EBF"}}}}}},"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":false},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":false}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["FargateTestClusterControlPlaneSecurityGroup9A9D3DD9","GroupId"]}],"subnetIds":[{"Ref":"FargateTestClusterDefaultVpcPublicSubnet1Subnet5D09A042"},{"Ref":"FargateTestClusterDefaultVpcPublicSubnet2SubnetDFD56340"},{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet1Subnet974738F7"},{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet2SubnetAEE82747"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["FargateTestClusterRoleCB15D0DE","Arn"]},"storageConfig":{"blockStorage":{"enabled":false}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"eks-fargate-cluster-test-stack/FargateTestCluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["FargateTestClusterKubectlProviderHandlerHasEcrPublicD54723EB",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["FargateTestClusterCAF9262D","Arn"]}}],"Version":"2012-10-17"},"policyName":"FargateTestClusterKubectlProviderHandlerServiceRoleDefaultPolicyD43FC73D","roles":[{"Ref":"FargateTestClusterKubectlProviderHandlerServiceRoleB8FACFEE"}]}}}}}}},"Code":{"id":"Code","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"FargateTestClusterKubectlProviderAwsCliLayer89D35680"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["FargateTestClusterKubectlProviderHandlerServiceRoleB8FACFEE","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet1Subnet974738F7"},{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet2SubnetAEE82747"}],"securityGroupIds":[{"Fn::GetAtt":["FargateTestClusterCAF9262D","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["FargateTestClusterKubectlProviderHandler57BDDF1A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["FargateTestClusterKubectlProviderHandler57BDDF1A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"FargateTestClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicy84061E77","roles":[{"Ref":"FargateTestClusterKubectlProviderframeworkonEventServiceRole7B0EE1EE"}]}}}}}}},"Code":{"id":"Code","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["FargateTestClusterKubectlProviderHandler57BDDF1A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["FargateTestClusterKubectlProviderframeworkonEventServiceRole7B0EE1EE","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet1Subnet974738F7"},{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet2SubnetAEE82747"}],"securityGroupIds":[{"Fn::GetAtt":["FargateTestClusterCAF9262D","ClusterSecurityGroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["FargateTestClusterKubectlProviderHandler57BDDF1A","Arn"]}}],"Version":"2012-10-17"},"policyName":"FargateTestClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole0885AE23E","roles":[{"Ref":"FargateTestClusterKubectlProviderframeworkonEventServiceRole7B0EE1EE"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"eks-fargate-cluster-test-stack/FargateTestCluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"FargateTestClusterCAF9262D"},"principalArn":{"Fn::GetAtt":["FargateTestClusterKubectlProviderHandlerServiceRoleB8FACFEE","Arn"]}}}}}},"CoreDnsComputeTypePatch":{"id":"CoreDnsComputeTypePatch","path":"eks-fargate-cluster-test-stack/FargateTestCluster/CoreDnsComputeTypePatch","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesPatch","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/CoreDnsComputeTypePatch/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"eks-fargate-cluster-test-stack/FargateTestCluster/CoreDnsComputeTypePatch/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"fargate-profile-default":{"id":"fargate-profile-default","path":"eks-fargate-cluster-test-stack/FargateTestCluster/fargate-profile-default","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.FargateProfile","version":"0.0.0"},"children":{"PodExecutionRole":{"id":"PodExecutionRole","path":"eks-fargate-cluster-test-stack/FargateTestCluster/fargate-profile-default/PodExecutionRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportPodExecutionRole":{"id":"ImportPodExecutionRole","path":"eks-fargate-cluster-test-stack/FargateTestCluster/fargate-profile-default/PodExecutionRole/ImportPodExecutionRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/fargate-profile-default/PodExecutionRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"eks-fargate-pods.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy"]]}]}}}}},"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/fargate-profile-default/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnFargateProfile","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::FargateProfile","aws:cdk:cloudformation:props":{"clusterName":{"Ref":"FargateTestClusterCAF9262D"},"podExecutionRoleArn":{"Fn::GetAtt":["FargateTestClusterfargateprofiledefaultPodExecutionRole36251E64","Arn"]},"selectors":[{"namespace":"default","labels":[]},{"namespace":"kube-system","labels":[]}]}}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"eks-fargate-cluster-test-stack/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"eks-fargate-cluster-test-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"eks-fargate-cluster-test-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"eks-fargate-cluster-test-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"eks-fargate-cluster-test-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"eks-fargate-cluster-test-stack/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"eks-fargate-cluster-test-stack/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"eks-fargate-cluster":{"id":"eks-fargate-cluster","path":"eks-fargate-cluster","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"eks-fargate-cluster/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"eks-fargate-cluster/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"eks-fargate-cluster/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"eks-fargate-cluster/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"eks-fargate-cluster/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"eks-fargate-cluster-test-stack":{"id":"eks-fargate-cluster-test-stack","path":"eks-fargate-cluster-test-stack","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"kubectlLayer":{"id":"kubectlLayer","path":"eks-fargate-cluster-test-stack/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"eks-fargate-cluster-test-stack/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-fargate-cluster-test-stack/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-fargate-cluster-test-stack/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"FargateTestCluster":{"id":"FargateTestCluster","path":"eks-fargate-cluster-test-stack/FargateTestCluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.FargateCluster","version":"0.0.0","metadata":["*","*","*","*"]},"children":{"DefaultVpc":{"id":"DefaultVpc","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1"}],"vpcId":{"Ref":"FargateTestClusterDefaultVpcEA353EBF"}}}},"Acl":{"id":"Acl","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1"}],"vpcId":{"Ref":"FargateTestClusterDefaultVpcEA353EBF"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"FargateTestClusterDefaultVpcPublicSubnet1RouteTableB500F1D5"},"subnetId":{"Ref":"FargateTestClusterDefaultVpcPublicSubnet1Subnet5D09A042"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"FargateTestClusterDefaultVpcIGW5D07D60C"},"routeTableId":{"Ref":"FargateTestClusterDefaultVpcPublicSubnet1RouteTableB500F1D5"}}}},"EIP":{"id":"EIP","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["FargateTestClusterDefaultVpcPublicSubnet1EIPC3787A01","AllocationId"]},"subnetId":{"Ref":"FargateTestClusterDefaultVpcPublicSubnet1Subnet5D09A042"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2"}],"vpcId":{"Ref":"FargateTestClusterDefaultVpcEA353EBF"}}}},"Acl":{"id":"Acl","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2"}],"vpcId":{"Ref":"FargateTestClusterDefaultVpcEA353EBF"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"FargateTestClusterDefaultVpcPublicSubnet2RouteTable4195A330"},"subnetId":{"Ref":"FargateTestClusterDefaultVpcPublicSubnet2SubnetDFD56340"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"FargateTestClusterDefaultVpcIGW5D07D60C"},"routeTableId":{"Ref":"FargateTestClusterDefaultVpcPublicSubnet2RouteTable4195A330"}}}},"EIP":{"id":"EIP","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2"}]}}},"NATGateway":{"id":"NATGateway","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["FargateTestClusterDefaultVpcPublicSubnet2EIP0C04AB7C","AllocationId"]},"subnetId":{"Ref":"FargateTestClusterDefaultVpcPublicSubnet2SubnetDFD56340"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PublicSubnet2"}]}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet1"}],"vpcId":{"Ref":"FargateTestClusterDefaultVpcEA353EBF"}}}},"Acl":{"id":"Acl","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet1"}],"vpcId":{"Ref":"FargateTestClusterDefaultVpcEA353EBF"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet1RouteTableC927E408"},"subnetId":{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet1Subnet974738F7"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"FargateTestClusterDefaultVpcPublicSubnet1NATGatewayC7755095"},"routeTableId":{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet1RouteTableC927E408"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet2"}],"vpcId":{"Ref":"FargateTestClusterDefaultVpcEA353EBF"}}}},"Acl":{"id":"Acl","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet2"}],"vpcId":{"Ref":"FargateTestClusterDefaultVpcEA353EBF"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet2RouteTableEE3ED096"},"subnetId":{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet2SubnetAEE82747"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"FargateTestClusterDefaultVpcPublicSubnet2NATGatewayB1FD6513"},"routeTableId":{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet2RouteTableEE3ED096"}}}}}},"IGW":{"id":"IGW","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc"}]}}},"VPCGW":{"id":"VPCGW","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"FargateTestClusterDefaultVpcIGW5D07D60C"},"vpcId":{"Ref":"FargateTestClusterDefaultVpcEA353EBF"}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"eks-fargate-cluster-test-stack/FargateTestCluster/DefaultVpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"Role":{"id":"Role","path":"eks-fargate-cluster-test-stack/FargateTestCluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"eks-fargate-cluster-test-stack/FargateTestCluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"eks-fargate-cluster-test-stack/FargateTestCluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"FargateTestClusterDefaultVpcEA353EBF"}}}}}},"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":false},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":false}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["FargateTestClusterControlPlaneSecurityGroup9A9D3DD9","GroupId"]}],"subnetIds":[{"Ref":"FargateTestClusterDefaultVpcPublicSubnet1Subnet5D09A042"},{"Ref":"FargateTestClusterDefaultVpcPublicSubnet2SubnetDFD56340"},{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet1Subnet974738F7"},{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet2SubnetAEE82747"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["FargateTestClusterRoleCB15D0DE","Arn"]},"storageConfig":{"blockStorage":{"enabled":false}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"eks-fargate-cluster-test-stack/FargateTestCluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["FargateTestClusterKubectlProviderHandlerHasEcrPublicD54723EB",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["FargateTestClusterCAF9262D","Arn"]}}],"Version":"2012-10-17"},"policyName":"FargateTestClusterKubectlProviderHandlerServiceRoleDefaultPolicyD43FC73D","roles":[{"Ref":"FargateTestClusterKubectlProviderHandlerServiceRoleB8FACFEE"}]}}}}}}},"Code":{"id":"Code","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"FargateTestClusterKubectlProviderAwsCliLayer89D35680"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["FargateTestClusterKubectlProviderHandlerServiceRoleB8FACFEE","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet1Subnet974738F7"},{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet2SubnetAEE82747"}],"securityGroupIds":[{"Fn::GetAtt":["FargateTestClusterCAF9262D","ClusterSecurityGroupId"]}]}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["FargateTestClusterKubectlProviderHandler57BDDF1A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["FargateTestClusterKubectlProviderHandler57BDDF1A","Arn"]},":*"]]}]}],"Version":"2012-10-17"},"policyName":"FargateTestClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicy84061E77","roles":[{"Ref":"FargateTestClusterKubectlProviderframeworkonEventServiceRole7B0EE1EE"}]}}}}}}},"Code":{"id":"Code","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["FargateTestClusterKubectlProviderHandler57BDDF1A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["FargateTestClusterKubectlProviderframeworkonEventServiceRole7B0EE1EE","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet1Subnet974738F7"},{"Ref":"FargateTestClusterDefaultVpcPrivateSubnet2SubnetAEE82747"}],"securityGroupIds":[{"Fn::GetAtt":["FargateTestClusterCAF9262D","ClusterSecurityGroupId"]}]}}}},"inlinePolicyAddedToExecutionRole-0":{"id":"inlinePolicyAddedToExecutionRole-0","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]},"children":{"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/KubectlProvider/Provider/framework-onEvent/inlinePolicyAddedToExecutionRole-0/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["FargateTestClusterKubectlProviderHandler57BDDF1A","Arn"]}}],"Version":"2012-10-17"},"policyName":"FargateTestClusterKubectlProviderframeworkonEventinlinePolicyAddedToExecutionRole0885AE23E","roles":[{"Ref":"FargateTestClusterKubectlProviderframeworkonEventServiceRole7B0EE1EE"}]}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"eks-fargate-cluster-test-stack/FargateTestCluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"FargateTestClusterCAF9262D"},"principalArn":{"Fn::GetAtt":["FargateTestClusterKubectlProviderHandlerServiceRoleB8FACFEE","Arn"]}}}}}},"CoreDnsComputeTypePatch":{"id":"CoreDnsComputeTypePatch","path":"eks-fargate-cluster-test-stack/FargateTestCluster/CoreDnsComputeTypePatch","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubernetesPatch","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/CoreDnsComputeTypePatch/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"eks-fargate-cluster-test-stack/FargateTestCluster/CoreDnsComputeTypePatch/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}},"fargate-profile-default":{"id":"fargate-profile-default","path":"eks-fargate-cluster-test-stack/FargateTestCluster/fargate-profile-default","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.FargateProfile","version":"0.0.0"},"children":{"PodExecutionRole":{"id":"PodExecutionRole","path":"eks-fargate-cluster-test-stack/FargateTestCluster/fargate-profile-default/PodExecutionRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]},"children":{"ImportPodExecutionRole":{"id":"ImportPodExecutionRole","path":"eks-fargate-cluster-test-stack/FargateTestCluster/fargate-profile-default/PodExecutionRole/ImportPodExecutionRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/fargate-profile-default/PodExecutionRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"eks-fargate-pods.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy"]]}]}}}}},"Resource":{"id":"Resource","path":"eks-fargate-cluster-test-stack/FargateTestCluster/fargate-profile-default/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnFargateProfile","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::FargateProfile","aws:cdk:cloudformation:props":{"clusterName":{"Ref":"FargateTestClusterCAF9262D"},"podExecutionRoleArn":{"Fn::GetAtt":["FargateTestClusterfargateprofiledefaultPodExecutionRole36251E64","Arn"]},"selectors":[{"namespace":"default","labels":[]},{"namespace":"kube-system","labels":[]}]}}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"eks-fargate-cluster-test-stack/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"eks-fargate-cluster-test-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"0.0.0"},"children":{"Staging":{"id":"Staging","path":"eks-fargate-cluster-test-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"Role":{"id":"Role","path":"eks-fargate-cluster-test-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"Handler":{"id":"Handler","path":"eks-fargate-cluster-test-stack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"eks-fargate-cluster-test-stack/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"eks-fargate-cluster-test-stack/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"eks-fargate-cluster":{"id":"eks-fargate-cluster","path":"eks-fargate-cluster","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"eks-fargate-cluster/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"eks-fargate-cluster/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"eks-fargate-cluster/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"eks-fargate-cluster/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"eks-fargate-cluster/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py deleted file mode 100644 index 00d794acd0c73..0000000000000 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/helm/__init__.py +++ /dev/null @@ -1,207 +0,0 @@ -import json -import logging -import os -import re -import subprocess -import shutil -import tempfile -import zipfile -import boto3 - -logger = logging.getLogger() -logger.setLevel(logging.INFO) - -# these are coming from the kubectl layer -os.environ['PATH'] = '/opt/helm:/opt/awscli:' + os.environ['PATH'] - -outdir = os.environ.get('TEST_OUTDIR', '/tmp') -kubeconfig = os.path.join(outdir, 'kubeconfig') - -def get_chart_asset_from_url(chart_asset_url): - chart_zip = os.path.join(outdir, 'chart.zip') - shutil.rmtree(chart_zip, ignore_errors=True) - subprocess.check_call(['aws', 's3', 'cp', chart_asset_url, chart_zip]) - chart_dir = os.path.join(outdir, 'chart') - shutil.rmtree(chart_dir, ignore_errors=True) - os.mkdir(chart_dir) - with zipfile.ZipFile(chart_zip, 'r') as zip_ref: - zip_ref.extractall(chart_dir) - return chart_dir - -def is_ecr_public_available(region): - s = boto3.Session() - return s.get_partition_for_region(region) == 'aws' - -def helm_handler(event, context): - logger.info(json.dumps(dict(event, ResponseURL='...'))) - - request_type = event['RequestType'] - props = event['ResourceProperties'] - - # resource properties - cluster_name = props['ClusterName'] - release = props['Release'] - chart = props.get('Chart', None) - chart_asset_url = props.get('ChartAssetURL', None) - version = props.get('Version', None) - wait = props.get('Wait', False) - atomic = props.get('Atomic', False) - timeout = props.get('Timeout', None) - namespace = props.get('Namespace', None) - create_namespace = props.get('CreateNamespace', None) - repository = props.get('Repository', None) - values_text = props.get('Values', None) - skip_crds = props.get('SkipCrds', False) - - # "log in" to the cluster - subprocess.check_call([ 'aws', 'eks', 'update-kubeconfig', - '--name', cluster_name, - '--kubeconfig', kubeconfig - ]) - - if os.path.isfile(kubeconfig): - os.chmod(kubeconfig, 0o600) - - # Write out the values to a file and include them with the install and upgrade - values_file = None - if not request_type == "Delete" and not values_text is None: - values = json.loads(values_text) - values_file = os.path.join(outdir, 'values.yaml') - with open(values_file, "w") as f: - f.write(json.dumps(values, indent=2)) - - if request_type == 'Create' or request_type == 'Update': - # Ensure chart or chart_asset_url are set - if chart == None and chart_asset_url == None: - raise RuntimeError(f'chart or chartAsset must be specified') - - if chart_asset_url != None: - assert(chart==None) - assert(repository==None) - assert(version==None) - if not chart_asset_url.startswith('s3://'): - raise RuntimeError(f'ChartAssetURL must point to as s3 location but is {chart_asset_url}') - # future work: support versions from s3 assets - chart = get_chart_asset_from_url(chart_asset_url) - - if repository is not None and repository.startswith('oci://'): - tmpdir = tempfile.TemporaryDirectory() - chart_dir = get_chart_from_oci(tmpdir.name, repository, version) - chart = chart_dir - - helm('upgrade', release, chart, repository, values_file, namespace, version, wait, timeout, create_namespace, atomic=atomic) - elif request_type == "Delete": - try: - helm('uninstall', release, namespace=namespace, wait=wait, timeout=timeout) - except Exception as e: - logger.info("delete error: %s" % e) - - -def get_oci_cmd(repository, version): - # Generates OCI command based on pattern. Public ECR vs Private ECR are treated differently. - private_ecr_pattern = 'oci://(?P\d+\.dkr\.ecr\.(?P[a-z0-9\-]+)\.(?P[a-z0-9\.-]+))*' - public_ecr_pattern = 'oci://(?Ppublic\.ecr\.aws)*' - - private_registry = re.match(private_ecr_pattern, repository).groupdict() - public_registry = re.match(public_ecr_pattern, repository).groupdict() - - if private_registry['registry'] is not None: - logger.info("Found AWS private repository") - cmnd = [ - f"aws ecr get-login-password --region {private_registry['region']} | " \ - f"helm registry login --username AWS --password-stdin {private_registry['registry']}; helm pull {repository} --version {version} --untar" - ] - elif public_registry['registry'] is not None: - logger.info("Found AWS public repository, will use default region as deployment") - region = os.environ.get('AWS_REGION', 'us-east-1') - - if is_ecr_public_available(region): - cmnd = [ - f"aws ecr-public get-login-password --region us-east-1 | " \ - f"helm registry login --username AWS --password-stdin {public_registry['registry']}; helm pull {repository} --version {version} --untar" - ] - else: - # `aws ecr-public get-login-password` and `helm registry login` not required as ecr public is not available in current region - # see https://helm.sh/docs/helm/helm_registry_login/ - cmnd = [f"helm pull {repository} --version {version} --untar"] - else: - logger.error("OCI repository format not recognized, falling back to helm pull") - cmnd = [f"helm pull {repository} --version {version} --untar"] - - return cmnd - - -def get_chart_from_oci(tmpdir, repository = None, version = None): - - cmnd = get_oci_cmd(repository, version) - - maxAttempts = 3 - retry = maxAttempts - while retry > 0: - try: - logger.info(cmnd) - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=tmpdir, shell=True) - logger.info(output) - - # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. - # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service - return os.path.join(tmpdir, repository.rpartition('/')[-1]) - except subprocess.CalledProcessError as exc: - output = exc.output - if b'Broken pipe' in output: - retry = retry - 1 - logger.info("Broken pipe, retries left: %s" % retry) - else: - raise Exception(output) - raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') - - -def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): - import subprocess - - cmnd = ['helm', verb, release] - if not chart is None: - cmnd.append(chart) - if verb == 'upgrade': - cmnd.append('--install') - if create_namespace: - cmnd.append('--create-namespace') - if not repo is None: - cmnd.extend(['--repo', repo]) - if not file is None: - cmnd.extend(['--values', file]) - if not version is None: - cmnd.extend(['--version', version]) - if not namespace is None: - cmnd.extend(['--namespace', namespace]) - if wait: - cmnd.append('--wait') - if skip_crds: - cmnd.append('--skip-crds') - if not timeout is None: - cmnd.extend(['--timeout', timeout]) - if atomic: - cmnd.append('--atomic') - cmnd.extend(['--kubeconfig', kubeconfig]) - - # Log the full helm command for better troubleshooting - logger.info("Running command: %s", cmnd) - - maxAttempts = 3 - retry = maxAttempts - while retry > 0: - try: - output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=outdir) - logger.info(output.decode('utf-8', errors='replace')) - return - except subprocess.CalledProcessError as exc: - output = exc.output - if b'Broken pipe' in output: - retry = retry - 1 - logger.info("Broken pipe, retries left: %s" % retry) - else: - error_message = output.decode('utf-8', errors='replace') - logger.error("Command failed: %s", cmnd) - logger.error("Error output: %s", error_message) - raise Exception(output) - raise Exception(f'Operation failed after {maxAttempts} attempts: {output.decode("utf-8", errors="replace")}') diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/apply/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/apply/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/get/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/get/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py new file mode 100644 index 0000000000000..6c7838f182a45 --- /dev/null +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/helm/__init__.py @@ -0,0 +1,250 @@ +import json +import logging +import os +import re +import subprocess +import shutil +import tempfile +import zipfile +import boto3 + +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +# these are coming from the kubectl layer +os.environ['PATH'] = '/opt/helm:/opt/awscli:' + os.environ['PATH'] + +outdir = os.environ.get('TEST_OUTDIR', '/tmp') +kubeconfig = os.path.join(outdir, 'kubeconfig') + +def get_chart_asset_from_url(chart_asset_url): + chart_zip = os.path.join(outdir, 'chart.zip') + shutil.rmtree(chart_zip, ignore_errors=True) + subprocess.check_call(['aws', 's3', 'cp', chart_asset_url, chart_zip]) + chart_dir = os.path.join(outdir, 'chart') + shutil.rmtree(chart_dir, ignore_errors=True) + os.mkdir(chart_dir) + with zipfile.ZipFile(chart_zip, 'r') as zip_ref: + zip_ref.extractall(chart_dir) + return chart_dir + +def is_ecr_public_available(region): + s = boto3.Session() + return s.get_partition_for_region(region) == 'aws' + +def helm_handler(event, context): + logger.info(json.dumps(dict(event, ResponseURL='...'))) + + request_type = event['RequestType'] + props = event['ResourceProperties'] + + # resource properties + cluster_name = props['ClusterName'] + release = props['Release'] + chart = props.get('Chart', None) + chart_asset_url = props.get('ChartAssetURL', None) + version = props.get('Version', None) + wait = props.get('Wait', False) + atomic = props.get('Atomic', False) + timeout = props.get('Timeout', None) + namespace = props.get('Namespace', None) + create_namespace = props.get('CreateNamespace', None) + repository = props.get('Repository', None) + values_text = props.get('Values', None) + skip_crds = props.get('SkipCrds', False) + + # "log in" to the cluster + subprocess.check_call([ 'aws', 'eks', 'update-kubeconfig', + '--name', cluster_name, + '--kubeconfig', kubeconfig + ]) + + if os.path.isfile(kubeconfig): + os.chmod(kubeconfig, 0o600) + + # Write out the values to a file and include them with the install and upgrade + values_file = None + if not request_type == "Delete" and not values_text is None: + values = json.loads(values_text) + values_file = os.path.join(outdir, 'values.yaml') + with open(values_file, "w") as f: + f.write(json.dumps(values, indent=2)) + + if request_type == 'Create' or request_type == 'Update': + # Ensure chart or chart_asset_url are set + if chart == None and chart_asset_url == None: + raise RuntimeError(f'chart or chartAsset must be specified') + + if chart_asset_url != None: + assert(chart==None) + assert(repository==None) + assert(version==None) + if not chart_asset_url.startswith('s3://'): + raise RuntimeError(f'ChartAssetURL must point to as s3 location but is {chart_asset_url}') + # future work: support versions from s3 assets + chart = get_chart_asset_from_url(chart_asset_url) + + if repository is not None and repository.startswith('oci://'): + tmpdir = tempfile.TemporaryDirectory() + chart_dir = get_chart_from_oci(tmpdir.name, repository, version) + chart = chart_dir + + helm('upgrade', release, chart, repository, values_file, namespace, version, wait, timeout, create_namespace, atomic=atomic) + elif request_type == "Delete": + try: + helm('uninstall', release, namespace=namespace, wait=wait, timeout=timeout) + except Exception as e: + logger.info("delete error: %s" % e) + + +def get_oci_cmd(repository, version): + # Generates OCI command based on pattern. Public ECR vs Private ECR are treated differently. + private_ecr_pattern = 'oci://(?P\d+\.dkr\.ecr\.(?P[a-z0-9\-]+)\.(?P[a-z0-9\.-]+))*' + public_ecr_pattern = 'oci://(?Ppublic\.ecr\.aws)*' + + private_registry = re.match(private_ecr_pattern, repository).groupdict() + public_registry = re.match(public_ecr_pattern, repository).groupdict() + + # Build helm pull command as array + helm_cmd = ['helm', 'pull', repository, '--version', version , '--untar'] + + if private_registry['registry'] is not None: + logger.info("Found AWS private repository") + ecr_login = ['aws', 'ecr', 'get-login-password', '--region', private_registry['region']] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', private_registry['registry']] + return {'ecr_login': ecr_login, 'registry_login': helm_registry_login, 'helm': helm_cmd} + elif public_registry['registry'] is not None: + logger.info("Found AWS public repository, will use default region as deployment") + region = os.environ.get('AWS_REGION', 'us-east-1') + + if is_ecr_public_available(region): + # Public ECR auth is always in us-east-1: https://docs.aws.amazon.com/AmazonECR/latest/public/public-registry-auth.html + ecr_login = ['aws', 'ecr-public', 'get-login-password', '--region', 'us-east-1'] + helm_registry_login = ['helm', 'registry', 'login', '--username', 'AWS', '--password-stdin', public_registry['registry']] + return {'ecr_login': ecr_login, 'helm_registry_login': helm_registry_login, 'helm': helm_cmd} + else: + # No login required for public ECR in non-aws regions + # see https://helm.sh/docs/helm/helm_registry_login/ + return {'helm': helm_cmd} + else: + logger.error("OCI repository format not recognized, falling back to helm pull") + return {'helm': helm_cmd} + + +def get_chart_from_oci(tmpdir, repository=None, version=None): + from subprocess import Popen, PIPE + + commands = get_oci_cmd(repository, version) + + maxAttempts = 3 + retry = maxAttempts + while retry > 0: + try: + # Execute login commands if needed + if 'ecr_login' in commands and 'helm_registry_login' in commands: + logger.info("Running login command: %s", commands['ecr_login']) + logger.info("Running registry login command: %s", commands['helm_registry_login']) + + # Start first process: aws ecr get-login-password + # NOTE: We do NOT call p1.wait() here before starting p2. + # Doing so could deadlock if p1's output fills the pipe buffer + # before p2 starts reading. Instead, start p2 immediately so it + # can consume p1's stdout as it's produced. + p1 = Popen(commands['ecr_login'], stdout=PIPE, stderr=PIPE, cwd=tmpdir) + + # Start second process: helm registry login + p2 = Popen(commands['helm_registry_login'], stdin=p1.stdout, stdout=PIPE, stderr=PIPE, cwd=tmpdir) + p1.stdout.close() # Allow p1 to receive SIGPIPE if p2 exits early + + # Wait for p2 to finish first (ensures full pipeline completes) + _, p2_err = p2.communicate() + + # Now wait for p1 so we have a complete stderr and an exit code + p1.wait() + + # Handle p1 failure + if p1.returncode != 0: + p1_err = p1.stderr.read().decode('utf-8', errors='replace') if p1.stderr else '' + logger.error( + "ECR get-login-password failed for repository %s. Error: %s", + repository, + p1_err or "No error details" + ) + raise subprocess.CalledProcessError(p1.returncode, commands['ecr_login'], p1_err.encode()) + + # Handle p2 failure + if p2.returncode != 0: + logger.error( + "Helm registry authentication failed for repository %s. Error: %s", + repository, + p2_err.decode('utf-8', errors='replace') or "No error details" + ) + raise subprocess.CalledProcessError(p2.returncode, commands['helm_registry_login'], p2_err) + + # Execute helm pull command + logger.info("Running helm command: %s", commands['helm']) + output = subprocess.check_output(commands['helm'], stderr=subprocess.STDOUT, cwd=tmpdir) + logger.info(output) + + # effectively returns "$tmpDir/$lastPartOfOCIUrl", because this is how helm pull saves OCI artifact. + # Eg. if we have oci://9999999999.dkr.ecr.us-east-1.amazonaws.com/foo/bar/pet-service repository, helm saves artifact under $tmpDir/pet-service + return os.path.join(tmpdir, repository.rpartition('/')[-1]) + + except subprocess.CalledProcessError as exc: + output = exc.output + if b'Broken pipe' in output: + retry = retry - 1 + logger.info("Broken pipe, retries left: %s" % retry) + else: + raise Exception(output) + + raise Exception(f'Operation failed after {maxAttempts} attempts: {output}') + + +def helm(verb, release, chart = None, repo = None, file = None, namespace = None, version = None, wait = False, timeout = None, create_namespace = None, skip_crds = False, atomic = False): + cmnd = ['helm', verb, release] + if not chart is None: + cmnd.append(chart) + if verb == 'upgrade': + cmnd.append('--install') + if create_namespace: + cmnd.append('--create-namespace') + if not repo is None: + cmnd.extend(['--repo', repo]) + if not file is None: + cmnd.extend(['--values', file]) + if not version is None: + cmnd.extend(['--version', version]) + if not namespace is None: + cmnd.extend(['--namespace', namespace]) + if wait: + cmnd.append('--wait') + if skip_crds: + cmnd.append('--skip-crds') + if not timeout is None: + cmnd.extend(['--timeout', timeout]) + if atomic: + cmnd.append('--atomic') + cmnd.extend(['--kubeconfig', kubeconfig]) + + # Log the full helm command for better troubleshooting + logger.info("Running command: %s", cmnd) + + maxAttempts = 3 + retry = maxAttempts + while retry > 0: + try: + output = subprocess.check_output(cmnd, stderr=subprocess.STDOUT, cwd=outdir) + logger.info(output.decode('utf-8', errors='replace')) + return + except subprocess.CalledProcessError as exc: + output = exc.output + if b'Broken pipe' in output: + retry = retry - 1 + logger.info("Broken pipe, retries left: %s" % retry) + else: + error_message = output.decode('utf-8', errors='replace') + logger.error("Command failed: %s", cmnd) + logger.error("Error output: %s", error_message) + raise Exception(output) + raise Exception(f'Operation failed after {maxAttempts} attempts: {output.decode("utf-8", errors="replace")}') diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/index.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/index.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py similarity index 100% rename from packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069/patch/__init__.py rename to packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a/patch/__init__.py diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/aws-cdk-eks-v2-alpha-helm-logging-test.assets.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/aws-cdk-eks-v2-alpha-helm-logging-test.assets.json index 248f77428ce4e..af46bdb84fa46 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/aws-cdk-eks-v2-alpha-helm-logging-test.assets.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/aws-cdk-eks-v2-alpha-helm-logging-test.assets.json @@ -15,16 +15,16 @@ } } }, - "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069": { + "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a": { "displayName": "Cluster/KubectlProvider/Handler/Code", "source": { - "path": "asset.872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069", + "path": "asset.94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a", "packaging": "zip" }, "destinations": { - "current_account-current_region-0ee668da": { + "current_account-current_region-5b09798b": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip", + "objectKey": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -57,16 +57,16 @@ } } }, - "3b02ad9173b556033423f40fd128bf0f9101099caf994cdf03a9940f8fb10e33": { + "7104890b13ddde371c573efa663094ebd4ddfbb6fd646fb1ca044f4f35f93131": { "displayName": "aws-cdk-eks-v2-alpha-helm-logging-test Template", "source": { "path": "aws-cdk-eks-v2-alpha-helm-logging-test.template.json", "packaging": "file" }, "destinations": { - "current_account-current_region-ee75d895": { + "current_account-current_region-0191d476": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3b02ad9173b556033423f40fd128bf0f9101099caf994cdf03a9940f8fb10e33.json", + "objectKey": "7104890b13ddde371c573efa663094ebd4ddfbb6fd646fb1ca044f4f35f93131.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/aws-cdk-eks-v2-alpha-helm-logging-test.template.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/aws-cdk-eks-v2-alpha-helm-logging-test.template.json index fc5aaa2eaab68..2c6bd52bb66bd 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/aws-cdk-eks-v2-alpha-helm-logging-test.template.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/aws-cdk-eks-v2-alpha-helm-logging-test.template.json @@ -767,7 +767,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip" + "S3Key": "94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip" }, "Description": "onEvent handler for EKS kubectl resource provider", "Environment": { diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/manifest.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/manifest.json index 4aaa7d2ad2cad..ec7aad530cd47 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/manifest.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/manifest.json @@ -1,5 +1,5 @@ { - "version": "45.0.0", + "version": "48.0.0", "artifacts": { "aws-cdk-eks-v2-alpha-helm-logging-test.assets": { "type": "cdk:asset-manifest", @@ -18,7 +18,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/3b02ad9173b556033423f40fd128bf0f9101099caf994cdf03a9940f8fb10e33.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/7104890b13ddde371c573efa663094ebd4ddfbb6fd646fb1ca044f4f35f93131.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -653,7 +653,7 @@ "runtime": "*", "handler": "*", "timeout": "*", - "logFormat": "*", + "loggingFormat": "JSON", "applicationLogLevelV2": "FATAL", "logGroup": "*", "vpc": "*", @@ -1224,6 +1224,7 @@ "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model." }, "@aws-cdk/core:explicitStackTags": { + "userValue": true, "recommendedValue": true, "explanation": "When enabled, stack tags need to be assigned explicitly on a Stack." }, @@ -1376,5 +1377,5 @@ } } }, - "minimumCliVersion": "2.1020.2" + "minimumCliVersion": "2.1023.0" } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/tree.json b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/tree.json index 54decec3e5de4..557e3690128cc 100644 --- a/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/tree.json +++ b/packages/@aws-cdk/aws-eks-v2-alpha/test/integ.helm-chart-logging.js.snapshot/tree.json @@ -1 +1 @@ -{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"aws-cdk-eks-v2-alpha-helm-logging-test":{"id":"aws-cdk-eks-v2-alpha-helm-logging-test","path":"aws-cdk-eks-v2-alpha-helm-logging-test","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"Vpc":{"id":"Vpc","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"natGateways":"*","restrictDefaultSecurityGroup":false}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"kubectlLayer":{"id":"kubectlLayer","path":"aws-cdk-eks-v2-alpha-helm-logging-test/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-v2-alpha-helm-logging-test/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-v2-alpha-helm-logging-test/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-v2-alpha-helm-logging-test/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*"]},"children":{"Role":{"id":"Role","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":["sts:AssumeRole","sts:TagSession"],"Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSComputePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSBlockStoragePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSLoadBalancingPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSNetworkingPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"ClusternodePoolRole":{"id":"ClusternodePoolRole","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/ClusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]}]},"children":{"ImportClusternodePoolRole":{"id":"ImportClusternodePoolRole","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/ClusternodePoolRole/ImportClusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/ClusternodePoolRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":true,"nodePools":["system","general-purpose"],"nodeRoleArn":{"Fn::GetAtt":["ClusterClusternodePoolRole69276141","Arn"]}},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":true}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":true}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"872f17c2bcde7a48a7d2a0dfc5e58a15d25a49c136492a93249a39ce93062069.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"LogGroup":{"id":"LogGroup","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"0.0.0","metadata":[{"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/lambda/",{"Ref":"ClusterKubectlProviderHandler2E05C68A"}]]},"retentionInDays":731}}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logFormat":"*","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]},{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"LogGroup":{"id":"LogGroup","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"0.0.0","metadata":[{"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/lambda/",{"Ref":"ClusterKubectlProviderframeworkonEvent68E0CF80"}]]},"retentionInDays":731}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}},"chart-aws-load-balancer-controller":{"id":"chart-aws-load-balancer-controller","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/chart-aws-load-balancer-controller","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/chart-aws-load-balancer-controller/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/chart-aws-load-balancer-controller/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"aws-cdk-eks-v2-alpha-helm-logging-test/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-v2-alpha-helm-logging-test/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-v2-alpha-helm-logging-test/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-eks-v2-alpha-helm-logging":{"id":"aws-cdk-eks-v2-alpha-helm-logging","path":"aws-cdk-eks-v2-alpha-helm-logging","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-eks-v2-alpha-helm-logging/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-v2-alpha-helm-logging/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-eks-v2-alpha-helm-logging/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-v2-alpha-helm-logging/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-v2-alpha-helm-logging/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file +{"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"0.0.0"},"children":{"aws-cdk-eks-v2-alpha-helm-logging-test":{"id":"aws-cdk-eks-v2-alpha-helm-logging-test","path":"aws-cdk-eks-v2-alpha-helm-logging-test","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"Vpc":{"id":"Vpc","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"0.0.0","metadata":[{"natGateways":"*","restrictDefaultSecurityGroup":false}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc"}]}}},"PublicSubnet1":{"id":"PublicSubnet1","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{},{"addNatGateway":["*"]}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet1RouteTable6C95E38E"}}}},"EIP":{"id":"EIP","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1/EIP","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnEIP","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::EIP","aws:cdk:cloudformation:props":{"domain":"vpc","tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1"}]}}},"NATGateway":{"id":"NATGateway","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1/NATGateway","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnNatGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::NatGateway","aws:cdk:cloudformation:props":{"allocationId":{"Fn::GetAtt":["VpcPublicSubnet1EIPD7E02669","AllocationId"]},"subnetId":{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet1"}]}}}}},"PublicSubnet2":{"id":"PublicSubnet2","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.64.0/18","mapPublicIpOnLaunch":true,"tags":[{"key":"aws-cdk:subnet-name","value":"Public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"},"subnetId":{"Ref":"VpcPublicSubnet2Subnet691E08A3"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PublicSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"VpcIGWD7BA715C"},"routeTableId":{"Ref":"VpcPublicSubnet2RouteTable94F7E489"}}}}}},"PrivateSubnet1":{"id":"PrivateSubnet1","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"},"subnetId":{"Ref":"VpcPrivateSubnet1Subnet536B997A"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet1/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet1RouteTableB2C5B500"}}}}}},"PrivateSubnet2":{"id":"PrivateSubnet2","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"0.0.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]},"children":{"Subnet":{"id":"Subnet","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.192.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"Private"},{"key":"aws-cdk:subnet-type","value":"Private"},{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"kubernetes.io/role/internal-elb","value":"1"},{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"},"subnetId":{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}}}},"DefaultRoute":{"id":"DefaultRoute","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/PrivateSubnet2/DefaultRoute","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","natGatewayId":{"Ref":"VpcPublicSubnet1NATGateway4D7517AA"},"routeTableId":{"Ref":"VpcPrivateSubnet2RouteTableA678073B"}}}}}},"IGW":{"id":"IGW","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/IGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc"}]}}},"VPCGW":{"id":"VPCGW","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Vpc/VPCGW","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"VpcIGWD7BA715C"},"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"kubectlLayer":{"id":"kubectlLayer","path":"aws-cdk-eks-v2-alpha-helm-logging-test/kubectlLayer","constructInfo":{"fqn":"@aws-cdk/lambda-layer-kubectl-v32.KubectlV32Layer","version":"2.1.0","metadata":["*"]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-v2-alpha-helm-logging-test/kubectlLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-v2-alpha-helm-logging-test/kubectlLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-v2-alpha-helm-logging-test/kubectlLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/kubectlLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"6094cb0ff874f89ab5ab24fb6b9417df0fdeb6966645f90c88ec1d7e28130112.zip"},"description":"/opt/kubectl/kubectl 1.32.3; /opt/helm/helm 3.17.2","licenseInfo":"Apache-2.0"}}}}},"Cluster":{"id":"Cluster","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.Cluster","version":"0.0.0","metadata":["*","*"]},"children":{"Role":{"id":"Role","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/Role","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]}]},"children":{"ImportRole":{"id":"ImportRole","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/Role/ImportRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/Role/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":["sts:AssumeRole","sts:TagSession"],"Effect":"Allow","Principal":{"Service":"eks.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSClusterPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSComputePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSBlockStoragePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSLoadBalancingPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSNetworkingPolicy"]]}]}}}}},"ControlPlaneSecurityGroup":{"id":"ControlPlaneSecurityGroup","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/ControlPlaneSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"0.0.0","metadata":[{"vpc":"*","description":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/ControlPlaneSecurityGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"EKS Control Plane Security Group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"ClusternodePoolRole":{"id":"ClusternodePoolRole","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/ClusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]}]},"children":{"ImportClusternodePoolRole":{"id":"ImportClusternodePoolRole","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/ClusternodePoolRole/ImportClusternodePoolRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/ClusternodePoolRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEKSWorkerNodePolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]}]}}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnCluster","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::Cluster","aws:cdk:cloudformation:props":{"accessConfig":{"authenticationMode":"API"},"computeConfig":{"enabled":true,"nodePools":["system","general-purpose"],"nodeRoleArn":{"Fn::GetAtt":["ClusterClusternodePoolRole69276141","Arn"]}},"kubernetesNetworkConfig":{"ipFamily":"ipv4","elasticLoadBalancing":{"enabled":true}},"resourcesVpcConfig":{"securityGroupIds":[{"Fn::GetAtt":["ClusterControlPlaneSecurityGroupD274242C","GroupId"]}],"subnetIds":[{"Ref":"VpcPublicSubnet1Subnet5C2D37C4"},{"Ref":"VpcPublicSubnet2Subnet691E08A3"},{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"endpointPrivateAccess":true,"endpointPublicAccess":true},"roleArn":{"Fn::GetAtt":["ClusterRoleFA261979","Arn"]},"storageConfig":{"blockStorage":{"enabled":true}},"version":"1.32"}}},"KubectlReadyBarrier":{"id":"KubectlReadyBarrier","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlReadyBarrier","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}},"ClusterSecurityGroup":{"id":"ClusterSecurityGroup","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/ClusterSecurityGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"KubectlProvider":{"id":"KubectlProvider","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.KubectlProvider","version":"0.0.0"},"children":{"Handler":{"id":"Handler","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"timeout":"*","description":"*","memorySize":"*","environment":"*","role":"*","code":"*","handler":"*","runtime":"*","vpc":"*","securityGroups":["*"],"vpcSubnets":{"subnets":["*","*"]}},{"addEnvironment":["*","*"]},{"addLayers":["*"]},{"addLayers":["*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":[{"managedPolicyArn":"*"}]},{"addManagedPolicy":["*"]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"]]},{"Fn::If":["ClusterKubectlProviderHandlerHasEcrPublic69E09706",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly"]]},{"Ref":"AWS::NoValue"}]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"eks:DescribeCluster","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterEB0386A7","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderHandlerServiceRoleDefaultPolicy77317198","roles":[{"Ref":"ClusterKubectlProviderHandlerServiceRoleB460AA6D"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"94e52507a8326eadb61b8c6f1c7b4ad47ba88b62592e82cfa15ffe85dc2c745a.zip"},"description":"onEvent handler for EKS kubectl resource provider","environment":{"variables":{"AWS_STS_REGIONAL_ENDPOINTS":"regional"}},"handler":"index.handler","layers":[{"Ref":"ClusterKubectlProviderAwsCliLayer24064B0B"},{"Ref":"kubectlLayer44321E08"}],"memorySize":1024,"role":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]},"runtime":"python3.11","timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"LogGroup":{"id":"LogGroup","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"0.0.0","metadata":[{"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/lambda/",{"Ref":"ClusterKubectlProviderHandler2E05C68A"}]]},"retentionInDays":731}}}}},"HasEcrPublic":{"id":"HasEcrPublic","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Handler/HasEcrPublic","constructInfo":{"fqn":"aws-cdk-lib.CfnCondition","version":"0.0.0"}}}},"AwsCliLayer":{"id":"AwsCliLayer","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/AwsCliLayer","constructInfo":{"fqn":"aws-cdk-lib.lambda_layer_awscli.AwsCliLayer","version":"0.0.0","metadata":[{}]},"children":{"Code":{"id":"Code","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/AwsCliLayer/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/AwsCliLayer/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/AwsCliLayer/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/AwsCliLayer/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnLayerVersion","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::LayerVersion","aws:cdk:cloudformation:props":{"content":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"c49d356cac773d491c5f7ac148995a1181498a8e289429f8612a7f7e3814f535.zip"},"description":"/opt/awscli/aws"}}}}},"ConditionalPolicyArn":{"id":"ConditionalPolicyArn","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/ConditionalPolicyArn","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"conditionalPolicy":{"id":"conditionalPolicy","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/conditionalPolicy","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":[]}},"Provider":{"id":"Provider","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider","constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"0.0.0"},"children":{"framework-onEvent":{"id":"framework-onEvent","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"0.0.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","loggingFormat":"JSON","applicationLogLevelV2":"FATAL","logGroup":"*","vpc":"*","vpcSubnets":{"subnets":["*","*"]},"securityGroups":["*"],"role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"0.0.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"0.0.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"0.0.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]},":*"]]}]},{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}],"Version":"2012-10-17"},"policyName":"ClusterKubectlProviderframeworkonEventServiceRoleDefaultPolicyA4F24629","roles":[{"Ref":"ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5"}]}}}}}}},"Code":{"id":"Code","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"0.0.0"},"children":{"Stage":{"id":"Stage","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"0.0.0"}},"AssetBucket":{"id":"AssetBucket","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"0.0.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"39472b1c2875cf306d4ba429aeccdd34cb49bcf59dbde81f7e6b6cb9deac23a6.zip"},"description":"AWS CDK resource provider framework - onEvent (aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["ClusterKubectlProviderHandler2E05C68A","Arn"]}}},"handler":"framework.onEvent","loggingConfig":{"logFormat":"JSON","applicationLogLevel":"FATAL"},"role":{"Fn::GetAtt":["ClusterKubectlProviderframeworkonEventServiceRoleFD0BA8C5","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900,"vpcConfig":{"subnetIds":[{"Ref":"VpcPrivateSubnet1Subnet536B997A"},{"Ref":"VpcPrivateSubnet2Subnet3788AAA1"}],"securityGroupIds":[{"Fn::GetAtt":["ClusterEB0386A7","ClusterSecurityGroupId"]}]}}}},"LogGroup":{"id":"LogGroup","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"0.0.0","metadata":[{"logGroupName":"*"}]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/KubectlProvider/Provider/framework-onEvent/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"logGroupName":{"Fn::Join":["",["/aws/lambda/",{"Ref":"ClusterKubectlProviderframeworkonEvent68E0CF80"}]]},"retentionInDays":731}}}}}}}}}}},"ClusterAdminRoleAccess":{"id":"ClusterAdminRoleAccess","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/ClusterAdminRoleAccess","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.AccessEntry","version":"0.0.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/ClusterAdminRoleAccess/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_eks.CfnAccessEntry","version":"0.0.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EKS::AccessEntry","aws:cdk:cloudformation:props":{"accessPolicies":[{"accessScope":{"type":"cluster"},"policyArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"]]}}],"clusterName":{"Ref":"ClusterEB0386A7"},"principalArn":{"Fn::GetAtt":["ClusterKubectlProviderHandlerServiceRoleB460AA6D","Arn"]}}}}}},"chart-aws-load-balancer-controller":{"id":"chart-aws-load-balancer-controller","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/chart-aws-load-balancer-controller","constructInfo":{"fqn":"@aws-cdk/aws-eks-v2-alpha.HelmChart","version":"0.0.0"},"children":{"Resource":{"id":"Resource","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/chart-aws-load-balancer-controller/Resource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"0.0.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-v2-alpha-helm-logging-test/Cluster/chart-aws-load-balancer-controller/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"0.0.0"}}}}}}}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"aws-cdk-eks-v2-alpha-helm-logging-test/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"0.0.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-v2-alpha-helm-logging-test/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-v2-alpha-helm-logging-test/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}},"aws-cdk-eks-v2-alpha-helm-logging":{"id":"aws-cdk-eks-v2-alpha-helm-logging","path":"aws-cdk-eks-v2-alpha-helm-logging","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"0.0.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"aws-cdk-eks-v2-alpha-helm-logging/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"0.0.0"},"children":{"Default":{"id":"Default","path":"aws-cdk-eks-v2-alpha-helm-logging/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"aws-cdk-eks-v2-alpha-helm-logging/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"0.0.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"aws-cdk-eks-v2-alpha-helm-logging/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"0.0.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"aws-cdk-eks-v2-alpha-helm-logging/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"0.0.0"}}}}}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}} \ No newline at end of file