Contents
OpenShift Origin and Openshift-Ansible Release Workflow
The Paas SIG is trying to automate as much of the OpenShift Origin and Openshift-Ansible release workflow as possible. This is the currently workflow.
1. Overall
OpenShift Origin github master branch - Each successfull pull request merge
OpenShift Origin github master or branch - Each alpha, beta, rc, or release tag
CentOS Paas SIG - OpenShift Candidate Build Matrix - Manual builds are built on cbs
These are normal, non-scratch, builds. They are automatically tagged into the candidate repo
They are then manually tagged into the testing repos
After testing. They are then manually tagged into the released repos
2. OpenShift Origin and Openshift-Ansible RPM latest and release automation
2.1. Continuous Integration for the CentOS PaaS SIG
CentOS-PaaS-SIG github repository
The repository is designed for the tooling of Continuous Integration of the CentOS Platform as a Service (PaaS) Special Interest Group (SIG) with origin and openshift-ansible.
2.1.1. Project Structure
The paas-sig-ci repository is structured as such:
. ├── Jenkinsfile ├── JenkinsfileTrigger ├── README.md ├── ansible.cfg ├── archived (old way - deprecated) └── playbooks └── openshift ├── bfs.yml ├── cbs.yml ├── group_vars │ └── all │ └── global.yml └── roles ├── bfs │ ├── defaults │ │ └── main.yml │ ├── files │ │ └── common.py │ ├── meta │ │ └── main.yml │ └── tasks │ ├── build_openshift-ansible_srpm.yml │ ├── build_openshift_srpm.yml │ ├── cleanup_bfs.yml │ ├── clone_from_github.yml │ └── main.yml ├── cbs │ ├── defaults │ │ └── main.yml │ ├── meta │ │ └── main.yml │ └── tasks │ ├── cbs_build_srpms.yml │ ├── copy_cbs_certs.yml │ ├── install_cbs_pkgs.yml │ └── main.yml └── common ├── defaults │ └── main.yml ├── handlers │ └── main.yml ├── tasks │ ├── enable_centos_extras.yml │ ├── enable_epel.yml │ ├── install_required_pkgs.yml │ └── main.yml └── templates ├── centos7-extras-repo.j2 └── epel-repo.j2
2.2. playbooks
These playbooks build source RPMs for Openshift origin and openshift-ansible from a known good release tag in those repos.
2.2.1. bfs role
The bfs role creates the source RPM for each project origin and openshift-ansible
2.2.2. cbs role
The cbs role takes the source RPM and builds it against the appropriate build target in CentOS Koji (CentOS Build System - CBS).
2.3. Jenkins 2.0 Pipelines
2.3.1. JenkinsTrigger
This is a trigger pipeline that checks the latest tag for Openshift origin and openshift-ansible. If there is a new one then it triggers the Jenkinsfile below to build an official version of origin and openshift-ansible against the appropriate target.
2.3.2. Jenkinsfile
This is a pipeline to build the source RPMs for both being triggered from the JenkinsTrigger to build official releases of origin and openshift-ansible. Otherwise it builds every hour of the master of both origin and openshift-ansible to the paas7-openshift-future-el7 target.
2.3.2.1. Parameters
ORIGIN_VERSION - current default and ex. v3.9.0-alpha.4
OA_VERSION - current default and ex. openshift-ansible-3.9.0-0.53.0
BUILD_TARGET - current default is
SCRATCH - current default = true
BE - current default = true
BUILD_ORIGIN - current default = true
BUILD_OA - current default = true
2.4. Notes
Everything in the archived directory is what used to be used to build, test and deliver. Since Openshift already creates clusters and runs e2e conformance tests it would be redundant do it again so now we build source RPMs from the release tag and create an official build.