You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As the OCI Helm chart is signed by [Cosign](https://github.com/sigstore/cosign) as part of the release process you can verify the chart before installing it by running the following command.
Copy file name to clipboardExpand all lines: website/content/en/docs/concepts/nodeclasses.md
+70-1Lines changed: 70 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -115,6 +115,11 @@ spec:
115
115
- id: cr-123
116
116
- instanceMatchCriteria: open
117
117
118
+
# Optional, the terms are exclusive
119
+
placementGroupSelector:
120
+
name: my-pg
121
+
id: pg-123
122
+
118
123
# Optional, propagates tags to underlying EC2 resources
119
124
tags:
120
125
team: team-a
@@ -141,6 +146,15 @@ spec:
141
146
snapshotID: snap-0123456789
142
147
volumeInitializationRate: 100
143
148
149
+
# Optional, configures the network interfaces for the instance
150
+
networkInterfaces:
151
+
- networkCardIndex: 0
152
+
deviceIndex: 0
153
+
interfaceType: "interface"
154
+
- networkCardIndex: 0
155
+
deviceIndex: 1
156
+
interfaceType: "interface"
157
+
144
158
# Optional, use instance-store volumes for node ephemeral-storage
145
159
instanceStorePolicy: RAID0
146
160
@@ -714,7 +728,7 @@ You can provision and assign a role to an IAM instance profile using [CloudForma
714
728
715
729
{{% alert title="Note" color="primary" %}}
716
730
717
-
For [private clusters](https://docs.aws.amazon.com/eks/latest/userguide/private-clusters.html) that do not have access to the public internet, using `spec.instanceProfile` is required. `spec.role` cannot be used since Karpenter needs to access IAM endpoints to manage a generated instance profile. IAM [doesn't support private endpoints](https://docs.aws.amazon.com/vpc/latest/privatelink/aws-services-privatelink-support.html) to enable accessing the service without going to the public internet.
731
+
For [private clusters](https://docs.aws.amazon.com/eks/latest/userguide/private-clusters.html) without access to their AWS region's IAM API endpoint, using `spec.instanceProfile` is required. `spec.role` cannot be used since Karpenter needs to access IAM endpoints to manage a generated instance profile. IAM [doesn't support private endpoints](https://docs.aws.amazon.com/vpc/latest/privatelink/aws-services-privatelink-support.html) to enable accessing the service without going to the public internet.
718
732
719
733
{{% /alert %}}
720
734
@@ -962,6 +976,39 @@ spec:
962
976
key: foo
963
977
```
964
978
979
+
## spec.placementGroupSelector
980
+
981
+
Placement Group Selector allows you to select a [placement group](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) for instances launched by this EC2NodeClass. Each EC2NodeClass maps to exactly one placement group — all instances launched from that EC2NodeClass are placed into the resolved placement group.
982
+
983
+
Placement groups can be selected by either name or ID. Only one of `name` or `id` may be specified.
984
+
985
+
Karpenter supports all three placement group strategies:
986
+
- **Cluster** — instances are placed in a single AZ on the same network segment for low-latency, high-throughput networking (e.g., EFA workloads)
987
+
- **Partition** — instances are distributed across isolated partitions (up to 7 per AZ) for hardware fault isolation. Applications can use `topologySpreadConstraints` with the `karpenter.k8s.aws/placement-group-partition` label to spread workloads across partitions.
988
+
- **Spread** — each instance is placed on distinct hardware (up to 7 instances per AZ per group) for maximum fault isolation
989
+
990
+
{{% alert title="Note" color="primary" %}}
991
+
The IAM role Karpenter assumes must have permissions for the [ec2:DescribePlacementGroups](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribePlacementGroups.html) action to discover placement groups and the [ec2:RunInstances](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-RunInstances) / [ec2:CreateFleet](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-CreateFleet) actions to launch instances into the placement group.
992
+
{{% /alert %}}
993
+
994
+
#### Examples
995
+
996
+
Select the placement group with the given ID:
997
+
998
+
```yaml
999
+
spec:
1000
+
placementGroupSelector:
1001
+
id: pg-123
1002
+
```
1003
+
1004
+
Select the placement group with the given name:
1005
+
1006
+
```yaml
1007
+
spec:
1008
+
placementGroupSelector:
1009
+
name: my-pg-a
1010
+
```
1011
+
965
1012
## spec.tags
966
1013
967
1014
Karpenter adds tags to all resources it creates, including EC2 Instances, EBS volumes, and Launch Templates. The default set of tags are listed below.
@@ -1082,6 +1129,28 @@ spec:
1082
1129
1083
1130
The `Custom` AMIFamily ships without any default `blockDeviceMappings`.
1084
1131
1132
+
## spec.networkInterfaces
1133
+
1134
+
The `networkInterfaces` field allows you to configure network interface attachments for instances, including support for EFA (Elastic Fabric Adapter) devices for high-performance computing and machine learning workloads. For more information see the [AWS EFA docs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html).
1135
+
1136
+
Configure network interfaces by specifying the network card index, device index, and interface type:
1137
+
1138
+
```yaml
1139
+
spec:
1140
+
networkInterfaces:
1141
+
- networkCardIndex: 0
1142
+
deviceIndex: 0
1143
+
interfaceType: "interface"
1144
+
- networkCardIndex: 0
1145
+
deviceIndex: 1
1146
+
interfaceType: "efa-only"
1147
+
```
1148
+
1149
+
### Interface Types
1150
+
1151
+
- __interface__: Standard ENA (Elastic Network Adapter) interface providing IP connectivity
1152
+
- __efa-only__: EFA interface that provides only the EFA device for RDMA communication without consuming an IP address
1153
+
1085
1154
## spec.instanceStorePolicy
1086
1155
1087
1156
The `instanceStorePolicy` field controls how [instance-store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) volumes are handled. By default, Karpenter and Kubernetes will simply ignore them.
Copy file name to clipboardExpand all lines: website/content/en/docs/faq.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@ See [Configuring NodePools]({{< ref "./concepts/#configuring-nodepools" >}}) for
17
17
AWS is the first cloud provider supported by Karpenter, although it is designed to be used with other cloud providers as well.
18
18
19
19
### Can I write my own cloud provider for Karpenter?
20
-
Yes, but there is no documentation yet for it. Start with Karpenter's GitHub [cloudprovider](https://github.com/aws/karpenter-provider-aws/tree/v1.10.0/pkg/cloudprovider) documentation to see how the AWS provider is built, but there are other sections of the code that will require changes too.
20
+
Yes, but there is no documentation yet for it. Start with Karpenter's GitHub [cloudprovider](https://github.com/aws/karpenter-provider-aws/tree/v1.11.0/pkg/cloudprovider) documentation to see how the AWS provider is built, but there are other sections of the code that will require changes too.
21
21
22
22
### What operating system nodes does Karpenter deploy?
23
23
Karpenter uses the OS defined by the [AMI Family in your EC2NodeClass]({{< ref "./concepts/nodeclasses#specamifamily" >}}).
@@ -29,7 +29,7 @@ Karpenter has multiple mechanisms for configuring the [operating system]({{< ref
29
29
Karpenter is flexible to multi-architecture configurations using [well known labels]({{< ref "./concepts/scheduling/#supported-labels">}}).
30
30
31
31
### What RBAC access is required?
32
-
All the required RBAC rules can be found in the Helm chart template. See [clusterrole-core.yaml](https://github.com/aws/karpenter/blob/v1.10.0/charts/karpenter/templates/clusterrole-core.yaml), [clusterrole.yaml](https://github.com/aws/karpenter/blob/v1.10.0/charts/karpenter/templates/clusterrole.yaml), [rolebinding.yaml](https://github.com/aws/karpenter/blob/v1.10.0/charts/karpenter/templates/rolebinding.yaml), and [role.yaml](https://github.com/aws/karpenter/blob/v1.10.0/charts/karpenter/templates/role.yaml) files for details.
32
+
All the required RBAC rules can be found in the Helm chart template. See [clusterrole-core.yaml](https://github.com/aws/karpenter/blob/v1.11.0/charts/karpenter/templates/clusterrole-core.yaml), [clusterrole.yaml](https://github.com/aws/karpenter/blob/v1.11.0/charts/karpenter/templates/clusterrole.yaml), [rolebinding.yaml](https://github.com/aws/karpenter/blob/v1.11.0/charts/karpenter/templates/rolebinding.yaml), and [role.yaml](https://github.com/aws/karpenter/blob/v1.11.0/charts/karpenter/templates/role.yaml) files for details.
33
33
34
34
### Can I run Karpenter outside of a Kubernetes cluster?
35
35
Yes, as long as the controller has network and IAM/RBAC access to the Kubernetes API and your provider API.
Copy file name to clipboardExpand all lines: website/content/en/docs/getting-started/getting-started-with-karpenter/_index.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -48,7 +48,7 @@ After setting up the tools, set the Karpenter and Kubernetes version:
48
48
49
49
```bash
50
50
export KARPENTER_NAMESPACE="kube-system"
51
-
export KARPENTER_VERSION="1.10.0"
51
+
export KARPENTER_VERSION="1.11.0"
52
52
export K8S_VERSION="1.35"
53
53
```
54
54
@@ -115,13 +115,13 @@ See [Enabling Windows support](https://docs.aws.amazon.com/eks/latest/userguide/
115
115
As the OCI Helm chart is signed by [Cosign](https://github.com/sigstore/cosign) as part of the release process you can verify the chart before installing it by running the following command.
0 commit comments