Skip to content

✨ Add ClusterClass support for EKS clusters #5375

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

alexander-demicev
Copy link
Contributor

@alexander-demicev alexander-demicev commented Mar 6, 2025

What type of PR is this?
/kind feature

What this PR does / why we need it:

This PR adds ClusterClass support for EKS.

  • It doesn't support managed machine pools for now, I will add them in a follow up
  • I'm unsure which fields in AWSManagedControlPlane can be reused in AWSManagedControlPlaneTemplate so please correct me if I'm wrong.
  • Moving some fields to a nested structure in AWSManagedControlPlane broke conversions and they have to be done manually.

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #3166

Special notes for your reviewer:

Checklist:

  • squashed commits
  • includes documentation
  • includes emoji in title
  • adds unit tests
  • adds or updates e2e tests

Release note:

Add ClusterClass support for EKS clusters

@k8s-ci-robot k8s-ci-robot added kind/feature Categorizes issue or PR as related to a new feature. release-note Denotes a PR that will be considered when it comes time to generate release notes. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Mar 6, 2025
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign justinsb for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added needs-priority size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Mar 6, 2025
@k8s-ci-robot k8s-ci-robot requested review from faiq and richardcase March 6, 2025 11:12
@alexander-demicev
Copy link
Contributor Author

/test pull-cluster-api-provider-aws-e2e

Copy link
Member

@richardcase richardcase left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good @alexander-demicev .

Can you add an e2e test to cover creating a cluster with ClusterClass?

@alexander-demicev
Copy link
Contributor Author

alexander-demicev commented Mar 12, 2025

@richardcase yes, can I do it in a follow-up PR? I already have a draft locally

@alexander-demicev alexander-demicev force-pushed the eksclusterclass branch 2 times, most recently from 930fb59 to ce8e91a Compare March 12, 2025 13:46
@richardcase
Copy link
Member

@richardcase yes, can I do it in a follow-up PR? I already have a draft locally

A follow-up is good, i think we'd want the e2e coverage before we release this though.....this feature will be really popular 😄

@alexander-demicev
Copy link
Contributor Author

/test pull-cluster-api-provider-aws-e2e

@alexander-demicev
Copy link
Contributor Author

/test pull-cluster-api-provider-aws-e2e

@richardcase
Copy link
Member

/test ?

@k8s-ci-robot
Copy link
Contributor

@richardcase: The following commands are available to trigger required jobs:

/test pull-cluster-api-provider-aws-build
/test pull-cluster-api-provider-aws-build-docker
/test pull-cluster-api-provider-aws-test
/test pull-cluster-api-provider-aws-verify

The following commands are available to trigger optional jobs:

/test pull-cluster-api-provider-aws-apidiff-main
/test pull-cluster-api-provider-aws-e2e
/test pull-cluster-api-provider-aws-e2e-blocking
/test pull-cluster-api-provider-aws-e2e-clusterclass
/test pull-cluster-api-provider-aws-e2e-conformance
/test pull-cluster-api-provider-aws-e2e-conformance-with-ci-artifacts
/test pull-cluster-api-provider-aws-e2e-eks
/test pull-cluster-api-provider-aws-e2e-eks-gc
/test pull-cluster-api-provider-aws-e2e-eks-testing

Use /test all to run the following jobs that were automatically triggered:

pull-cluster-api-provider-aws-apidiff-main
pull-cluster-api-provider-aws-build
pull-cluster-api-provider-aws-build-docker
pull-cluster-api-provider-aws-test
pull-cluster-api-provider-aws-verify

In response to this:

/test ?

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@richardcase
Copy link
Member

/test pull-cluster-api-provider-aws-e2e-eks

@richardcase
Copy link
Member

/milestone v2.9

@k8s-ci-robot
Copy link
Contributor

@richardcase: The provided milestone is not valid for this repository. Milestones in this repository: [v2.5, v2.6, v2.7, v2.8]

Use /milestone clear to clear the milestone.

In response to this:

/milestone v2.9

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@alexander-demicev
Copy link
Contributor Author

/test pull-cluster-api-provider-aws-e2e-eks

@alexander-demicev
Copy link
Contributor Author

/test pull-cluster-api-provider-aws-e2e-eks

@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Apr 14, 2025
@alexander-demicev
Copy link
Contributor Author

/test pull-cluster-api-provider-aws-e2e-eks

@alexander-demicev
Copy link
Contributor Author

/test pull-cluster-api-provider-aws-e2e-eks

@alexander-demicev
Copy link
Contributor Author

/test pull-cluster-api-provider-aws-e2e-eks

@alexander-demicev alexander-demicev force-pushed the eksclusterclass branch 4 times, most recently from 77a1e3d to aa5cc52 Compare April 23, 2025 10:07
@alexander-demicev
Copy link
Contributor Author

/test pull-cluster-api-provider-aws-e2e-eks

@alexander-demicev
Copy link
Contributor Author

/test pull-cluster-api-provider-aws-e2e-eks

@alexander-demicev
Copy link
Contributor Author

/test pull-cluster-api-provider-aws-e2e-eks

Copy link
Member

@furkatgofurov7 furkatgofurov7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great, one tiny non-blocking question/comment

/lgtm

@@ -36,6 +38,7 @@ patchesStrategicMerge:
- patches/webhook_in_awsclusterroleidentities.yaml
- patches/webhook_in_awsclustertemplates.yaml
- patches/webhook_in_awsmanagedcontrolplanes.yaml
- patches/webhook_in_awsmanagedcontrolplanetemplates.yaml
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you need patches/webhook_in_awsmanagedclustertemplates.yaml as well?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is no conversion webhook for it at the moment, I'm not sure if that's a problem to have it included anyway

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Apr 25, 2025
Copy link
Member

@Danil-Grigorev Danil-Grigorev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I’m not a ClusterClass or AWS expert, but this change looks good to me.

/lgtm

alexander-demicev and others added 2 commits April 28, 2025 16:07
Signed-off-by: Alexandr Demicev <[email protected]>

Co-authored-by: Richard Case <[email protected]>
@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Apr 28, 2025
@k8s-ci-robot
Copy link
Contributor

New changes are detected. LGTM label has been removed.

@alexander-demicev
Copy link
Contributor Author

/test pull-cluster-api-provider-aws-e2e-eks

Copy link
Member

@richardcase richardcase left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good @alexander-demicev , just one query about the conversions (but i suspect there is nothing to change there).

return err
}

dst.Spec.IdentityRef = r.Spec.IdentityRef
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Normaly you only need to restore fields here that are new between two APIVersions (i.e. between v1beta1 & v1beta2). For fields that are the same they should be covered by the autoConvert and Convert functions.

Where you seeing issues?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or was it because of the AWSManagedControlPlaneClassSpec in the spec now?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/feature Categorizes issue or PR as related to a new feature. needs-priority release-note Denotes a PR that will be considered when it comes time to generate release notes. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add AWSManagedControlPlaneTemplate type
6 participants