-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Switch up the cluster install order. #5846
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
Switch up the cluster install order. #5846
Conversation
|
We don't want to call Do you have any suggestions on we can achieve the same behavior without the side effects of code duplication? |
|
|
||
| - include: ../../common/openshift-master/additional_config.yml | ||
|
|
||
| - include: ../../common/openshift-node/config.yml |
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 this line intended?
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 masters run as nodes. This is for those hosts and not for the bootstrapped groups. We can probably consider doing all of them as bootstrapped.
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.
Oh yeah, I always forget masters are also nodes.
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.
Yeah, in GCP everything is bootstrapped which caused #6011 to fail when we enabled those by default
|
|
||
| - name: run the config | ||
| include: ../../common/openshift-cluster/config.yml | ||
| - name: Verify Requirements |
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.
If we're going to use this in multiple places, we should probably make it into it's on playbook and include here and in common/../config.yml
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 health checker play has already been converted to it's own play (openshift-checks/install.yml), but that change is not captured here.
I think we're as de-duplicated as we can get, save the one item I mentioned above. Long term, I would like to see this ordering applied as the default, then we can just place a boolean on the node config portion and pass it in via the provisioning play. |
400d68c to
f5f6453
Compare
|
/retest |
|
@kwoodson The Lego'ing done here seems to highlight that we've not quite broken things down into discrete components. Everything you have broken out into hosted.yml are pieces that will need to broken out into their own component(s) when we refactor to openshift-cluster during playbook consolidation. (Those plays don't really belong there.) Could we possibly add provisioning hooks into the installer flow so we can run the desired provisioning plays when it makes sense? I hesitate on this because I know playbook includes are not dynamic and I don't want to add more skipped tasks. I'd like to see a unified flow for the installer which covers both provisioning and installing. |
mtnbikenc
left a comment
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.
At a minimum, the health check should be switched to use openshift-checks/install.yml
|
@mtnbikenc @michaelgugino @sdodson @abutcher @smarterclayton I think the overall goal that can also be accomplished during our playbook refactor should follow this strategy (also an issue that was filed here: #6012
This architecture will enable:
|
|
I would like to avoid hooks - they invert the layering we want to have. The role we call to install the control plane is going to have minimal responsibilities - the vast majority of what is in hosted should not be there. So getting that layering straight I think is a good discussion to have:
I would expect an openshift-control-plane role that did 1, but not an openshift-cluster role that did 1 and 3 |
@smarterclayton I would expect our high-level play layout to be something along the lines of
|
|
This is a good discussion and I'm onboard with the general direction. |
51f6819 to
32af1ab
Compare
|
@mtnbikenc, I have updated the code with your recommendation to include Please review again as I believe this is ready to go. |
|
|
||
| - name: run the config | ||
| include: ../../common/openshift-cluster/config.yml | ||
| - name: run the std_include |
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 name: should be openshift-checks.
mtnbikenc
left a comment
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.
Small nit on the task name.
Maybe. I'm not interested in "generic etcd" - our requirements for how masters are laid out are also going to change - we're going to stop using system units, we're going to use static pods, and so there will be some coupling of dependencies. As long as we're cautious in our factorings (I.e., separate etcd is not a goal, but reusable etcd within a larger framework may be) we should be ok. The control plane is probably going to look like:
If subcomponent factorings for the etcd role make sense, that's fine, but I don't want to over factor those roles until we have the next step laid out for config. We must get to static pod configs in the 3.9 timeframe, so I want us all on the same page about what that is before we move on. |
32af1ab to
3d14183
Compare
|
@mtnbikenc, Thanks for finding that. I updated the name. |
mtnbikenc
left a comment
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.
/lgtm
|
/test install |
|
/test all [submit-queue is verifying that this PR is safe to merge] |
|
@kwoodson: The following test failed, say
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. DetailsInstructions 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. |
|
Automatic merge from submit-queue. |
The purpose of this pull request is to change the order of installation to the following:
This model of install is a bit more robust than the previous one of bringing up nodes after hosted has been installed. This method allows us to have all nodes available when the services are being configured rather than after-the-fact.