Skip to content

Commit 938d094

Browse files
committed
Adding release notes for mult-nic feature
1 parent fab33ff commit 938d094

18 files changed

+118
-74
lines changed

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
# Changelog
22

3+
## v1.20.0
4+
* Feature - Adding support in CNI for managing multiple network interface card on the instance in #3347,#3349
5+
* Dependency - Bump helm.sh/helm/v3 from 3.18.1 to 3.18.4 in #3346
6+
* Dependency - Bump aws-dependencies in #3337
7+
* Improvement - Build CNI plugins from source in #3343
8+
* Fix - Fix error when Network policy agent GRPC call fails in #3320
9+
* Fix - Fix race condition when force deleting pod using a security group for pod feature in #3304
10+
* Improvement - Add latency metrics for ipamd init in #3301
11+
312
## v1.19.6
413
* Dependency - Bump k8s.io/apimachinery from 0.32.3 to 0.33.0 by @dependabot in #3279
514
* Dependency - Bump golang.org/x/sys from 0.31.0 to 0.32.0 in /test/agent in #3280

README.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -757,6 +757,32 @@ Default: `false`
757757
Setting `ENABLE_IMDS_ONLY_MODE` to `true` enables the CNI plugin to operate in environments with strict VPC or IAM restrictions where EC2 API access is limited or unavailable. In this mode, the CNI plugin relies solely on the Instance Metadata Service (IMDS) to retrieve information about ENIs (Elastic Network Interfaces) and determine IP addresses to assign. These ENIs are only discovered at startup, so ENIs and IPs must be pre-attached and pre-assigned before CNI plugin starts up.
758758
Enabling this mode automatically sets `DISABLE_NETWORK_RESOURCE_PROVISIONING` and `DISABLE_LEAKED_ENI_CLEANUP` to `true`, as the CNI plugin will not make any EC2 API calls during operation.
759759

760+
761+
#### `ENABLE_MULTI_NIC` (v1.20.0+)
762+
763+
Type: Boolean as a String
764+
765+
Default: `false`
766+
767+
The CNI plugin by default only manages network card 0 and assigns a single IP address to each Pod. Setting `ENABLE_MULTI_NIC` to `true` enables the Amazon VPC CNI plugin to manage all eligible network cards on supported multi-card instance types.
768+
769+
A network card will be managed if at least one of the following conditions is met:
770+
771+
a. The network card does not have any devices attached to it
772+
b. The network card has an `efa` OR an `ena` device attached to it
773+
c. The network card has an `efa-only` AND an `ena` device attached to it
774+
775+
## Annotations
776+
777+
#### Multi Homed Pods (v1.20.0+)
778+
779+
The `k8s.amazonaws.com/nicConfig: multi-nic-attachment` annotation enables multi-homing for a pod, allowing it to receive an IP address from each managed network card on the node. While this provides multiple network paths, applications must explicitly utilize these interfaces to take advantage of the additional bandwidth. To enable this feature, set `ENABLE_MULTI_NIC` to `true` in the Amazon VPC CNI configuration and schedule the pod on an instance type that supports multiple network cards. If you are using the AWS VPC CNI implementation of network policies, these policies are applied symmetrically to all interfaces of the pod.
780+
781+
Note -
782+
Downgrade considerations
783+
1. If the feature is enabled and you plan to downgrade the plugin from v1.20.0+, ensure that all multi-homed pods are removed first to prevent IP leaks and then set the `ENABLE_MULTI_NIC` to `false`.
784+
2. Drain and remove the nodes to clean up any additional ENIs created by the Amazon VPC CNI plugin on network cards with index > 0
785+
760786
### VPC CNI Feature Matrix
761787

762788

charts/aws-vpc-cni/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
apiVersion: v1
22
name: aws-vpc-cni
3-
version: 1.19.6
4-
appVersion: "v1.19.6"
3+
version: 1.20.0
4+
appVersion: "v1.20.0"
55
description: A Helm chart for the AWS VPC CNI
66
icon: https://raw.githubusercontent.com/aws/eks-charts/master/docs/logo/aws.png
77
home: https://github.com/aws/amazon-vpc-cni-k8s

charts/aws-vpc-cni/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,15 @@ The following table lists the configurable parameters for this chart and their d
4848
| `minimumWindowsIPTarget`| Minimum IP target value for Windows prefix delegation | `3` |
4949
| `branchENICooldown` | Number of seconds that branch ENIs remain in cooldown | `60` |
5050
| `fullnameOverride` | Override the fullname of the chart | `aws-node` |
51-
| `image.tag` | Image tag | `v1.19.6` |
51+
| `image.tag` | Image tag | `v1.20.0` |
5252
| `image.domain` | ECR repository domain | `amazonaws.com` |
5353
| `image.region` | ECR repository region to use. Should match your cluster | `us-west-2` |
5454
| `image.endpoint` | ECR repository endpoint to use. | `ecr` |
5555
| `image.account` | ECR repository account number | `602401143452` |
5656
| `image.pullPolicy` | Container pull policy | `IfNotPresent` |
5757
| `image.override` | A custom docker image to use | `nil` |
5858
| `imagePullSecrets` | Docker registry pull secret | `[]` |
59-
| `init.image.tag` | Image tag | `v1.19.6` |
59+
| `init.image.tag` | Image tag | `v1.20.0` |
6060
| `init.image.domain` | ECR repository domain | `amazonaws.com` |
6161
| `init.image.region` | ECR repository region to use. Should match your cluster | `us-west-2` |
6262
| `init.image.endpoint` | ECR repository endpoint to use. | `ecr` |
@@ -69,7 +69,7 @@ The following table lists the configurable parameters for this chart and their d
6969
| `originalMatchLabels` | Use the original daemonset matchLabels | `false` |
7070
| `nameOverride` | Override the name of the chart | `aws-node` |
7171
| `nodeAgent.enabled` | If the Node Agent container should be created | `true` |
72-
| `nodeAgent.image.tag` | Image tag for Node Agent | `v1.2.2` |
72+
| `nodeAgent.image.tag` | Image tag for Node Agent | `v1.2.3` |
7373
| `nodeAgent.image.domain`| ECR repository domain | `amazonaws.com` |
7474
| `nodeAgent.image.region`| ECR repository region to use. Should match your cluster | `us-west-2` |
7575
| `nodeAgent.image.endpoint` | ECR repository endpoint to use. | `ecr` |

charts/aws-vpc-cni/values.yaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ nameOverride: aws-node
88

99
init:
1010
image:
11-
tag: v1.19.6
11+
tag: v1.20.0
1212
domain: amazonaws.com
1313
region: us-west-2
1414
endpoint: ecr
@@ -27,7 +27,7 @@ init:
2727
nodeAgent:
2828
enabled: true
2929
image:
30-
tag: v1.2.2
30+
tag: v1.2.3
3131
domain: amazonaws.com
3232
region: us-west-2
3333
endpoint: ecr
@@ -52,7 +52,7 @@ nodeAgent:
5252
resources: {}
5353

5454
image:
55-
tag: v1.19.6
55+
tag: v1.20.0
5656
domain: amazonaws.com
5757
region: us-west-2
5858
endpoint: ecr
@@ -86,9 +86,10 @@ env:
8686
ENABLE_IPv4: "true"
8787
ENABLE_IPv6: "false"
8888
ENABLE_SUBNET_DISCOVERY: "true"
89-
VPC_CNI_VERSION: "v1.19.6"
89+
VPC_CNI_VERSION: "v1.20.0"
9090
NETWORK_POLICY_ENFORCING_MODE: "standard"
9191
ENABLE_IMDS_ONLY_MODE: "false"
92+
ENABLE_MULTI_NIC: "false"
9293

9394
# Add env from configMap or from secrets
9495
# - name: ENV_VAR1

charts/cni-metrics-helper/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
apiVersion: v2
22
name: cni-metrics-helper
3-
version: 1.19.6
4-
appVersion: v1.19.6
3+
version: 1.20.0
4+
appVersion: v1.20.0
55
description: A Helm chart for the AWS VPC CNI Metrics Helper
66
icon: https://raw.githubusercontent.com/aws/eks-charts/master/docs/logo/aws.png
77
home: https://github.com/aws/amazon-vpc-cni-k8s

charts/cni-metrics-helper/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ The following table lists the configurable parameters for this chart and their d
6060
| -------------------------------|---------------------------------------------------------------|-------------------------------------|
6161
| `affinity` | Map of node/pod affinities | `{}` |
6262
| `fullnameOverride` | Override the fullname of the chart | `cni-metrics-helper` |
63-
| `image.tag` | Image tag | `v1.19.6` |
63+
| `image.tag` | Image tag | `v1.20.0` |
6464
| `image.domain` | ECR repository domain | `amazonaws.com` |
6565
| `image.region` | ECR repository region to use. Should match your cluster | `us-west-2` |
6666
| `image.account` | ECR repository account number | `602401143452` |

charts/cni-metrics-helper/values.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ nameOverride: cni-metrics-helper
44

55
image:
66
region: us-west-2
7-
tag: v1.19.6
7+
tag: v1.20.0
88
account: "602401143452"
99
domain: "amazonaws.com"
1010
# Set to use custom image

config/master/aws-k8s-cni-cn.yaml

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@ metadata:
300300
app.kubernetes.io/name: aws-node
301301
app.kubernetes.io/instance: aws-vpc-cni
302302
k8s-app: aws-node
303-
app.kubernetes.io/version: "v1.19.6"
303+
app.kubernetes.io/version: "v1.20.0"
304304
---
305305
# Source: aws-vpc-cni/templates/configmap.yaml
306306
apiVersion: v1
@@ -312,7 +312,7 @@ metadata:
312312
app.kubernetes.io/name: aws-node
313313
app.kubernetes.io/instance: aws-vpc-cni
314314
k8s-app: aws-node
315-
app.kubernetes.io/version: "v1.19.6"
315+
app.kubernetes.io/version: "v1.20.0"
316316
data:
317317
enable-windows-ipam: "false"
318318
enable-network-policy-controller: "false"
@@ -331,7 +331,7 @@ metadata:
331331
app.kubernetes.io/name: aws-node
332332
app.kubernetes.io/instance: aws-vpc-cni
333333
k8s-app: aws-node
334-
app.kubernetes.io/version: "v1.19.6"
334+
app.kubernetes.io/version: "v1.20.0"
335335
rules:
336336
- apiGroups:
337337
- crd.k8s.amazonaws.com
@@ -377,7 +377,7 @@ metadata:
377377
app.kubernetes.io/name: aws-node
378378
app.kubernetes.io/instance: aws-vpc-cni
379379
k8s-app: aws-node
380-
app.kubernetes.io/version: "v1.19.6"
380+
app.kubernetes.io/version: "v1.20.0"
381381
roleRef:
382382
apiGroup: rbac.authorization.k8s.io
383383
kind: ClusterRole
@@ -397,7 +397,7 @@ metadata:
397397
app.kubernetes.io/name: aws-node
398398
app.kubernetes.io/instance: aws-vpc-cni
399399
k8s-app: aws-node
400-
app.kubernetes.io/version: "v1.19.6"
400+
app.kubernetes.io/version: "v1.20.0"
401401
spec:
402402
updateStrategy:
403403
rollingUpdate:
@@ -418,7 +418,7 @@ spec:
418418
hostNetwork: true
419419
initContainers:
420420
- name: aws-vpc-cni-init
421-
image: 961992271922.dkr.ecr.cn-northwest-1.amazonaws.com.cn/amazon-k8s-cni-init:v1.19.6
421+
image: 961992271922.dkr.ecr.cn-northwest-1.amazonaws.com.cn/amazon-k8s-cni-init:v1.20.0
422422
imagePullPolicy: Always
423423
env:
424424
- name: DISABLE_TCP_EARLY_DEMUX
@@ -440,7 +440,7 @@ spec:
440440
{}
441441
containers:
442442
- name: aws-node
443-
image: 961992271922.dkr.ecr.cn-northwest-1.amazonaws.com.cn/amazon-k8s-cni:v1.19.6
443+
image: 961992271922.dkr.ecr.cn-northwest-1.amazonaws.com.cn/amazon-k8s-cni:v1.20.0
444444
ports:
445445
- containerPort: 61678
446446
name: metrics
@@ -497,6 +497,8 @@ spec:
497497
value: "true"
498498
- name: ENABLE_IPv6
499499
value: "false"
500+
- name: ENABLE_MULTI_NIC
501+
value: "false"
500502
- name: ENABLE_POD_ENI
501503
value: "false"
502504
- name: ENABLE_PREFIX_DELEGATION
@@ -506,7 +508,7 @@ spec:
506508
- name: NETWORK_POLICY_ENFORCING_MODE
507509
value: "standard"
508510
- name: VPC_CNI_VERSION
509-
value: "v1.19.6"
511+
value: "v1.20.0"
510512
- name: WARM_ENI_TARGET
511513
value: "1"
512514
- name: WARM_PREFIX_TARGET
@@ -541,7 +543,7 @@ spec:
541543
- mountPath: /run/xtables.lock
542544
name: xtables-lock
543545
- name: aws-eks-nodeagent
544-
image: 961992271922.dkr.ecr.cn-northwest-1.amazonaws.com.cn/amazon/aws-network-policy-agent:v1.2.2
546+
image: 961992271922.dkr.ecr.cn-northwest-1.amazonaws.com.cn/amazon/aws-network-policy-agent:v1.2.3
545547
imagePullPolicy: Always
546548
ports:
547549
- containerPort: 8162

config/master/aws-k8s-cni-us-gov-east-1.yaml

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@ metadata:
300300
app.kubernetes.io/name: aws-node
301301
app.kubernetes.io/instance: aws-vpc-cni
302302
k8s-app: aws-node
303-
app.kubernetes.io/version: "v1.19.6"
303+
app.kubernetes.io/version: "v1.20.0"
304304
---
305305
# Source: aws-vpc-cni/templates/configmap.yaml
306306
apiVersion: v1
@@ -312,7 +312,7 @@ metadata:
312312
app.kubernetes.io/name: aws-node
313313
app.kubernetes.io/instance: aws-vpc-cni
314314
k8s-app: aws-node
315-
app.kubernetes.io/version: "v1.19.6"
315+
app.kubernetes.io/version: "v1.20.0"
316316
data:
317317
enable-windows-ipam: "false"
318318
enable-network-policy-controller: "false"
@@ -331,7 +331,7 @@ metadata:
331331
app.kubernetes.io/name: aws-node
332332
app.kubernetes.io/instance: aws-vpc-cni
333333
k8s-app: aws-node
334-
app.kubernetes.io/version: "v1.19.6"
334+
app.kubernetes.io/version: "v1.20.0"
335335
rules:
336336
- apiGroups:
337337
- crd.k8s.amazonaws.com
@@ -377,7 +377,7 @@ metadata:
377377
app.kubernetes.io/name: aws-node
378378
app.kubernetes.io/instance: aws-vpc-cni
379379
k8s-app: aws-node
380-
app.kubernetes.io/version: "v1.19.6"
380+
app.kubernetes.io/version: "v1.20.0"
381381
roleRef:
382382
apiGroup: rbac.authorization.k8s.io
383383
kind: ClusterRole
@@ -397,7 +397,7 @@ metadata:
397397
app.kubernetes.io/name: aws-node
398398
app.kubernetes.io/instance: aws-vpc-cni
399399
k8s-app: aws-node
400-
app.kubernetes.io/version: "v1.19.6"
400+
app.kubernetes.io/version: "v1.20.0"
401401
spec:
402402
updateStrategy:
403403
rollingUpdate:
@@ -418,7 +418,7 @@ spec:
418418
hostNetwork: true
419419
initContainers:
420420
- name: aws-vpc-cni-init
421-
image: 151742754352.dkr.ecr.us-gov-east-1.amazonaws.com/amazon-k8s-cni-init:v1.19.6
421+
image: 151742754352.dkr.ecr.us-gov-east-1.amazonaws.com/amazon-k8s-cni-init:v1.20.0
422422
imagePullPolicy: Always
423423
env:
424424
- name: DISABLE_TCP_EARLY_DEMUX
@@ -440,7 +440,7 @@ spec:
440440
{}
441441
containers:
442442
- name: aws-node
443-
image: 151742754352.dkr.ecr.us-gov-east-1.amazonaws.com/amazon-k8s-cni:v1.19.6
443+
image: 151742754352.dkr.ecr.us-gov-east-1.amazonaws.com/amazon-k8s-cni:v1.20.0
444444
ports:
445445
- containerPort: 61678
446446
name: metrics
@@ -497,6 +497,8 @@ spec:
497497
value: "true"
498498
- name: ENABLE_IPv6
499499
value: "false"
500+
- name: ENABLE_MULTI_NIC
501+
value: "false"
500502
- name: ENABLE_POD_ENI
501503
value: "false"
502504
- name: ENABLE_PREFIX_DELEGATION
@@ -506,7 +508,7 @@ spec:
506508
- name: NETWORK_POLICY_ENFORCING_MODE
507509
value: "standard"
508510
- name: VPC_CNI_VERSION
509-
value: "v1.19.6"
511+
value: "v1.20.0"
510512
- name: WARM_ENI_TARGET
511513
value: "1"
512514
- name: WARM_PREFIX_TARGET
@@ -541,7 +543,7 @@ spec:
541543
- mountPath: /run/xtables.lock
542544
name: xtables-lock
543545
- name: aws-eks-nodeagent
544-
image: 151742754352.dkr.ecr.us-gov-east-1.amazonaws.com/amazon/aws-network-policy-agent:v1.2.2
546+
image: 151742754352.dkr.ecr.us-gov-east-1.amazonaws.com/amazon/aws-network-policy-agent:v1.2.3
545547
imagePullPolicy: Always
546548
ports:
547549
- containerPort: 8162

0 commit comments

Comments
 (0)