minishift / minishift-centos-iso

CentOS based ISO as an alternative for boot2docker ISO
GNU Lesser General Public License v3.0
40 stars 33 forks source link
centos-iso iso minishift

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

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:

Automated release

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

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

where

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: