Skip to content
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

✨ ROSA machinePools support #4725

Merged
merged 5 commits into from
Jan 17, 2024

Conversation

muraee
Copy link
Contributor

@muraee muraee commented Jan 5, 2024

/kind feature

supersedes #4686

What this PR does / why we need it:

Add initial support for ROSAMachinePools

What this PR does / why we need it:
This PR introduces basic support to create/delete ROSAMachinePoolsand a new cluster template to work with ROSAMachinePools.

It also add several improvements and fixes to the rosa control plane to get cluster creation functional:

  • Add ROSAControlPlaneReadyCondition
  • Introduce rosaClient helper to communicate with ocm API
  • Add WorkerRoleARN field to the API to satisfy latest ocm API requirements
  • Add RosaClusterName field to the API to satisfy ocm API requirements for cluster names
  • Read credentials(token) from a referenced secret, e.g.:
   apiVersion: controlplane.cluster.x-k8s.io/v1beta2
   kind: ROSAControlPlane
   metadata:
     name: "capi-rosa-quickstart-control-plane"
   spec:
     credentialsSecretRef:
       nmae: rosa-creds-secret
   ...

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 #4429, #4460

Special notes for your reviewer:

Checklist:

  • squashed commits
  • includes documentation
  • includes emojis
  • adds unit tests
  • adds or updates e2e tests

Release note:

Introduce basic support for ROSAMachinePools

@k8s-ci-robot k8s-ci-robot added release-note Denotes a PR that will be considered when it comes time to generate release notes. kind/feature Categorizes issue or PR as related to a new feature. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. needs-priority needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Jan 5, 2024
@k8s-ci-robot
Copy link
Contributor

Hi @muraee. Thanks for your PR.

I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

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/test-infra repository.

@muraee
Copy link
Contributor Author

muraee commented Jan 5, 2024

cc @vincepri this is the updated PR for machinePools

@vincepri
Copy link
Member

vincepri commented Jan 8, 2024

/ok-to-test

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Jan 8, 2024
pkg/rosa/client.go Outdated Show resolved Hide resolved
@muraee muraee force-pushed the rosa-machine-mgmt branch 3 times, most recently from 0a3f60d to 3865e4b Compare January 9, 2024 15:51
@muraee
Copy link
Contributor Author

muraee commented Jan 9, 2024

/retest-required

1 similar comment
@muraee
Copy link
Contributor Author

muraee commented Jan 10, 2024

/retest-required

enxebre and others added 3 commits January 10, 2024 17:02
    This commit introduces several improvements to the rosa control plane:
    - Add ROSAControlPlaneReadyCondition
    - Add helpers for ocmclient
    - Add WorkerRoleARN field to the API to satisfy latest ocm API requirements
- ensure RosaClusterName is valid using kubebuild validation
- moved ocmClient to a seperate package and renamed to rosaClient
- updated cluster-template-rosa.yaml
- set ControlPlane.Status.Initialized
- requeue ROSAControlPlane to poll cluster status until ready
This introduces basic support to create/delete ROSAMachinePools
Lifecycle is captured in RosaMchinePoolReady condition

- add cluster-template-rosa-machinepool.yaml
@Ankitasw
Copy link
Member

@muraee looks like unit tests are failing, could you fix it?

@muraee muraee force-pushed the rosa-machine-mgmt branch 2 times, most recently from 8efcdbb to 2a9ae4a Compare January 11, 2024 13:07
@muraee
Copy link
Contributor Author

muraee commented Jan 11, 2024

@Ankitasw fixed! I was chasing down this error since yesterday. seems like one of the new packages we import is initializing klog somewhere and then we end up with a panic: flag x is redefined.
The fix is to reset commandLine flagSet before initializing klog in the test environment.

cc @vincepri

pkg/cloud/scope/rosamachinepool.go Show resolved Hide resolved
pkg/cloud/scope/rosamachinepool.go Show resolved Hide resolved
pkg/cloud/scope/rosamachinepool.go Show resolved Hide resolved
pkg/cloud/scope/rosamachinepool.go Show resolved Hide resolved
pkg/rosa/nodepools.go Show resolved Hide resolved
pkg/rosa/client.go Show resolved Hide resolved
@muraee muraee force-pushed the rosa-machine-mgmt branch 2 times, most recently from 02a42ef to d6ad1bc Compare January 17, 2024 14:24
@k8s-ci-robot
Copy link
Contributor

@muraee: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
pull-cluster-api-provider-aws-apidiff-main d6ad1bc3859c15d612c64628b135daa5c75fd3a2 link false /test pull-cluster-api-provider-aws-apidiff-main

Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR.

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/test-infra repository. I understand the commands that are listed here.

- reset CommandLine flagSet before calling klog.InitFlags(nil) to avoid conflicts if an imported package already called it.
Copy link
Member

@vincepri vincepri left a comment

Choose a reason for hiding this comment

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

/approve
/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jan 17, 2024
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: vincepri

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

The pull request process is described 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 the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jan 17, 2024
@k8s-ci-robot k8s-ci-robot merged commit 0647b20 into kubernetes-sigs:main Jan 17, 2024
16 of 17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. 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. lgtm "Looks good to me", indicates that a PR is ready to be merged. needs-priority ok-to-test Indicates a non-member PR verified by an org member that is safe to test. 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.

ROSA: rosaMachinePool for data plane
6 participants