-
Notifications
You must be signed in to change notification settings - Fork 463
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
External control plane topology #744
Conversation
/cc @openshift/team-hypershift-maintainers @derekwaynecarr |
I think this is a 4.9 release priority, so I'm adding the label to make it show up that way in the weekly newsletter. /priority important-soon |
|
||
## Proposal | ||
|
||
- Add `External` as an additional option to the `TopologyMode` type for `Infrastructure` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should replace the annotation, right?
annotations:
include.release.openshift.io/ibm-cloud-managed: "true"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@eranco74 this is not going to take the place of cluster profiles. The cluster profile is for the CVO to decide which manifests to include/exclude or to set appropriate node selectors for operators. The controlPlaneTopology value is for components to adjust their behavior once they're running.
/cc @mfojtik @s-urbaniak @spadgett @dmage @Miciah |
/retest |
- Allow expressing a new type of control plane topology in the Infrastructure resource inside an | ||
OCP cluster. | ||
|
||
- Provide operators/components that change their behavior based on whether the control plane is external or |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are the list of components that need to be changed captured somewhere?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Currently it's components that have been modified to work with the IBMCloud platform type, will add a list with corresponding PRs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mrunalp the list of components are useful, but really this is more saying 'there will never be a role=master' host in this cluster where set to External
|
||
- Provide a design for running OCP with an external control plane. | ||
|
||
- Describe how the `controlPlaneTopology` field will be set for an external control plane deployment. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This enhancement is talking about the value it will be set to. Are you saying that we will not specify the actor which sets the value?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I didn't think it was relevant to explain that Hypershift or IBM ROKS toolkit do their own bootstrapping and will set the value appropriately. But if you think it's relevant I can add it to the doc.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm fine leaving it out. But maybe rephrase this line to:
- Describe the mechanics of populating the
controlPlaneTopology
field. This enhancement only introduces the new value.
or some such to make it more clear what portion is out of scope.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@wking for clarification, the externalized control plane manager is responsible for projecting this value into the end-user cluster data plane.
There's a bug in the lint script that means the fact that this enhancement is missing a bunch of sections isn't caught by the automation. That bug is being fixed in #752. The output of the script when I run it locally is:
|
|
||
Existing components such as Console and Monitoring that use platform type of `IBMCloud` to modify their behavior | ||
for external control planes would need to switch to `controlPlaneTopology` to determine whether the control plane | ||
is external. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the test plan for this "CI jobs with an external control plane pass e2e without blowing up"? Do we have CI coverage for things like whatever console twiddles based on this (looks like maybe just dashboard availability)? Or is the expectation that we make a best-effort attempt to transition existing IBMCloud
consumers and then fix any we miss (or which slip in later) as we stumble across them?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I didn't think it was relevant to explain that Hypershift or IBM ROKS toolkit do their own bootstrapping and will set the value appropriately. But if you think it's relevant I can add it to the doc.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry answer to the wrong question :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The test plan for IBM Cloud is that QE on their side will verify that we have not regressed in the tweaks that have been made based on the IBMCloud
platform. On our side, we don't yet have automated CI for Hypershift setups, but it's something that we're working towards.
Now that #752 has landed, checking vs. this PR: /test markdownlint |
CI cluster flake: /retest |
openshift/release#18081 should remove the memory limit we were overshooting. /retest |
@dhellmann the lint job passed, should I have seen an error about the missing sections? |
The lint job uses a script in the repo, so you'll need to rebase to see the errors. |
CI apparently checks out the base branch and merges the pull request branch before running tests [1]: INFO[2021-04-26T18:28:37Z] Resolved source https://github.com/openshift/enhancements to master@42b44d6e, merging: openshift#744 d8c0ef8 ... So instead of using the local 'master' branch (which includes that new merge), use origin/master to calculate changed files. [1]: https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_enhancements/744/pull-ci-openshift-enhancements-master-markdownlint/1386749042607788032#1:build-log.txt%3A3
#755 landed. /test markdownlint |
#756 has landed. /test markdownlint |
Prow didn't notice. /test markdownlint |
Hooray (I guess ;):
|
Will update later today :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks like all comments were addressed, and this is needed to differentiate Standalone OCP on IBM Cloud from Managed Control Planes on IBM Cloud (or other infrastructures).
/approve
/lgtm
- Allow expressing a new type of control plane topology in the Infrastructure resource inside an | ||
OCP cluster. | ||
|
||
- Provide operators/components that change their behavior based on whether the control plane is external or |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mrunalp the list of components are useful, but really this is more saying 'there will never be a role=master' host in this cluster where set to External
|
||
- Provide a design for running OCP with an external control plane. | ||
|
||
- Describe how the `controlPlaneTopology` field will be set for an external control plane deployment. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@wking for clarification, the externalized control plane manager is responsible for projecting this value into the end-user cluster data plane.
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: derekwaynecarr 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 |
/retest Please review the full test history for this PR and help us cut down flakes. |
3 similar comments
/retest Please review the full test history for this PR and help us cut down flakes. |
/retest Please review the full test history for this PR and help us cut down flakes. |
/retest Please review the full test history for this PR and help us cut down flakes. |
/hold The lint job is failing because this document is missing a bunch of the required headers from the template. Please restore those sections and put something like
|
|
||
Existing components such as Console and Monitoring that use platform type of `IBMCloud` to modify their behavior | ||
for external control planes would need to switch to `controlPlaneTopology` to determine whether the control plane | ||
is external. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: derekwaynecarr 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 |
@dhellmann I've added the missing sections |
/hold cancel |
Add support for indicating whether a control plane is external through the ControlPlaneTopology field