From eafa4720e6c0d20a1072f7036339adfee367f41a Mon Sep 17 00:00:00 2001 From: Elamaran Shanmugam Date: Tue, 12 Dec 2023 10:15:16 -0500 Subject: [PATCH 01/13] Upgrade CDK, Libraries, HELM, ACK and Others for Release Prep --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1b6c6e9f6..8a2f19d2a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@aws-quickstart/eks-blueprints", - "version": "1.12.0", + "version": "1.13.0", "license": "Apache-2.0", "main": "dist/index.js", "types": "dist/index.d.ts", From 3e31460f861dc5df8fea3f611d392ff229d4d8a3 Mon Sep 17 00:00:00 2001 From: Elamaran Shanmugam Date: Tue, 12 Dec 2023 10:51:54 -0500 Subject: [PATCH 02/13] Upgrade CDK, Libraries, HELM, ACK and Others for Release Prep --- lib/addons/adot/index.ts | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/lib/addons/adot/index.ts b/lib/addons/adot/index.ts index 856433c54..0762c0040 100644 --- a/lib/addons/adot/index.ts +++ b/lib/addons/adot/index.ts @@ -15,10 +15,11 @@ export type AdotCollectorAddOnProps = Omit= adotVersionMinValue; +} + + From df87d303673cd6a18e8ddafd7e780f37d4b5cfe7 Mon Sep 17 00:00:00 2001 From: Elamaran Shanmugam Date: Tue, 12 Dec 2023 11:01:18 -0500 Subject: [PATCH 03/13] Upgrade CDK, Libraries, HELM, ACK and Others for Release Prep --- lib/addons/adot/index.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/addons/adot/index.ts b/lib/addons/adot/index.ts index 0762c0040..966fd18e1 100644 --- a/lib/addons/adot/index.ts +++ b/lib/addons/adot/index.ts @@ -42,7 +42,7 @@ export class AdotCollectorAddOn extends CoreAddOn { const cluster = clusterInfo.cluster; if (validateAdotVersion(this.coreAddOnProps.version)) { - console.log("Adot Addon Version is Valid"); + console.log("Used Adot Addon Version is Valid"); } else { throw new Error(`Adot Addon Version is not Valid and greater than 0.88.0`); @@ -70,8 +70,9 @@ export class AdotCollectorAddOn extends CoreAddOn { } function validateAdotVersion(adotversion: string): boolean { - // Define a regular expression for a floating-point number with 2 to 6 characters - const adotVersionRegex = /^\d+(\.\d{2,6})?$/; + // Extract the substring from position 2 to 5 + const extractedSubstring = adotversion.substring(1, 4); + const adotVersionRegex = new RegExp(`^0\.00`); // Use a regex to match the version format // Check if the input matches the regex if (!adotVersionRegex.test(adotversion)) { From 5986662f309f697e209d54e572a33d8b9bc56d5a Mon Sep 17 00:00:00 2001 From: Elamaran Shanmugam Date: Tue, 12 Dec 2023 12:30:56 -0500 Subject: [PATCH 04/13] Upgrade CDK, Libraries, HELM, ACK and Others for Release Prep --- examples/blueprint-construct/index.ts | 2 +- lib/addons/adot/index.ts | 20 ++----------------- lib/addons/appmesh/index.ts | 2 +- lib/addons/argocd/index.ts | 2 +- lib/addons/aws-for-fluent-bit/index.ts | 2 +- .../aws-loadbalancer-controller/index.ts | 2 +- lib/addons/aws-privateca-issuer/index.ts | 2 +- lib/addons/calico-operator/index.ts | 2 +- lib/addons/cert-manager/index.ts | 2 +- lib/addons/cloudwatch-logs/index.ts | 2 +- lib/addons/efs-csi-driver/index.ts | 2 +- lib/addons/external-secrets/index.ts | 2 +- lib/addons/fluxcd/index.ts | 2 +- lib/addons/gpu-operator/index.ts | 2 +- lib/addons/grafana-operator/index.ts | 2 +- lib/addons/helm-addon/helm-version-checker.ts | 2 +- lib/addons/istio-base/index.ts | 2 +- lib/addons/istio-control-plane/index.ts | 2 +- lib/addons/keda/index.ts | 2 +- lib/addons/kube-state-metrics/index.ts | 2 +- lib/addons/nginx/index.ts | 2 +- lib/addons/opa-gatekeeper/index.ts | 2 +- lib/addons/prometheus-node-exporter/index.ts | 2 +- lib/addons/secrets-store/index.ts | 2 +- lib/addons/velero/index.ts | 2 +- 25 files changed, 26 insertions(+), 42 deletions(-) diff --git a/examples/blueprint-construct/index.ts b/examples/blueprint-construct/index.ts index 988cd4332..f1f90c1bd 100644 --- a/examples/blueprint-construct/index.ts +++ b/examples/blueprint-construct/index.ts @@ -62,7 +62,7 @@ export default class BlueprintConstruct { new blueprints.addons.PrometheusNodeExporterAddOn(), new blueprints.addons.AdotCollectorAddOn({ namespace:'adot', - version: 'v0.80.0-eksbuild.2' + version: 'v0.88.0-eksbuild.2' }), new blueprints.addons.AmpAddOn({ ampPrometheusEndpoint: ampWorkspace.attrPrometheusEndpoint, diff --git a/lib/addons/adot/index.ts b/lib/addons/adot/index.ts index 966fd18e1..b4bd086df 100644 --- a/lib/addons/adot/index.ts +++ b/lib/addons/adot/index.ts @@ -5,6 +5,7 @@ import { createNamespace, dependable, loadYaml, readYamlDocument, supportsALL } import { CertManagerAddOn } from "../cert-manager"; import { CoreAddOn, CoreAddOnProps } from "../core-addon"; import { getAdotCollectorPolicyDocument } from "./iam-policy"; +import { semverComparator } from "../helm-addon/helm-version-checker"; /** * Configuration options for the Adot add-on. @@ -41,7 +42,7 @@ export class AdotCollectorAddOn extends CoreAddOn { const cluster = clusterInfo.cluster; - if (validateAdotVersion(this.coreAddOnProps.version)) { + if (semverComparator("0.88",this.coreAddOnProps.version)) { console.log("Used Adot Addon Version is Valid"); } else { @@ -68,22 +69,5 @@ export class AdotCollectorAddOn extends CoreAddOn { return addOnPromise; } } - -function validateAdotVersion(adotversion: string): boolean { - // Extract the substring from position 2 to 5 - const extractedSubstring = adotversion.substring(1, 4); - const adotVersionRegex = new RegExp(`^0\.00`); // Use a regex to match the version format - - // Check if the input matches the regex - if (!adotVersionRegex.test(adotversion)) { - return false; - } - - // Parse the input as a float and perform greater-than validation - const adotVersionValue = parseFloat(adotversion); - const adotVersionMinValue = 0.88; // Set your minimum value here - - return adotVersionValue >= adotVersionMinValue; -} diff --git a/lib/addons/appmesh/index.ts b/lib/addons/appmesh/index.ts index 921679627..32ba7c8cd 100644 --- a/lib/addons/appmesh/index.ts +++ b/lib/addons/appmesh/index.ts @@ -45,7 +45,7 @@ const defaultProps = { name: "appmesh-controller", namespace: "appmesh-system", chart: "appmesh-controller", - version: "1.12.3", + version: "1.12.5", release: "appmesh-release", repository: "https://aws.github.io/eks-charts" }; diff --git a/lib/addons/argocd/index.ts b/lib/addons/argocd/index.ts index ef9753d52..2acc6323c 100644 --- a/lib/addons/argocd/index.ts +++ b/lib/addons/argocd/index.ts @@ -72,7 +72,7 @@ export interface ArgoCDAddOnProps extends HelmAddOnUserProps { */ const defaultProps = { namespace: "argocd", - version: '5.46.7', + version: '5.51.6', chart: "argo-cd", release: "blueprints-addon-argocd", repository: "https://argoproj.github.io/argo-helm" diff --git a/lib/addons/aws-for-fluent-bit/index.ts b/lib/addons/aws-for-fluent-bit/index.ts index 2409af92c..8678e5cfe 100644 --- a/lib/addons/aws-for-fluent-bit/index.ts +++ b/lib/addons/aws-for-fluent-bit/index.ts @@ -27,7 +27,7 @@ const defaultProps: AwsForFluentBitAddOnProps = { name: 'fluent-bit', chart: 'aws-for-fluent-bit', release: "blueprints-addon-aws-for-fluent-bit", - version: '0.1.30', + version: '0.1.32', repository: 'https://aws.github.io/eks-charts', namespace: 'kube-system', createNamespace: false, diff --git a/lib/addons/aws-loadbalancer-controller/index.ts b/lib/addons/aws-loadbalancer-controller/index.ts index 50c2f6bca..18c264d9c 100644 --- a/lib/addons/aws-loadbalancer-controller/index.ts +++ b/lib/addons/aws-loadbalancer-controller/index.ts @@ -57,7 +57,7 @@ const defaultProps: AwsLoadBalancerControllerProps = { chart: AWS_LOAD_BALANCER_CONTROLLER, repository: 'https://aws.github.io/eks-charts', release: AWS_LOAD_BALANCER_CONTROLLER, - version: '1.6.1', + version: '1.6.2', enableShield: false, enableWaf: false, enableWafv2: false, diff --git a/lib/addons/aws-privateca-issuer/index.ts b/lib/addons/aws-privateca-issuer/index.ts index 0bbed1ddc..ba140abfe 100644 --- a/lib/addons/aws-privateca-issuer/index.ts +++ b/lib/addons/aws-privateca-issuer/index.ts @@ -30,7 +30,7 @@ const defaultProps: HelmAddOnProps & AWSPrivateCAIssuerAddonProps = { name: "blueprints-aws-pca-issuer-addon", chart: "aws-privateca-issuer", namespace:"aws-pca-issuer", - version: "1.2.5", + version: "1.2.6", release: "aws-pca-issuer", repository: "https://cert-manager.github.io/aws-privateca-issuer", values: {}, diff --git a/lib/addons/calico-operator/index.ts b/lib/addons/calico-operator/index.ts index ec926ebd2..4748e9349 100644 --- a/lib/addons/calico-operator/index.ts +++ b/lib/addons/calico-operator/index.ts @@ -32,7 +32,7 @@ export interface CalicoOperatorAddOnProps extends HelmAddOnUserProps { const defaultProps = { name: 'calico-operator', namespace: 'calico-operator', - version: 'v3.26.2', + version: 'v3.26.4', chart: "tigera-operator", release: "bp-addon-calico-operator", repository: "https://projectcalico.docs.tigera.io/charts" diff --git a/lib/addons/cert-manager/index.ts b/lib/addons/cert-manager/index.ts index 75a3bd2ff..975f71d66 100644 --- a/lib/addons/cert-manager/index.ts +++ b/lib/addons/cert-manager/index.ts @@ -27,7 +27,7 @@ const defaultProps: HelmAddOnProps & CertManagerAddOnProps = { name: "blueprints-cert-manager-addon", namespace: "cert-manager", chart: "cert-manager", - version: "1.13.1", + version: "1.13.3", release: "cert-manager", repository: "https://charts.jetstack.io", values: {}, diff --git a/lib/addons/cloudwatch-logs/index.ts b/lib/addons/cloudwatch-logs/index.ts index 087d9bff8..102d0d9e7 100644 --- a/lib/addons/cloudwatch-logs/index.ts +++ b/lib/addons/cloudwatch-logs/index.ts @@ -38,7 +38,7 @@ const defaultProps: CloudWatchLogsAddonProps = { name: 'aws-for-fluent-bit', chart: 'aws-for-fluent-bit', release: "blueprints-addon-aws-fluent-bit-for-cw", - version: '0.1.30', + version: '0.1.32', repository: 'https://aws.github.io/eks-charts', namespace: 'aws-for-fluent-bit', createNamespace: true, diff --git a/lib/addons/efs-csi-driver/index.ts b/lib/addons/efs-csi-driver/index.ts index 4ec475a33..1c4fe51ed 100644 --- a/lib/addons/efs-csi-driver/index.ts +++ b/lib/addons/efs-csi-driver/index.ts @@ -37,7 +37,7 @@ export interface EfsCsiDriverProps extends HelmAddOnUserProps { * Defaults options for the add-on */ const defaultProps: EfsCsiDriverProps = { - version: '2.5.0', + version: '2.5.2', namespace: "kube-system", repository: "https://kubernetes-sigs.github.io/aws-efs-csi-driver/", name: EFS_CSI_DRIVER, diff --git a/lib/addons/external-secrets/index.ts b/lib/addons/external-secrets/index.ts index d7fce7171..156fd2b24 100644 --- a/lib/addons/external-secrets/index.ts +++ b/lib/addons/external-secrets/index.ts @@ -23,7 +23,7 @@ const defaultProps: ExternalsSecretsAddOnProps = { name: "external-secrets", chart: "external-secrets", release: "blueprints-addon-external-secrets", - version: "0.9.5", + version: "0.9.9", repository: "https://charts.external-secrets.io", namespace: "external-secrets", values: {}, diff --git a/lib/addons/fluxcd/index.ts b/lib/addons/fluxcd/index.ts index 34339f08f..834bba080 100644 --- a/lib/addons/fluxcd/index.ts +++ b/lib/addons/fluxcd/index.ts @@ -95,7 +95,7 @@ const defaultProps: HelmAddOnProps & FluxCDAddOnProps = { name: "fluxcd-addon", namespace: "flux-system", chart: "flux2", - version: "2.10.1", + version: "2.11.1", release: "blueprints-fluxcd-addon", repository: "https://fluxcd-community.github.io/helm-charts", values: {}, diff --git a/lib/addons/gpu-operator/index.ts b/lib/addons/gpu-operator/index.ts index be4e00a78..2331d449d 100644 --- a/lib/addons/gpu-operator/index.ts +++ b/lib/addons/gpu-operator/index.ts @@ -23,7 +23,7 @@ const defaultProps: HelmAddOnProps & GpuOperatorAddonProps = { name: "gpu-operator-addon", namespace: "gpu-operator", chart: "gpu-operator", - version: "v23.6.1", + version: "v23.9.1", release: "nvidia-gpu-operator", repository: "https://helm.ngc.nvidia.com/nvidia", createNamespace: true, diff --git a/lib/addons/grafana-operator/index.ts b/lib/addons/grafana-operator/index.ts index 7a07efe39..1eeb555fb 100644 --- a/lib/addons/grafana-operator/index.ts +++ b/lib/addons/grafana-operator/index.ts @@ -21,7 +21,7 @@ const defaultProps: HelmAddOnProps & GrafanaOperatorAddonProps = { chart: 'oci://ghcr.io/grafana-operator/helm-charts/grafana-operator', namespace: 'grafana-operator', release: 'grafana-operator', - version: 'v5.4.0', + version: 'v5.6.0', values: {}, createNamespace: true }; diff --git a/lib/addons/helm-addon/helm-version-checker.ts b/lib/addons/helm-addon/helm-version-checker.ts index 8ed80da1c..1f8185fff 100644 --- a/lib/addons/helm-addon/helm-version-checker.ts +++ b/lib/addons/helm-addon/helm-version-checker.ts @@ -11,7 +11,7 @@ export type HelmChartVersion = Omit { +export const semverComparator = (a: string, b: string) => { a = trimVersion(a); b = trimVersion(b); diff --git a/lib/addons/istio-base/index.ts b/lib/addons/istio-base/index.ts index f7d18d8ae..bdd7d299f 100644 --- a/lib/addons/istio-base/index.ts +++ b/lib/addons/istio-base/index.ts @@ -56,7 +56,7 @@ const defaultProps = { release: "istio-base", namespace: "istio-system", chart: "base", - version: "1.19.1", + version: "1.20.0", repository: "https://istio-release.storage.googleapis.com/charts" }; diff --git a/lib/addons/istio-control-plane/index.ts b/lib/addons/istio-control-plane/index.ts index 5b11be179..214aa5d5a 100644 --- a/lib/addons/istio-control-plane/index.ts +++ b/lib/addons/istio-control-plane/index.ts @@ -14,7 +14,7 @@ const defaultProps = { release: "istiod", namespace: "istio-system", chart: "istiod", - version: "1.19.1", + version: "1.20.0", repository: "https://istio-release.storage.googleapis.com/charts" }; diff --git a/lib/addons/keda/index.ts b/lib/addons/keda/index.ts index 2fb882c10..c634103d9 100644 --- a/lib/addons/keda/index.ts +++ b/lib/addons/keda/index.ts @@ -52,7 +52,7 @@ const defaultProps: HelmAddOnProps & KedaAddOnProps = { name: "blueprints-keda-addon", chart: "keda", namespace:"keda", - version: "2.12.0", + version: "2.12.1", release: "keda", repository: "https://kedacore.github.io/charts", values: {}, diff --git a/lib/addons/kube-state-metrics/index.ts b/lib/addons/kube-state-metrics/index.ts index c3634007b..289f936dd 100644 --- a/lib/addons/kube-state-metrics/index.ts +++ b/lib/addons/kube-state-metrics/index.ts @@ -21,7 +21,7 @@ const defaultProps: HelmAddOnProps & KubeStateMetricsAddOnProps = { name: "kube-state-metrics", namespace: "kube-system", chart: "kube-state-metrics", - version: "5.14.0", + version: "5.15.2", release: "kube-state-metrics", repository: "https://prometheus-community.github.io/helm-charts", values: {}, diff --git a/lib/addons/nginx/index.ts b/lib/addons/nginx/index.ts index e84e5aa78..fbbb30cd1 100644 --- a/lib/addons/nginx/index.ts +++ b/lib/addons/nginx/index.ts @@ -61,7 +61,7 @@ const defaultProps: NginxAddOnProps = { name: "nginx-ingress", chart: "nginx-ingress", release: "blueprints-addon-nginx", - version: "1.0.0", + version: "1.0.2", repository: "https://helm.nginx.com/stable", backendProtocol: 'tcp', crossZoneEnabled: true, diff --git a/lib/addons/opa-gatekeeper/index.ts b/lib/addons/opa-gatekeeper/index.ts index 227a239ea..6ca179996 100644 --- a/lib/addons/opa-gatekeeper/index.ts +++ b/lib/addons/opa-gatekeeper/index.ts @@ -20,7 +20,7 @@ const defaultProps: HelmAddOnProps = { namespace: 'gatekeeper-system', chart: 'gatekeeper', repository: "https://open-policy-agent.github.io/gatekeeper/charts", - version: '3.13.0' + version: '3.14.0' }; @supportsALL diff --git a/lib/addons/prometheus-node-exporter/index.ts b/lib/addons/prometheus-node-exporter/index.ts index 2f6004fa5..147fec589 100644 --- a/lib/addons/prometheus-node-exporter/index.ts +++ b/lib/addons/prometheus-node-exporter/index.ts @@ -21,7 +21,7 @@ const defaultProps: HelmAddOnProps & PrometheusNodeExporterAddOnProps = { name: "prometheus-node-exporter", namespace: "prometheus-node-exporter", chart: "prometheus-node-exporter", - version: "4.23.2", + version: "4.24.0", release: "prometheus-node-exporter", repository: "https://prometheus-community.github.io/helm-charts", values: {}, diff --git a/lib/addons/secrets-store/index.ts b/lib/addons/secrets-store/index.ts index 3a9e91081..4fdb3dfe6 100644 --- a/lib/addons/secrets-store/index.ts +++ b/lib/addons/secrets-store/index.ts @@ -46,7 +46,7 @@ const defaultProps: SecretsStoreAddOnProps = { chart: 'secrets-store-csi-driver', name: 'secrets-store-csi-driver', namespace: 'kube-system', - version: '1.3.4', + version: '1.4.0', release: 'blueprints-addon-secret-store-csi-driver', repository: 'https://kubernetes-sigs.github.io/secrets-store-csi-driver/charts', rotationPollInterval: undefined, diff --git a/lib/addons/velero/index.ts b/lib/addons/velero/index.ts index 793684628..0b3835029 100644 --- a/lib/addons/velero/index.ts +++ b/lib/addons/velero/index.ts @@ -19,7 +19,7 @@ export interface VeleroAddOnProps extends HelmAddOnUserProps { */ const defaultProps = { name: 'velero', - version: "3.2.0", + version: "5.1.7", namespace: "velero", createNamespace: true, chart: "velero", From 9ebbf1ba0fa4b81c3750a5109562a48a6b5b968b Mon Sep 17 00:00:00 2001 From: Elamaran Shanmugam Date: Tue, 12 Dec 2023 13:14:15 -0500 Subject: [PATCH 05/13] Upgrade CDK, Libraries, HELM, ACK and Others for Release Prep --- lib/addons/ack/serviceMappings.ts | 88 ++++++++++++++++++++++--------- 1 file changed, 62 insertions(+), 26 deletions(-) diff --git a/lib/addons/ack/serviceMappings.ts b/lib/addons/ack/serviceMappings.ts index 35b6e38bc..9d193c0e0 100644 --- a/lib/addons/ack/serviceMappings.ts +++ b/lib/addons/ack/serviceMappings.ts @@ -37,7 +37,13 @@ export enum AckServiceName { ROUTE53 = "route53", SQS = "sqs", SAGEMAKER = "sagemaker", - EVENTBRIDGE = "eventbridge" + EVENTBRIDGE = "eventbridge", + PIPES = "pipes", + SECRETSMANAGER = "secretsmanager", + ROUTE53RESOLVER = "route53resolver", + CLOUDWATCH = "cloudwatch", + ACMPCA = "acmpca", + CLOUDWATCHLOGS = "cloudwatchlogs" } /** @@ -47,52 +53,52 @@ export enum AckServiceName { export const serviceMappings : {[key in AckServiceName]?: AckChartMapping } = { [AckServiceName.IAM]: { chart: "iam-chart", - version: "1.2.2", + version: "1.3.1", managedPolicyName: "IAMFullAccess" }, [AckServiceName.RDS]: { chart: "rds-chart", - version: "1.1.5", + version: "1.1.8", managedPolicyName: "AmazonRDSFullAccess" }, [AckServiceName.EC2]: { chart: "ec2-chart", - version: "1.0.3", + version: "1.1.0", managedPolicyName: "AmazonRDSFullAccess" }, [AckServiceName.S3]: { chart: "s3-chart", - version: "1.0.4", + version: "1.0.6", managedPolicyName: "AmazonS3FullAccess" }, [AckServiceName.DYNAMODB]: { chart: "dynamodb-chart", - version: "1.1.2", + version: "1.2.5", managedPolicyName: "AmazonDynamoDBFullAccess" }, [AckServiceName.ECR]: { chart: "ecr-chart", - version: "1.0.5", + version: "1.0.9", managedPolicyName: "AmazonEC2ContainerRegistryFullAccess" }, [AckServiceName.SNS]: { chart: "sns-chart", - version: "1.0.2", + version: "1.0.5", managedPolicyName: "AmazonSNSFullAccess" }, [AckServiceName.APIGATEWAYV2]: { chart: "apigatewayv2-chart", - version: "1.0.4", + version: "1.0.6", managedPolicyName: "AmazonAPIGatewayAdministrator" }, [AckServiceName.ELASTICACHE]: { chart: "elasticache-chart", - version: "0.0.26", + version: "0.0.28", managedPolicyName: "AmazonElastiCacheFullAccess" }, [AckServiceName.OPENSEARCHSERVICE]: { chart: "opensearchservice-chart", - version: "0.0.16", + version: "0.0.18", managedPolicyName: "AmazonOpenSearchServiceFullAccess" }, [AckServiceName.MQ]: { @@ -102,27 +108,27 @@ export const serviceMappings : {[key in AckServiceName]?: AckChartMapping } = { }, [AckServiceName.LAMBDA]: { chart: "lambda-chart", - version: "1.1.0", + version: "1.3.4", managedPolicyName: "AWSLambda_FullAccess" }, [AckServiceName.KMS]: { chart: "kms-chart", - version: "1.0.5", + version: "1.0.7", managedPolicyName: "AWSKeyManagementServicePowerUser" }, [AckServiceName.MEMORYDB]: { chart: "memorydb-chart", - version: "1.0.1", + version: "1.0.2", managedPolicyName: "AmazonMemoryDBFullAccess" }, [AckServiceName.EKS]: { chart: "eks-chart", - version: "1.0.3", + version: "1.0.5", managedPolicyName: "AmazonEKSClusterPolicy" }, [AckServiceName.APPLICATIONAUTOSCALING]: { chart: "applicationautoscaling-chart", - version: "1.0.5", + version: "1.0.8", managedPolicyName: "AutoScalingFullAccess" }, [AckServiceName.ELASTICSEARCHSERVICE]: { @@ -132,52 +138,82 @@ export const serviceMappings : {[key in AckServiceName]?: AckChartMapping } = { }, [AckServiceName.PROMETHEUSSERVICE]: { chart: "prometheusservice-chart", - version: "1.2.3", + version: "1.2.5", managedPolicyName: "AmazonPrometheusFullAccess" }, [AckServiceName.EMRCONTAINERS]: { chart: "emrcontainers-chart", - version: "1.0.2", + version: "1.0.4", managedPolicyName: "AmazonEMRContainersServiceRolePolicy" }, [AckServiceName.SFN]: { chart: "sfn-chart", - version: "1.0.3", + version: "1.0.5", managedPolicyName: "AWSStepFunctionsFullAccess" }, [AckServiceName.KINESIS]: { chart: "kinesis-chart", - version: "0.0.7", + version: "0.0.9", managedPolicyName: "AmazonKinesisFullAccess" }, [AckServiceName.CLOUDTRAIL]: { chart: "cloudtrail-chart", - version: "1.0.3", + version: "1.0.5", managedPolicyName: "AWSCloudTrail_FullAccess" }, [AckServiceName.ACM]: { chart: "acm-chart", - version: "0.0.7", + version: "0.0.9", managedPolicyName: "AWSCertificateManagerFullAccess" }, [AckServiceName.ROUTE53]: { chart: "route53-chart", - version: "0.0.5", + version: "0.0.8", managedPolicyName: "AmazonRoute53FullAccess" }, [AckServiceName.SQS]: { chart: "sqs-chart", - version: "1.0.4", + version: "1.0.6", managedPolicyName: "AmazonSQSFullAccess" }, [AckServiceName.SAGEMAKER]: { chart: "sagemaker-chart", - version: "1.2.2", + version: "1.2.4", managedPolicyName: "AmazonSageMakerFullAccess" }, [AckServiceName.EVENTBRIDGE]: { chart: "eventbridge-chart", - version: "1.0.2", + version: "1.0.4", managedPolicyName: "AmazonEventBridgeFullAccess" + }, + [AckServiceName.PIPES]: { + chart: "pipes-chart", + version: "1.0.2", + managedPolicyName: "AmazonEventBridgePipesFullAccess" + }, + [AckServiceName.SECRETSMANAGER]: { + chart: "secretsmanager-chart", + version: "0.0.1", + managedPolicyName: "SecretsManagerReadWrite" + }, + [AckServiceName.CLOUDWATCH]: { + chart: "cloudwatch-chart", + version: "0.0.2", + managedPolicyName: "CloudWatchFullAccess" + }, + [AckServiceName.ROUTE53RESOLVER]: { + chart: "route53resolver-chart", + version: "0.0.2", + managedPolicyName: "AmazonRoute53ResolverFullAccess" + }, + [AckServiceName.ACMPCA]: { + chart: "acmpca-chart", + version: "0.0.2", + managedPolicyName: "AWSCertificateManagerPrivateCAFullAccess" + }, + [AckServiceName.CLOUDWATCHLOGS]: { + chart: "cloudwatchlogs-chart", + version: "0.0.1", + managedPolicyName: "CloudWatchLogsFullAccess" } }; From 487efc800a4afe2bd979b5eb416226f355524982 Mon Sep 17 00:00:00 2001 From: Elamaran Shanmugam Date: Tue, 12 Dec 2023 15:00:58 -0500 Subject: [PATCH 06/13] Upgrade CDK, Libraries, HELM, ACK and Others for Release Prep --- lib/addons/efs-csi-driver/iam-policy.ts | 4 +++- lib/addons/grafana-operator/index.ts | 2 +- lib/addons/istio-control-plane/index.ts | 2 +- lib/addons/velero/index.ts | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/addons/efs-csi-driver/iam-policy.ts b/lib/addons/efs-csi-driver/iam-policy.ts index 18e13d32d..a4a2c71f5 100644 --- a/lib/addons/efs-csi-driver/iam-policy.ts +++ b/lib/addons/efs-csi-driver/iam-policy.ts @@ -19,7 +19,9 @@ export function getEfsDriverPolicyStatements( "Effect": "Allow", "Action": [ "elasticfilesystem:DescribeAccessPoints", - "elasticfilesystem:DescribeFileSystems" + "elasticfilesystem:DescribeFileSystems", + "elasticfilesystem:DescribeMountTargets", + "ec2:DescribeAvailabilityZones" ], "Resource": "*" }, diff --git a/lib/addons/grafana-operator/index.ts b/lib/addons/grafana-operator/index.ts index 1eeb555fb..7a07efe39 100644 --- a/lib/addons/grafana-operator/index.ts +++ b/lib/addons/grafana-operator/index.ts @@ -21,7 +21,7 @@ const defaultProps: HelmAddOnProps & GrafanaOperatorAddonProps = { chart: 'oci://ghcr.io/grafana-operator/helm-charts/grafana-operator', namespace: 'grafana-operator', release: 'grafana-operator', - version: 'v5.6.0', + version: 'v5.4.0', values: {}, createNamespace: true }; diff --git a/lib/addons/istio-control-plane/index.ts b/lib/addons/istio-control-plane/index.ts index 214aa5d5a..e866722b9 100644 --- a/lib/addons/istio-control-plane/index.ts +++ b/lib/addons/istio-control-plane/index.ts @@ -14,7 +14,7 @@ const defaultProps = { release: "istiod", namespace: "istio-system", chart: "istiod", - version: "1.20.0", + version: "1.20.1", repository: "https://istio-release.storage.googleapis.com/charts" }; diff --git a/lib/addons/velero/index.ts b/lib/addons/velero/index.ts index 0b3835029..793684628 100644 --- a/lib/addons/velero/index.ts +++ b/lib/addons/velero/index.ts @@ -19,7 +19,7 @@ export interface VeleroAddOnProps extends HelmAddOnUserProps { */ const defaultProps = { name: 'velero', - version: "5.1.7", + version: "3.2.0", namespace: "velero", createNamespace: true, chart: "velero", From d83d106344e4c8cf5cb33b9de821d894c109c40a Mon Sep 17 00:00:00 2001 From: Elamaran Shanmugam Date: Tue, 12 Dec 2023 15:01:27 -0500 Subject: [PATCH 07/13] Upgrade CDK, Libraries, HELM, ACK and Others for Release Prep --- lib/addons/istio-base/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/addons/istio-base/index.ts b/lib/addons/istio-base/index.ts index bdd7d299f..2a02ff9ba 100644 --- a/lib/addons/istio-base/index.ts +++ b/lib/addons/istio-base/index.ts @@ -56,7 +56,7 @@ const defaultProps = { release: "istio-base", namespace: "istio-system", chart: "base", - version: "1.20.0", + version: "1.20.1", repository: "https://istio-release.storage.googleapis.com/charts" }; From 37c3abd4298395b93d8dc2aef505c72b1f93b161 Mon Sep 17 00:00:00 2001 From: shapirov Date: Tue, 12 Dec 2023 15:30:40 -0500 Subject: [PATCH 08/13] Moved CDK to 2.114.1, upgraded libraries, node moved to 20, cluster autoscaler fixed to work with 1.27 and 1.28, EKS default version upgraded to 1.28, GPU/Windows/Graviton builder upgraded to 1.28 --- .github/workflows/ci.yaml | 6 ++--- README.md | 4 ++-- ci/buildspec.yml | 2 +- docs/README.md | 4 ++-- docs/builders/gpu-builder.md | 2 +- docs/builders/graviton-builder.md | 2 +- docs/builders/windows-builder.md | 2 +- .../fargate-cluster-provider.md | 2 +- docs/getting-started.md | 4 ++-- docs/internal/ci.md | 2 +- examples/blueprint-construct/index.ts | 2 +- lib/addons/argocd/index.ts | 2 +- lib/addons/cluster-autoscaler/index.ts | 24 ++++++++++--------- lib/addons/kube-proxy/index.ts | 3 ++- lib/builders/gpu-builder.ts | 2 +- lib/builders/graviton-builder.ts | 4 ++-- lib/builders/windows-builder.ts | 2 +- .../generic-cluster-provider.ts | 5 +++- lib/pipelines/code-pipeline.ts | 2 +- lib/stacks/eks-blueprint-stack.ts | 4 ++-- package.json | 11 +++++---- test/cluster-autoscaler.test.ts | 8 +++---- test/clusterprovider.test.ts | 12 +++++----- 23 files changed, 59 insertions(+), 52 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 9e6bff653..1d7bae053 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -12,13 +12,13 @@ jobs: strategy: matrix: - node-version: [18.12.1] + node-version: [20.10.0] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} diff --git a/README.md b/README.md index 02962579e..52c007d1e 100644 --- a/README.md +++ b/README.md @@ -44,14 +44,14 @@ aws --version Install CDK matching the current version of the Blueprints QuickStart (which can be found in package.json). ```bash -npm install -g aws-cdk@2.99.1 +npm install -g aws-cdk@2.114.1 ``` Verify the installation. ```bash cdk --version -# must output 2.99.1 +# must output 2.114.1 ``` Create a new CDK project. We use `typescript` for this example. diff --git a/ci/buildspec.yml b/ci/buildspec.yml index b213cf691..ed7142348 100644 --- a/ci/buildspec.yml +++ b/ci/buildspec.yml @@ -7,7 +7,7 @@ phases: runtime-versions: nodejs: 14 commands: - - n 18.12.1 + - n 20.10.0 - | if [ ! -z "${COMMIT_ID}" ]; then git fetch origin pull/${PR_NUMBER}/head:pr diff --git a/docs/README.md b/docs/README.md index 6b694c6f1..d61694adf 100644 --- a/docs/README.md +++ b/docs/README.md @@ -44,14 +44,14 @@ aws --version Install CDK matching the current version of the Blueprints QuickStart (which can be found in package.json). ```bash -npm install -g aws-cdk@2.99.1 +npm install -g aws-cdk@2.114.1 ``` Verify the installation. ```bash cdk --version -# must output 2.99.1 +# must output 2.114.1 ``` Create a new CDK project. We use `typescript` for this example. diff --git a/docs/builders/gpu-builder.md b/docs/builders/gpu-builder.md index 4e6fa9a1e..e3e0fc74a 100644 --- a/docs/builders/gpu-builder.md +++ b/docs/builders/gpu-builder.md @@ -41,7 +41,7 @@ export default class GpuConstruct { const stackID = `${id}-eks-blueprint`; const options: GpuOptions = { - kubernetesVersion: eks.KubernetesVersion.of("1.27"), + kubernetesVersion: eks.KubernetesVersion.of("1.28"), instanceClass: ec2.InstanceClass.G5, instanceSize: ec2.InstanceSize.XLARGE }; diff --git a/docs/builders/graviton-builder.md b/docs/builders/graviton-builder.md index e0d130ff9..5bd44954f 100644 --- a/docs/builders/graviton-builder.md +++ b/docs/builders/graviton-builder.md @@ -37,7 +37,7 @@ export default class GravitonConstruct { blueprints.getNamedResource(ampWorkspaceName); const options: Partial = { - version: eks.KubernetesVersion.of("1.27"), + version: eks.KubernetesVersion.of("1.28"), instanceTypes: [ec2.InstanceType.of(ec2.InstanceClass.M7G, ec2.InstanceSize.XLARGE)], desiredSize: 3, minSize: 2, diff --git a/docs/builders/windows-builder.md b/docs/builders/windows-builder.md index 78273c857..92239c5af 100644 --- a/docs/builders/windows-builder.md +++ b/docs/builders/windows-builder.md @@ -53,7 +53,7 @@ export default class WindowsConstruct { ]); const options: WindowsOptions = { - kubernetesVersion: eks.KubernetesVersion.of("1.27"), + kubernetesVersion: eks.KubernetesVersion.of("1.28"), instanceClass: ec2.InstanceClass.M5, instanceSize: ec2.InstanceSize.XLARGE4 }; diff --git a/docs/cluster-providers/fargate-cluster-provider.md b/docs/cluster-providers/fargate-cluster-provider.md index fc5ee58d4..b25f812f4 100644 --- a/docs/cluster-providers/fargate-cluster-provider.md +++ b/docs/cluster-providers/fargate-cluster-provider.md @@ -27,7 +27,7 @@ const tags = { "Type": "fargate-cluster" } const clusterProvider = new blueprints.FargateClusterProvider({ - version: KubernetesVersion.V1_27, + version: KubernetesVersion.V1_28, fargateProfiles, tags }); diff --git a/docs/getting-started.md b/docs/getting-started.md index 9bb92f335..e45057154 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -26,8 +26,8 @@ Create a directory that represents you project (e.g. `my-blueprints`) and then c ```bash npm install -g n # may require sudo n stable # may require sudo -npm install -g aws-cdk@2.99.1 # may require sudo (Ubuntu) depending on configuration -cdk --version # must produce 2.99.1 +npm install -g aws-cdk@2.114.1 # may require sudo (Ubuntu) depending on configuration +cdk --version # must produce 2.114.1 mkdir my-blueprints cd my-blueprints cdk init app --language typescript diff --git a/docs/internal/ci.md b/docs/internal/ci.md index e6e53f1b3..912b0ca85 100644 --- a/docs/internal/ci.md +++ b/docs/internal/ci.md @@ -19,7 +19,7 @@ cd cdk-eks-blueprints Install CDK (please review and install any missing [pre-requisites](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html) for your environment) ```sh -npm install -g aws-cdk@2.99.1 +npm install -g aws-cdk@2.114.1 ``` Install the dependencies for this project. diff --git a/examples/blueprint-construct/index.ts b/examples/blueprint-construct/index.ts index f1f90c1bd..7a9245bee 100644 --- a/examples/blueprint-construct/index.ts +++ b/examples/blueprint-construct/index.ts @@ -227,7 +227,7 @@ export default class BlueprintConstruct { }); const clusterProvider = new blueprints.GenericClusterProvider({ - version: KubernetesVersion.V1_27, + version: KubernetesVersion.V1_28, tags: { "Name": "blueprints-example-cluster", "Type": "generic-cluster" diff --git a/lib/addons/argocd/index.ts b/lib/addons/argocd/index.ts index 2acc6323c..ca60e718e 100644 --- a/lib/addons/argocd/index.ts +++ b/lib/addons/argocd/index.ts @@ -26,7 +26,7 @@ export interface ArgoCDAddOnProps extends HelmAddOnUserProps { /** * Helm chart version to use to install. - * @default 5.37.0 + * @default 5.51.6 */ version?: string; diff --git a/lib/addons/cluster-autoscaler/index.ts b/lib/addons/cluster-autoscaler/index.ts index f5d09e63b..187a2f3ef 100644 --- a/lib/addons/cluster-autoscaler/index.ts +++ b/lib/addons/cluster-autoscaler/index.ts @@ -40,16 +40,18 @@ const defaultProps: ClusterAutoScalerAddOnProps = { /** * Version of the autoscaler, controls the image tag */ -const versionMap: Map = new Map([ - [KubernetesVersion.V1_26, "9.29.0"], - [KubernetesVersion.V1_25, "9.29.0"], - [KubernetesVersion.V1_24, "9.25.0"], - [KubernetesVersion.V1_23, "9.21.0"], - [KubernetesVersion.V1_22, "9.13.1"], - [KubernetesVersion.V1_21, "9.13.1"], - [KubernetesVersion.V1_20, "9.9.2"], - [KubernetesVersion.V1_19, "9.4.0"], - [KubernetesVersion.V1_18, "9.4.0"], +const versionMap: Map = new Map([ + [KubernetesVersion.V1_28.version, "9.34.0"], + [KubernetesVersion.V1_27.version, "9.33.0"], + [KubernetesVersion.V1_26.version, "9.29.0"], + [KubernetesVersion.V1_25.version, "9.29.0"], + [KubernetesVersion.V1_24.version, "9.25.0"], + [KubernetesVersion.V1_23.version, "9.21.0"], + [KubernetesVersion.V1_22.version, "9.13.1"], + [KubernetesVersion.V1_21.version, "9.13.1"], + [KubernetesVersion.V1_20.version, "9.9.2"], + [KubernetesVersion.V1_19.version, "9.4.0"], + [KubernetesVersion.V1_18.version, "9.4.0"], ]); @supportsALL @@ -66,7 +68,7 @@ export class ClusterAutoScalerAddOn extends HelmAddOn { deploy(clusterInfo: ClusterInfo): Promise { if(this.options.version?.trim() === 'auto') { - this.options.version = versionMap.get(clusterInfo.version); + this.options.version = versionMap.get(clusterInfo.version.version); if(!this.options.version) { this.options.version = versionMap.values().next().value; logger.warn(`Unable to auto-detect cluster autoscaler version. Applying latest: ${this.options.version}`); diff --git a/lib/addons/kube-proxy/index.ts b/lib/addons/kube-proxy/index.ts index 8245d7181..146fbb14d 100644 --- a/lib/addons/kube-proxy/index.ts +++ b/lib/addons/kube-proxy/index.ts @@ -3,7 +3,8 @@ import { CoreAddOn, CoreAddOnProps } from "../core-addon"; import { supportsALL } from "../../utils"; const versionMap: Map = new Map([ - [KubernetesVersion.V1_27, "v1.27.1-eksbuild.1"], + [KubernetesVersion.V1_28, "v1.28.2-eksbuild.2"], + [KubernetesVersion.V1_27, "v1.27.6-eksbuild.2"], [KubernetesVersion.V1_26, "v1.26.2-eksbuild.1"], [KubernetesVersion.V1_25, "v1.25.6-eksbuild.1"], [KubernetesVersion.V1_24, "v1.24.7-eksbuild.2"], diff --git a/lib/builders/gpu-builder.ts b/lib/builders/gpu-builder.ts index 6ceb7ecfa..528899fc0 100644 --- a/lib/builders/gpu-builder.ts +++ b/lib/builders/gpu-builder.ts @@ -65,7 +65,7 @@ export interface GpuOptions { * for EKS cluster */ const defaultOptions: GpuOptions = { - kubernetesVersion: eks.KubernetesVersion.of("1.27"), + kubernetesVersion: eks.KubernetesVersion.of("1.28"), instanceClass: ec2.InstanceClass.G5, instanceSize: ec2.InstanceSize.XLARGE, desiredNodeSize: 2, diff --git a/lib/builders/graviton-builder.ts b/lib/builders/graviton-builder.ts index cf48e4fcc..26aeb989c 100644 --- a/lib/builders/graviton-builder.ts +++ b/lib/builders/graviton-builder.ts @@ -15,7 +15,7 @@ import merge from 'ts-deepmerge'; * for EKS cluster */ const defaultOptions: Partial = { - version: eks.KubernetesVersion.of("1.27"), + version: eks.KubernetesVersion.of("1.28"), instanceTypes: [ec2.InstanceType.of(ec2.InstanceClass.M7G, ec2.InstanceSize.XLARGE)], amiType: eks.NodegroupAmiType.AL2_ARM_64, desiredSize: 3, @@ -54,7 +54,7 @@ export class GravitonBuilder extends BlueprintBuilder { builder: UsageTrackingAddOn.builder(), }), new addons.AwsLoadBalancerControllerAddOn(), - new addons.KubeProxyAddOn("v1.27.1-eksbuild.1"), + new addons.KubeProxyAddOn("auto"), new addons.VpcCniAddOn(), ); return builder; diff --git a/lib/builders/windows-builder.ts b/lib/builders/windows-builder.ts index 29b47ea93..6101480ed 100644 --- a/lib/builders/windows-builder.ts +++ b/lib/builders/windows-builder.ts @@ -97,7 +97,7 @@ export interface WindowsOptions { * for Windows EKS cluster */ const defaultOptions: WindowsOptions = { - kubernetesVersion: eks.KubernetesVersion.of("1.27"), + kubernetesVersion: eks.KubernetesVersion.of("1.28"), instanceClass: ec2.InstanceClass.M5, instanceSize: ec2.InstanceSize.XLARGE4, nodeRole: resourceproviders.getNamedResource("node-role") as iam.Role, diff --git a/lib/cluster-providers/generic-cluster-provider.ts b/lib/cluster-providers/generic-cluster-provider.ts index 74370d3c8..1aaba2302 100644 --- a/lib/cluster-providers/generic-cluster-provider.ts +++ b/lib/cluster-providers/generic-cluster-provider.ts @@ -4,6 +4,7 @@ import { KubectlV24Layer } from "@aws-cdk/lambda-layer-kubectl-v24"; import { KubectlV25Layer } from "@aws-cdk/lambda-layer-kubectl-v25"; import { KubectlV26Layer } from "@aws-cdk/lambda-layer-kubectl-v26"; import { KubectlV27Layer } from "@aws-cdk/lambda-layer-kubectl-v27"; +import { KubectlV28Layer } from "@aws-cdk/lambda-layer-kubectl-v28"; import { Tags } from "aws-cdk-lib"; import * as autoscaling from 'aws-cdk-lib/aws-autoscaling'; import * as ec2 from "aws-cdk-lib/aws-ec2"; @@ -40,6 +41,8 @@ export function selectKubectlLayer(scope: Construct, version: eks.KubernetesVers return new KubectlV26Layer(scope, "kubectllayer26"); case "1.27": return new KubectlV27Layer(scope, "kubectllayer27"); + case "1.28": + return new KubectlV28Layer(scope, "kubectllayer28"); } const minor = version.version.split('.')[1]; @@ -248,7 +251,7 @@ export class GenericClusterProvider implements ClusterProvider { if(!kubernetesVersion && !this.props.version) { throw new Error("Version was not specified by cluster builder or in cluster provider props, must be specified in one of these"); } - const version: eks.KubernetesVersion = kubernetesVersion || this.props.version || eks.KubernetesVersion.V1_27; + const version: eks.KubernetesVersion = kubernetesVersion || this.props.version || eks.KubernetesVersion.V1_28; const privateCluster = this.props.privateCluster ?? utils.valueFromContext(scope, constants.PRIVATE_CLUSTER, false); const endpointAccess = (privateCluster === true) ? eks.EndpointAccess.PRIVATE : eks.EndpointAccess.PUBLIC_AND_PRIVATE; diff --git a/lib/pipelines/code-pipeline.ts b/lib/pipelines/code-pipeline.ts index a1912dc6f..a2df73b4a 100644 --- a/lib/pipelines/code-pipeline.ts +++ b/lib/pipelines/code-pipeline.ts @@ -441,7 +441,7 @@ class CodePipeline { input: codePipelineSource, installCommands: [ 'n stable', - 'npm install -g aws-cdk@2.99.1', + 'npm install -g aws-cdk@2.114.1', `cd ${path} && npm install`, ], commands: [`cd ${path}`, 'npm run build', 'npx cdk synth ' + app] diff --git a/lib/stacks/eks-blueprint-stack.ts b/lib/stacks/eks-blueprint-stack.ts index 33fa8a5da..060cd3a67 100644 --- a/lib/stacks/eks-blueprint-stack.ts +++ b/lib/stacks/eks-blueprint-stack.ts @@ -13,7 +13,7 @@ import {CreateKmsKeyProvider} from "../resource-providers/kms-key"; import { ArgoGitOpsFactory } from "../addons/argocd/argo-gitops-factory"; /* Default K8s version of EKS Blueprints */ -export const DEFAULT_VERSION = 1.27; +export const DEFAULT_VERSION = 1.28; export class EksBlueprintProps { /** @@ -240,7 +240,7 @@ export class EksBlueprint extends cdk.Stack { let version = blueprintProps.version; if (version == "auto") { - version = KubernetesVersion.V1_27; + version = KubernetesVersion.V1_28; } let kmsKeyResource: IKey | undefined = resourceContext.get(spi.GlobalResources.KmsKey); diff --git a/package.json b/package.json index 8a2f19d2a..846390435 100644 --- a/package.json +++ b/package.json @@ -21,12 +21,12 @@ "@types/dot-object": "^2.1.2", "@types/jest": "^29.5.1", "@types/js-yaml": "^4.0.5", - "@types/node": "^18.17.5", + "@types/node": "^20.10.0", "@types/semver": "^7.3.13", "@types/uuid": "^9.0.1", "@typescript-eslint/eslint-plugin": "^6.4.0", "@typescript-eslint/parser": "^6.4.0", - "aws-cdk": "2.99.1", + "aws-cdk": "2.114.1", "copyfiles": "^2.4.1", "eslint": "^8.38.0", "jest": "^29.6.2", @@ -38,16 +38,16 @@ "typescript": "^5.2.2" }, "dependencies": { - "@aws-cdk/lambda-layer-kubectl-v25": "^2.0.3", "@aws-cdk/lambda-layer-kubectl-v26": "^2.0.0", "@aws-cdk/lambda-layer-kubectl-v27": "^2.0.0", + "@aws-cdk/lambda-layer-kubectl-v28": "^2.1.0", "@aws-sdk/client-eks": "^3.391.0", "@aws-sdk/client-secrets-manager": "^3.391.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.99.1", + "aws-cdk-lib": "2.114.1", "bcrypt": "^5.1.1", "constructs": "^10.2.33", "dot-object": "^2.1.4", @@ -66,7 +66,8 @@ }, "optionalDependencies": { "@aws-cdk/lambda-layer-kubectl-v23": "^2.0.7", - "@aws-cdk/lambda-layer-kubectl-v24": "^2.0.202" + "@aws-cdk/lambda-layer-kubectl-v24": "^2.0.202", + "@aws-cdk/lambda-layer-kubectl-v25": "^2.0.3" }, "overrides": { "semver": "^7.5.3" diff --git a/test/cluster-autoscaler.test.ts b/test/cluster-autoscaler.test.ts index 145aba37b..da4440e6b 100644 --- a/test/cluster-autoscaler.test.ts +++ b/test/cluster-autoscaler.test.ts @@ -8,7 +8,7 @@ test("Cluster autoscaler correctly is using correct defaults if EKS version is n const stack = blueprints.EksBlueprint.builder() .account('123456789').region('us-west-2') - .version(KubernetesVersion.V1_27) + .version(KubernetesVersion.V1_28) .addOns(new blueprints.ClusterAutoScalerAddOn()) .build(app, "ca-stack-127"); @@ -16,7 +16,7 @@ test("Cluster autoscaler correctly is using correct defaults if EKS version is n template.hasResource("Custom::AWSCDK-EKS-HelmChart", { Properties: { - Version: "9.29.0", + Version: "9.34.0", }, }); }); @@ -27,7 +27,7 @@ test("Cluster autoscaler correctly is using correct version for 1.26", () => { const stack = blueprints.EksBlueprint.builder() .account('123456789').region('us-west-2') - .version(KubernetesVersion.V1_26) + .version(KubernetesVersion.V1_27) .addOns(new blueprints.ClusterAutoScalerAddOn()) .build(app, "ca-stack-126"); @@ -35,7 +35,7 @@ test("Cluster autoscaler correctly is using correct version for 1.26", () => { template.hasResource("Custom::AWSCDK-EKS-HelmChart", { Properties: { - Version: "9.29.0", + Version: "9.33.0", }, }); }); diff --git a/test/clusterprovider.test.ts b/test/clusterprovider.test.ts index 636c33f1a..09a04652e 100644 --- a/test/clusterprovider.test.ts +++ b/test/clusterprovider.test.ts @@ -63,7 +63,7 @@ test("Generic cluster provider correctly registers managed node groups with inst const clusterProvider = blueprints.clusterBuilder() .withCommonOptions({ serviceIpv4Cidr: "10.43.0.0/16", - version: KubernetesVersion.V1_27 + version: KubernetesVersion.V1_28 }) .managedNodeGroup({ id: "mng1", @@ -105,7 +105,7 @@ test("Generic cluster provider correctly registers autoscaling node groups", () const app = new cdk.App(); const clusterProvider = blueprints.clusterBuilder() - .version(KubernetesVersion.V1_27) + .version(KubernetesVersion.V1_28) .autoscalingGroup({ id: "mng1", maxSize: 2, @@ -151,7 +151,7 @@ test("Generic cluster provider correctly registers autoscaling node groups with app.node.setContext("eks.default.instance-type", "m5.large"); const clusterProvider = blueprints.clusterBuilder() - .version(eks.KubernetesVersion.V1_27) + .version(eks.KubernetesVersion.V1_28) .autoscalingGroup({ id: "mng1", maxSize: 2, @@ -328,7 +328,7 @@ test("Kubernetes Version gets set correctly for \"auto\"", () => { .account('123456789').region('us-west-2') .version("auto").build(app, "stack-auto"); - expect(stack.getClusterInfo().version.version).toBe("1.27"); + expect(stack.getClusterInfo().version.version).toBe("1.28"); }); @@ -336,8 +336,8 @@ test("Kubernetes Version gets set correctly in NodeGroup", () => { const app = new cdk.App(); const stack = blueprints.EksBlueprint.builder() .account('123456789').region('us-west-2') - .clusterProvider(new MngClusterProvider({version: KubernetesVersion.V1_27})) + .clusterProvider(new MngClusterProvider({version: KubernetesVersion.V1_28})) .build(app, "stack-auto"); - expect(stack.getClusterInfo().version.version).toBe("1.27"); + expect(stack.getClusterInfo().version.version).toBe("1.28"); }); From 27960862b17378f03bc311247d5bfd6b2e42f3fb Mon Sep 17 00:00:00 2001 From: shapirov Date: Tue, 12 Dec 2023 15:41:49 -0500 Subject: [PATCH 09/13] added grafana operator link to ignore list as it return 404 --- .github/workflows/linkcheck.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/linkcheck.json b/.github/workflows/linkcheck.json index cf0347a1a..3fc8c713e 100644 --- a/.github/workflows/linkcheck.json +++ b/.github/workflows/linkcheck.json @@ -22,6 +22,8 @@ { "pattern": "rsa-2048.example.com" }, { "pattern": "https://ingress-red-saas.instana.io" }, { "pattern": "http://console-eks.yourdomain.com" }, - { "pattern": "https://p191.p3.n0.cdn.getcloudapp.com"} + { "pattern": "http://console-eks.yourdomain.com" }, + { "pattern": "https://p191.p3.n0.cdn.getcloudapp.com"}, + { "pattern": "https://grafana-operator.github.io/grafana-operator/docs/installation/helm"} ] } From bdc2102cf3aeeea51110d0c0d75c59a9774c3845 Mon Sep 17 00:00:00 2001 From: shapirov Date: Tue, 12 Dec 2023 15:53:41 -0500 Subject: [PATCH 10/13] upgraded flux version to 2.12 --- lib/addons/fluxcd/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/addons/fluxcd/index.ts b/lib/addons/fluxcd/index.ts index 834bba080..891a282dc 100644 --- a/lib/addons/fluxcd/index.ts +++ b/lib/addons/fluxcd/index.ts @@ -68,7 +68,7 @@ export interface FluxCDAddOnProps extends HelmAddOnUserProps { /** * Helm chart version to use to install. - * @default 2.8.0 + * @default 2.12.0 */ version?: string; @@ -95,7 +95,7 @@ const defaultProps: HelmAddOnProps & FluxCDAddOnProps = { name: "fluxcd-addon", namespace: "flux-system", chart: "flux2", - version: "2.11.1", + version: "2.12.0", release: "blueprints-fluxcd-addon", repository: "https://fluxcd-community.github.io/helm-charts", values: {}, From ad584122b8694e24f31f89ab61b84ec111fc194f Mon Sep 17 00:00:00 2001 From: shapirov Date: Tue, 12 Dec 2023 16:38:36 -0500 Subject: [PATCH 11/13] updated libraries --- package.json | 68 ++++++++++++++++++++++++++-------------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/package.json b/package.json index 846390435..1f13602f6 100644 --- a/package.json +++ b/package.json @@ -18,58 +18,58 @@ "lint": "npx eslint . --ext .js,.jsx,.ts,.tsx" }, "devDependencies": { - "@types/dot-object": "^2.1.2", - "@types/jest": "^29.5.1", - "@types/js-yaml": "^4.0.5", - "@types/node": "^20.10.0", - "@types/semver": "^7.3.13", - "@types/uuid": "^9.0.1", - "@typescript-eslint/eslint-plugin": "^6.4.0", - "@typescript-eslint/parser": "^6.4.0", + "@types/dot-object": "^2.1.6", + "@types/jest": "^29.5.11", + "@types/js-yaml": "^4.0.9", + "@types/node": "^20.10.4", + "@types/semver": "^7.5.6", + "@types/uuid": "^9.0.7", + "@typescript-eslint/eslint-plugin": "^6.14.0", + "@typescript-eslint/parser": "^6.14.0", "aws-cdk": "2.114.1", "copyfiles": "^2.4.1", - "eslint": "^8.38.0", - "jest": "^29.6.2", - "json-schema-to-typescript": "^13.0.1", + "eslint": "^8.55.0", + "jest": "^29.7.0", + "json-schema-to-typescript": "^13.1.1", "lint": "^1.1.2", - "ts-jest": "^29.1.0", - "ts-node": "^10.9.1", - "typedoc": "^0.25.1", - "typescript": "^5.2.2" + "ts-jest": "^29.1.1", + "ts-node": "^10.9.2", + "typedoc": "^0.25.4", + "typescript": "^5.3.3" }, "dependencies": { - "@aws-cdk/lambda-layer-kubectl-v26": "^2.0.0", + "@aws-cdk/lambda-layer-kubectl-v26": "^2.0.1", "@aws-cdk/lambda-layer-kubectl-v27": "^2.0.0", "@aws-cdk/lambda-layer-kubectl-v28": "^2.1.0", - "@aws-sdk/client-eks": "^3.391.0", - "@aws-sdk/client-secrets-manager": "^3.391.0", - "@types/assert": "^1.5.6", - "@types/bcrypt": "^5.0.0", - "@types/lodash.clonedeep": "^4.5.7", - "@types/uuid": "^9.0.1", + "@aws-sdk/client-eks": "^3.470.0", + "@aws-sdk/client-secrets-manager": "^3.470.0", + "@types/assert": "^1.5.10", + "@types/bcrypt": "^5.0.2", + "@types/lodash.clonedeep": "^4.5.9", + "@types/uuid": "^9.0.7", "aws-cdk-lib": "2.114.1", "bcrypt": "^5.1.1", - "constructs": "^10.2.33", + "constructs": "^10.3.0", "dot-object": "^2.1.4", "js-yaml": "4.1.0", "lodash": "4.17.21", - "reflect-metadata": "^0.1.13", - "semver": "^7.5.3", + "reflect-metadata": "^0.1.14", + "semver": "^7.5.4", "simple-base": "^1.0.0", "sync-request": "6.1.0", - "ts-deepmerge": "^6.0.3", + "ts-deepmerge": "^6.2.0", "ts-md5": "^1.3.1", - "tslog": "^4.9.1", - "uuid": "^9.0.0", - "yaml": "^2.2.1", - "zod": "^3.22.3" + "tslog": "^4.9.2", + "uuid": "^9.0.1", + "yaml": "^2.3.4", + "zod": "^3.22.4" }, "optionalDependencies": { - "@aws-cdk/lambda-layer-kubectl-v23": "^2.0.7", - "@aws-cdk/lambda-layer-kubectl-v24": "^2.0.202", - "@aws-cdk/lambda-layer-kubectl-v25": "^2.0.3" + "@aws-cdk/lambda-layer-kubectl-v23": "^2.0.8", + "@aws-cdk/lambda-layer-kubectl-v24": "^2.0.242", + "@aws-cdk/lambda-layer-kubectl-v25": "^2.0.4" }, "overrides": { - "semver": "^7.5.3" + "semver": "^7.5.4" } } From 6a770ac3006ef388859b8a63f88926fe64849e1a Mon Sep 17 00:00:00 2001 From: shapirov Date: Wed, 13 Dec 2023 17:37:15 -0500 Subject: [PATCH 12/13] fixed grafana operator repo and upgraded to the latest version --- lib/addons/grafana-operator/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/addons/grafana-operator/index.ts b/lib/addons/grafana-operator/index.ts index 7a07efe39..52047f291 100644 --- a/lib/addons/grafana-operator/index.ts +++ b/lib/addons/grafana-operator/index.ts @@ -18,11 +18,11 @@ export interface GrafanaOperatorAddonProps extends HelmAddOnUserProps { */ const defaultProps: HelmAddOnProps & GrafanaOperatorAddonProps = { name: 'grafana-operator', - chart: 'oci://ghcr.io/grafana-operator/helm-charts/grafana-operator', + chart: 'oci://ghcr.io/grafana/helm-charts/grafana-operator', namespace: 'grafana-operator', release: 'grafana-operator', - version: 'v5.4.0', - values: {}, + version: 'v5.6.0', + values: {}, createNamespace: true }; From b6229620aac75529bf4d289cd7382830e24b5bf9 Mon Sep 17 00:00:00 2001 From: shapirov Date: Fri, 15 Dec 2023 10:34:06 -0500 Subject: [PATCH 13/13] updated CDK to 2.115.0 and increment helm versions for appmesh and flux --- README.md | 4 ++-- docs/README.md | 4 ++-- docs/getting-started.md | 4 ++-- docs/internal/ci.md | 2 +- lib/addons/appmesh/index.ts | 2 +- lib/addons/fluxcd/index.ts | 2 +- lib/pipelines/code-pipeline.ts | 2 +- package.json | 4 ++-- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 52c007d1e..15f0e57e7 100644 --- a/README.md +++ b/README.md @@ -44,14 +44,14 @@ aws --version Install CDK matching the current version of the Blueprints QuickStart (which can be found in package.json). ```bash -npm install -g aws-cdk@2.114.1 +npm install -g aws-cdk@2.115.0 ``` Verify the installation. ```bash cdk --version -# must output 2.114.1 +# must output 2.115.0 ``` Create a new CDK project. We use `typescript` for this example. diff --git a/docs/README.md b/docs/README.md index d61694adf..68ae27c8d 100644 --- a/docs/README.md +++ b/docs/README.md @@ -44,14 +44,14 @@ aws --version Install CDK matching the current version of the Blueprints QuickStart (which can be found in package.json). ```bash -npm install -g aws-cdk@2.114.1 +npm install -g aws-cdk@2.115.0 ``` Verify the installation. ```bash cdk --version -# must output 2.114.1 +# must output 2.115.0 ``` Create a new CDK project. We use `typescript` for this example. diff --git a/docs/getting-started.md b/docs/getting-started.md index e45057154..e9e5a7646 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -26,8 +26,8 @@ Create a directory that represents you project (e.g. `my-blueprints`) and then c ```bash npm install -g n # may require sudo n stable # may require sudo -npm install -g aws-cdk@2.114.1 # may require sudo (Ubuntu) depending on configuration -cdk --version # must produce 2.114.1 +npm install -g aws-cdk@2.115.0 # may require sudo (Ubuntu) depending on configuration +cdk --version # must produce 2.115.0 mkdir my-blueprints cd my-blueprints cdk init app --language typescript diff --git a/docs/internal/ci.md b/docs/internal/ci.md index 912b0ca85..a835369c9 100644 --- a/docs/internal/ci.md +++ b/docs/internal/ci.md @@ -19,7 +19,7 @@ cd cdk-eks-blueprints Install CDK (please review and install any missing [pre-requisites](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html) for your environment) ```sh -npm install -g aws-cdk@2.114.1 +npm install -g aws-cdk@2.115.0 ``` Install the dependencies for this project. diff --git a/lib/addons/appmesh/index.ts b/lib/addons/appmesh/index.ts index 32ba7c8cd..3cddedc6c 100644 --- a/lib/addons/appmesh/index.ts +++ b/lib/addons/appmesh/index.ts @@ -45,7 +45,7 @@ const defaultProps = { name: "appmesh-controller", namespace: "appmesh-system", chart: "appmesh-controller", - version: "1.12.5", + version: "1.12.7", release: "appmesh-release", repository: "https://aws.github.io/eks-charts" }; diff --git a/lib/addons/fluxcd/index.ts b/lib/addons/fluxcd/index.ts index 891a282dc..445cf7ed8 100644 --- a/lib/addons/fluxcd/index.ts +++ b/lib/addons/fluxcd/index.ts @@ -95,7 +95,7 @@ const defaultProps: HelmAddOnProps & FluxCDAddOnProps = { name: "fluxcd-addon", namespace: "flux-system", chart: "flux2", - version: "2.12.0", + version: "2.12.1", release: "blueprints-fluxcd-addon", repository: "https://fluxcd-community.github.io/helm-charts", values: {}, diff --git a/lib/pipelines/code-pipeline.ts b/lib/pipelines/code-pipeline.ts index a2df73b4a..0d2f1eb54 100644 --- a/lib/pipelines/code-pipeline.ts +++ b/lib/pipelines/code-pipeline.ts @@ -441,7 +441,7 @@ class CodePipeline { input: codePipelineSource, installCommands: [ 'n stable', - 'npm install -g aws-cdk@2.114.1', + 'npm install -g aws-cdk@2.115.0', `cd ${path} && npm install`, ], commands: [`cd ${path}`, 'npm run build', 'npx cdk synth ' + app] diff --git a/package.json b/package.json index 1f13602f6..5617ccf30 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "@types/uuid": "^9.0.7", "@typescript-eslint/eslint-plugin": "^6.14.0", "@typescript-eslint/parser": "^6.14.0", - "aws-cdk": "2.114.1", + "aws-cdk": "2.115.0", "copyfiles": "^2.4.1", "eslint": "^8.55.0", "jest": "^29.7.0", @@ -47,7 +47,7 @@ "@types/bcrypt": "^5.0.2", "@types/lodash.clonedeep": "^4.5.9", "@types/uuid": "^9.0.7", - "aws-cdk-lib": "2.114.1", + "aws-cdk-lib": "2.115.0", "bcrypt": "^5.1.1", "constructs": "^10.3.0", "dot-object": "^2.1.4",