Skip to content

Conversation

@alexander-demicev
Copy link
Contributor

No description provided.

Copy link
Contributor

@elmiko elmiko left a comment

Choose a reason for hiding this comment

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

good start, i have a few questions inline, also i'm curious about how a user might use CAPI on OpenShift. will we allow users to create new clusters from the CAPI on their OpenShift install? (essentially allowing them to use OpenShift as the management cluster for new workload clusters)


In order to maintain the lifecycle of Cluster API related resources, we will create a new operator `cluster-capi-operator`, this name was chosen for avoiding confusion with upstream Cluster API operator.
This operator will be responsible for all administrative tasks related to the deployment of the Cluster API project within the cluster.
During tech preview phase, the new operator will also manage all Cluster API related CRDs. All CRD manifests will placed in openshift forks of CAPI and will take from there with no changes.
Copy link
Member

Choose a reason for hiding this comment

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

FWIW in hypershift will install these CRDs in clusters that it runs.

Copy link
Contributor

Choose a reason for hiding this comment

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

you will need to change the CRD to convert from cert-manager to service-ca (minor). Also not convinced that within in each fork is the best location as it's going to make rebasing harder. So far I have done this in my pr here openshift/cluster-capi-operator#8 .
Argument for this:

  • the operator controls the version of each provider so having the manifests seems reasonable
  • reduces the rebase difficulty in each provider
  • can do translations from cert-manager to service-ca in one place

Copy link
Contributor

@elmiko elmiko left a comment

Choose a reason for hiding this comment

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

i think this is looking better @alexander-demichev , i left a couple comments. also, it might be helpful to start resolving some of the conversations to make the reviewing a little easier.


- During tech preview `cluster-capi-operator` will have permissions to manage CRDs, this might be a not secure permission for an operator.
- Note, this permission should be restricted to creating CRDs only, as once installed, the technical preview cannot be uninstalled.
- CLI usage, once Cluster API is installed command like `oc get machine` will return Cluster API machines, in order to use Machine API users will have to use fully qualified name `oc get machines.machine.openshift.io`.
Copy link
Contributor

Choose a reason for hiding this comment

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

this makes me wonder if we shouldn't have some sort of warning message associated with oc get machines once the feature gate is active, but i'm not sure if that's even possible.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah, we still have to figure out what to do here.

Copy link
Contributor

Choose a reason for hiding this comment

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

Where did the conversation end up with API team about changing the priority so we don't make this breaking change?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We have a "hack" to set the preference in openshift. If we do this then any scripts should not break and users will have to use fully qualified names for CAPI resources.

Copy link
Contributor

Choose a reason for hiding this comment

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

We should make a note of that hack and ideally get something to track that so we don't forget to do it

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I've just added a note

@alexander-demicev alexander-demicev force-pushed the capi branch 4 times, most recently from 977577c to afdc763 Compare October 25, 2021 12:03
Copy link
Contributor

@JoelSpeed JoelSpeed left a comment

Choose a reason for hiding this comment

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

This is pretty much good to go I think, one nit in there plus I think one last outstanding question, then I think we can get this merged.

We need to nominate approvers, possible @elmiko and @asalkeld? (I can add the label on their behalf if they can't)


- During tech preview `cluster-capi-operator` will have permissions to manage CRDs, this might be a not secure permission for an operator.
- Note, this permission should be restricted to creating CRDs only, as once installed, the technical preview cannot be uninstalled.
- CLI usage, once Cluster API is installed command like `oc get machine` will return Cluster API machines, in order to use Machine API users will have to use fully qualified name `oc get machines.machine.openshift.io`.
Copy link
Contributor

Choose a reason for hiding this comment

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

Where did the conversation end up with API team about changing the priority so we don't make this breaking change?

@alexander-demicev alexander-demicev force-pushed the capi branch 3 times, most recently from 4f52628 to 107bc3d Compare October 29, 2021 12:25
@openshift-ci openshift-ci bot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Dec 28, 2021
@openshift-bot
Copy link

Rotten enhancement proposals close after 7d of inactivity.

See https://github.com/openshift/enhancements#life-cycle for details.

Reopen the proposal by commenting /reopen.
Mark the proposal as fresh by commenting /remove-lifecycle rotten.
Exclude this proposal from closing again by commenting /lifecycle frozen.

/close

@openshift-ci openshift-ci bot closed this Jan 5, 2022
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 5, 2022

@openshift-bot: Closed this PR.

Details

In response to this:

Rotten enhancement proposals close after 7d of inactivity.

See https://github.com/openshift/enhancements#life-cycle for details.

Reopen the proposal by commenting /reopen.
Mark the proposal as fresh by commenting /remove-lifecycle rotten.
Exclude this proposal from closing again by commenting /lifecycle frozen.

/close

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.

@alexander-demicev
Copy link
Contributor Author

alexander-demicev commented Jan 5, 2022

/reopen
/remove-lifecycle rotten

@openshift-ci openshift-ci bot reopened this Jan 5, 2022
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 5, 2022

@alexander-demichev: Reopened this PR.

Details

In response to this:

/reopen
/remove-lifecycle rotten.

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.

Copy link
Contributor

@elmiko elmiko left a comment

Choose a reason for hiding this comment

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

i think this generally reads well to me

the only question i have, which i don't think really fits within the enhancement scope is how the capi deployment might interact with the cluster-autoscaler. by default i don't imagine it would make any difference, but there is now the possibility for a user to install the autoscaler into a namespace that could read the capi machinesets and thus work in parallel with the openshift autoscaler.

just a though, i'm not sure we need to mention it here except to maybe say that we won't change the autoscaler behavior.


In order to maintain the lifecycle of Cluster API related resources, we will create a new operator `cluster-capi-operator`, this name was chosen for avoiding confusion with upstream Cluster API operator.
This operator will be responsible for all administrative tasks related to the deployment of the Cluster API project within the cluster.
During tech preview phase, the new operator leverage new [CVO feature](https://github.com/openshift/enhancements/blob/master/enhancements/update/cvo-techpreview-manifests.md) for managing all Cluster API related CRDs.
Copy link
Contributor

Choose a reason for hiding this comment

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

minor nit

Suggested change
During tech preview phase, the new operator leverage new [CVO feature](https://github.com/openshift/enhancements/blob/master/enhancements/update/cvo-techpreview-manifests.md) for managing all Cluster API related CRDs.
During tech preview phase, the new operator will leverage the new [CVO feature](https://github.com/openshift/enhancements/blob/master/enhancements/update/cvo-techpreview-manifests.md) for managing all Cluster API related CRDs.

@openshift-bot
Copy link

Rotten enhancement proposals close after 7d of inactivity.

See https://github.com/openshift/enhancements#life-cycle for details.

Reopen the proposal by commenting /reopen.
Mark the proposal as fresh by commenting /remove-lifecycle rotten.
Exclude this proposal from closing again by commenting /lifecycle frozen.

/close

@openshift-ci openshift-ci bot closed this Jan 13, 2022
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 13, 2022

@openshift-bot: Closed this PR.

Details

In response to this:

Rotten enhancement proposals close after 7d of inactivity.

See https://github.com/openshift/enhancements#life-cycle for details.

Reopen the proposal by commenting /reopen.
Mark the proposal as fresh by commenting /remove-lifecycle rotten.
Exclude this proposal from closing again by commenting /lifecycle frozen.

/close

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.

@alexander-demicev alexander-demicev deleted the capi branch January 17, 2022 15:03
@alexander-demicev alexander-demicev restored the capi branch January 17, 2022 15:03
@alexander-demicev
Copy link
Contributor Author

/reopen

@openshift-ci openshift-ci bot reopened this Jan 19, 2022
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 19, 2022

@alexander-demichev: Reopened this PR.

Details

In response to this:

/reopen

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.

@alexander-demicev
Copy link
Contributor Author

@elmiko I added a note about autoscaler to nongoals of this proposal.

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 19, 2022

@alexander-demichev: all tests passed!

Full PR test history. Your PR dashboard.

Details

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.

Copy link
Contributor

@elmiko elmiko left a comment

Choose a reason for hiding this comment

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

generally looks good to me @alexander-demichev , i have a couple minor nits
/approve

- Create both Cluster and InfrastructureCluster objects with externally managed cluster infrastructure annotation.
- Ensure spec/status of InfrastructureCluster are configured for the OpenShift cluster (infrastructure information can be sourced from resources within the OpenShift Cluster).
- Patch `Cluster` status to `Ready=true`.

Copy link
Contributor

Choose a reason for hiding this comment

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

might be nice to put this in the non-goals as well


### Risks and Mitigations

- During tech preview `cluster-capi-operator` will have permissions to manage CRDs, this might be a not secure permission for an operator.
Copy link
Contributor

Choose a reason for hiding this comment

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

minor nit

Suggested change
- During tech preview `cluster-capi-operator` will have permissions to manage CRDs, this might be a not secure permission for an operator.
- During tech preview `cluster-capi-operator` will have permissions to manage CRDs, this might not be a secure permission for an operator.

@elmiko
Copy link
Contributor

elmiko commented Jan 19, 2022

/remove-lifecycle rotten

@openshift-ci openshift-ci bot removed the lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. label Jan 19, 2022
@JoelSpeed
Copy link
Contributor

This enhancement has been stagnant for a while with no additional feedback and no new discoveries or changes to the plan that we are implementing. Let's merge this and iterate on it if we find new stuff that's needs updating
/lgtm
/approve

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Jan 19, 2022
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 19, 2022

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: elmiko, JoelSpeed

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

The pull request process is described here

Details 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

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jan 19, 2022
@openshift-merge-robot openshift-merge-robot merged commit d992b0b into openshift:master Jan 19, 2022
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. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants