Is there any way to subscribe a client to an older version of a CV/CCV?
I have a workflow where content is pushed through the LEs to Prod on a monthly basis in something like ccv_stable.
Lib > Eng > RC > Dev > Test > Prod
We also create a copy of this which is a timestamped version(i.e. ccv_200701 for the July 2020 patchset started on 01/07/2020). These build up until we eventually cull them at a year old. These patchsets can then be used to rebuild a machine in as close to it’s original state by selecting the right datestamped CCV.
However, clients don’t have any way of moving from one CCV to another do they? I can do it via the Katello interface, but the admins of the clients won’t have access to Katello.
One of the continual problems is also during the monthly patching cycle. Sometimes a team have tested the June patchset on their Test boxes, but we have then pushed out the July patchset before they have a chance to schedule the patching of their Prod servers. We are trying to figure out how we can get these machines to selectively move themselves from ccv_stable to ccv_200602 before patching.
Another solution, however, would be if the clients could select a specific version of the CV/CCV that they are subscribed to. Is this possible? It’s certainly something which would be of use to large installations. It would probably have to include some method of marking certain historical versions of the CV as non-selectable. There could be a version Published which has a catastrophic bug. The fix would soon be pushed out, but Admins would want to ensure the version with the bug couldn’t be used again.
If this happened, it would also be nice to tag CV/CCV versions so that they can be selected with something more meaningful than a version number.
it is not possible to subscribe to an older version of a CV. This is exactly what LCEs are for.
Switching CVs from the clientside is theoretically possible, if you generate Activation Keys for your CCV Copies and hand those out to the clients. That way, they could “subscription-manager register --activation-key XYZ [–force]” (I did not look up the exact syntax, but something like this) themselfes to switch between the different CCV “Version”.
I suppose my question then is what would it take to be able to subscribe to a previous version of a CV/CCV? LCEs do not do this job for me when there is an estate of tens of thousands of clients. The Production LE in this case can contain huge numbers of systems. Not every Production system is capable of being patched within a month of the monthly release. You cannot assign them to a “Prod-1” LCE because they may be quicker off the mark next month and manage the patching in time. Being able to select the version of the current CV/CCV easily from the client would solve this patching congestion.
I’m also not keen on the idea of re-subscribing a system just to change it’s CV/CCV. That’s an expensive operation on the database and Katello isn’t good at supporting large numbers of simultaneous registrations (yet). A Production team needing to re-subscribe several hundred of their boxes to switch to a new CV/CCV could very well break the Katello server if the re-subscription load isn’t spread out.
While I totaly understand your point and do agree with your arguments, I have to tell you that at least I am not aware of a proper workflow to support this usecase. At my organization, we just setteld with not patching systems that can currently not be patched for to some reason and still keep pushing the updates through the stages like usual. But I understand this is probably not a solution for you, too.
The concept behind CVs, LCEs and Versions is designed to keep this as up-to-date as possible while still giving a reasonable amount of control and versioning. It was not designed to do “zoo-keeping” on large heterogenous environments.
Maybe someone else can give you tips on how to handle this, but to my knowledge this is not possible with Katello’s toolset and workflows.
Where would be best to raise such an RFE then? I’m interested in exploring the idea. It’s a question I’ve been asked about Katello usage for a few years now - the ability to deploy a new server today, but using the versions of the CV which were published 2 years ago. The answer has always been to re-Publish and promote the old version of the CV/CCV, but that affects any other automated deployment which would be running at the same time.