-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
*: remove support for environment variables #861
Conversation
Requires openshift/release#2353. |
How are we planning on rolling this out? The gentlest way (at this point in our unstable development) would probably be to drop the docs in one PR, and then (after giving folks a week to react to the change-log's deprecation notice) to drop the implementation in the next release. Or we can land them both in one PR? Now that we're cutting frequent, pinned release, I'm comfortable with either. Folks who run master should read the Git history, and folks who run pinned releases can see the API change in the change-log and decide whether or not they can update. The only issue with that would be the BYOR folks who got bit by #644 (so CC @vrutkovs about this change) and are probably floating on master without reading our Git history ;). |
I think if you're going to remove the environment variables you should also remove the prompts altogether. Just give people an example install-config to fill out. Dynamically generating a file just to turn around and have to edit it is burdensome and my suspicion is that the install-config file will be lacking proper documentation because 'you really shouldn't mess with it anyway' kind of thing. |
We still want the prompts for those users which don't want to do any customization and just want to get a cluster up and running as quickly as possible.
The install-config is the thing we want people messing with though. We just haven't finalized it's shape and therefore haven't spent much time on documentation. The multiple-invocation nature of the installer is central to providing escape hatches at many different levels. Yes, it may be burdensome, but that is the price you pay for deeper customization. We don't want to drag everyone down into the weeds because a few users need to heavily customize their setup. |
I want to get this out as quickly as possible before too many people become reliant on them. I'm fine dumping it into the next release without any deprecation period. |
The environment variables were originally added to make CI testing a little easier, since the installer didn't support consumption of provided assets (e.g. the install config). Now that the installer supports consumption, there is no need for most of the environment variables anymore. The variables have actually been confusing to users, so their removal should simplify the mental model.
Now that support for environment variables has been removed, there isn't much of a need for the GenerateUserProvidedAsset wrapper function.
This is 💯 |
This just shows how to reuse an install config, but more will be added to this doc over time.
lgtm, I'm okay ripping off the bandaid and getting to work on environment-less workflows. |
/retest |
The change should first land in the installer, see openshift/installer#861
This has been killing us lately. |
Hopefully openshift/cluster-openshift-apiserver-operator#91 helps. /retest |
Come on AWS... /pray |
This error appears to be caused by "Server.InsufficientInstanceCapacity" on AWS's end. We might need to switch off of t3.medium until AWS installs more hardware (cc @wking). |
|
/retest |
/lgtm |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: abhinavdahiya, crawford, wking 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 |
Maybe the documentation of SSH Access in docs/dev/libvirt-howto.md should be updated to remove the reference to the envars: |
@alejovicu, file a follow-up? |
@wking |
The long forms are less likely to exist in the user's environment since 6be4c25 (*: remove support for environment variables, 2018-12-10, openshift#861), and we no longer need the context to distinguish from all the other environment variables on a user's system.
The CI updates happend in openshift/release#2353. Did you need something besides that? |
@wking Got you, means we have to make install-config.yaml as a template and generate target file via a template system which maybe build in ansible or other things, or draft one. |
yeah, like this Jinja2 template file https://github.com/vrutkovs/openshift-40-centos/blob/master/install-config.yml.j2 But one more concern is that the template is still a static file, once some changes made in new generated install-config.yaml, we need to apply corresponding updates to our template as well. Especially in the future, customers may have more customized requests to the installer. So we may always have to update the template, it still will be a challenge for CI jobs IMO. |
This is true of any input, including environment variables. As we added, removed, and renamed variables, CI had to be kept up-to-date just the same. As developers make changes here, they will be responsible for making the necessary changes to CI. |
Catching up with 6be4c25 (*: remove support for environment variables, 2018-12-10, openshift#861). Also link to the troubleshooting docs, since the easier it is to discover those, the fewer bug reports we'll get with insufficient detail ;).
A few changes: * Backticks for some code like ~/Downloads/pull-secret. This change is not exhaustive. * Drop environment variables to catch up with openshift/installer@6be4c253 (*: remove support for environment variables, 2018-12-10, openshift/installer#861). * Link to the installer repository for a list of supported platforms. * Link to the installer repository for discussion of repeat calls, since that seems useful, but out-of-scope for a workshop-length introduction.
Take advantage of openshift/origin@59dab63d (Temporarily force the installer to be part of the payload, 2018-12-08, openshift/origin#21637) to avoid installer/update-payload mismatches. This does not address install-config.yaml/installer mismatches, but it's a step in the right direction. Also: * Replace 'shell' syntax highlighting with 'console', because these blocks have prompts. And switch from the traditionally-PS2 '>' to the traditionally-PS1 '$' for those prompts. * Stop exporting variables that are not needed by subprocesses. * Drop OPENSHIFT_INSTALL_*. This information is provided via install-config.yaml, and the installer ignores the environment variables since openshift/installer@6be4c253 (*: remove support for environment variables, 2018-12-10, openshift/installer#861). There's an outstanding FIXME while I wait for guidance about who's job it is to pull the installer image out of the update payload. If we do that in generate.go, we need to vendor some not-really-designed-as-a-library origin code. If we do it in the launched container, we need both oc and Podman (or some other way to actually run the discovered installer image).
The environment variables were originally added to make CI testing a
little easier, since the installer didn't support consumption of
provided assets (e.g. the install config). Now that the installer
supports consumption, there is no need for most of the environment
variables anymore. The variables have actually been confusing to users,
so their removal should simplify the mental model.