diff --git a/lib/addons/extended-ebscsi-driver-addon.ts b/lib/addons/extended-ebscsi-driver-addon.ts new file mode 100644 index 0000000..50f9e15 --- /dev/null +++ b/lib/addons/extended-ebscsi-driver-addon.ts @@ -0,0 +1,33 @@ +import * as blueprints from "@aws-quickstart/eks-blueprints"; +import { Construct } from "constructs"; + +export class ExtendedEbsCsiDriverAddOn extends blueprints.EbsCsiDriverAddOn { + constructor() { + super(); // keep the managed add-on config + } + + async deploy(clusterInfo: blueprints.ClusterInfo): Promise { + super.deploy(clusterInfo); + + const cluster = clusterInfo.cluster; + + const sc = cluster.addManifest("Gp3WffcStorageClass", { + apiVersion: "storage.k8s.io/v1", + kind: "StorageClass", + metadata: { + name: "gp3-wffc", + annotations: { + "storageclass.kubernetes.io/is-default-class": "true", + }, + }, + provisioner: "ebs.csi.aws.com", + allowVolumeExpansion: true, + volumeBindingMode: "WaitForFirstConsumer", + parameters: { type: "gp3", encrypted: "true" }, + reclaimPolicy: "Delete", + }); + + return sc; + } + +} diff --git a/lib/config/cluster/index.ts b/lib/config/cluster/index.ts index 0883a2e..512c2ee 100644 --- a/lib/config/cluster/index.ts +++ b/lib/config/cluster/index.ts @@ -3,6 +3,8 @@ import * as eks from "aws-cdk-lib/aws-eks"; import cluster from "cluster"; +import { ExtendedEbsCsiDriverAddOn } from "../../addons/extended-ebscsi-driver-addon"; + // ArgoCd credential prefix in secret Manager const argocdCredentialName = "argocdAdmin"; @@ -29,10 +31,10 @@ const externalSecretAddon = (): blueprints.addons.ExternalsSecretsAddOn => createClusterSecretStore: true, }, configs: { - cm: { create: false}, - rbac: { create: false} + cm: { create: false }, + rbac: { create: false } }, - secretStore: { create: true, name: "gen3-secret-store"} + secretStore: { create: true, name: "gen3-secret-store" } }, }); @@ -55,10 +57,10 @@ const argoCdAddon = ( service: { type: serviceType || "NodePort", }, - configs: { - cm: { create: false }, - rbac: { create: false } - }, + configs: { + cm: { create: false }, + rbac: { create: false } + }, }, notifications: { enabled: true, livenessProbe: { enabled: true }, readinessProbe: { enabled: true } }, commitServer: { enabled: false }, @@ -76,7 +78,7 @@ export const commonAddons: blueprints.ClusterAddOn[] = [ new blueprints.addons.CertManagerAddOn(), new blueprints.addons.MetricsServerAddOn(), new blueprints.addons.CalicoOperatorAddOn(), - new blueprints.addons.EbsCsiDriverAddOn(), + new ExtendedEbsCsiDriverAddOn(), new blueprints.addons.SecretsStoreAddOn(), new blueprints.addons.SSMAgentAddOn(), new blueprints.addons.ClusterAutoScalerAddOn(),