|
1 | 1 | # karpenter
|
2 | 2 |
|
3 |
| -A Helm chart for https://github.com/aws/karpenter/. |
| 3 | +A Helm chart for Karpenter, an open-source node provisioning project built for Kubernetes. |
4 | 4 |
|
5 | 5 |   
|
6 | 6 |
|
| 7 | +## Documentation |
| 8 | + |
| 9 | +For full Karpenter documentation please checkout [https://karpenter.sh](https://karpenter.sh/v0.6.0/). |
| 10 | + |
7 | 11 | ## Installing the Chart
|
8 | 12 |
|
9 |
| -To install the chart with the release name `karpenter`: |
| 13 | +Before the chart can be installed the repo needs to be added to Helm, run the following commands to add the repo. |
10 | 14 |
|
11 |
| -```console |
12 |
| -$ helm repo add karpenter https://charts.karpenter.sh |
13 |
| -$ helm repo update |
14 |
| -$ helm upgrade --install karpenter karpenter/karpenter --namespace karpenter \ |
15 |
| - --create-namespace --set serviceAccount.create=false --version 0.6.0 \ |
16 |
| - --set controller.clusterName=${CLUSTER_NAME} \ |
17 |
| - --set controller.clusterEndpoint=$(aws eks describe-cluster --name ${CLUSTER_NAME} --query "cluster.endpoint" --output json) \ |
18 |
| - --wait # for the defaulting webhook to install before creating a Provisioner |
| 15 | +```bash |
| 16 | +helm repo add karpenter https://charts.karpenter.sh/ |
| 17 | +helm repo update |
19 | 18 | ```
|
20 | 19 |
|
21 |
| -You can follow the detailed installation instruction [here](https://karpenter.sh/docs/getting-started/#install). |
| 20 | +You can follow the detailed installation instruction in the [documentation](https://karpenter.sh/v0.6.0/getting-started/#install) which covers the Karpenter prerequisites and installation options. The outcome of these instructions should result in something like the following command. |
| 21 | + |
| 22 | +```bash |
| 23 | +helm upgrade --install --namespace karpenter --create-namespace \ |
| 24 | + karpenter karpenter/karpenter \ |
| 25 | + --version 0.6.0 \ |
| 26 | + --set serviceAccount.annotations.eks\.amazonaws\.com/role-arn=${KARPENTER_IAM_ROLE_ARN} |
| 27 | + --set clusterName=${CLUSTER_NAME} \ |
| 28 | + --set clusterEndpoint=${CLUSTER_ENDPOINT} \ |
| 29 | + --set aws.defaultInstanceProfile=KarpenterNodeInstanceProfile-${CLUSTER_NAME} \ |
| 30 | + --wait # for the defaulting webhook to install before creating a Provisioner |
| 31 | +``` |
22 | 32 |
|
23 | 33 | ## Values
|
24 | 34 |
|
25 | 35 | | Key | Type | Default | Description |
|
26 | 36 | |-----|------|---------|-------------|
|
27 |
| -| additionalLabels | object | `{}` | Additional labels to add into metadata | |
| 37 | +| additionalAnnotations | object | `{}` | Additional annotations to add into metadata. | |
| 38 | +| additionalLabels | object | `{}` | Additional labels to add into metadata. | |
| 39 | +| affinity | object | `{"nodeAffinity":{"requiredDuringSchedulingIgnoredDuringExecution":{"nodeSelectorTerms":[{"key":"karpenter.sh/provisioner-name","operator":"DoesNotExist"}]}}}` | Affinity rules for scheduling the pod. | |
28 | 40 | | aws.defaultInstanceProfile | string | `""` | The default instance profile to use when launching nodes on AWS |
|
29 |
| -| controller.affinity | object | `{}` | Affinity rules for scheduling | |
30 |
| -| controller.clusterEndpoint | string | `""` | Cluster endpoint | |
31 |
| -| controller.clusterName | string | `""` | Cluster name | |
32 |
| -| controller.env | list | `[]` | Additional environment variables to run with | |
33 |
| -| controller.image | string | `"public.ecr.aws/karpenter/controller:v0.6.0@sha256:c4b55bafc91bcab268c7c80c98f4341fc23ab0adc29ba33e28a1f9df1ec96de5"` | Image to use for the Karpenter controller | |
34 |
| -| controller.nodeSelector | object | `{}` | Node selectors to schedule to nodes with labels. | |
35 |
| -| controller.replicas | int | `1` | | |
36 |
| -| controller.resources.limits.cpu | int | `1` | | |
37 |
| -| controller.resources.limits.memory | string | `"1Gi"` | | |
38 |
| -| controller.resources.requests.cpu | int | `1` | | |
39 |
| -| controller.resources.requests.memory | string | `"1Gi"` | | |
40 |
| -| controller.tolerations | list | `[]` | Tolerations to schedule to nodes with taints. | |
41 |
| -| serviceAccount.annotations | object | `{}` | Annotations to add to the service account (like the ARN of the IRSA role) | |
42 |
| -| serviceAccount.create | bool | `true` | Create a service account for the application controller | |
43 |
| -| serviceAccount.name | string | `"karpenter"` | Service account name | |
44 |
| -| webhook.affinity | object | `{}` | Affinity rules for scheduling | |
45 |
| -| webhook.env | list | `[]` | List of environment items to add to the webhook | |
46 |
| -| webhook.hostNetwork | bool | `false` | Set to true if using custom CNI on EKS | |
47 |
| -| webhook.image | string | `"public.ecr.aws/karpenter/webhook:v0.6.0@sha256:bce76e56b8315c7f5ebe097a738ef81e9a07f84cfdc5da1e55975ba17783d0dc"` | Image to use for the webhook | |
48 |
| -| webhook.nodeSelector | object | `{}` | Node selectors to schedule to nodes with labels. | |
49 |
| -| webhook.port | int | `8443` | | |
50 |
| -| webhook.replicas | int | `1` | | |
51 |
| -| webhook.resources.limits.cpu | string | `"100m"` | | |
52 |
| -| webhook.resources.limits.memory | string | `"50Mi"` | | |
53 |
| -| webhook.resources.requests.cpu | string | `"100m"` | | |
54 |
| -| webhook.resources.requests.memory | string | `"50Mi"` | | |
55 |
| -| webhook.tolerations | list | `[]` | Tolerations to schedule to nodes with taints. | |
| 41 | +| clusterEndpoint | string | `""` | Cluster endpoint. | |
| 42 | +| clusterName | string | `""` | Cluster name. | |
| 43 | +| controller.env | list | `[]` | Additional environment variables for the controller pod. | |
| 44 | +| controller.image | string | `"public.ecr.aws/karpenter/controller:v0.6.0@sha256:c4b55bafc91bcab268c7c80c98f4341fc23ab0adc29ba33e28a1f9df1ec96de5"` | Controller image. | |
| 45 | +| controller.logLevel | string | `""` | Controller log level, defaults to the global log level | |
| 46 | +| controller.resources | object | `{"limits":{"cpu":1,"memory":"1Gi"},"requests":{"cpu":1,"memory":"1Gi"}}` | Resources for the controller pod. | |
| 47 | +| controller.securityContext | object | `{}` | SecurityContext for the controller container. | |
| 48 | +| fullnameOverride | string | `""` | Overrides the chart's computed fullname. | |
| 49 | +| hostNetwork | bool | `false` | Bind the pod to the host network. This is required when using a custom CNI. | |
| 50 | +| imagePullPolicy | string | `"IfNotPresent"` | Image pull policy for Docker images. | |
| 51 | +| imagePullSecrets | list | `[]` | Image pull secrets for Docker images. | |
| 52 | +| logLevel | string | `"info"` | Global log level | |
| 53 | +| nameOverride | string | `""` | Overrides the chart's name. | |
| 54 | +| nodeSelector | object | `{"kubernetes.io/os":"linux"}` | Node selectors to schedule the pod to nodes with labels. | |
| 55 | +| podAnnotations | object | `{}` | Additional annotations for the pod. | |
| 56 | +| podLabels | object | `{}` | Additional labels for the pod. | |
| 57 | +| podSecurityContext | object | `{"fsGroup":1000}` | SecurityContext for the pod. | |
| 58 | +| priorityClassName | string | `"system-cluster-critical"` | PriorityClass name for the pod. | |
| 59 | +| replicas | int | `1` | Number of replicas. | |
| 60 | +| serviceAccount.annotations | object | `{}` | Additional annotations for the ServiceAccount. | |
| 61 | +| serviceAccount.create | bool | `true` | Specifies if a ServiceAccount should be created. | |
| 62 | +| serviceAccount.name | string | `""` | The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template. | |
| 63 | +| serviceMonitor.additionalLabels | object | `{}` | Additional labels for the ServiceMonitor. | |
| 64 | +| serviceMonitor.enabled | bool | `false` | Specifies whether a ServiceMonitor should be created. | |
| 65 | +| serviceMonitor.interval | string | `"1m"` | Scrape interval for the ServiceMonitor. | |
| 66 | +| strategy | object | `{"type":"Recreate"}` | Strategy for updating the pod. | |
| 67 | +| terminationGracePeriodSeconds | string | `nil` | Override the default termination grace period for the pod. | |
| 68 | +| tolerations | list | `[]` | Tolerations to allow the pod to be scheduled to nodes with taints. | |
| 69 | +| webhook.env | list | `[]` | Additional environment variables for the webhook pod. | |
| 70 | +| webhook.image | string | `"public.ecr.aws/karpenter/webhook:v0.6.0@sha256:bce76e56b8315c7f5ebe097a738ef81e9a07f84cfdc5da1e55975ba17783d0dc"` | Webhook image. | |
| 71 | +| webhook.logLevel | string | `""` | Webhook log level, defaults to the global log level | |
| 72 | +| webhook.port | int | `8443` | The container port to use for the webhook. | |
| 73 | +| webhook.resources | object | `{"limits":{"cpu":"100m","memory":"50Mi"},"requests":{"cpu":"100m","memory":"50Mi"}}` | Resources for the webhook pod. | |
| 74 | +| webhook.securityContext | object | `{}` | SecurityContext for the webhook container. | |
56 | 75 |
|
| 76 | +---------------------------------------------- |
| 77 | +Autogenerated from chart metadata using [helm-docs v1.7.0](https://github.com/norwoodj/helm-docs/releases/v1.7.0) |
0 commit comments