# minishift-centos-iso
**Repository Path**: showkawa_admin/minishift-centos-iso
## Basic Information
- **Project Name**: minishift-centos-iso
- **Description**: only use to sync from github, because download form github is to slow~
- **Primary Language**: Unknown
- **License**: LGPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-01-09
- **Last Updated**: 2021-09-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 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](https://github.com/minishift/minishift) as an alternative to
the boot2docker ISO.
----
- [Building the CentOS ISO](#building-the-centos-iso)
- [On CentOS-7](#on-centos)
- [Prerequisites](#prerequisites)
- [Building the ISO](#building-the-iso)
- [On hosts _other than CentOS-7_ \(OS X, Windows, Fedora ...\)](#non-centos7-hosts)
- [Prerequisites](#prerequisites-1)
- [Building the ISO](#building-the-iso-1)
- [Building the RHEL ISO](#building-the-rhel-iso)
- [Releasing Minishift CentOS ISO](#releasing-minishift-centos-iso)
- [Manual release](#manual-release)
- [Automated release](#automated-release)
- [Tests](#tests)
- [CI Setup](#ci-setup)
- [Further reading](#further-reading)
- [Community](#community)
[](https://ci.centos.org/job/minishift-centos-iso/)
----
## 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](https://github.com/rhinstaller/livecd-tools)
directly on your machine, you can use the [CentOS](#on-centos) instructions.
If you don't have _livecd-tools or using different linux distro other than centos_, follow the
[hosts other than CentOS-7](#non-centos7-hosts) 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](https://github.com/rhinstaller/livecd-tools)
Note: We use to have docker installed on system to get selinux context, [check bugzilla](https://bugzilla.redhat.com/show_bug.cgi?id=1303565)
$ 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
* [Vagrant](https://www.vagrantup.com/)
* [vagrant-sshfs](https://github.com/dustymabe/vagrant-sshfs)
$ vagrant plugin install vagrant-sshfs
#### Building the ISO
```
$ git clone https://github.com/minishift/minishift-centos-iso.git
$ cd minishift-centos-iso
$ vagrant up
$ vagrant ssh
$ cd /minishift-centos-iso
$ make
```
## Building the RHEL ISO
The [Makefile](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=""
$ export base_repo_url=""
$ export updates_repo_url=""
$ export cdk_repo_url=""
$ 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](https://help.github.com/articles/creating-an-access-token-for-command-line-use) defined in your environment as `GITHUB_ACCESS_TOKEN`.
- Run following command to perform release:
```shell
$ make release
```
### Automated release
An automated release can be performed by triggering CI job as:
```shell
$ make ci_release API_KEY= RELEASE_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](https://ci.centos.org/job/minishift-centos-iso-release/).
The automated release performs all the necessary steps as mentioned in [Manual release](#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](#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](http://github/minishift/minishift) binary and run the [tests](tests/test.sh).
## CI Setup
`minishift-centos-iso` uses [CentOS CI](https://ci.centos.org/) 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](https://ci.centos.org/job/minishift-centos-iso/) and the pull request job [here](https://ci.centos.org/job/minishift-centos-iso-pr/).
On a successful pull request build, the build artifacts can be found at
[artifacts.ci.centos.org/minishift/minishift-centos-iso/pr/\](http://artifacts.ci.centos.org/minishift/minishift-centos-iso/pr/).
On a successful master build, the build artifacts can be found at
[artifacts.ci.centos.org/minishift/minishift-centos-iso/master/\](http://artifacts.ci.centos.org/minishift/minishift-centos-iso/master/).
For more information about CentOS CI, check out its [Wiki](https://wiki.centos.org/QaWiki/CI) 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](https://github.com/rhinstaller/pykickstart/blob/master/docs/kickstart-docs.rst).
## Community
You can reach the Minishift community by:
- Signing up to our [mailing list](https://lists.minishift.io/admin/lists/minishift.lists.minishift.io)
- Joining the `#minishift` channel on [Freenode IRC](https://freenode.net/)