From 6c200ccc2500fedf99516363b41d6fab2fef2f1a Mon Sep 17 00:00:00 2001 From: Boris Erdmann Date: Mon, 8 Mar 2021 13:15:54 +0100 Subject: [PATCH] feat(#45): Migrate add-on from custom resource to CfnAddon construct (#76) In order to align this project with the progress of CloudFormation and CDK move away from custom resources for creation of add-ons. To migrate an exisiting cluster: * Remove the add-on via web console or cli * re-deploy the updated stack * Add the add-on via web console or cli using the pre-deployed role (same version as before, choose "resolve conflicts") --- .projen/deps.json | 26 +- .projenrc.js | 2 +- package-lock.json | 571 ++++++++++++++-------------- package.json | 26 +- src/constructs/eks-managed-addon.ts | 62 +-- test/constructs/super-eks.test.ts | 15 +- 6 files changed, 331 insertions(+), 371 deletions(-) diff --git a/.projen/deps.json b/.projen/deps.json index 0c09c44..b66742a 100644 --- a/.projen/deps.json +++ b/.projen/deps.json @@ -2,37 +2,37 @@ "dependencies": [ { "name": "@aws-cdk/assert", - "version": "^1.91.0", + "version": "^1.92.0", "type": "build" }, { "name": "@aws-cdk/aws-ec2", - "version": "^1.91.0", + "version": "^1.92.0", "type": "build" }, { "name": "@aws-cdk/aws-eks", - "version": "^1.91.0", + "version": "^1.92.0", "type": "build" }, { "name": "@aws-cdk/aws-iam", - "version": "^1.91.0", + "version": "^1.92.0", "type": "build" }, { "name": "@aws-cdk/aws-route53", - "version": "^1.91.0", + "version": "^1.92.0", "type": "build" }, { "name": "@aws-cdk/core", - "version": "^1.91.0", + "version": "^1.92.0", "type": "build" }, { "name": "@aws-cdk/custom-resources", - "version": "^1.91.0", + "version": "^1.92.0", "type": "build" }, { @@ -122,32 +122,32 @@ }, { "name": "@aws-cdk/aws-ec2", - "version": "^1.91.0", + "version": "^1.92.0", "type": "peer" }, { "name": "@aws-cdk/aws-eks", - "version": "^1.91.0", + "version": "^1.92.0", "type": "peer" }, { "name": "@aws-cdk/aws-iam", - "version": "^1.91.0", + "version": "^1.92.0", "type": "peer" }, { "name": "@aws-cdk/aws-route53", - "version": "^1.91.0", + "version": "^1.92.0", "type": "peer" }, { "name": "@aws-cdk/core", - "version": "^1.91.0", + "version": "^1.92.0", "type": "peer" }, { "name": "@aws-cdk/custom-resources", - "version": "^1.91.0", + "version": "^1.92.0", "type": "peer" }, { diff --git a/.projenrc.js b/.projenrc.js index ad2c8f5..1939f38 100644 --- a/.projenrc.js +++ b/.projenrc.js @@ -3,7 +3,7 @@ const { AwsCdkConstructLibrary, NodePackageManager } = require('projen'); const project = new AwsCdkConstructLibrary({ author: 'superluminar', authorAddress: 'https://superluminar.io', - cdkVersion: '1.91.0', + cdkVersion: '1.92.0', defaultReleaseBranch: 'main', jsiiFqn: 'projen.AwsCdkConstructLibrary', name: '@superluminar-io/super-eks', diff --git a/package-lock.json b/package-lock.json index aef6ca9..edce822 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,164 +5,164 @@ "requires": true, "dependencies": { "@aws-cdk/assert": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/assert/-/assert-1.91.0.tgz", - "integrity": "sha512-pMsRyWQdXmDzo9xkwdUd9nNxrquvKsiLuArIOsPQ75kuIjvexiamuemSsgnjXsWBrweyxCtCAsVmTAbPrtTKQg==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/assert/-/assert-1.92.0.tgz", + "integrity": "sha512-m9CdsfMnN3K53/fKL3VbB6G2SfSvNe5+alKfniH+tIPiOB/BV88WBYrTV8pv9N7XWejhQKFUSGky19BFjm9q5w==", "dev": true, "requires": { - "@aws-cdk/cloud-assembly-schema": "1.91.0", - "@aws-cdk/cloudformation-diff": "1.91.0", - "@aws-cdk/core": "1.91.0", - "@aws-cdk/cx-api": "1.91.0", + "@aws-cdk/cloud-assembly-schema": "1.92.0", + "@aws-cdk/cloudformation-diff": "1.92.0", + "@aws-cdk/core": "1.92.0", + "@aws-cdk/cx-api": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/assets": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/assets/-/assets-1.91.0.tgz", - "integrity": "sha512-EOveDypWuy5pyeW5fS8W0+pvWEt1IrpjF8VBB0mZ1Y4LncidOf2sHC7FPUVjK0+Xa2kgXHhO/BJ57UURPk79NA==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/assets/-/assets-1.92.0.tgz", + "integrity": "sha512-E1mOudHqBuP5cvF0/o6d5QWwKaTIv0dXbx06b/ZM0sAzLCyLJKHHbU6GbOAyOw6PSxXG6L8kvON4R/XFdqpWWQ==", "dev": true, "requires": { - "@aws-cdk/core": "1.91.0", - "@aws-cdk/cx-api": "1.91.0", + "@aws-cdk/core": "1.92.0", + "@aws-cdk/cx-api": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/aws-applicationautoscaling": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-applicationautoscaling/-/aws-applicationautoscaling-1.91.0.tgz", - "integrity": "sha512-kbrSeMy7QGYY+LfzZEBVSylogRrWZKDmQgze7///fSiX9jWk8aMo82+svunBElJvH8GzuODZ5cjDwYFHbu0u6A==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-applicationautoscaling/-/aws-applicationautoscaling-1.92.0.tgz", + "integrity": "sha512-bHuLPE4vQtTeOeRAisXZA1am1QAz1UJnnDkE/mKqcwFbQIg+viTSCvvwABhUMAH7sAGJst26f1X3/PoTOmYizg==", "dev": true, "requires": { - "@aws-cdk/aws-autoscaling-common": "1.91.0", - "@aws-cdk/aws-cloudwatch": "1.91.0", - "@aws-cdk/aws-iam": "1.91.0", - "@aws-cdk/core": "1.91.0", + "@aws-cdk/aws-autoscaling-common": "1.92.0", + "@aws-cdk/aws-cloudwatch": "1.92.0", + "@aws-cdk/aws-iam": "1.92.0", + "@aws-cdk/core": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/aws-autoscaling": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling/-/aws-autoscaling-1.91.0.tgz", - "integrity": "sha512-8P/Ssm9W3FCjQ56Aowg3NakFSaLHbNT7sDcRrAtc1kfi5DZpcGk7Hih1/54H5i+U5ybNg6VSAjnVHJZJ44GoCg==", - "dev": true, - "requires": { - "@aws-cdk/aws-autoscaling-common": "1.91.0", - "@aws-cdk/aws-cloudwatch": "1.91.0", - "@aws-cdk/aws-ec2": "1.91.0", - "@aws-cdk/aws-elasticloadbalancing": "1.91.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.91.0", - "@aws-cdk/aws-iam": "1.91.0", - "@aws-cdk/aws-sns": "1.91.0", - "@aws-cdk/core": "1.91.0", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling/-/aws-autoscaling-1.92.0.tgz", + "integrity": "sha512-zslsaOQJBypRx0f2KqnRihtmEShP7r6jQrD27xCCATRH1f7cXgdxPgyQ2Os0tx5ZV5L+juBH6kvIVyciAPZtUw==", + "dev": true, + "requires": { + "@aws-cdk/aws-autoscaling-common": "1.92.0", + "@aws-cdk/aws-cloudwatch": "1.92.0", + "@aws-cdk/aws-ec2": "1.92.0", + "@aws-cdk/aws-elasticloadbalancing": "1.92.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.92.0", + "@aws-cdk/aws-iam": "1.92.0", + "@aws-cdk/aws-sns": "1.92.0", + "@aws-cdk/core": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/aws-autoscaling-common": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling-common/-/aws-autoscaling-common-1.91.0.tgz", - "integrity": "sha512-VJojgKstJvl559dRr4Twt3F7+puY6omJA7dLss9wcOA8QEWK1msVXtc7RzIpFnfG6pJKnAP1xfRyuvXerxdp1Q==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling-common/-/aws-autoscaling-common-1.92.0.tgz", + "integrity": "sha512-eANhYu4zAWHPfogYpuypz7OKfsXsbDWeISgt2I4WrIuJKSvVdH+XPkA1OOz2SfFe1NXN12czhLlA6NiWDuL8wg==", "dev": true, "requires": { - "@aws-cdk/aws-iam": "1.91.0", - "@aws-cdk/core": "1.91.0", + "@aws-cdk/aws-iam": "1.92.0", + "@aws-cdk/core": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/aws-certificatemanager": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-certificatemanager/-/aws-certificatemanager-1.91.0.tgz", - "integrity": "sha512-KFw3qXVPKKAh2Et6wp70jYR/C319Q6eT4X8bQ5G1U522yYb6ce2BsNGQoc+lUGTZnOkT+g7jtF4iGf3d8E7k7A==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-certificatemanager/-/aws-certificatemanager-1.92.0.tgz", + "integrity": "sha512-XH9IivSAr9OiCljQ0CqFTMZuB7qtfoDCPhUG3xK2ZYmkr8KfDAL3c64bIDn0wrgPnEPjg1vML/QZqIyG1yO7RQ==", "dev": true, "requires": { - "@aws-cdk/aws-iam": "1.91.0", - "@aws-cdk/aws-lambda": "1.91.0", - "@aws-cdk/aws-route53": "1.91.0", - "@aws-cdk/core": "1.91.0", + "@aws-cdk/aws-iam": "1.92.0", + "@aws-cdk/aws-lambda": "1.92.0", + "@aws-cdk/aws-route53": "1.92.0", + "@aws-cdk/core": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/aws-cloudformation": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudformation/-/aws-cloudformation-1.91.0.tgz", - "integrity": "sha512-achmiaUR9/hbO5sJBjtGRwI78CZ+L7gK9yvmeUVpI9+7cUqHS8/MXA6RbJ5vbPuFt3yQW0rbbhtI8oba8S06JA==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudformation/-/aws-cloudformation-1.92.0.tgz", + "integrity": "sha512-rM0kqqn5dNqlNlay5DMShTKCS/grNz5lYHSq7vYWu1Cx3uxT5HNhRL7eAFeJULarfDZv+wnmIPwJqKq46HksbA==", "dev": true, "requires": { - "@aws-cdk/aws-iam": "1.91.0", - "@aws-cdk/aws-lambda": "1.91.0", - "@aws-cdk/aws-s3": "1.91.0", - "@aws-cdk/aws-sns": "1.91.0", - "@aws-cdk/core": "1.91.0", - "@aws-cdk/cx-api": "1.91.0", + "@aws-cdk/aws-iam": "1.92.0", + "@aws-cdk/aws-lambda": "1.92.0", + "@aws-cdk/aws-s3": "1.92.0", + "@aws-cdk/aws-sns": "1.92.0", + "@aws-cdk/core": "1.92.0", + "@aws-cdk/cx-api": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/aws-cloudwatch": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudwatch/-/aws-cloudwatch-1.91.0.tgz", - "integrity": "sha512-x78C9dUCqLQqKMu/alCdxPYin6kbp7wC6GiBHLg3g9adINOVX9rueYhqepSG72P5RJmOxYzI9QpZY40LjA4yHA==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudwatch/-/aws-cloudwatch-1.92.0.tgz", + "integrity": "sha512-GrTsWhwIFFh3JUO1wqHyfLaVvdau1NvvK4FMO8sCpkBhC+qDNqOh417zI82KbOvzIgvv14uZwFfSlCpCsM3f1w==", "dev": true, "requires": { - "@aws-cdk/aws-iam": "1.91.0", - "@aws-cdk/core": "1.91.0", + "@aws-cdk/aws-iam": "1.92.0", + "@aws-cdk/core": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/aws-codeguruprofiler": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-codeguruprofiler/-/aws-codeguruprofiler-1.91.0.tgz", - "integrity": "sha512-OEixTxX18q0JX4jVZLTn8zrjBJUbwBZ7hHUu+8oozEJ0pP6EKy4axc3igp942FfAJj4/XWaTd4zakgMv7BXkBQ==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-codeguruprofiler/-/aws-codeguruprofiler-1.92.0.tgz", + "integrity": "sha512-PaxG82IBG6niYrBiUmGc15q2KCB3g6S9qscHTVhZt212V0RbVgADNlZfthqEEE8rBNoV6KD6aYEtUpaV+nMT6g==", "dev": true, "requires": { - "@aws-cdk/aws-iam": "1.91.0", - "@aws-cdk/core": "1.91.0", + "@aws-cdk/aws-iam": "1.92.0", + "@aws-cdk/core": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/aws-ec2": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.91.0.tgz", - "integrity": "sha512-Kd+q3sP5rNhUcShXiboy2vPQGWRrS2lGyig5JZDdVix+OB9eyL2L5NgAzElTlUXp7GA7GebewA3Ir7QPBSjZsA==", - "dev": true, - "requires": { - "@aws-cdk/aws-cloudwatch": "1.91.0", - "@aws-cdk/aws-iam": "1.91.0", - "@aws-cdk/aws-kms": "1.91.0", - "@aws-cdk/aws-logs": "1.91.0", - "@aws-cdk/aws-s3": "1.91.0", - "@aws-cdk/aws-s3-assets": "1.91.0", - "@aws-cdk/aws-ssm": "1.91.0", - "@aws-cdk/cloud-assembly-schema": "1.91.0", - "@aws-cdk/core": "1.91.0", - "@aws-cdk/cx-api": "1.91.0", - "@aws-cdk/region-info": "1.91.0", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.92.0.tgz", + "integrity": "sha512-JAa4mMcGP/CezVg9ew3EZ41NRVRhhmqGkv2tk9BMkBmI14GcK2IwUDyN9/fZE5vsN/puYWJvffjFMDC7k2qPdA==", + "dev": true, + "requires": { + "@aws-cdk/aws-cloudwatch": "1.92.0", + "@aws-cdk/aws-iam": "1.92.0", + "@aws-cdk/aws-kms": "1.92.0", + "@aws-cdk/aws-logs": "1.92.0", + "@aws-cdk/aws-s3": "1.92.0", + "@aws-cdk/aws-s3-assets": "1.92.0", + "@aws-cdk/aws-ssm": "1.92.0", + "@aws-cdk/cloud-assembly-schema": "1.92.0", + "@aws-cdk/core": "1.92.0", + "@aws-cdk/cx-api": "1.92.0", + "@aws-cdk/region-info": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/aws-ecr": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecr/-/aws-ecr-1.91.0.tgz", - "integrity": "sha512-quDShMk48pH6sH0z95+h/Velw7k1T6Ir3bxCV4ACgLGxqN882/e3o164VrL+eFvZMlR8uLYEnpZseK8APTvAYg==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecr/-/aws-ecr-1.92.0.tgz", + "integrity": "sha512-quw+Z5YzRIoEjzAGU8xynB6qTFH8vVeqPORwrGX/kDETmXguxXrPAMoOPewO4fvPOKVOk71OCGtLTnuzsZ5pgA==", "dev": true, "requires": { - "@aws-cdk/aws-events": "1.91.0", - "@aws-cdk/aws-iam": "1.91.0", - "@aws-cdk/core": "1.91.0", + "@aws-cdk/aws-events": "1.92.0", + "@aws-cdk/aws-iam": "1.92.0", + "@aws-cdk/core": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/aws-ecr-assets": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecr-assets/-/aws-ecr-assets-1.91.0.tgz", - "integrity": "sha512-9xYS229WuNDGxzJWX3I7uY+9HvkCvcoNbHXIBvwLND2xKXK8O0mOeIuQyAdJilHZYpQYhw6tLCHCei0aBFBR3g==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecr-assets/-/aws-ecr-assets-1.92.0.tgz", + "integrity": "sha512-vdkNH3lQaLEaEo/v/kXIDmvCiTyNFnVv/XuGnN/nEODrY/1ZH3D6mzyDRPtsJUlA1RP95lGMsBn5dh40kxFMug==", "dev": true, "requires": { - "@aws-cdk/assets": "1.91.0", - "@aws-cdk/aws-ecr": "1.91.0", - "@aws-cdk/aws-iam": "1.91.0", - "@aws-cdk/aws-s3": "1.91.0", - "@aws-cdk/core": "1.91.0", - "@aws-cdk/cx-api": "1.91.0", + "@aws-cdk/assets": "1.92.0", + "@aws-cdk/aws-ecr": "1.92.0", + "@aws-cdk/aws-iam": "1.92.0", + "@aws-cdk/aws-s3": "1.92.0", + "@aws-cdk/core": "1.92.0", + "@aws-cdk/cx-api": "1.92.0", "constructs": "^3.2.0", "minimatch": "^3.0.4" }, @@ -197,35 +197,35 @@ } }, "@aws-cdk/aws-efs": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-efs/-/aws-efs-1.91.0.tgz", - "integrity": "sha512-p/iWucxM1YjbKY29ecQvg4CFKJCNSi+ujvXAf8SmJPCplM1LKlC7Sbb2xSmTsZlPcGEu1HpY31FvpPHtZgxRng==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-efs/-/aws-efs-1.92.0.tgz", + "integrity": "sha512-V26Wuq1VFYmk/F3xzX0l0xv2pCTylU56YvVpk3CEsnSQfVVD6wGgrRZkODUcMlU3vNXRiNnX/Og+IUV4Omp4Xw==", "dev": true, "requires": { - "@aws-cdk/aws-ec2": "1.91.0", - "@aws-cdk/aws-kms": "1.91.0", - "@aws-cdk/cloud-assembly-schema": "1.91.0", - "@aws-cdk/core": "1.91.0", - "@aws-cdk/cx-api": "1.91.0", + "@aws-cdk/aws-ec2": "1.92.0", + "@aws-cdk/aws-kms": "1.92.0", + "@aws-cdk/cloud-assembly-schema": "1.92.0", + "@aws-cdk/core": "1.92.0", + "@aws-cdk/cx-api": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/aws-eks": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-eks/-/aws-eks-1.91.0.tgz", - "integrity": "sha512-f8Qx3AWVzhWK6/HstAMscuGZ2efnC8BFpqU3tf67zVkyc04YlnTd2et3ipwwDbJZMiH1Wf3VOv4LeQLT0GeTjg==", - "dev": true, - "requires": { - "@aws-cdk/aws-autoscaling": "1.91.0", - "@aws-cdk/aws-ec2": "1.91.0", - "@aws-cdk/aws-iam": "1.91.0", - "@aws-cdk/aws-kms": "1.91.0", - "@aws-cdk/aws-lambda": "1.91.0", - "@aws-cdk/aws-ssm": "1.91.0", - "@aws-cdk/core": "1.91.0", - "@aws-cdk/custom-resources": "1.91.0", - "@aws-cdk/lambda-layer-awscli": "1.91.0", - "@aws-cdk/lambda-layer-kubectl": "1.91.0", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-eks/-/aws-eks-1.92.0.tgz", + "integrity": "sha512-CNSqsj84ZYpupINdn+XI8uocMfu77T3KeUPoDPn/JdKsFwHOE558LJJAaYRGZOOgV4AKbJlt3hbQ82ehXYi4WQ==", + "dev": true, + "requires": { + "@aws-cdk/aws-autoscaling": "1.92.0", + "@aws-cdk/aws-ec2": "1.92.0", + "@aws-cdk/aws-iam": "1.92.0", + "@aws-cdk/aws-kms": "1.92.0", + "@aws-cdk/aws-lambda": "1.92.0", + "@aws-cdk/aws-ssm": "1.92.0", + "@aws-cdk/core": "1.92.0", + "@aws-cdk/custom-resources": "1.92.0", + "@aws-cdk/lambda-layer-awscli": "1.92.0", + "@aws-cdk/lambda-layer-kubectl": "1.92.0", "constructs": "^3.2.0", "yaml": "1.10.0" }, @@ -238,206 +238,217 @@ } }, "@aws-cdk/aws-elasticloadbalancing": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-elasticloadbalancing/-/aws-elasticloadbalancing-1.91.0.tgz", - "integrity": "sha512-ZcJaXHMO7KRVFrnnWtVOuy0vzV4DuT2xpO31sZ+UrWh2kxvHAlu4tZOwN7a5BypRH7HpQv6wTaUTtlDhPLJ4gQ==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-elasticloadbalancing/-/aws-elasticloadbalancing-1.92.0.tgz", + "integrity": "sha512-0sQxJaUmi1Lm7rPmFu+lHeKpSByYk3yctq0bkaPu4Gtns1KMK7UiW/MTR//6rc1tITXwcHVDHrqhGquHnHtuTg==", "dev": true, "requires": { - "@aws-cdk/aws-ec2": "1.91.0", - "@aws-cdk/core": "1.91.0", + "@aws-cdk/aws-ec2": "1.92.0", + "@aws-cdk/core": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/aws-elasticloadbalancingv2": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-elasticloadbalancingv2/-/aws-elasticloadbalancingv2-1.91.0.tgz", - "integrity": "sha512-m3JITeu2P1gv3jclC5MM5NN8h3YQv3IssSzuc5OloWI3u3J9f2dSh2V+M7o/JKeXmLpanqZJTl2rSmRJwWLVQA==", - "dev": true, - "requires": { - "@aws-cdk/aws-certificatemanager": "1.91.0", - "@aws-cdk/aws-cloudwatch": "1.91.0", - "@aws-cdk/aws-ec2": "1.91.0", - "@aws-cdk/aws-iam": "1.91.0", - "@aws-cdk/aws-lambda": "1.91.0", - "@aws-cdk/aws-s3": "1.91.0", - "@aws-cdk/cloud-assembly-schema": "1.91.0", - "@aws-cdk/core": "1.91.0", - "@aws-cdk/cx-api": "1.91.0", - "@aws-cdk/region-info": "1.91.0", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-elasticloadbalancingv2/-/aws-elasticloadbalancingv2-1.92.0.tgz", + "integrity": "sha512-+gPN2PXHaJTjWlUdX0lmBKjBnYlV6ZpH4YWQzCp3KxMRImZa4J47AjPCGaNTUL2jTXu7f9kzWxBdI3pCuPJufA==", + "dev": true, + "requires": { + "@aws-cdk/aws-certificatemanager": "1.92.0", + "@aws-cdk/aws-cloudwatch": "1.92.0", + "@aws-cdk/aws-ec2": "1.92.0", + "@aws-cdk/aws-iam": "1.92.0", + "@aws-cdk/aws-lambda": "1.92.0", + "@aws-cdk/aws-s3": "1.92.0", + "@aws-cdk/cloud-assembly-schema": "1.92.0", + "@aws-cdk/core": "1.92.0", + "@aws-cdk/cx-api": "1.92.0", + "@aws-cdk/region-info": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/aws-events": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-events/-/aws-events-1.91.0.tgz", - "integrity": "sha512-t8LSGahCTPgIBUKk1N0Bx35Xvc0nhSHxchtckjXgEBYun6w+85YA5eU9/gTZrpOqTwXt2CbZBDrbem86zsnj8g==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-events/-/aws-events-1.92.0.tgz", + "integrity": "sha512-u/SsljSnjzh7ChdLhD5gHqcES/84jyNkQQ6RGe4uCNleL6qZxJXxo7/utWgzQSiAdVdKyMsxNKgrLETnF2FaFQ==", "dev": true, "requires": { - "@aws-cdk/aws-iam": "1.91.0", - "@aws-cdk/core": "1.91.0", + "@aws-cdk/aws-iam": "1.92.0", + "@aws-cdk/core": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/aws-iam": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-iam/-/aws-iam-1.91.0.tgz", - "integrity": "sha512-5+poD3JCrBEsE6n1jLLnE81Yp4Qs7aY+TKo+CaHfaaiBozyTZA+yavEvuYQ3QiIJmswRziWMxZ/24uGUcPHH4A==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-iam/-/aws-iam-1.92.0.tgz", + "integrity": "sha512-cO11Ikx5Sjwcn3lunlRTD90JFfz1xS5dYJGVSMmRaEKaBSWK7p3WQsnvakefuNsLPXhORKq8rnLzksaHeJHJuA==", "dev": true, "requires": { - "@aws-cdk/core": "1.91.0", - "@aws-cdk/region-info": "1.91.0", + "@aws-cdk/core": "1.92.0", + "@aws-cdk/region-info": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/aws-kms": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-kms/-/aws-kms-1.91.0.tgz", - "integrity": "sha512-JkblXVovy7ds7c6dmFEY3Fx2583RIrrPWdG6XyQ3N5SJ3Dgyb0bpwKCBom/YasDKB9QH0g3wZSELC/Ne2lTapQ==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-kms/-/aws-kms-1.92.0.tgz", + "integrity": "sha512-vKZRRIGV78lEO7xOYyNZzELRChxjPxzdC6RP3LMwZMlMZYRxcj5kRdpLh9SKscqByHxwA8rqW8FvxdJV9Y1bOw==", "dev": true, "requires": { - "@aws-cdk/aws-iam": "1.91.0", - "@aws-cdk/core": "1.91.0", - "@aws-cdk/cx-api": "1.91.0", + "@aws-cdk/aws-iam": "1.92.0", + "@aws-cdk/core": "1.92.0", + "@aws-cdk/cx-api": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/aws-lambda": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-lambda/-/aws-lambda-1.91.0.tgz", - "integrity": "sha512-8wcrpdKi1XR7LmP3I5zfOSoKDa8eSV+zfugJATXGoawrhfLgMff28j/wuphqjbGZzmHGNyCWaCfQmusy9voZsw==", - "dev": true, - "requires": { - "@aws-cdk/aws-applicationautoscaling": "1.91.0", - "@aws-cdk/aws-cloudwatch": "1.91.0", - "@aws-cdk/aws-codeguruprofiler": "1.91.0", - "@aws-cdk/aws-ec2": "1.91.0", - "@aws-cdk/aws-ecr": "1.91.0", - "@aws-cdk/aws-ecr-assets": "1.91.0", - "@aws-cdk/aws-efs": "1.91.0", - "@aws-cdk/aws-events": "1.91.0", - "@aws-cdk/aws-iam": "1.91.0", - "@aws-cdk/aws-kms": "1.91.0", - "@aws-cdk/aws-logs": "1.91.0", - "@aws-cdk/aws-s3": "1.91.0", - "@aws-cdk/aws-s3-assets": "1.91.0", - "@aws-cdk/aws-sqs": "1.91.0", - "@aws-cdk/core": "1.91.0", - "@aws-cdk/cx-api": "1.91.0", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-lambda/-/aws-lambda-1.92.0.tgz", + "integrity": "sha512-YWNG7Ag2CbA+uybjeWn9JgDeIZPe3MkhCOzdrbTwYOOFobzXgapgSp+f6ZyJf2N0TB3xT4mMroJDGcVIzDsLGA==", + "dev": true, + "requires": { + "@aws-cdk/aws-applicationautoscaling": "1.92.0", + "@aws-cdk/aws-cloudwatch": "1.92.0", + "@aws-cdk/aws-codeguruprofiler": "1.92.0", + "@aws-cdk/aws-ec2": "1.92.0", + "@aws-cdk/aws-ecr": "1.92.0", + "@aws-cdk/aws-ecr-assets": "1.92.0", + "@aws-cdk/aws-efs": "1.92.0", + "@aws-cdk/aws-events": "1.92.0", + "@aws-cdk/aws-iam": "1.92.0", + "@aws-cdk/aws-kms": "1.92.0", + "@aws-cdk/aws-logs": "1.92.0", + "@aws-cdk/aws-s3": "1.92.0", + "@aws-cdk/aws-s3-assets": "1.92.0", + "@aws-cdk/aws-signer": "1.92.0", + "@aws-cdk/aws-sqs": "1.92.0", + "@aws-cdk/core": "1.92.0", + "@aws-cdk/cx-api": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/aws-logs": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-logs/-/aws-logs-1.91.0.tgz", - "integrity": "sha512-D293Lb5E3VF03OKT123S+TNi5UFaj08ivsfRcFhbcAiMnNOoHJEClhU2dFiq/6nTYMfoSxvsqyvHBQrY3lUzNw==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-logs/-/aws-logs-1.92.0.tgz", + "integrity": "sha512-/SCRQqoAt36z7g7xXXyoI1vPPCk1VE+ziTACeM7laSAEQwiSQQLUPehCdDnNVHoSmTX6arrWacM4ZNeHjNG+CA==", "dev": true, "requires": { - "@aws-cdk/aws-cloudwatch": "1.91.0", - "@aws-cdk/aws-iam": "1.91.0", - "@aws-cdk/aws-kms": "1.91.0", - "@aws-cdk/aws-s3-assets": "1.91.0", - "@aws-cdk/core": "1.91.0", + "@aws-cdk/aws-cloudwatch": "1.92.0", + "@aws-cdk/aws-iam": "1.92.0", + "@aws-cdk/aws-kms": "1.92.0", + "@aws-cdk/aws-s3-assets": "1.92.0", + "@aws-cdk/core": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/aws-route53": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-route53/-/aws-route53-1.91.0.tgz", - "integrity": "sha512-24+j16xKRxgDVDRs/8g8WuA8Dzqn3abfmJJ1DEQdwunh1VCEaRfoI0hHRawdZ9qGf52qYkmgumcGNAuJcrTA2Q==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-route53/-/aws-route53-1.92.0.tgz", + "integrity": "sha512-Nk/9iToeji774GJq/cp/3C3e7/koAMIUmuaM4Hrr3vcP4ce01D6AF8G/Q8BhGqgk9saxBYyl4DId4zAbp75MlQ==", "dev": true, "requires": { - "@aws-cdk/aws-ec2": "1.91.0", - "@aws-cdk/aws-iam": "1.91.0", - "@aws-cdk/aws-logs": "1.91.0", - "@aws-cdk/cloud-assembly-schema": "1.91.0", - "@aws-cdk/core": "1.91.0", - "@aws-cdk/custom-resources": "1.91.0", + "@aws-cdk/aws-ec2": "1.92.0", + "@aws-cdk/aws-iam": "1.92.0", + "@aws-cdk/aws-logs": "1.92.0", + "@aws-cdk/cloud-assembly-schema": "1.92.0", + "@aws-cdk/core": "1.92.0", + "@aws-cdk/custom-resources": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/aws-s3": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3/-/aws-s3-1.91.0.tgz", - "integrity": "sha512-P2871i/1ofyrU7+Scicv4lQs4kXGnuft6eFUJJJesFvE6Nr/Oy3KRSnqWm0ju0TM+IlgYUMQJApR/pAxNiTHxQ==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3/-/aws-s3-1.92.0.tgz", + "integrity": "sha512-/DP79m0NrxRVU7ndZ1dRWjVv82fY+tGfaOJ1iUMab5QfpIq3fMRcvbr9ARFh0//ICWDf+ob6k0n0H12HNqyohw==", "dev": true, "requires": { - "@aws-cdk/aws-events": "1.91.0", - "@aws-cdk/aws-iam": "1.91.0", - "@aws-cdk/aws-kms": "1.91.0", - "@aws-cdk/core": "1.91.0", - "@aws-cdk/cx-api": "1.91.0", + "@aws-cdk/aws-events": "1.92.0", + "@aws-cdk/aws-iam": "1.92.0", + "@aws-cdk/aws-kms": "1.92.0", + "@aws-cdk/core": "1.92.0", + "@aws-cdk/cx-api": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/aws-s3-assets": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3-assets/-/aws-s3-assets-1.91.0.tgz", - "integrity": "sha512-nRePKMnc8Sg+Z2owjKIeswZmdjm+9jfYUlUFgBjF20YqV9xDFb6E8ckFtagbNcehgrmOqc6xxWnyBtZR1Mehww==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3-assets/-/aws-s3-assets-1.92.0.tgz", + "integrity": "sha512-fPxKXMrdarMtHtMLZqc7ivYZPL55JG4V/Mi+qHlmfw7QVJ+TPf/Glb5+I2Y+Dn2EbpiNKIgE2Vy+okp2nfaL0Q==", "dev": true, "requires": { - "@aws-cdk/assets": "1.91.0", - "@aws-cdk/aws-iam": "1.91.0", - "@aws-cdk/aws-kms": "1.91.0", - "@aws-cdk/aws-s3": "1.91.0", - "@aws-cdk/core": "1.91.0", - "@aws-cdk/cx-api": "1.91.0", + "@aws-cdk/assets": "1.92.0", + "@aws-cdk/aws-iam": "1.92.0", + "@aws-cdk/aws-kms": "1.92.0", + "@aws-cdk/aws-s3": "1.92.0", + "@aws-cdk/core": "1.92.0", + "@aws-cdk/cx-api": "1.92.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-signer": { + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-signer/-/aws-signer-1.92.0.tgz", + "integrity": "sha512-QDGiqjCyRaJsVYKjS1aumndHfbrWeT56XSLz2I+YnoJgQr1UXABxXa1biZoydu4hG8ae1ELchqSgPfYm4xColw==", + "dev": true, + "requires": { + "@aws-cdk/core": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/aws-sns": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sns/-/aws-sns-1.91.0.tgz", - "integrity": "sha512-QZn2+IJ2w/sppz7D4Mn4Uy9+vppRYdSQgPXzLhZ/+3J8tSO7ZNbgmmu2Ks0Ww06kCq6KxUIvTxyWR+EhxNWTBg==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sns/-/aws-sns-1.92.0.tgz", + "integrity": "sha512-oxXyKKwU2Vu5XQpcFF1Eg99IicEIf9ajcxz0AlBcFT1/xTf8SMzajd54vL4mcoCiQaRXgteubnZC9Ce5RAvT8g==", "dev": true, "requires": { - "@aws-cdk/aws-cloudwatch": "1.91.0", - "@aws-cdk/aws-events": "1.91.0", - "@aws-cdk/aws-iam": "1.91.0", - "@aws-cdk/aws-kms": "1.91.0", - "@aws-cdk/aws-sqs": "1.91.0", - "@aws-cdk/core": "1.91.0", + "@aws-cdk/aws-cloudwatch": "1.92.0", + "@aws-cdk/aws-events": "1.92.0", + "@aws-cdk/aws-iam": "1.92.0", + "@aws-cdk/aws-kms": "1.92.0", + "@aws-cdk/aws-sqs": "1.92.0", + "@aws-cdk/core": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/aws-sqs": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sqs/-/aws-sqs-1.91.0.tgz", - "integrity": "sha512-sqchVrCncD+rFR9CZnHWIhzSmEqLo/jiwghLK4bKOZyzcFCLqNoSyNUubCcPS8OBjlW+BMx5cr3CQN8T3LRslw==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sqs/-/aws-sqs-1.92.0.tgz", + "integrity": "sha512-otInXJQwoOWc8dx8HYfu5GDrV5DCnqaYnNLNitNyfJ3Eiq6fVnL6EuetPDdgf9PK7hMlKqKtaVJK7WoNiwgwSw==", "dev": true, "requires": { - "@aws-cdk/aws-cloudwatch": "1.91.0", - "@aws-cdk/aws-iam": "1.91.0", - "@aws-cdk/aws-kms": "1.91.0", - "@aws-cdk/core": "1.91.0", + "@aws-cdk/aws-cloudwatch": "1.92.0", + "@aws-cdk/aws-iam": "1.92.0", + "@aws-cdk/aws-kms": "1.92.0", + "@aws-cdk/core": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/aws-ssm": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ssm/-/aws-ssm-1.91.0.tgz", - "integrity": "sha512-iMbJ1bboYJMYC5XQjE1wP75ZNajVYLQ49rKIcJs0G7gChigacM2l8a6gQgA1KmtzHtuP+/pD8UmM8IjpAJTaMw==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ssm/-/aws-ssm-1.92.0.tgz", + "integrity": "sha512-+1zI2yL4jS6HKtOpD+YUxXLU//BqWRs836wbFzZTpewnjRiCeXyEkA7ZLUBzis+W4uCCrxvbDM7sVbVpi1N3iQ==", "dev": true, "requires": { - "@aws-cdk/aws-iam": "1.91.0", - "@aws-cdk/aws-kms": "1.91.0", - "@aws-cdk/cloud-assembly-schema": "1.91.0", - "@aws-cdk/core": "1.91.0", + "@aws-cdk/aws-iam": "1.92.0", + "@aws-cdk/aws-kms": "1.92.0", + "@aws-cdk/cloud-assembly-schema": "1.92.0", + "@aws-cdk/core": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/cfnspec": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cfnspec/-/cfnspec-1.91.0.tgz", - "integrity": "sha512-DQ4uxcq86p+IzI0G94NjTyzMU5/6FqQFRtl33b/WpdscBQgi1pmcMLWEB+EnV6sGxDcEx3eDQAHUgW5JVgx9Xg==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cfnspec/-/cfnspec-1.92.0.tgz", + "integrity": "sha512-S1vDfN7DuoUlsAVyJI0yhPJhRqQIWWwLN4W8e9Zs8KqQdECHl8Ivxq4sSupIPlTog0uPwlPnP/vixAU5JLWIWw==", "dev": true, "requires": { "md5": "^2.3.0" } }, "@aws-cdk/cloud-assembly-schema": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.91.0.tgz", - "integrity": "sha512-gauXsfersDNDHdszDIbSkM2UG/xZmfLqurzw5aqYWFPmPML5a8Izx5hhjwnTKBO5+gQeQxiv9Zc4q5vBI1ScLQ==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.92.0.tgz", + "integrity": "sha512-xRdNjwN49KlkKh3k/h/tSK3dEoxiHvbKi/aYXbBjwynRseCEPoeZTJ+BdMagdAt6uFTt6L3DpdoilQ0m2AJKSQ==", "dev": true, "requires": { "jsonschema": "^1.4.0", @@ -473,28 +484,28 @@ } }, "@aws-cdk/cloudformation-diff": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloudformation-diff/-/cloudformation-diff-1.91.0.tgz", - "integrity": "sha512-JSm8p96+3mhluwFP+kcqmqHAHELrClEIKcDPcBmsurUkkg1+84yoWYUg5nFMFJCKeTL5E5q7ugUqswYuvxgbSw==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloudformation-diff/-/cloudformation-diff-1.92.0.tgz", + "integrity": "sha512-csUTFjauB2sNOQz6wjQO5SmSDnxNzOThkSjfYpHmCWMw8yRqV31+L6hqEN5A7Pnyd6uQnTCJlM6OgIyjP2OzTQ==", "dev": true, "requires": { - "@aws-cdk/cfnspec": "1.91.0", + "@aws-cdk/cfnspec": "1.92.0", "colors": "^1.4.0", "diff": "^5.0.0", "fast-deep-equal": "^3.1.3", - "string-width": "^4.2.0", + "string-width": "^4.2.2", "table": "^6.0.7" } }, "@aws-cdk/core": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/core/-/core-1.91.0.tgz", - "integrity": "sha512-fdHsIgpKcWpWpYpmeDTldRcc2IKbjf4J9433kYxBZ/x4cSck8Wl0yP96XU5rHihQio+u51J1d9QIKyoRHZADVA==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/core/-/core-1.92.0.tgz", + "integrity": "sha512-8zYkHHU2lVUjNFI0gEb1SZoRutUYeZfr9Ea2UhL+kxj4CstNUGnHanO2qC/EcXkTi6zjuD1D9NpuWNFJNaDsIA==", "dev": true, "requires": { - "@aws-cdk/cloud-assembly-schema": "1.91.0", - "@aws-cdk/cx-api": "1.91.0", - "@aws-cdk/region-info": "1.91.0", + "@aws-cdk/cloud-assembly-schema": "1.92.0", + "@aws-cdk/cx-api": "1.92.0", + "@aws-cdk/region-info": "1.92.0", "@balena/dockerignore": "^1.0.2", "constructs": "^3.2.0", "fs-extra": "^9.1.0", @@ -577,28 +588,28 @@ } }, "@aws-cdk/custom-resources": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/custom-resources/-/custom-resources-1.91.0.tgz", - "integrity": "sha512-Jcnx5zDaJJq8uOpVZ4U63bEIKMW9P6Lf2Spaif6b2Sw1WpE3jCJNu7mjGI+jZMwBQ6s+Q7d8GgO65gnuFM3TLQ==", - "dev": true, - "requires": { - "@aws-cdk/aws-cloudformation": "1.91.0", - "@aws-cdk/aws-ec2": "1.91.0", - "@aws-cdk/aws-iam": "1.91.0", - "@aws-cdk/aws-lambda": "1.91.0", - "@aws-cdk/aws-logs": "1.91.0", - "@aws-cdk/aws-sns": "1.91.0", - "@aws-cdk/core": "1.91.0", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/custom-resources/-/custom-resources-1.92.0.tgz", + "integrity": "sha512-4BMZBoWvvf373shLZTaX9shYLiRL8l1cSZdhsx8aRCAV8QXAxFEMpY0+jUot3cDgzOi31+uBQKaKExcVb5K7IA==", + "dev": true, + "requires": { + "@aws-cdk/aws-cloudformation": "1.92.0", + "@aws-cdk/aws-ec2": "1.92.0", + "@aws-cdk/aws-iam": "1.92.0", + "@aws-cdk/aws-lambda": "1.92.0", + "@aws-cdk/aws-logs": "1.92.0", + "@aws-cdk/aws-sns": "1.92.0", + "@aws-cdk/core": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/cx-api": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.91.0.tgz", - "integrity": "sha512-5IDKq+R8BANrq2SCRLF6FJLZUNCDW8WWhs8hrCNZ8tOGlmxu1+whffTwVDj7Mb+aLb5+KlhavAhUYRaS2Ex7cA==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.92.0.tgz", + "integrity": "sha512-bUFnwGxvMrt5ktKrk0/lZuzifz5R8TFMW3mI2Egz44qLWPdzogJZnom/Camls2bi5TjTmPwf2mukP3GDeWe81A==", "dev": true, "requires": { - "@aws-cdk/cloud-assembly-schema": "1.91.0", + "@aws-cdk/cloud-assembly-schema": "1.92.0", "semver": "^7.3.4" }, "dependencies": { @@ -626,31 +637,31 @@ } }, "@aws-cdk/lambda-layer-awscli": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/lambda-layer-awscli/-/lambda-layer-awscli-1.91.0.tgz", - "integrity": "sha512-swfUPdBqYZk3ZzEH4qIjDlZIL6iH/1JhGhpOsx08m9p8uSUhX+hBt59QhgqItQNIs53IvlPov8SlsPzy3Yhy2A==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/lambda-layer-awscli/-/lambda-layer-awscli-1.92.0.tgz", + "integrity": "sha512-0Hewh6nYDgBFD+FsMMigxLmXKH8C3e1fiIGBidzJe7Y6K8tor9NUDjuUMFeGd8udqyNg0dNNpyRAVo01mGcw+Q==", "dev": true, "requires": { - "@aws-cdk/aws-lambda": "1.91.0", - "@aws-cdk/core": "1.91.0", + "@aws-cdk/aws-lambda": "1.92.0", + "@aws-cdk/core": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/lambda-layer-kubectl": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/lambda-layer-kubectl/-/lambda-layer-kubectl-1.91.0.tgz", - "integrity": "sha512-c02V6jY3boiKimYjNWD0CmmjTb+V91DxGltYsIwYcGMGqJJPopPverx9RAvt3GgJNMs6JWDG61ayDej8W70yww==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/lambda-layer-kubectl/-/lambda-layer-kubectl-1.92.0.tgz", + "integrity": "sha512-VRtayPjf4DqCKALL73QfwQ2xJuKTTEBgiJTa44+erDHSickpMqnz9QA2brX02OuaB5yw7YtgQwCGCW9l51lrxg==", "dev": true, "requires": { - "@aws-cdk/aws-lambda": "1.91.0", - "@aws-cdk/core": "1.91.0", + "@aws-cdk/aws-lambda": "1.92.0", + "@aws-cdk/core": "1.92.0", "constructs": "^3.2.0" } }, "@aws-cdk/region-info": { - "version": "1.91.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/region-info/-/region-info-1.91.0.tgz", - "integrity": "sha512-/iYYx5BDHfOeKO6yOW2+oNOZ9Cd3K8kmPJsX6b7WgOt69w6hK4GrnaV5c4a/nQ5N5AMwwDNTnRhlvm94nH9gLA==", + "version": "1.92.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/region-info/-/region-info-1.92.0.tgz", + "integrity": "sha512-wGCtgpdg4JirfC2vOZBQWYcEevKq/YWcwGz9xOmWeQ6bcCLYrEJSPlhw29+Fv0yGrg4AeRGqrXemRP6EUIjx5g==", "dev": true }, "@babel/code-frame": { @@ -2554,9 +2565,9 @@ } }, "constructs": { - "version": "3.3.43", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.3.43.tgz", - "integrity": "sha512-4Fi9XuoYAPkVrimpU/fo3SOUxB3cS/WjP77DGeJl1o0vsYsggqeBHRLK6GxRG7vpmnOhiyDlBIazJkMuR6YWuQ==", + "version": "3.3.59", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.3.59.tgz", + "integrity": "sha512-Ota6dYnal7RH3xNvAnlkYAotAjx73EUXg8qIG3NFFF1tdvsM1aIa19y8T1MdD7k6BxTfMgfrt+wnNWcHJORPvQ==", "dev": true }, "contains-path": { diff --git a/package.json b/package.json index 1fce2f1..a689cff 100644 --- a/package.json +++ b/package.json @@ -29,13 +29,13 @@ "organization": true }, "devDependencies": { - "@aws-cdk/assert": "^1.91.0", - "@aws-cdk/aws-ec2": "^1.91.0", - "@aws-cdk/aws-eks": "^1.91.0", - "@aws-cdk/aws-iam": "^1.91.0", - "@aws-cdk/aws-route53": "^1.91.0", - "@aws-cdk/core": "^1.91.0", - "@aws-cdk/custom-resources": "^1.91.0", + "@aws-cdk/assert": "^1.92.0", + "@aws-cdk/aws-ec2": "^1.92.0", + "@aws-cdk/aws-eks": "^1.92.0", + "@aws-cdk/aws-iam": "^1.92.0", + "@aws-cdk/aws-route53": "^1.92.0", + "@aws-cdk/core": "^1.92.0", + "@aws-cdk/custom-resources": "^1.92.0", "@types/jest": "^26.0.20", "@types/node": "^14.0.0", "@typescript-eslint/eslint-plugin": "^4.15.2", @@ -58,12 +58,12 @@ "typescript": "^4.1.0" }, "peerDependencies": { - "@aws-cdk/aws-ec2": "^1.91.0", - "@aws-cdk/aws-eks": "^1.91.0", - "@aws-cdk/aws-iam": "^1.91.0", - "@aws-cdk/aws-route53": "^1.91.0", - "@aws-cdk/core": "^1.91.0", - "@aws-cdk/custom-resources": "^1.91.0", + "@aws-cdk/aws-ec2": "^1.92.0", + "@aws-cdk/aws-eks": "^1.92.0", + "@aws-cdk/aws-iam": "^1.92.0", + "@aws-cdk/aws-route53": "^1.92.0", + "@aws-cdk/core": "^1.92.0", + "@aws-cdk/custom-resources": "^1.92.0", "constructs": "^3.2.27" }, "bundledDependencies": [], diff --git a/src/constructs/eks-managed-addon.ts b/src/constructs/eks-managed-addon.ts index 445652a..3f93fe5 100644 --- a/src/constructs/eks-managed-addon.ts +++ b/src/constructs/eks-managed-addon.ts @@ -1,7 +1,6 @@ import * as eks from '@aws-cdk/aws-eks'; import * as iam from '@aws-cdk/aws-iam'; import * as cdk from '@aws-cdk/core'; -import * as cr from '@aws-cdk/custom-resources'; export interface VpcCniAddonProps extends EksManagedAddonProps { readonly addonVersion?: VpcCniAddonVersion; @@ -65,22 +64,17 @@ interface EksManagedAddonAbstractProps { readonly namespace?: string; } -abstract class EksManagedAddonAbstract extends cdk.Construct { +abstract class EksManagedAddonAbstract extends eks.CfnAddon { protected constructor(scope: cdk.Construct, id: string, props: EksManagedAddonAbstractProps) { - super(scope, id); - const cluster = props.cluster; const namespace = props.namespace || 'kube-system'; - const resolveConflicts = props.resolveConflicts ? 'OVERWRITE' : 'NONE'; - const baseParameters = { - addonName: props.addonName, + super(scope, id, { clusterName: cluster.clusterName, - }; - const addonVersionParameter = props.addonVersion ? { addonVersion: props.addonVersion.version } : {}; - - let serviceAccountRoleParameter = {}; - let customResourcePassRoleStatement: iam.PolicyStatement[] = []; + addonName: props.addonName, + addonVersion: props.addonVersion?.version, + resolveConflicts: props.resolveConflicts ? 'OVERWRITE' : 'NONE', + }); if (props.serviceAccountName) { const serviceAccountRole = new iam.Role(this, 'ServiceAccountRole', { @@ -98,49 +92,9 @@ abstract class EksManagedAddonAbstract extends cdk.Construct { iam.ManagedPolicy.fromAwsManagedPolicyName(props.awsManagedPolicyName), ); } - serviceAccountRoleParameter = { serviceAccountRoleArn: serviceAccountRole.roleArn }; - customResourcePassRoleStatement = [new iam.PolicyStatement({ - actions: ['iam:PassRole'], - resources: [serviceAccountRole.roleArn], - })]; - } - - const createUpdateParameters = { - parameters: { - ...baseParameters, - ...serviceAccountRoleParameter, - ...addonVersionParameter, - resolveConflicts: resolveConflicts, - }, - physicalResourceId: cr.PhysicalResourceId.of(`${cluster.clusterArn}/${props.addonName}`), - }; - new cr.AwsCustomResource(this, 'ManagedAddon', { - onCreate: { - service: 'EKS', - action: 'createAddon', - ...createUpdateParameters, - }, - onUpdate: { - service: 'EKS', - action: 'updateAddon', - ...createUpdateParameters, - }, - onDelete: { - service: 'EKS', - action: 'deleteAddon', - parameters: baseParameters, - }, - policy: { - statements: [ - new iam.PolicyStatement({ - actions: ['eks:CreateAddon', 'eks:UpdateAddon', 'eks:DeleteAddon'], - resources: ['*'], - }), - ...customResourcePassRoleStatement, - ], - }, - }); + this.serviceAccountRoleArn = serviceAccountRole.roleArn; + } } } diff --git a/test/constructs/super-eks.test.ts b/test/constructs/super-eks.test.ts index b598197..adceab4 100644 --- a/test/constructs/super-eks.test.ts +++ b/test/constructs/super-eks.test.ts @@ -30,26 +30,21 @@ test('It installs managed VPC CNI Addon', () => { }); // THEN - expect(stack).toHaveResourceLike('Custom::AWS', { - Create: { - service: 'EKS', - action: 'createAddon', - parameters: { - addonName: 'vpc-cni', - }, - }, + expect(stack).toHaveResourceLike('AWS::EKS::Addon', { + AddonName: 'vpc-cni', + ResolveConflicts: 'NONE', }); // Default NodeGroup can be found by specifying abscense of `NodegroupName` expect(stack).toHaveResourceLike('AWS::EKS::Nodegroup', { Properties: { NodegroupName: ABSENT }, - DependsOn: arrayWith(stringLike('*VpcCniAddonManagedAddon*')), + DependsOn: arrayWith(stringLike('*VpcCniAddon*')), }, ResourcePart.CompleteDefinition); expect(stack).toHaveResourceLike('AWS::EKS::Nodegroup', { Properties: { NodegroupName: 'super-eks' }, - DependsOn: arrayWith(stringLike('*VpcCniAddonManagedAddon*')), + DependsOn: arrayWith(stringLike('*VpcCniAddon*')), }, ResourcePart.CompleteDefinition); });