From a2c3ea76a3ace1b824046c24df6e8be9cfc0363a Mon Sep 17 00:00:00 2001 From: Anna Mager <78752267+twelvemo@users.noreply.github.com> Date: Mon, 3 Apr 2023 16:20:28 +0200 Subject: [PATCH] chore:use nested stack for ecr repos (#1) * chore:use nested stack for ecr repos * ecr nested stack works for single repo * chore: add ecrRepoNames input and loop over repos * chore: hardcode repos and create imagePullSecret * chore: add pullsecret without yaml manifest --------- Co-authored-by: Srihas Konduru <115004077+srihas-g@users.noreply.github.com> --- cluster.ts | 132 ++++-- ecr.ts | 44 +- main.ts | 15 +- package-lock.json | 1113 ++++----------------------------------------- package.json | 8 +- pullsecret.ts | 24 + teams.ts | 16 +- 7 files changed, 250 insertions(+), 1102 deletions(-) create mode 100644 pullsecret.ts diff --git a/cluster.ts b/cluster.ts index cefcb09..d324351 100644 --- a/cluster.ts +++ b/cluster.ts @@ -1,62 +1,94 @@ -import * as blueprints from '@aws-quickstart/eks-blueprints'; -import { GlobalResources, utils, ImportHostedZoneProvider} from '@aws-quickstart/eks-blueprints'; -import { Construct } from 'constructs'; -import { TeamPlatform } from './teams'; -import * as cdk from 'aws-cdk-lib' -import * as ecr from 'aws-cdk-lib/aws-ecr' -import { ECRRegistry } from './ecr'; +import * as blueprints from "@aws-quickstart/eks-blueprints"; +import { + GlobalResources, + utils, + ImportHostedZoneProvider, +} from "@aws-quickstart/eks-blueprints"; +import { Construct } from "constructs"; +import { TeamPlatform } from "./teams"; +import * as cdk from "aws-cdk-lib"; +import * as eks from "aws-cdk-lib/aws-eks"; +import * as iam from "aws-cdk-lib/aws-iam"; +import { ECRRepository } from "./ecr"; +import { KubernetesVersion } from "aws-cdk-lib/aws-eks"; +import { DeployImagePullSecret } from "./pullsecret"; //const burnhamManifestDir = './lib/teams/team-burnham/' //const rikerManifestDir = './lib/teams/team-riker/' //const teamManifestDirList = [burnhamManifestDir, rikerManifestDir] const accountID = process.env.CDK_DEFAULT_ACCOUNT!; -const gitUrl = 'https://github.com/aws-samples/eks-blueprints-workloads.git'; - +const gitUrl = "https://github.com/aws-samples/eks-blueprints-workloads.git"; /** * See docs/patterns/nginx.md for mode details on the setup. */ -export default class DevCluster extends cdk.Stack{ - - async buildAsync(scope: Construct, id: string) { - const teams: Array = [ - new TeamPlatform(accountID) - ]; - - const subdomain: string = utils.valueFromContext(scope, "dev.marketplace", "sys.garden"); - - blueprints.HelmAddOn.validateHelmVersions = false; - - - await blueprints.EksBlueprint.builder() - .account("049586690729") - .region("eu-central-1") - .teams(...teams) - .resourceProvider(GlobalResources.HostedZone ,new ImportHostedZoneProvider('Z028702323WOQ31QJAJJP', subdomain)) - .resourceProvider(GlobalResources.Certificate, new blueprints.CreateCertificateProvider('wildcard-cert', "*.dev.marketplace.sys.garden", GlobalResources.HostedZone)) - .addOns( - new blueprints.VpcCniAddOn(), - new blueprints.CoreDnsAddOn(), - new blueprints.CertManagerAddOn, - new blueprints.AwsLoadBalancerControllerAddOn, - new blueprints.ExternalDnsAddOn({ - hostedZoneResources: [blueprints.GlobalResources.HostedZone] // you can add more if you register resource providers - }), - new blueprints.NginxAddOn({ - version: "0.15.2", - internetFacing: true, - backendProtocol: "tcp", - externalDnsHostname: subdomain, - crossZoneEnabled: false, - certificateResourceName: GlobalResources.Certificate, - }), - new blueprints.SecretsStoreAddOn({ rotationPollInterval: "120s" }), - new blueprints.ClusterAutoScalerAddOn) - .buildAsync(scope, `${id}-eks`); - - blueprints.HelmAddOn.validateHelmVersions = false; - } -} +export default class DevCluster extends cdk.Stack { + async eksCluster(scope: Construct, id: string) { + const repoNames: string[] = ["api", "result", "vote", "worker"]; + // new ECRRepository(repoNames, this, 'garden-repo') + + const teams: Array = [new TeamPlatform(accountID)]; + const subdomain: string = utils.valueFromContext( + scope, + "dev.marketplace", + "sys.garden" + ); + blueprints.HelmAddOn.validateHelmVersions = false; + + const cluster = await blueprints.EksBlueprint.builder() + .account("049586690729") + .region("eu-central-1") + .version(KubernetesVersion.V1_24) + .teams(...teams) + .resourceProvider( + GlobalResources.HostedZone, + new ImportHostedZoneProvider("Z028702323WOQ31QJAJJP", subdomain) + ) + .resourceProvider( + GlobalResources.Certificate, + new blueprints.CreateCertificateProvider( + "wildcard-cert", + "*.dev.marketplace.sys.garden", + GlobalResources.HostedZone + ) + ) + .addOns( + new blueprints.VpcCniAddOn(), + new blueprints.CoreDnsAddOn(), + new blueprints.CertManagerAddOn(), + new blueprints.AwsLoadBalancerControllerAddOn(), + new blueprints.ExternalDnsAddOn({ + hostedZoneResources: [blueprints.GlobalResources.HostedZone], // you can add more if you register resource providers + }), + new blueprints.NginxAddOn({ + version: "0.15.2", + internetFacing: true, + backendProtocol: "tcp", + externalDnsHostname: subdomain, + crossZoneEnabled: false, + certificateResourceName: GlobalResources.Certificate, + }), + new blueprints.SecretsStoreAddOn({ rotationPollInterval: "120s" }), + new blueprints.ClusterAutoScalerAddOn(), + new DeployImagePullSecret(), + new blueprints.NestedStackAddOn({ + builder: ECRRepository.builder(), + id: "ecr-nested-stack" + }) + ) + .buildAsync(scope, `${id}`); + + blueprints.HelmAddOn.validateHelmVersions = false; + cluster + .getClusterInfo() + .nodeGroups?.at(0) + ?.role?.addManagedPolicy( + iam.ManagedPolicy.fromAwsManagedPolicyName( + "AmazonEC2ContainerRegistryPowerUser" + ) + ); + } +} diff --git a/ecr.ts b/ecr.ts index 62e7731..06380ac 100644 --- a/ecr.ts +++ b/ecr.ts @@ -1,15 +1,33 @@ -import * as cdk from 'aws-cdk-lib'; -import * as ecr from 'aws-cdk-lib/aws-ecr'; -import { Construct } from 'constructs'; +import * as cdk from "aws-cdk-lib"; +import * as ecr from "aws-cdk-lib/aws-ecr"; +import { Construct } from "constructs"; +import * as blueprints from "@aws-quickstart/eks-blueprints"; -export class ECRRegistry extends cdk.Stack { - public readonly ecrRepo: ecr.Repository - constructor(scope: Construct, id: string, props?: cdk.StackProps) { - super(scope, id, props); - - this.ecrRepo = new ecr.Repository(this, 'backend', { - encryption: ecr.RepositoryEncryption.KMS, - imageScanOnPush: true, - }); +export class ECRRepository extends cdk.NestedStack { + readonly ecrRepos: ecr.Repository[]; + readonly ecrRepoNames: string[]; + public static builder(): blueprints.NestedStackBuilder { + return { + build(scope: Construct, id: string, props: cdk.NestedStackProps) { + return new ECRRepository(scope, id, props); + }, + }; + } + constructor(scope: Construct, id: string, props: cdk.NestedStackProps) { + super(scope, id, props); + this.ecrRepos = [] + this.ecrRepoNames = ["api", "vote", "worker", "result"] + for (var repo of this.ecrRepoNames) { + this.ecrRepos.push(new ecr.Repository(this, repo, { + repositoryName: `garden-demo/${repo}`, + encryption: ecr.RepositoryEncryption.KMS, + imageScanOnPush: true, + })); + this.ecrRepos.push(new ecr.Repository(this, `${repo}/cache`, { + repositoryName: `garden-demo/${repo}/cache`, + encryption: ecr.RepositoryEncryption.KMS, + imageScanOnPush: true, + })); } -} + } +} \ No newline at end of file diff --git a/main.ts b/main.ts index 82835ce..322393a 100644 --- a/main.ts +++ b/main.ts @@ -1,6 +1,7 @@ -import * as cdk from 'aws-cdk-lib'; -import { logger } from '@aws-quickstart/eks-blueprints/dist/utils'; -import { HelmAddOn } from '@aws-quickstart/eks-blueprints'; +import * as cdk from "aws-cdk-lib"; +import { logger } from "@aws-quickstart/eks-blueprints/dist/utils"; +import { HelmAddOn } from "@aws-quickstart/eks-blueprints"; +import DevCluster from "./cluster"; const app = new cdk.App(); const account = "049586690729"; @@ -8,10 +9,6 @@ const region = "eu-central-1"; const env: cdk.Environment = { account: account, region: region }; HelmAddOn.validateHelmVersions = false; -import DevCluster from './cluster'; -new DevCluster().buildAsync(app, 'dev-cluster').catch(() => { - logger.info("Error setting up dev cluster"); +new DevCluster().eksCluster(app, `dev-cluster`).catch(() => { + logger.info("Error setting up dev cluster"); }); - -import { ECRRegistry } from './ecr'; -new ECRRegistry(app, 'dev-cluster-ecr'); diff --git a/package-lock.json b/package-lock.json index 6bd9c2e..81a6c2b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,17 +9,15 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "@aws-cdk/aws-ecr": "^1.197.0", - "@aws-quickstart/eks-blueprints": "^1.6.0", - "aws-cdk": "^2.69.0", - "aws-cdk-lib": "^2.69.0", - "constructs": "^10.1.252" + "@aws-quickstart/eks-blueprints": "=1.6.0", + "aws-cdk-lib": "=2.66.1", + "constructs": "=10.1.252" } }, "node_modules/@aws-cdk/asset-awscli-v1": { - "version": "2.2.108", - "resolved": "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.108.tgz", - "integrity": "sha512-ML3Z/m6D3biTcYFclx5ln3jmj2tR51LFrvqc4IXbraKr3CLsXvnrWHl3DYZQRgLbW1cauOAcoK1Lm5wGnc3pcQ==" + "version": "2.2.116", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.116.tgz", + "integrity": "sha512-UHOQYF58kSAgJUGd0EUHt49PGVO5xYB69z2iwXrjsg+jvosuoE30MpEXhWeboLV7N077gN+Fjx3YkuARXz1lKw==" }, "node_modules/@aws-cdk/asset-kubectl-v20": { "version": "2.1.1", @@ -27,603 +25,66 @@ "integrity": "sha512-U1ntiX8XiMRRRH5J1IdC+1t5CE89015cwyt5U63Cpk0GnMlN5+h9WsWMlKlPXZR4rdq/m806JRlBMRpBUB2Dhw==" }, "node_modules/@aws-cdk/asset-node-proxy-agent-v5": { - "version": "2.0.87", - "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v5/-/asset-node-proxy-agent-v5-2.0.87.tgz", - "integrity": "sha512-e924ANUrtvv4drdR1bfYn1YigDUgfnUpJO7ygm/6t0VGjmmhXY2g43XT+NIKOrCpC0z2Aqk4o5px8fuPCfmQTw==" + "version": "2.0.94", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v5/-/asset-node-proxy-agent-v5-2.0.94.tgz", + "integrity": "sha512-uJPea9sFl7AsxgLSzm4XGazLtbjfX1cL9WJeztWxr/Ims85Jwmbm52yUlxXMmXEiUrmJnZYRi9z+Mb3TQkYHLA==" }, - "node_modules/@aws-cdk/aws-ecr": { - "version": "1.197.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecr/-/aws-ecr-1.197.0.tgz", - "integrity": "sha512-T4N8i9E91WyTURXl8+fjBZtTvpm2z3m6i5dS9FwLSHlc3azLnqPcYe7f0H+fjHRmFheCT0ftXfqN3czkdHPQBA==", - "dependencies": { - "@aws-cdk/aws-events": "1.197.0", - "@aws-cdk/aws-iam": "1.197.0", - "@aws-cdk/aws-kms": "1.197.0", - "@aws-cdk/core": "1.197.0", - "constructs": "^3.3.69" - }, - "engines": { - "node": ">= 14.15.0" - }, - "peerDependencies": { - "@aws-cdk/aws-events": "1.197.0", - "@aws-cdk/aws-iam": "1.197.0", - "@aws-cdk/aws-kms": "1.197.0", - "@aws-cdk/core": "1.197.0", - "constructs": "^3.3.69" - } - }, - "node_modules/@aws-cdk/aws-ecr/node_modules/constructs": { - "version": "3.4.275", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.4.275.tgz", - "integrity": "sha512-4NbJqLz5Li/1DMeONruUauT25vVy6uFgQDfnhTAqzNF4R/Be07BnEJZ5C2sh4Jl6b0Iyljfbf0DEY2u7Y/CjBw==", - "engines": { - "node": ">= 14.17.0" - } - }, - "node_modules/@aws-cdk/aws-events": { - "version": "1.197.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-events/-/aws-events-1.197.0.tgz", - "integrity": "sha512-Fc2T9hc2JWUTiVJAPmLBaKxkF1Hle9Mh80I2n3GcERWftGYr71Ch3gO9ktpfY7nKtxzLfkdCG8oK7zKQjyLnWw==", - "dependencies": { - "@aws-cdk/aws-iam": "1.197.0", - "@aws-cdk/core": "1.197.0", - "constructs": "^3.3.69" - }, - "engines": { - "node": ">= 14.15.0" - }, - "peerDependencies": { - "@aws-cdk/aws-iam": "1.197.0", - "@aws-cdk/core": "1.197.0", - "constructs": "^3.3.69" - } - }, - "node_modules/@aws-cdk/aws-events/node_modules/constructs": { - "version": "3.4.275", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.4.275.tgz", - "integrity": "sha512-4NbJqLz5Li/1DMeONruUauT25vVy6uFgQDfnhTAqzNF4R/Be07BnEJZ5C2sh4Jl6b0Iyljfbf0DEY2u7Y/CjBw==", - "engines": { - "node": ">= 14.17.0" - } - }, - "node_modules/@aws-cdk/aws-iam": { - "version": "1.197.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-iam/-/aws-iam-1.197.0.tgz", - "integrity": "sha512-GrvdenmSPr7AY9NAkXLTIvOHrvwPL4JHPQdaXNUsjVcUqB76ljkCKn7qIBpxWhPjVer2FQpbdZ3RcA5TjVlRaQ==", - "dependencies": { - "@aws-cdk/core": "1.197.0", - "@aws-cdk/cx-api": "1.197.0", - "@aws-cdk/region-info": "1.197.0", - "constructs": "^3.3.69" - }, - "engines": { - "node": ">= 14.15.0" - }, - "peerDependencies": { - "@aws-cdk/core": "1.197.0", - "@aws-cdk/region-info": "1.197.0", - "constructs": "^3.3.69" - } - }, - "node_modules/@aws-cdk/aws-iam/node_modules/constructs": { - "version": "3.4.275", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.4.275.tgz", - "integrity": "sha512-4NbJqLz5Li/1DMeONruUauT25vVy6uFgQDfnhTAqzNF4R/Be07BnEJZ5C2sh4Jl6b0Iyljfbf0DEY2u7Y/CjBw==", - "engines": { - "node": ">= 14.17.0" - } - }, - "node_modules/@aws-cdk/aws-kms": { - "version": "1.197.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-kms/-/aws-kms-1.197.0.tgz", - "integrity": "sha512-w1WpH7dVGQ25Cr95zCQV+QU0sJCsCxREzFyslsL5EeEPUioH5Sw27A2YQjXJFzIytfMmFFDKKOAHNTVc2Ys+pA==", - "dependencies": { - "@aws-cdk/aws-iam": "1.197.0", - "@aws-cdk/cloud-assembly-schema": "1.197.0", - "@aws-cdk/core": "1.197.0", - "@aws-cdk/cx-api": "1.197.0", - "constructs": "^3.3.69" - }, - "engines": { - "node": ">= 14.15.0" - }, - "peerDependencies": { - "@aws-cdk/aws-iam": "1.197.0", - "@aws-cdk/cloud-assembly-schema": "1.197.0", - "@aws-cdk/core": "1.197.0", - "@aws-cdk/cx-api": "1.197.0", - "constructs": "^3.3.69" - } - }, - "node_modules/@aws-cdk/aws-kms/node_modules/constructs": { - "version": "3.4.275", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.4.275.tgz", - "integrity": "sha512-4NbJqLz5Li/1DMeONruUauT25vVy6uFgQDfnhTAqzNF4R/Be07BnEJZ5C2sh4Jl6b0Iyljfbf0DEY2u7Y/CjBw==", - "engines": { - "node": ">= 14.17.0" - } - }, - "node_modules/@aws-cdk/cloud-assembly-schema": { - "version": "1.197.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.197.0.tgz", - "integrity": "sha512-JImHB84lRxMHlt9onIMZhOMUXvpf2WOEo3wZ/gcTNUOigJwW66rRTUfxHd/I3CiR8Ktx+Tj2RtNpwHnjmYWmGg==", - "bundleDependencies": [ - "jsonschema", - "semver" - ], - "dependencies": { - "jsonschema": "^1.4.1", - "semver": "^7.3.8" - }, - "engines": { - "node": ">= 14.15.0" - } - }, - "node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema": { - "version": "1.4.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/@aws-cdk/cloud-assembly-schema/node_modules/lru-cache": { - "version": "6.0.0", - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver": { - "version": "7.3.8", - "inBundle": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@aws-cdk/cloud-assembly-schema/node_modules/yallist": { - "version": "4.0.0", - "inBundle": true, - "license": "ISC" - }, - "node_modules/@aws-cdk/core": { - "version": "1.197.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/core/-/core-1.197.0.tgz", - "integrity": "sha512-cFOZ1b8YWwSZqn1w642uKTGNaD8bkOMRD1Gn+D6x7qdDxuGtReWpZvEMGTvYuCFriNncO0Ha6JbNYnWe3ug9Yw==", - "bundleDependencies": [ - "fs-extra", - "minimatch", - "@balena/dockerignore", - "ignore" - ], - "dependencies": { - "@aws-cdk/cloud-assembly-schema": "1.197.0", - "@aws-cdk/cx-api": "1.197.0", - "@aws-cdk/region-info": "1.197.0", - "@balena/dockerignore": "^1.0.2", - "constructs": "^3.3.69", - "fs-extra": "^9.1.0", - "ignore": "^5.2.4", - "minimatch": "^3.1.2" - }, - "engines": { - "node": ">= 14.15.0" - }, - "peerDependencies": { - "@aws-cdk/cloud-assembly-schema": "1.197.0", - "@aws-cdk/cx-api": "1.197.0", - "@aws-cdk/region-info": "1.197.0", - "constructs": "^3.3.69" - } - }, - "node_modules/@aws-cdk/core/node_modules/@balena/dockerignore": { - "version": "1.0.2", - "inBundle": true, - "license": "Apache-2.0" - }, - "node_modules/@aws-cdk/core/node_modules/at-least-node": { - "version": "1.0.0", - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/@aws-cdk/core/node_modules/balanced-match": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT" - }, - "node_modules/@aws-cdk/core/node_modules/brace-expansion": { - "version": "1.1.11", - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@aws-cdk/core/node_modules/concat-map": { - "version": "0.0.1", - "inBundle": true, - "license": "MIT" - }, - "node_modules/@aws-cdk/core/node_modules/constructs": { - "version": "3.4.275", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.4.275.tgz", - "integrity": "sha512-4NbJqLz5Li/1DMeONruUauT25vVy6uFgQDfnhTAqzNF4R/Be07BnEJZ5C2sh4Jl6b0Iyljfbf0DEY2u7Y/CjBw==", - "engines": { - "node": ">= 14.17.0" - } - }, - "node_modules/@aws-cdk/core/node_modules/fs-extra": { - "version": "9.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@aws-cdk/core/node_modules/graceful-fs": { - "version": "4.2.10", - "inBundle": true, - "license": "ISC" - }, - "node_modules/@aws-cdk/core/node_modules/ignore": { - "version": "5.2.4", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@aws-cdk/core/node_modules/jsonfile": { - "version": "6.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@aws-cdk/core/node_modules/minimatch": { - "version": "3.1.2", - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@aws-cdk/core/node_modules/universalify": { - "version": "2.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-cdk/cx-api": { - "version": "1.197.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.197.0.tgz", - "integrity": "sha512-bmTuHnfMNYyzoUfL962rHogoDIHBoj6T2SUr+rYbFU913vCYpcgoh0smPwDBVSJ/QiwVt0xpX1dFFqC8upH9qA==", - "bundleDependencies": [ - "semver" - ], - "dependencies": { - "@aws-cdk/cloud-assembly-schema": "1.197.0", - "semver": "^7.3.8" - }, - "engines": { - "node": ">= 14.15.0" - }, - "peerDependencies": { - "@aws-cdk/cloud-assembly-schema": "1.197.0" - } - }, - "node_modules/@aws-cdk/cx-api/node_modules/lru-cache": { - "version": "6.0.0", - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@aws-cdk/cx-api/node_modules/semver": { - "version": "7.3.8", - "inBundle": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@aws-cdk/cx-api/node_modules/yallist": { - "version": "4.0.0", - "inBundle": true, - "license": "ISC" - }, - "node_modules/@aws-cdk/lambda-layer-kubectl-v22": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@aws-cdk/lambda-layer-kubectl-v22/-/lambda-layer-kubectl-v22-2.0.7.tgz", - "integrity": "sha512-bnjC8ZHjBvgnRbur9hTtE9JQaaYIoPmc7YNl2h7oOUaqMQiDjX3sYxmaNzaf3s7OAVxfTVBVnhCRapsiYoE9Lg==", - "peerDependencies": { - "aws-cdk-lib": "^2.0.0", - "constructs": "^10.0.5" - } - }, - "node_modules/@aws-cdk/lambda-layer-kubectl-v23": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@aws-cdk/lambda-layer-kubectl-v23/-/lambda-layer-kubectl-v23-2.0.7.tgz", - "integrity": "sha512-YflWr+dw26oPHrtdw1U6nQ7dEVvs3g7DNQrwb9nep0ryOdDTHdnMfdI65oh6GYMZIxCaVaiRc1RXwHSs+Fc6Bg==", - "peerDependencies": { - "aws-cdk-lib": "^2.0.0", - "constructs": "^10.0.5" - } - }, - "node_modules/@aws-cdk/lambda-layer-kubectl-v24": { - "version": "2.0.135", - "resolved": "https://registry.npmjs.org/@aws-cdk/lambda-layer-kubectl-v24/-/lambda-layer-kubectl-v24-2.0.135.tgz", - "integrity": "sha512-q0zCxvXJXGaGDOLTAOHLKwvxEKyJsRRjnYD7WCkPOsjmU4nHqysH6Ls37+PtREm+tD0hm4D8RpShnPwzZGeF6Q==", - "peerDependencies": { - "aws-cdk-lib": "^2.0.0", - "constructs": "^10.0.5" - } - }, - "node_modules/@aws-cdk/region-info": { - "version": "1.197.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/region-info/-/region-info-1.197.0.tgz", - "integrity": "sha512-JJ5CrEgoZ+L36Oo5Vipx1YFOOuCCilV1ffZ37mixfyIqCF7k0lkjP670WW4rGJGBIxcYSxLuv610J23Sg5m9uA==", - "engines": { - "node": ">= 14.15.0" - } - }, - "node_modules/@aws-quickstart/eks-blueprints": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@aws-quickstart/eks-blueprints/-/eks-blueprints-1.6.0.tgz", - "integrity": "sha512-CKVyAgweSombAvcIqBi04wQOeTrynKiCwhs1M0vBf6jexiL8JRqQdKRR9N9TcNvMRJE7HPDuBhXRIxFGna8/LA==", - "dependencies": { - "@aws-cdk/lambda-layer-kubectl-v22": "^2.0.0", - "@aws-cdk/lambda-layer-kubectl-v23": "^2.0.0", - "@aws-cdk/lambda-layer-kubectl-v24": "^2.0.0", - "@types/assert": "^1.5.6", - "@types/bcrypt": "^5.0.0", - "@types/lodash.clonedeep": "^4.5.7", - "@types/uuid": "^9.0.1", - "aws-cdk-lib": "2.66.1", - "aws-sdk": "^2.1325.0", - "bcrypt": "^5.1.0", - "dot-object": "^2.1.4", - "js-yaml": "4.1.0", - "lint": "^1.1.2", - "lodash": "4.17.21", - "reflect-metadata": "^0.1.13", - "semver": "^7.3.8", - "simple-base": "^1.0.0", - "sync-request": "6.1.0", - "ts-deepmerge": "^6.0.2", - "ts-md5": "^1.3.1", - "tslog": "^4.7.5", - "uuid": "^9.0.0", - "yaml": "^2.1.3", - "zod": "^3.19.1" - } - }, - "node_modules/@aws-quickstart/eks-blueprints/node_modules/aws-cdk-lib": { - "version": "2.66.1", - "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.66.1.tgz", - "integrity": "sha512-xMnKXOnsoJLoDyl6L3BUYLPa9bqw8UoBlFGGH4gbzpBPViv9b49xvYuW+BLf7bK7IVgTzYQ+VmZKaFsj+VFouA==", - "bundleDependencies": [ - "@balena/dockerignore", - "case", - "fs-extra", - "ignore", - "jsonschema", - "minimatch", - "punycode", - "semver", - "yaml" - ], - "dependencies": { - "@aws-cdk/asset-awscli-v1": "^2.2.69", - "@aws-cdk/asset-kubectl-v20": "^2.1.1", - "@aws-cdk/asset-node-proxy-agent-v5": "^2.0.58", - "@balena/dockerignore": "^1.0.2", - "case": "1.6.3", - "fs-extra": "^9.1.0", - "ignore": "^5.2.4", - "jsonschema": "^1.4.1", - "minimatch": "^3.1.2", - "punycode": "^2.3.0", - "semver": "^7.3.8", - "yaml": "1.10.2" - }, - "engines": { - "node": ">= 14.15.0" - }, - "peerDependencies": { - "constructs": "^10.0.0" - } - }, - "node_modules/@aws-quickstart/eks-blueprints/node_modules/aws-cdk-lib/node_modules/@balena/dockerignore": { - "version": "1.0.2", - "inBundle": true, - "license": "Apache-2.0" - }, - "node_modules/@aws-quickstart/eks-blueprints/node_modules/aws-cdk-lib/node_modules/at-least-node": { - "version": "1.0.0", - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/@aws-quickstart/eks-blueprints/node_modules/aws-cdk-lib/node_modules/balanced-match": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT" - }, - "node_modules/@aws-quickstart/eks-blueprints/node_modules/aws-cdk-lib/node_modules/brace-expansion": { - "version": "1.1.11", - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@aws-quickstart/eks-blueprints/node_modules/aws-cdk-lib/node_modules/case": { - "version": "1.6.3", - "inBundle": true, - "license": "(MIT OR GPL-3.0-or-later)", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/@aws-quickstart/eks-blueprints/node_modules/aws-cdk-lib/node_modules/concat-map": { - "version": "0.0.1", - "inBundle": true, - "license": "MIT" - }, - "node_modules/@aws-quickstart/eks-blueprints/node_modules/aws-cdk-lib/node_modules/fs-extra": { - "version": "9.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@aws-quickstart/eks-blueprints/node_modules/aws-cdk-lib/node_modules/graceful-fs": { - "version": "4.2.10", - "inBundle": true, - "license": "ISC" - }, - "node_modules/@aws-quickstart/eks-blueprints/node_modules/aws-cdk-lib/node_modules/ignore": { - "version": "5.2.4", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@aws-quickstart/eks-blueprints/node_modules/aws-cdk-lib/node_modules/jsonfile": { - "version": "6.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@aws-quickstart/eks-blueprints/node_modules/aws-cdk-lib/node_modules/jsonschema": { - "version": "1.4.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/@aws-quickstart/eks-blueprints/node_modules/aws-cdk-lib/node_modules/lru-cache": { - "version": "6.0.0", - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@aws-quickstart/eks-blueprints/node_modules/aws-cdk-lib/node_modules/minimatch": { - "version": "3.1.2", - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@aws-quickstart/eks-blueprints/node_modules/aws-cdk-lib/node_modules/punycode": { - "version": "2.3.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" + "node_modules/@aws-cdk/lambda-layer-kubectl-v22": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@aws-cdk/lambda-layer-kubectl-v22/-/lambda-layer-kubectl-v22-2.0.7.tgz", + "integrity": "sha512-bnjC8ZHjBvgnRbur9hTtE9JQaaYIoPmc7YNl2h7oOUaqMQiDjX3sYxmaNzaf3s7OAVxfTVBVnhCRapsiYoE9Lg==", + "peerDependencies": { + "aws-cdk-lib": "^2.0.0", + "constructs": "^10.0.5" } }, - "node_modules/@aws-quickstart/eks-blueprints/node_modules/aws-cdk-lib/node_modules/semver": { - "version": "7.3.8", - "inBundle": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "node_modules/@aws-cdk/lambda-layer-kubectl-v23": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@aws-cdk/lambda-layer-kubectl-v23/-/lambda-layer-kubectl-v23-2.0.7.tgz", + "integrity": "sha512-YflWr+dw26oPHrtdw1U6nQ7dEVvs3g7DNQrwb9nep0ryOdDTHdnMfdI65oh6GYMZIxCaVaiRc1RXwHSs+Fc6Bg==", + "peerDependencies": { + "aws-cdk-lib": "^2.0.0", + "constructs": "^10.0.5" } }, - "node_modules/@aws-quickstart/eks-blueprints/node_modules/aws-cdk-lib/node_modules/universalify": { - "version": "2.0.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" + "node_modules/@aws-cdk/lambda-layer-kubectl-v24": { + "version": "2.0.142", + "resolved": "https://registry.npmjs.org/@aws-cdk/lambda-layer-kubectl-v24/-/lambda-layer-kubectl-v24-2.0.142.tgz", + "integrity": "sha512-1cXDKNsILgXj2ZkT5QitWLrNZ1jUtuBWeaW+ySXbprz1hr6TLCFOnqd5IxxlcDTQFq+t7KzgPP/lbD2yJIoRcg==", + "peerDependencies": { + "aws-cdk-lib": "^2.0.0", + "constructs": "^10.0.5" } }, - "node_modules/@aws-quickstart/eks-blueprints/node_modules/aws-cdk-lib/node_modules/yallist": { - "version": "4.0.0", - "inBundle": true, - "license": "ISC" - }, - "node_modules/@aws-quickstart/eks-blueprints/node_modules/aws-cdk-lib/node_modules/yaml": { - "version": "1.10.2", - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">= 6" + "node_modules/@aws-quickstart/eks-blueprints": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@aws-quickstart/eks-blueprints/-/eks-blueprints-1.6.0.tgz", + "integrity": "sha512-CKVyAgweSombAvcIqBi04wQOeTrynKiCwhs1M0vBf6jexiL8JRqQdKRR9N9TcNvMRJE7HPDuBhXRIxFGna8/LA==", + "dependencies": { + "@aws-cdk/lambda-layer-kubectl-v22": "^2.0.0", + "@aws-cdk/lambda-layer-kubectl-v23": "^2.0.0", + "@aws-cdk/lambda-layer-kubectl-v24": "^2.0.0", + "@types/assert": "^1.5.6", + "@types/bcrypt": "^5.0.0", + "@types/lodash.clonedeep": "^4.5.7", + "@types/uuid": "^9.0.1", + "aws-cdk-lib": "2.66.1", + "aws-sdk": "^2.1325.0", + "bcrypt": "^5.1.0", + "dot-object": "^2.1.4", + "js-yaml": "4.1.0", + "lint": "^1.1.2", + "lodash": "4.17.21", + "reflect-metadata": "^0.1.13", + "semver": "^7.3.8", + "simple-base": "^1.0.0", + "sync-request": "6.1.0", + "ts-deepmerge": "^6.0.2", + "ts-md5": "^1.3.1", + "tslog": "^4.7.5", + "uuid": "^9.0.0", + "yaml": "^2.1.3", + "zod": "^3.19.1" } }, "node_modules/@mapbox/node-pre-gyp": { @@ -688,9 +149,9 @@ } }, "node_modules/@types/node": { - "version": "18.15.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.3.tgz", - "integrity": "sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw==" + "version": "18.15.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.6.tgz", + "integrity": "sha512-YErOafCZpK4g+Rp3Q/PBgZNAsWKGunQTm9FA3/Pbcm0VCriTEzcrutQ/SxSc0rytAp0NoFWue669jmKhEtd0sA==" }, "node_modules/@types/qs": { "version": "6.9.7", @@ -769,24 +230,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/aws-cdk": { - "version": "2.69.0", - "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.69.0.tgz", - "integrity": "sha512-wsocwG6gFpPq4WZhLc77khuD35qtDuSphV4kquirlPE7wBmXh7XKoC60sRJvz8IHjv5dvqygaoNL4HH2fLonaQ==", - "bin": { - "cdk": "bin/cdk" - }, - "engines": { - "node": ">= 14.15.0" - }, - "optionalDependencies": { - "fsevents": "2.3.2" - } - }, "node_modules/aws-cdk-lib": { - "version": "2.69.0", - "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.69.0.tgz", - "integrity": "sha512-VIwgMMpc8iHCZTmt1PuMdj20f0lTY8SI6Pltx7jvhYxyzvg04Dd0YAryBUuutj/khE3typJwiFzLlL7yoNo5AA==", + "version": "2.66.1", + "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.66.1.tgz", + "integrity": "sha512-xMnKXOnsoJLoDyl6L3BUYLPa9bqw8UoBlFGGH4gbzpBPViv9b49xvYuW+BLf7bK7IVgTzYQ+VmZKaFsj+VFouA==", "bundleDependencies": [ "@balena/dockerignore", "case", @@ -799,9 +246,9 @@ "yaml" ], "dependencies": { - "@aws-cdk/asset-awscli-v1": "^2.2.97", + "@aws-cdk/asset-awscli-v1": "^2.2.69", "@aws-cdk/asset-kubectl-v20": "^2.1.1", - "@aws-cdk/asset-node-proxy-agent-v5": "^2.0.77", + "@aws-cdk/asset-node-proxy-agent-v5": "^2.0.58", "@balena/dockerignore": "^1.0.2", "case": "1.6.3", "fs-extra": "^9.1.0", @@ -971,9 +418,9 @@ } }, "node_modules/aws-sdk": { - "version": "2.1337.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1337.0.tgz", - "integrity": "sha512-Nq6EnocdYP7LScN3kbG1ZKQr5iMEIkObW4ikSjkSz9SofPNDlOr4EFfYNaGzuF91M93YZ++7JIGMTb05ubjHlA==", + "version": "2.1342.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1342.0.tgz", + "integrity": "sha512-RknStRPY+ohgOhuuDYEkAWuBcU9841EjtelZn4J2VubhaS7ZFQ2lmiYqm4P5Tw8Kwq6GuUqISBB8RCp8cO2qfA==", "dependencies": { "buffer": "4.9.2", "events": "1.1.1", @@ -1163,9 +610,9 @@ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" }, "node_modules/constructs": { - "version": "10.1.280", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.1.280.tgz", - "integrity": "sha512-ONyTi3iUCp66xYHVnKx3yp2I7YMfSIKEdssTI3cVkL3SZHUJ/jh7dKb5ycsxEkKyO5MtStEc0r2m2zyq1KXRYA==", + "version": "10.1.252", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.1.252.tgz", + "integrity": "sha512-8j3bcoSTlIjbCu1tflWHvipVDWmllUNu3dEWb5GXvsXCiYuH0NtXCCN5q6GmFInDcspZp8WOYu66uqQ8Bk7jzQ==", "engines": { "node": ">= 14.17.0" } @@ -1285,19 +732,6 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -2166,9 +1600,9 @@ }, "dependencies": { "@aws-cdk/asset-awscli-v1": { - "version": "2.2.108", - "resolved": "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.108.tgz", - "integrity": "sha512-ML3Z/m6D3biTcYFclx5ln3jmj2tR51LFrvqc4IXbraKr3CLsXvnrWHl3DYZQRgLbW1cauOAcoK1Lm5wGnc3pcQ==" + "version": "2.2.116", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.116.tgz", + "integrity": "sha512-UHOQYF58kSAgJUGd0EUHt49PGVO5xYB69z2iwXrjsg+jvosuoE30MpEXhWeboLV7N077gN+Fjx3YkuARXz1lKw==" }, "@aws-cdk/asset-kubectl-v20": { "version": "2.1.1", @@ -2176,227 +1610,9 @@ "integrity": "sha512-U1ntiX8XiMRRRH5J1IdC+1t5CE89015cwyt5U63Cpk0GnMlN5+h9WsWMlKlPXZR4rdq/m806JRlBMRpBUB2Dhw==" }, "@aws-cdk/asset-node-proxy-agent-v5": { - "version": "2.0.87", - "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v5/-/asset-node-proxy-agent-v5-2.0.87.tgz", - "integrity": "sha512-e924ANUrtvv4drdR1bfYn1YigDUgfnUpJO7ygm/6t0VGjmmhXY2g43XT+NIKOrCpC0z2Aqk4o5px8fuPCfmQTw==" - }, - "@aws-cdk/aws-ecr": { - "version": "1.197.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecr/-/aws-ecr-1.197.0.tgz", - "integrity": "sha512-T4N8i9E91WyTURXl8+fjBZtTvpm2z3m6i5dS9FwLSHlc3azLnqPcYe7f0H+fjHRmFheCT0ftXfqN3czkdHPQBA==", - "requires": { - "@aws-cdk/aws-events": "1.197.0", - "@aws-cdk/aws-iam": "1.197.0", - "@aws-cdk/aws-kms": "1.197.0", - "@aws-cdk/core": "1.197.0", - "constructs": "^3.3.69" - }, - "dependencies": { - "constructs": { - "version": "3.4.275", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.4.275.tgz", - "integrity": "sha512-4NbJqLz5Li/1DMeONruUauT25vVy6uFgQDfnhTAqzNF4R/Be07BnEJZ5C2sh4Jl6b0Iyljfbf0DEY2u7Y/CjBw==" - } - } - }, - "@aws-cdk/aws-events": { - "version": "1.197.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-events/-/aws-events-1.197.0.tgz", - "integrity": "sha512-Fc2T9hc2JWUTiVJAPmLBaKxkF1Hle9Mh80I2n3GcERWftGYr71Ch3gO9ktpfY7nKtxzLfkdCG8oK7zKQjyLnWw==", - "requires": { - "@aws-cdk/aws-iam": "1.197.0", - "@aws-cdk/core": "1.197.0", - "constructs": "^3.3.69" - }, - "dependencies": { - "constructs": { - "version": "3.4.275", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.4.275.tgz", - "integrity": "sha512-4NbJqLz5Li/1DMeONruUauT25vVy6uFgQDfnhTAqzNF4R/Be07BnEJZ5C2sh4Jl6b0Iyljfbf0DEY2u7Y/CjBw==" - } - } - }, - "@aws-cdk/aws-iam": { - "version": "1.197.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-iam/-/aws-iam-1.197.0.tgz", - "integrity": "sha512-GrvdenmSPr7AY9NAkXLTIvOHrvwPL4JHPQdaXNUsjVcUqB76ljkCKn7qIBpxWhPjVer2FQpbdZ3RcA5TjVlRaQ==", - "requires": { - "@aws-cdk/core": "1.197.0", - "@aws-cdk/cx-api": "1.197.0", - "@aws-cdk/region-info": "1.197.0", - "constructs": "^3.3.69" - }, - "dependencies": { - "constructs": { - "version": "3.4.275", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.4.275.tgz", - "integrity": "sha512-4NbJqLz5Li/1DMeONruUauT25vVy6uFgQDfnhTAqzNF4R/Be07BnEJZ5C2sh4Jl6b0Iyljfbf0DEY2u7Y/CjBw==" - } - } - }, - "@aws-cdk/aws-kms": { - "version": "1.197.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-kms/-/aws-kms-1.197.0.tgz", - "integrity": "sha512-w1WpH7dVGQ25Cr95zCQV+QU0sJCsCxREzFyslsL5EeEPUioH5Sw27A2YQjXJFzIytfMmFFDKKOAHNTVc2Ys+pA==", - "requires": { - "@aws-cdk/aws-iam": "1.197.0", - "@aws-cdk/cloud-assembly-schema": "1.197.0", - "@aws-cdk/core": "1.197.0", - "@aws-cdk/cx-api": "1.197.0", - "constructs": "^3.3.69" - }, - "dependencies": { - "constructs": { - "version": "3.4.275", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.4.275.tgz", - "integrity": "sha512-4NbJqLz5Li/1DMeONruUauT25vVy6uFgQDfnhTAqzNF4R/Be07BnEJZ5C2sh4Jl6b0Iyljfbf0DEY2u7Y/CjBw==" - } - } - }, - "@aws-cdk/cloud-assembly-schema": { - "version": "1.197.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.197.0.tgz", - "integrity": "sha512-JImHB84lRxMHlt9onIMZhOMUXvpf2WOEo3wZ/gcTNUOigJwW66rRTUfxHd/I3CiR8Ktx+Tj2RtNpwHnjmYWmGg==", - "requires": { - "jsonschema": "^1.4.1", - "semver": "^7.3.8" - }, - "dependencies": { - "jsonschema": { - "version": "1.4.1", - "bundled": true - }, - "lru-cache": { - "version": "6.0.0", - "bundled": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.8", - "bundled": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "bundled": true - } - } - }, - "@aws-cdk/core": { - "version": "1.197.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/core/-/core-1.197.0.tgz", - "integrity": "sha512-cFOZ1b8YWwSZqn1w642uKTGNaD8bkOMRD1Gn+D6x7qdDxuGtReWpZvEMGTvYuCFriNncO0Ha6JbNYnWe3ug9Yw==", - "requires": { - "@aws-cdk/cloud-assembly-schema": "1.197.0", - "@aws-cdk/cx-api": "1.197.0", - "@aws-cdk/region-info": "1.197.0", - "@balena/dockerignore": "^1.0.2", - "constructs": "^3.3.69", - "fs-extra": "^9.1.0", - "ignore": "^5.2.4", - "minimatch": "^3.1.2" - }, - "dependencies": { - "@balena/dockerignore": { - "version": "1.0.2", - "bundled": true - }, - "at-least-node": { - "version": "1.0.0", - "bundled": true - }, - "balanced-match": { - "version": "1.0.2", - "bundled": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "constructs": { - "version": "3.4.275", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.4.275.tgz", - "integrity": "sha512-4NbJqLz5Li/1DMeONruUauT25vVy6uFgQDfnhTAqzNF4R/Be07BnEJZ5C2sh4Jl6b0Iyljfbf0DEY2u7Y/CjBw==" - }, - "fs-extra": { - "version": "9.1.0", - "bundled": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10", - "bundled": true - }, - "ignore": { - "version": "5.2.4", - "bundled": true - }, - "jsonfile": { - "version": "6.1.0", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "minimatch": { - "version": "3.1.2", - "bundled": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "universalify": { - "version": "2.0.0", - "bundled": true - } - } - }, - "@aws-cdk/cx-api": { - "version": "1.197.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.197.0.tgz", - "integrity": "sha512-bmTuHnfMNYyzoUfL962rHogoDIHBoj6T2SUr+rYbFU913vCYpcgoh0smPwDBVSJ/QiwVt0xpX1dFFqC8upH9qA==", - "requires": { - "@aws-cdk/cloud-assembly-schema": "1.197.0", - "semver": "^7.3.8" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "bundled": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.8", - "bundled": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "bundled": true - } - } + "version": "2.0.94", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v5/-/asset-node-proxy-agent-v5-2.0.94.tgz", + "integrity": "sha512-uJPea9sFl7AsxgLSzm4XGazLtbjfX1cL9WJeztWxr/Ims85Jwmbm52yUlxXMmXEiUrmJnZYRi9z+Mb3TQkYHLA==" }, "@aws-cdk/lambda-layer-kubectl-v22": { "version": "2.0.7", @@ -2411,16 +1627,11 @@ "requires": {} }, "@aws-cdk/lambda-layer-kubectl-v24": { - "version": "2.0.135", - "resolved": "https://registry.npmjs.org/@aws-cdk/lambda-layer-kubectl-v24/-/lambda-layer-kubectl-v24-2.0.135.tgz", - "integrity": "sha512-q0zCxvXJXGaGDOLTAOHLKwvxEKyJsRRjnYD7WCkPOsjmU4nHqysH6Ls37+PtREm+tD0hm4D8RpShnPwzZGeF6Q==", + "version": "2.0.142", + "resolved": "https://registry.npmjs.org/@aws-cdk/lambda-layer-kubectl-v24/-/lambda-layer-kubectl-v24-2.0.142.tgz", + "integrity": "sha512-1cXDKNsILgXj2ZkT5QitWLrNZ1jUtuBWeaW+ySXbprz1hr6TLCFOnqd5IxxlcDTQFq+t7KzgPP/lbD2yJIoRcg==", "requires": {} }, - "@aws-cdk/region-info": { - "version": "1.197.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/region-info/-/region-info-1.197.0.tgz", - "integrity": "sha512-JJ5CrEgoZ+L36Oo5Vipx1YFOOuCCilV1ffZ37mixfyIqCF7k0lkjP670WW4rGJGBIxcYSxLuv610J23Sg5m9uA==" - }, "@aws-quickstart/eks-blueprints": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/@aws-quickstart/eks-blueprints/-/eks-blueprints-1.6.0.tgz", @@ -2450,124 +1661,6 @@ "uuid": "^9.0.0", "yaml": "^2.1.3", "zod": "^3.19.1" - }, - "dependencies": { - "aws-cdk-lib": { - "version": "2.66.1", - "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.66.1.tgz", - "integrity": "sha512-xMnKXOnsoJLoDyl6L3BUYLPa9bqw8UoBlFGGH4gbzpBPViv9b49xvYuW+BLf7bK7IVgTzYQ+VmZKaFsj+VFouA==", - "requires": { - "@aws-cdk/asset-awscli-v1": "^2.2.69", - "@aws-cdk/asset-kubectl-v20": "^2.1.1", - "@aws-cdk/asset-node-proxy-agent-v5": "^2.0.58", - "@balena/dockerignore": "^1.0.2", - "case": "1.6.3", - "fs-extra": "^9.1.0", - "ignore": "^5.2.4", - "jsonschema": "^1.4.1", - "minimatch": "^3.1.2", - "punycode": "^2.3.0", - "semver": "^7.3.8", - "yaml": "1.10.2" - }, - "dependencies": { - "@balena/dockerignore": { - "version": "1.0.2", - "bundled": true - }, - "at-least-node": { - "version": "1.0.0", - "bundled": true - }, - "balanced-match": { - "version": "1.0.2", - "bundled": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "case": { - "version": "1.6.3", - "bundled": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "fs-extra": { - "version": "9.1.0", - "bundled": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10", - "bundled": true - }, - "ignore": { - "version": "5.2.4", - "bundled": true - }, - "jsonfile": { - "version": "6.1.0", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "jsonschema": { - "version": "1.4.1", - "bundled": true - }, - "lru-cache": { - "version": "6.0.0", - "bundled": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minimatch": { - "version": "3.1.2", - "bundled": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "punycode": { - "version": "2.3.0", - "bundled": true - }, - "semver": { - "version": "7.3.8", - "bundled": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "bundled": true - }, - "yallist": { - "version": "4.0.0", - "bundled": true - }, - "yaml": { - "version": "1.10.2", - "bundled": true - } - } - } } }, "@mapbox/node-pre-gyp": { @@ -2629,9 +1722,9 @@ } }, "@types/node": { - "version": "18.15.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.3.tgz", - "integrity": "sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw==" + "version": "18.15.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.6.tgz", + "integrity": "sha512-YErOafCZpK4g+Rp3Q/PBgZNAsWKGunQTm9FA3/Pbcm0VCriTEzcrutQ/SxSc0rytAp0NoFWue669jmKhEtd0sA==" }, "@types/qs": { "version": "6.9.7", @@ -2695,22 +1788,14 @@ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" }, - "aws-cdk": { - "version": "2.69.0", - "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.69.0.tgz", - "integrity": "sha512-wsocwG6gFpPq4WZhLc77khuD35qtDuSphV4kquirlPE7wBmXh7XKoC60sRJvz8IHjv5dvqygaoNL4HH2fLonaQ==", - "requires": { - "fsevents": "2.3.2" - } - }, "aws-cdk-lib": { - "version": "2.69.0", - "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.69.0.tgz", - "integrity": "sha512-VIwgMMpc8iHCZTmt1PuMdj20f0lTY8SI6Pltx7jvhYxyzvg04Dd0YAryBUuutj/khE3typJwiFzLlL7yoNo5AA==", + "version": "2.66.1", + "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.66.1.tgz", + "integrity": "sha512-xMnKXOnsoJLoDyl6L3BUYLPa9bqw8UoBlFGGH4gbzpBPViv9b49xvYuW+BLf7bK7IVgTzYQ+VmZKaFsj+VFouA==", "requires": { - "@aws-cdk/asset-awscli-v1": "^2.2.97", + "@aws-cdk/asset-awscli-v1": "^2.2.69", "@aws-cdk/asset-kubectl-v20": "^2.1.1", - "@aws-cdk/asset-node-proxy-agent-v5": "^2.0.77", + "@aws-cdk/asset-node-proxy-agent-v5": "^2.0.58", "@balena/dockerignore": "^1.0.2", "case": "1.6.3", "fs-extra": "^9.1.0", @@ -2820,9 +1905,9 @@ } }, "aws-sdk": { - "version": "2.1337.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1337.0.tgz", - "integrity": "sha512-Nq6EnocdYP7LScN3kbG1ZKQr5iMEIkObW4ikSjkSz9SofPNDlOr4EFfYNaGzuF91M93YZ++7JIGMTb05ubjHlA==", + "version": "2.1342.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1342.0.tgz", + "integrity": "sha512-RknStRPY+ohgOhuuDYEkAWuBcU9841EjtelZn4J2VubhaS7ZFQ2lmiYqm4P5Tw8Kwq6GuUqISBB8RCp8cO2qfA==", "requires": { "buffer": "4.9.2", "events": "1.1.1", @@ -2974,9 +2059,9 @@ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" }, "constructs": { - "version": "10.1.280", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.1.280.tgz", - "integrity": "sha512-ONyTi3iUCp66xYHVnKx3yp2I7YMfSIKEdssTI3cVkL3SZHUJ/jh7dKb5ycsxEkKyO5MtStEc0r2m2zyq1KXRYA==" + "version": "10.1.252", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.1.252.tgz", + "integrity": "sha512-8j3bcoSTlIjbCu1tflWHvipVDWmllUNu3dEWb5GXvsXCiYuH0NtXCCN5q6GmFInDcspZp8WOYu66uqQ8Bk7jzQ==" }, "core-util-is": { "version": "1.0.3", @@ -3066,12 +2151,6 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "optional": true - }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", diff --git a/package.json b/package.json index 978c263..17ac3b7 100644 --- a/package.json +++ b/package.json @@ -4,11 +4,9 @@ "description": "dev cluster", "main": "index.js", "dependencies": { - "@aws-cdk/aws-ecr": "^1.197.0", - "@aws-quickstart/eks-blueprints": "^1.6.0", - "aws-cdk": "^2.69.0", - "aws-cdk-lib": "^2.69.0", - "constructs": "^10.1.252" + "@aws-quickstart/eks-blueprints": "=1.6.0", + "aws-cdk-lib": "=2.66.1", + "constructs": "=10.1.252" }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" diff --git a/pullsecret.ts b/pullsecret.ts new file mode 100644 index 0000000..5dee0a3 --- /dev/null +++ b/pullsecret.ts @@ -0,0 +1,24 @@ +import { KubernetesManifest } from "aws-cdk-lib/aws-eks"; +import { ClusterAddOn, ClusterInfo } from "@aws-quickstart/eks-blueprints"; +import * as blueprints from "@aws-quickstart/eks-blueprints"; + +export class DeployImagePullSecret implements ClusterAddOn { + deploy(clusterInfo: ClusterInfo): void { + const accountID = process.env.CDK_DEFAULT_ACCOUNT!; + const cluster = clusterInfo.cluster; + const region = "eu-central-1" + const ecrURL = `${accountID}.dkr.ecr.${region}.amazonaws.com` + let secretValue = { + credHelpers: { + [ecrURL]: "ecr-login" + } + } + const secret = cluster.addManifest("ECRSecret", { + "apiVersion": "v1", + "kind": "Secret", + "type": "kubernetes.io/dockerconfigjson", + "metadata": {"name": "regcred", "namespace": "default"}, + "stringData": {".dockerconfigjson": JSON.stringify(secretValue)} + }) + } +} \ No newline at end of file diff --git a/teams.ts b/teams.ts index de4da3e..913f4d6 100644 --- a/teams.ts +++ b/teams.ts @@ -1,10 +1,10 @@ -import { PlatformTeam } from '@aws-quickstart/eks-blueprints'; +import { PlatformTeam } from "@aws-quickstart/eks-blueprints"; export class TeamPlatform extends PlatformTeam { - constructor(accountID: string) { - super({ - name: "platform", - userRoleArn: `arn:aws:iam::${accountID}:role/AWSReservedSSO_AdministratorAccess_b3c1cae6dc09120a` - }) - } -} \ No newline at end of file + constructor(accountID: string) { + super({ + name: "platform", + userRoleArn: `arn:aws:iam::${accountID}:role/AWSReservedSSO_AdministratorAccess_b3c1cae6dc09120a`, + }); + } +}