Bug 1168490

Summary: FEATURE Request : Registration -> retain and honor skipping updates configuration setting
Product: [openSUSE] openSUSE Tumbleweed Reporter: Bryan Gartner <bryan.gartner>
Component: YaST2Assignee: E-mail List <yast2-maintainers>
Status: RESOLVED FEATURE QA Contact: Jiri Srain <jsrain>
Severity: Enhancement    
Priority: P5 - None CC: asadeghpour, bryan.gartner, locilka
Version: CurrentFlags: locilka: needinfo? (bryan.gartner)
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Bryan Gartner 2020-04-02 17:50:36 UTC
NOTE: Mostly in context w/ the SUSE flavor (during the installation use-case model)

After the initial "Registration" setting (whether pointing to SCC/SMT/RMT) and if selecting to decline access to update repositories for the initial install, it would be good if this config value is captured/retained/and applied by default, but also allow adjustment, for other repo channels selected during install.

In this way, one can effectively just point to the GA version (POOL only, w/o updates) of the specified repositories, essentially acquiring a staged version of installation.

Furthermore, with this setting selected, hope that such a decision/config value to survive post-install and be honored (which could also provide prompts to utilize/override for later repository/module/extension adjustments. And for bonus points, it could be selective/generally turned off at some point as well.

Use case(s):
- some workloads, like SAP Data Hub, kubeflow initially work better with the GA released version of layered products like SUSE Linux Enterprise Server plus SUSE CaaS Platform. However, w/o this approach, it is a tedious installation process to decline access to updates and then not have later update repos (even for Modules added) which can deliver newer dependency component package versions.
- some ISV testing also needs to rely upon GA release (and also be revisited if the updates are installed/applied)
Comment 1 Lukas Ocilka 2020-05-12 14:53:31 UTC
IIUC, you are asking for new feature of the installer to:

1. Keep asking if updates should be already used during installation (No)
2. Store that information and disable update repositories
3. Make it configurable for the future (Start using updates now())

The use case at the end says that even selecting "Do not use updates" might
be too much. The whole use case basically says that GA version is often more 
stable than when updates are used.

This IMO shows that there are several solutions outside the Installer

- The best approach is to use staging in SUSE Manager or SMT/RMT, these
  products are here to maintain nodes from outside, it keeps that stable
  AND up-to-date

- Other solution could be a feature in SCC as these Updates channels are
  NOT exclusively maintained by YaST, but also, e.g., by zypper/libzypp

- Higher quality of released updates - if you say that patched products
  are NOT stable, then we have a problem there too

Can you PLS confirm the use case and / or add more info?
Comment 2 Bryan Gartner 2020-05-14 17:59:25 UTC
(In reply to Lukas Ocilka from comment #1)
> IIUC, you are asking for new feature of the installer to:

correct (and perhaps beyond)

> 1. Keep asking if updates should be already used during installation (No)

Honor the first choice of Y/N (after registering), but yes giving the option for each repo/channel/module/extension that is added during the installation.

> 2. Store that information and disable update repositories

Yes (still hoping to have them placed into the /etc/zypp/repos.d config space, but disable as per the flow/options)

> 3. Make it configurable for the future (Start using updates now())

Yes, anytime repos are modified, offer that choice (until the flag file-ish token goes away). Of course more of a challenge in post-install space, since this feature may also impact zypper/SUSEConnect/etc.

> The use case at the end says that even selecting "Do not use updates" might
> be too much. The whole use case basically says that GA version is often more 
> stable than when updates are used.

Apologies if this is what you inferred WRT stability. It is more about consistency of a known starting point to reproduce. Otherwise the foundation is potentially different each week (if updates are applied).

> This IMO shows that there are several solutions outside the Installer
> 
> - The best approach is to use staging in SUSE Manager or SMT/RMT, these
>   products are here to maintain nodes from outside, it keeps that stable
>   AND up-to-date

Indeed, those tools do offer a staged approach, which is quite viable to have a known "golden" starting point, but that does require a fair amount of coordination to match releases of more agile products update channels vs. just a time-based patch-cycle approach.

> - Other solution could be a feature in SCC as these Updates channels are
>   NOT exclusively maintained by YaST, but also, e.g., by zypper/libzypp

Good point and as above perhaps SUSEConnect as well. Not sure, but both SMT/RMT might need to not automatically mirror update repos with a product enablement (just like mirroring the SRPMs is a config opt-in).

> - Higher quality of released updates - if you say that patched products
>   are NOT stable, then we have a problem there too

Again, stability is not the issue at all with the updates. I am totally in favor of always applying updates. Yet it is more about the underlying version/APIs over the lifecycle. Think of it like kernel developers 


> Can you PLS confirm the use case and / or add more info?

Let me give a recent scenario:

Trying to deploy kubeflow on top of CaaS Platform, the former citing support for only the K8s version provided in the GA of the latter. In order to accomplish this, I had to:
- point to an RMT server with all of the necessary channels
- disable updates for SLE base (and not add any of the modules/extensions) during the install (so as not to inherent those updates)
- do not install those relevant add-ons during the install, since the updates would be enabled by default
- post install addition of the needed modules/extensions, then manually disable each of the update repos (and the core OS ones as well), before installing the needed patterns otherwise the new versions of container runtime/kubeadm/helm/k8s would have been installed
Comment 3 Michal Filka 2020-05-20 08:34:07 UTC
@Lukas: Requested info provided. Please evaluate whether it deserve to go into Jira.
Comment 4 Lukas Ocilka 2020-06-03 09:24:41 UTC
This is indeed a complex request and often beyond YaST responsibilities.
It would need implementation in several layers (libzypp, zypper, YaST...)
Bryan, please, request it in JIRA.