Yes. At the moment it’s kind of weird if you want different lifecycle states for different CVs in a CCV, even though that seems like a logical approach. Right now, you need to promote the CV you have assigned to your host. If it’s the CCV you need to promote the CCV. It’s always the whole CCV consisting of specific version numbers of the CVs, as you can only assign a single CV/CCV to a host.
So what you cannot easily do at this time is to take your two CVs CentOS 8 and Kiosk and let’s say have a CCV for DEV consisting of the DEV Kiosk CV and the PROD CentOS 8 CV (because you don’t want to do CentOS 8 testing on your Kiosks). You can specifiy the CV version number for your CCV but then you have to manually adjust it if you move forward, e.g. if there is a new CentOS 8 PROD CV you want to integrate into your Kiosks.
I have opened am issue for Lifecycle based CCVs which would more suit my needs, where you could configure a specific environment version to go into a CCV.
See Feature #30223: Lifecyle based composite content views - Katello - Foreman However, it’s on backlog.
So to answer your questions:
Re 2. Yes, it’s in the Library first.
Re 3. You have to publish your Kiosk Extras CV and then the Kiosks CCV (unless you have configure the CCV to auto-publish). Then the Kiosk Extras CV and the Kiosks CCV are in the Library, too. Now, you have to promote the Kiosks CCV to DEV to get it to the hosts which use the Kiosks CCV. The lifecycle environment of the Kiosk Extras CV is irrelevant here.
Re 4. Correct. You would take the Kiosk CCV to QA and PROD.
But as you can see, if you have new CentOS 8 Updates you want to integrate, it’s the exact same process. That may or may not be what you expect and need.