The software described in this documentation is either no longer supported or is in extended support.
Oracle recommends that you upgrade to a current supported release.

Chapter 7 Overview of Development, Test, Acceptance, and Production Life Cycles

Many Oracle Linux environments implement an application and system software life cycle known as DTAP, which stands for Development, Test, Acceptance, and Production. Spacewalk supports software channel cloning to simplify the process of promoting software configurations from development to test, test to acceptance, and acceptance to production.

Cloning an existing channel creates a new channel that reflects the state of the original channel's packages and errata at a particular point in time. You can modify a channel before cloning it, perhaps applying the errata available at a certain date or a set of errata that you have specifically selected. The cloned channel then provides a stable base for development and testing before release to production.

Spacewalk keeps track of all registered client systems and the software channels to which they are subscribed. Updates are available to client systems whenever their subscribed channels are updated. Alternatively, you can subscribe clients to a different channel, such as a cloned channel that contains new errata that have been tested. Cloning gives you more precise control over software configurations and establishes a methodical workflow to reduce the risk of production problems in mission-critical application environments.

You can use either the Spacewalk web interface or the spacecmd command to clone channels in the following ways:

  • Clone a channel in its current state, including all errata.

  • Clone a channel in its original state, with only a selected set of errata.

  • Clone a channel in its original state, with no errata.

Note the following additional points about cloning:

  • Cloning is usually very fast, as Spacewalk only needs to duplicate metadata entries in its database. It does not duplicate the packages themselves. Keeping channels small in size also helps to speed up channel cloning.

    Note

    Cloning the base and patch channels for an Oracle Linux release is significantly faster than cloning the latest channel of an Oracle Linux release because the latest channel contains every version of every package from the initial release date to the current date. A base channel for an Oracle Linux release contains only what was shipped on the release's ISO image and a patch channel contains the updates made available since the ISO image was created. For this reason, base and patch channels are preferred sources for channel cloning.

  • When establishing a DTAP workflow, you might want to clone channels based on a particular date. You can use the spacewalk-clone-by-date command to ensure that the new channel contains packages and errata up to and including a specified date.

  • You can blocklist or remove certain packages and choose types of errata to include or exclude when cloning.

  • You can use the spacewalk-clone-by-date command to perform channel cloning based on a configuration file. You can then create a configuration file by using the --sample_config option and edit the file according to your requirements.

  • In a DTAP environment, you might want to clone Oracle Linux channels on a periodic schedule, such as monthly or weekly. A typical DTAP workflow involves the Spacewalk server pulling packages and the latest errata from the ULN repository for development channels. Assuming integration testing requires less than five days in this scenario, you could configure Spacewalk to create test channel clones of the updated development channels automatically each week. After the test channels have passed all quality assurance tests and have been accepted, you can then manually clone them as production channels.

    While it is not possible to use the spacewalk-clone-by-date command to set up a DTAP workflow, you might find it more convenient to use the spacewalk-manage-channel-lifecycle command to manage the life cycle of a software channel from development through testing to production, in the following ways:

  • You can save the state of a channel by creating an archive channel archive-date-channel.

    If you need to restore the state of a channel, use the --rollback option and specify the archived version of the channel that you want to restore, for example:

  • After promoting a test channel to a production channel, you can put the accepted software configuration into production by subscribing your production systems to that channel on the Software Channel Subscriptions page of the web interface or by using the spacecmd system_setbasechannel command.

  • To change the base channel for multiple production systems, you can map an existing base channel to a new base channel.

For more information, including instructions and examples, see Cloning Software Channels in Spacewalk for Oracle® Linux: Client Life Cycle Management Guide for Release 2.6.