/minishift-centos-iso

CentOS based ISO as an alternative for boot2docker ISO

Primary LanguageShellGNU Lesser General Public License v3.0LGPL-3.0

Minishift CentOS ISO

This repository contains all the instructions and code to build a Live ISO based on CentOS which can be used by minishift as an alternative to the boot2docker ISO.


Build Status


Building the CentOS ISO

The following contains instructions on how to build the default (CentOS7 based) ISO. If you are able to install livecd-tools directly on your machine, you can use the CentOS instructions.

If you don't have livecd-tools or using different linux distro other than centos, follow the hosts other than CentOS-7 instructions.

On CentOS

Prerequisites

  • Update your system before start and if there is kernel update then reboot your system to activate latest kernel.

      $ yum update -y
    
  • Install livecd-tools

    Note: We use to have docker installed on system to get selinux context, check bugzilla

      $ yum install -y livecd-tools docker
    

Building the ISO

$ git clone https://github.com/minishift/minishift-centos-iso.git
$ cd minishift-centos-iso
$ make

On hosts other than CentOS-7 (OS X, Windows, Fedora ...)

Prerequisites

Building the ISO

$ git clone https://github.com/minishift/minishift-centos-iso.git
$ cd minishift-centos-iso
$ vagrant up
$ vagrant ssh
$ cd <path to minishift-centos-iso directory on the VM>/minishift-centos-iso
$ make

Building the RHEL ISO

The Makefile also allows you to build a equivalent ISO based on RHEL instead of CentOS. However, it requires you to have Red Hat VPN access and you need to export several environment variables prior to building:

$ git clone https://github.com/minishift/minishift-centos-iso.git
$ cd minishift-centos-iso
$ export rhel_tree_url="<rhel_tree_to_fetch_kernel>"
$ export base_repo_url="<base_repo_url_to_install_packages>"
$ export updates_repo_url="<updates_repo_url_to_package_updates>"
$ export cdk_repo_url="<repo_url_to_cdk-entitlement_package>"
$ make rhel_iso

Releasing Minishift CentOS ISO

The following sections describe how to release Minishift CentOS ISO either via automated job or manually.

Manual release

The manual release includes following steps:

  • Assemble all the meaningful changes since the last release to create release notes.

  • Bump the VERSION variable in the Makefile.

  • Before you execute below command be sure to have a Github personal access token defined in your environment as GITHUB_ACCESS_TOKEN.

  • Run following command to perform release:

    $ make release

Automated release

An automated release can be performed by triggering CI job as:

$ make ci_release API_KEY=<api-key> RELEASE_VERSION=<version>

where

  • api-key : Minishift CentOS CI API key
  • version : The expected release version (without 'v'). For example, 1.0.0.

Once triggered you can follow the release process here.

The automated release performs all the necessary steps as mentioned in Manual release.

Tests

Tests are written as a shell script in tests/test.sh.

Note: Running the tests in Windows OS is unsupported.

Build ISO

Setup your build environment by following the instructions provided in Building the CentOS ISO section as per your preferred OS.

Note: Building ISO might require you to have Vagrant environment if you are not using host other than CentOS.

Run the tests:

Once the ISO is built from above step, use following command to run tests:

$ make test

Note: If you are using the Vagrant environment, you need to exit from it and come back to host to run the above command.

This command will fetch the latest Minishift binary and run the tests.

CI Setup

minishift-centos-iso uses CentOS CI as CI build server. It builds incoming pull requests and any push to master along with archiving the build artifacts. You can find the CentOS CI jenkins master job here and the pull request job here.

On a successful pull request build, the build artifacts can be found at artifacts.ci.centos.org/minishift/minishift-centos-iso/pr/<PR ID>.

On a successful master build, the build artifacts can be found at artifacts.ci.centos.org/minishift/minishift-centos-iso/master/<BUILD ID>.

For more information about CentOS CI, check out its Wiki to know more about CentOS CI.

Further reading

Once you are able to build the ISO, you are most likely interested to modify the image itself. To do so you have to get familiar with pykickstart.

Community

You can reach the Minishift community by: