Bug 1129095

Summary: Make yast2_caasp kubeadm ntp screen more genericly available
Product: [openSUSE] openSUSE Tumbleweed Reporter: Richard Brown <rbrown>
Component: KubicAssignee: YaST Team <yast-internal>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: dgonzalez, jsrain
Version: Current   
Target Milestone: ---   
Hardware: Other   
OS: Other   
URL: https://trello.com/c/8uqCahT2
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Richard Brown 2019-03-13 15:35:38 UTC
(Hi Jiri!)

Kubic currently has a screen, implemented in yast2_caasp, for kubeadm Node configuration, which provides a screen for configuring NTP Servers

https://openqa.opensuse.org/tests/876176#step/kubeadm_settings/1

When originally proposed, it was expected this screen would be extended to include other fields over time

https://en.opensuse.org/Kubic:CaaSPInstallationComparision

"[later] Certificates for velum and API server"

The same document stated that the NTP server configuration needed to be available for the MicroOS or CaaSP Plain System system roles, but that doesn't seem to be how it was implimented in YaST, as the ntp dialogue is part of the inst_kubic_kubeadm_role

Therefore, this is a bug that needs to be fixed.

I see a few solutions

Option A) would be to rename inst_kubic_kubeadm_role to something like inst_kubic_ntp_config, and I'll just plumb the additional dialogue into every system role with <additional_dialogs>

But that doesn't make much sense given the whole point of <additional_dialog> is for when a YaST module cant be used everywhere in the product

Both the current Kubic installation media and the future MicroOS installation media want this ntp configuration screen on every system role. I can also see it being desired in other openSUSE distributions, as a lightweight alternative to the more complex timezone module.

So, Option B) would be to remove inst_kubic_kubeadm_role from yast2_caasp (which removes yast2_caasp as a dependency in Kubic & MicroOS) and instead implement it as a module in yast2_installation, with a name something like "ntp_setup"

I have a preference for Option B), Jiri what do you think?
Comment 1 Ladislav Slezák 2019-03-22 12:41:21 UTC
(In reply to Richard Brown from comment #0)
> Both the current Kubic installation media and the future MicroOS
> installation media want this ntp configuration screen on every system role.

In that case it makes sense to not use <additional_dialogs> but add it to the product control.xml globally.

And of course move it to the generic yast2-installation package, option B).
Comment 2 Jiri Srain 2019-03-26 09:12:37 UTC
(In reply to Ladislav Slezák from comment #1)
> (In reply to Richard Brown from comment #0)
> > Both the current Kubic installation media and the future MicroOS
> > installation media want this ntp configuration screen on every system role.
> 
> In that case it makes sense to not use <additional_dialogs> but add it to
> the product control.xml globally.
> 
> And of course move it to the generic yast2-installation package, option B).

I agree. I could even imagine - long-term - to get rid of the yast2-caasp package completely from MicroOS - as the initial purpose was to provide the caasp-specific dialogs. While turning MicroOS into a more universal solution, it makes sense to merge this stuff to generic YaST modules.
Comment 3 David Diaz 2019-04-04 07:06:43 UTC
(In reply to Richard Brown from comment #0)
>
> So, Option B) [...]
> implement it as a module in yast2_installation, with a name something like
> "ntp_setup"

Done in `yast-installation 4.2.1`

 - PR: https://github.com/yast/yast-installation/pull/791
 - SR: https://build.opensuse.org/request/show/690980

Now, the `<additional_dialogs>inst_kubic_kubeadm_role</additional_dialogs>` at https://github.com/yast/skelcd-control-Kubic/blob/782fe36c76771ed7b6bb7aa0bcc660d1456262d7/control/control.Kubic.xml#L352 could be replaced by `<additional_dialogs>inst_ntp_setup</additional_dialogs>` or use 


```
<module>
  <name>ntp_setup</name>
  <label>Whatever you want</label>
<module>
```

in the installation workflow.