diff --git a/eksctl/carbonplan.jsonnet b/eksctl/carbonplan.jsonnet index cc5976662a..b0f6487521 100644 --- a/eksctl/carbonplan.jsonnet +++ b/eksctl/carbonplan.jsonnet @@ -1,4 +1,14 @@ -// Exports an eksctl config file for carbonplan cluster +// This file is a jinja2 template of a jsonnet template of a eksctl's cluster +// configuration file, which is in turn can be used with the `eksctl` CLI to both +// update and initialize a AWS EKS based cluster. +// +// This jinja2 template is only used by the deployer script as part of creating +// new clusters. If a relevant change is made here or the dependent file +// libsonnet/nodegroup.jsonnet, one may consider if we should manually update +// already generated jsonnet files in this folder. +// +// Configuration reference: https://eksctl.io/usage/schema/ +// local ng = import "./libsonnet/nodegroup.jsonnet"; // place all cluster nodes here @@ -43,7 +53,7 @@ local daskNodes = [ metadata+: { name: "carbonplanhub", region: clusterRegion, - version: '1.19' + version: '1.24' }, availabilityZones: masterAzs, iam: { @@ -59,6 +69,21 @@ local daskNodes = [ ], } for namespace in namespaces], }, + addons: [ + { + // aws-ebs-csi-driver ensures that our PVCs are bound to PVs that + // couple to AWS EBS based storage, without it expect to see pods + // mounting a PVC failing to schedule and PVC resources that are + // unbound. + // + // Related docs: https://docs.aws.amazon.com/eks/latest/userguide/managing-ebs-csi.html + // + name: 'aws-ebs-csi-driver', + wellKnownPolicies: { + ebsCSIController: true, + }, + }, + ], nodeGroups: [ ng { name: 'core-a',