diff --git a/charts/karpenter/Chart.yaml b/charts/karpenter/Chart.yaml index 934e8de..dbb7af9 100644 --- a/charts/karpenter/Chart.yaml +++ b/charts/karpenter/Chart.yaml @@ -1,6 +1,8 @@ apiVersion: v2 name: ot-karpenter version: 0.3.0 +maintainers: + - name: opstree dependencies: - name: karpenter version: 1.1.1 diff --git a/charts/karpenter/values.yaml b/charts/karpenter/values.yaml index 901aace..623c72b 100644 --- a/charts/karpenter/values.yaml +++ b/charts/karpenter/values.yaml @@ -1,19 +1,25 @@ # Custom values for your chart -clusterName: "" # Name of the EKS cluster (for identification in the chart and Karpenter) -awsPartition: "" # AWS partition, default is 'aws' (used in multi-region or partitioned environments) -awsAccountId: 3333 # AWS account ID where the resources will be provisioned +# Name of the EKS cluster (for identification in the chart and Karpenter) +clusterName: "" +# AWS partition, default is 'aws' (used in multi-region or partitioned environments) +awsPartition: "" +# AWS account ID where the resources will be provisioned +awsAccountId: 3333 # Karpenter chart overrides karpenter: settings: - clusterName: "" # Cluster name for the Karpenter controller to identify and manage nodes in this cluster - #interruptionQueue: "" # Name of SQS queue for handling EC2 instance interruptions + # Cluster name for the Karpenter controller to identify and manage nodes in this cluster + clusterName: "" + # Name of SQS queue for handling EC2 instance interruptions + # interruptionQueue: "" serviceAccount: annotations: - eks.amazonaws.com/role-arn: #arn:aws:iam::3333:role/KarpenterControllerRole-demo-eks # IAM role ARN for Karpenter controller's access to AWS services + # IAM role ARN for Karpenter controller's access to AWS services + eks.amazonaws.com/role-arn: arn:aws:iam::3333:role/KarpenterControllerRole-demo-eks - # Karpenter controller resources can be customized in this section below + # Karpenter controller resources can be customized in this section below # controller: # resources: # requests: @@ -26,20 +32,28 @@ karpenter: # EC2NodeClasses define the EC2 instance classes that Karpenter can use ec2NodeClasses: - name: default - amiFamily: AL2 # Amazon Linux 2 AMI family - role: #"KarpenterNodeRole-my-eks-cluster" # Name of karpenter Node Role ( NOT THE ARN ) + # Amazon Linux 2 AMI family + amiFamily: AL2 + # "KarpenterNodeRole-my-eks-cluster" # Name of karpenter Node Role ( NOT THE ARN ) + role: amiSelector: # To get the AMI ID, run the commands below in the AWS CLI and replace the AMI ID in the values.yaml file - arm: # ARM_AMI_ID="$(aws ssm get-parameter --name /aws/service/eks/optimized-ami/${K8S_VERSION}/amazon-linux-2-arm64/recommended/image_id --query Parameter.Value --output text)" - amd: # AMD_AMI_ID="$(aws ssm get-parameter --name /aws/service/eks/optimized-ami/${K8S_VERSION}/amazon-linux-2/recommended/image_id --query Parameter.Value --output text)" - #gpu: ami-gpu-id # GPU_AMI_ID="$(aws ssm get-parameter --name /aws/service/eks/optimized-ami/${K8S_VERSION}/amazon-linux-2-gpu/recommended/image_id --query Parameter.Value --output text)" - #name: #amazon-eks-node-1.27-* # Optional: EKS Node AMI Name - # tags: # Optional, propagates tags to underlying EC2 resources + # ARM_AMI_ID="$(aws ssm get-parameter --name /aws/service/eks/optimized-ami/${K8S_VERSION}/amazon-linux-2-arm64/recommended/image_id --query Parameter.Value --output text)" + arm: + # AMD_AMI_ID="$(aws ssm get-parameter --name /aws/service/eks/optimized-ami/${K8S_VERSION}/amazon-linux-2/recommended/image_id --query Parameter.Value --output text)" + amd: + # GPU_AMI_ID="$(aws ssm get-parameter --name /aws/service/eks/optimized-ami/${K8S_VERSION}/amazon-linux-2-gpu/recommended/image_id --query Parameter.Value --output text)" + # gpu: ami-gpu-id + # amazon-eks-node-1.27-* # Optional: EKS Node AMI Name + # name: + # Optional, propagates tags to underlying EC2 resources + # tags: # environment: production # team: "engineering" # owner: "admin@company.com" - #detailedMonitoring: true # Enable detailed monitoring for the EC2 instance - + # Enable detailed monitoring for the EC2 instance + # detailedMonitoring: true + # NodePools define groups of nodes with specific requirements nodePools: - name: default # Name of the node pool, preset here is set to default nodepool @@ -55,11 +69,11 @@ nodePools: - key: karpenter.sh/capacity-type # Defines the instance's capacity type operator: In # Only nodes with the specified capacity type will be selected values: - - "on-demand" # Specifies that the node should be an on-demand instance, can be "spot" as well + - "on-demand" # Specifies that the node should be an on-demand instance, can be "spot" as well - key: karpenter.k8s.aws/instance-category # Defines the instance category (e.g., t, m, r) operator: In # Only nodes with the specified instance category will be selected values: - - "t" # These can be customized as per need + - "t" # These can be customized as per need - "m" - "r" # - key: karpenter.k8s.aws/instance-family # Uncomment to define the instance family (e.g., t3, m5, r5) @@ -77,20 +91,20 @@ nodePools: expireAfter: 720h # Maximum lifetime of the node pool before it expires (720 hours = 30 days) limits: # Resource limits for the node pool cpu: "1000" # Maximum CPU limit for the node pool - #memory: "1Gi" + memory: "1Gi" disruption: # Policy for handling disruption in the node pool consolidationPolicy: WhenEmptyOrUnderutilized # Consolidate nodes when they are empty or underutilized consolidateAfter: 1m # Time after which consolidation will occur, in this case, 1 minute - #Uncomment Below annotations key ( next 3 Lines ) if you want to use annotations + # Uncomment Below annotations key ( next 3 Lines ) if you want to use annotations # annotations: # Annotations are key-value pairs that provide additional metadata for the node pool # example.com/owner: "my-team" # An example annotation that associates the node pool with a team # example.com/maintainer: "admin@company.com" # Example annotation for the maintainer's contact information - #Uncomment below taint key ( next 4 Lines ) if you want to use taints + # Uncomment below taint key ( next 4 Lines ) if you want to use taints # taints: # Taints are used to control which pods can be scheduled on the node pool # - key: "example.com/special-taint" # Taint key that identifies the taint # value: "special-value" # Value associated with the taint # effect: "NoExecute" # Effect of the taint. In this case, NoExecute means pods won't be scheduled on tainted nodes - # Comment Labels Key below if you dont want to use Labels + # Comment Labels Key below if you dont want to use Labels labels: # Labels are key-value pairs used for categorizing the node pool environment: production # Label indicating that this node pool is for production use - team: "engineering" # Label associating the node pool with the engineering team \ No newline at end of file + team: "engineering" # Label associating the node pool with the engineering team