diff --git a/examples/v1beta1/al2023-custom-userdata.yaml b/examples/v1beta1/al2023-custom-userdata.yaml new file mode 100644 index 000000000000..1a1d204ed344 --- /dev/null +++ b/examples/v1beta1/al2023-custom-userdata.yaml @@ -0,0 +1,66 @@ +# This example NodePool will provision instances using the AL2023 EKS-Optimized AMI. +--- +apiVersion: karpenter.sh/v1beta1 +kind: NodePool +metadata: + name: default + annotations: + kubernetes.io/description: "General purpose NodePool for generic workloads" +spec: + template: + spec: + requirements: + - key: kubernetes.io/arch + operator: In + values: ["amd64"] + - key: kubernetes.io/os + operator: In + values: ["linux"] + - key: karpenter.sh/capacity-type + operator: In + values: ["on-demand"] + - key: karpenter.k8s.aws/instance-category + operator: In + values: ["c", "m", "r"] + - key: karpenter.k8s.aws/instance-generation + operator: Gt + values: ["2"] + nodeClassRef: + name: al2023 +--- +apiVersion: karpenter.k8s.aws/v1beta1 +kind: EC2NodeClass +metadata: + name: al2023 + annotations: + kubernetes.io/description: "EC2NodeClass for running Amazon Linux 2023 nodes with custom user data" +spec: + amiFamily: AL2023 # Amazon Linux 2023 + role: "KarpenterNodeRole-${CLUSTER_NAME}" # replace with your cluster name + subnetSelectorTerms: + - tags: + karpenter.sh/discovery: "${CLUSTER_NAME}" # replace with your cluster name + securityGroupSelectorTerms: + - tags: + karpenter.sh/discovery: "${CLUSTER_NAME}" # replace with your cluster name + userData: | + MIME-Version: 1.0 + Content-Type: multipart/mixed; boundary="//" + + --// + Content-Type: application/node.eks.aws + + # Example custom nodeconfig which mounts individual drives on an instance + apiVersion: node.eks.aws/v1alpha1 + kind: NodeConfig + spec: + instance: + localStorage: + strategy: Mount + + --// + Content-Type: text/x-shellscript; charset="us-ascii" + + #!/bin/bash + echo "Hello, AL2023!" + --//