Skip to content

Commit

Permalink
feat(eks): support for Kubernetes version 1.30 (#30454)
Browse files Browse the repository at this point in the history
### Issue # (if applicable)

- Similar to #29040, this PR adds 1.30 support.
- Update all existing integ tests for `V1_29` and make sure they deploy with `V1_30`.

DependOn:
- [x] cdklabs/awscdk-asset-kubectl#838
- [x] cdklabs/awscdk-asset-kubectl#860

Closes #30443

### Reason for this change



### Description of changes



### Description of how you validated changes

```ts
export class EksClusterLatestVersion extends Stack {
  constructor(scope: Construct, id: string, props: StackProps) {
    super(scope, id, props);

    const vpc = new ec2.Vpc(this, 'Vpc', { natGateways: 1 });
    const mastersRole = new iam.Role(this, 'Role', {
      assumedBy: new iam.AccountRootPrincipal(),
    });

    // create eks.Cluster of the latest k8s version
    new eks.Cluster(this, 'Cluster', {
      vpc,
      mastersRole,
      version: eks.KubernetesVersion.V1_30,
      kubectlLayer: new KubectlV30Layer(this, 'KubectlLayer'),
      defaultCapacity: 1,
    });
  }
}
```

$ kubectl get no
NAME                           STATUS   ROLES    AGE     VERSION
ip-172-31-3-166.ec2.internal   Ready    <none>   5m38s   v1.30.0-eks-036c24b



### Checklist
- [x] My code adheres to the [CONTRIBUTING GUIDE](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and [DESIGN GUIDELINES](https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md)

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
  • Loading branch information
pahud committed Jun 6, 2024
1 parent 0fa3b1e commit d2ea280
Show file tree
Hide file tree
Showing 44 changed files with 1,785 additions and 1,760 deletions.
1 change: 1 addition & 0 deletions packages/@aws-cdk-testing/framework-integ/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
"@aws-cdk/integ-tests-alpha": "0.0.0",
"@aws-cdk/lambda-layer-kubectl-v24": "^2.0.242",
"@aws-cdk/lambda-layer-kubectl-v29": "^2.0.0",
"@aws-cdk/lambda-layer-kubectl-v30": "^2.0.0",
"aws-cdk-lib": "0.0.0",
"aws-sdk": "^2.1610.0",
"aws-sdk-mock": "5.6.0",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
import * as lambda from 'aws-cdk-lib/aws-lambda';
import { KubectlV24Layer } from '@aws-cdk/lambda-layer-kubectl-v24';
import { KubectlV29Layer } from '@aws-cdk/lambda-layer-kubectl-v29';
import { KubectlV30Layer } from '@aws-cdk/lambda-layer-kubectl-v30';
import { Construct } from 'constructs';
import * as eks from 'aws-cdk-lib/aws-eks';

const versionMap: { [key: string]: any } = {
1.24: KubectlV24Layer,
1.29: KubectlV29Layer,
// This object maps Kubernetes version strings to their corresponding
// KubectlLayerVersion constructor functions. This allows us to dynamically
// create the appropriate KubectlLayerVersion instance based on the
// Kubernetes version.
const versionMap: { [key: string]: new (scope: Construct, id: string) => lambda.ILayerVersion } = {
'1.24': KubectlV24Layer,
'1.29': KubectlV29Layer,
'1.30': KubectlV30Layer,
};

export function getClusterVersionConfig(scope: Construct, version?: eks.KubernetesVersion) {
Expand Down
Binary file not shown.

Large diffs are not rendered by default.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file not shown.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -434,9 +434,9 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
},
"S3Key": "b5925bba477fd1ac27c3a695a9f6ece293bd0ae6940bc65a5b99008ab54f60f7.zip"
"S3Key": "bfbdea4d45250c8162c204fe0687cb775e24d61c895ad89e4ca6e9a7fc90b0f0.zip"
},
"Description": "/opt/kubectl/kubectl 1.29; /opt/helm/helm 3.14",
"Description": "/opt/kubectl/kubectl 1.30; /opt/helm/helm 3.15",
"LicenseInfo": "Apache-2.0"
}
},
Expand Down Expand Up @@ -755,7 +755,7 @@
]
},
"Config": {
"version": "1.29",
"version": "1.30",
"roleArn": {
"Fn::GetAtt": [
"ClusterRoleFA261979",
Expand Down Expand Up @@ -1090,7 +1090,7 @@
{
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
},
"/471fe4d6391a89009b531814efc9974653ad7582640370a65c9c1295e6f5e4bc.json"
"/f60bb443f247dda63ec8772a7627d54d50a56350ed4e8c906bc15e8272052a12.json"
]
]
}
Expand Down Expand Up @@ -1140,7 +1140,7 @@
{
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
},
"/b950d200e14479f797ff28cd9b5f20f6292b459a527fd88842f706bd93ec4e88.json"
"/5ae608f2a0d8bc3f9dbe5f1a3254a5e50e17eb42f6cf3459a3687bcd7f00db86.json"
]
]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
},
"S3Key": "9202bb21d52e07810fc1da0f6acf2dcb75a40a43a9a2efbcfc9ae39535c6260c.zip"
"S3Key": "22de69e75b55e15d4d49905d8a4901edd66d1367f617c2a01ac6e86ca2b7eb84.zip"
},
"Description": "/opt/nodejs/node_modules/proxy-agent"
}
Expand Down Expand Up @@ -50,7 +50,7 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
},
"S3Key": "71aae489e8a9171b4e9c4ed9b264e3dad2dd3abfa40efb57071906931624ca52.zip"
"S3Key": "98b432f1b1df9de4026df7e718c23783d833d67973da5291085b4dc7be1a568a.zip"
},
"Description": "onEvent handler for EKS cluster resource provider",
"Environment": {
Expand Down Expand Up @@ -115,7 +115,7 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
},
"S3Key": "71aae489e8a9171b4e9c4ed9b264e3dad2dd3abfa40efb57071906931624ca52.zip"
"S3Key": "98b432f1b1df9de4026df7e718c23783d833d67973da5291085b4dc7be1a568a.zip"
},
"Description": "isComplete handler for EKS cluster resource provider",
"Environment": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
},
"S3Key": "1471fa6f2876749a13de79989efc6651c9768d3173ef5904947e87504f8d7069.zip"
"S3Key": "abc70c90ded969d12235ca11768293cb20557cff54518518480c0d9fb344a098.zip"
},
"Description": "onEvent handler for EKS kubectl resource provider",
"Handler": "index.handler",
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit d2ea280

Please sign in to comment.