From 55b98f674a78a862ce723732d6904900969bf592 Mon Sep 17 00:00:00 2001 From: Nate Kruse Date: Tue, 10 Sep 2024 22:21:22 +0000 Subject: [PATCH 1/3] update ecr repo url regex --- .../lib/aws-eks/kubectl-handler/helm/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@aws-cdk/custom-resource-handlers/lib/aws-eks/kubectl-handler/helm/__init__.py b/packages/@aws-cdk/custom-resource-handlers/lib/aws-eks/kubectl-handler/helm/__init__.py index ddf0753a8aa6b..49b684851420e 100644 --- a/packages/@aws-cdk/custom-resource-handlers/lib/aws-eks/kubectl-handler/helm/__init__.py +++ b/packages/@aws-cdk/custom-resource-handlers/lib/aws-eks/kubectl-handler/helm/__init__.py @@ -101,7 +101,7 @@ def helm_handler(event, context): 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\-]+)\.amazonaws\.com(\.cn)?)*' + 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() From dba8037bee1bb69f494fa115ba53c3e3d4e3fd21 Mon Sep 17 00:00:00 2001 From: Nate Kruse Date: Thu, 12 Sep 2024 20:07:57 +0000 Subject: [PATCH 2/3] Add unit test for private helm chart repo --- packages/aws-cdk-lib/aws-eks/test/helm-chart.test.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/aws-cdk-lib/aws-eks/test/helm-chart.test.ts b/packages/aws-cdk-lib/aws-eks/test/helm-chart.test.ts index cb3804d4289e7..bf7eb59b1e432 100644 --- a/packages/aws-cdk-lib/aws-eks/test/helm-chart.test.ts +++ b/packages/aws-cdk-lib/aws-eks/test/helm-chart.test.ts @@ -4,6 +4,7 @@ import { Template } from '../../assertions'; import { Asset } from '../../aws-s3-assets'; import { Duration } from '../../core'; import * as eks from '../lib'; +import { Repository } from '../../aws-ecr'; /* eslint-disable max-len */ @@ -272,5 +273,15 @@ describe('helm chart', () => { // THEN Template.fromStack(stack).hasResourceProperties(eks.HelmChart.RESOURCE_TYPE, { SkipCrds: true }); }); + test('should use private ecr repo when specified', () => { + // GIVEN + const { stack, cluster } = testFixtureCluster(); + + // WHEN + new eks.HelmChart(stack, 'MyPrivateChart', { cluster, chart: 'chart', repository: 'oci://012345678.dkr.ecr.us-east-1.amazonaws.com/private-repo' }); + + // THEN + Template.fromStack(stack).hasResourceProperties(eks.HelmChart.RESOURCE_TYPE, { Repository: 'oci://012345678.dkr.ecr.us-east-1.amazonaws.com/private-repo' }); + }); }); }); From 36162d513805976e19cec6b1f559da56b6f2db57 Mon Sep 17 00:00:00 2001 From: Nate Kruse Date: Thu, 12 Sep 2024 20:14:22 +0000 Subject: [PATCH 3/3] remove unecessary import --- packages/aws-cdk-lib/aws-eks/test/helm-chart.test.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/aws-cdk-lib/aws-eks/test/helm-chart.test.ts b/packages/aws-cdk-lib/aws-eks/test/helm-chart.test.ts index bf7eb59b1e432..0974ebbf844e6 100644 --- a/packages/aws-cdk-lib/aws-eks/test/helm-chart.test.ts +++ b/packages/aws-cdk-lib/aws-eks/test/helm-chart.test.ts @@ -4,7 +4,6 @@ import { Template } from '../../assertions'; import { Asset } from '../../aws-s3-assets'; import { Duration } from '../../core'; import * as eks from '../lib'; -import { Repository } from '../../aws-ecr'; /* eslint-disable max-len */