Skip to content

Commit bd5862c

Browse files
sherl0cksoybed
authored andcommitted
doc update (#68)
* doc update * Update README.md
1 parent 136e265 commit bd5862c

File tree

1 file changed

+29
-8
lines changed

1 file changed

+29
-8
lines changed

README.md

+29-8
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,45 @@
1-
# Open Innovation Labs CI/CD Bootstrapping
2-
This branch has a reduced subset of Red Hat Open Innovation Labs CI/CD components. We're in the process of refactoring this approach - pardon the mess and lack of documentation.
1+
# Open Innovation Labs CI/CD
32

4-
## Overview - Current State
5-
This is an ansible inventory which identifies a list of applications, including CI / CD components, to be deployed to an OpenShift cluster. The ansible layer is very thin. It simply provides a way to orchestrate the application of [OpenShift templates](https://docs.openshift.com/container-platform/3.6/dev_guide/templates.html) across one or more [OpenShift projects](https://docs.openshift.com/container-platform/3.6/architecture/core_concepts/projects_and_users.html#projects). All configuration for the applications should be defined by an OpenShift template and the corresponding parameters file.
3+
The goal of this repository is to:
4+
5+
1. provide all the tools necessary for a comprehensive CI/CD pipeline, built for and deployed to OpenShift
6+
2. serve as a reference implementation of the [openshift-applier](https://github.com/redhat-cop/casl-ansible/tree/master/roles/openshift-applier) model for Infrastructure-as-Code (IaC)
7+
8+
A few additional guiding principles:
9+
10+
* This repository is built as a monolith i.e. all the individual components are designed to be deployed together. When adding a new tool, care should be taken to integrate that tool with the other tools.
11+
* To deploy a subset of components, you can:
12+
* Use the tags provided in the inventory to filter certain components. See [the docs](https://github.com/redhat-cop/casl-ansible/tree/master/roles/openshift-applier#filtering-content-based-on-tags) in openshift-applier
13+
* _coming soon_ - Use the provided tooling to generate a new inventory with a user defined subset of components
14+
* Generally speaking, there should only be one tool per functional use case e.g. Sonatype Nexus is the artifact repository so we will not support JFrog Artifactory
15+
16+
## How it Works
17+
18+
There is ansible inventory which identifies all components to be deployed to an OpenShift cluster. The ansible layer is very thin. It simply provides a way to orchestrate the application of [OpenShift templates](https://docs.openshift.com/container-platform/3.6/dev_guide/templates.html) across one or more [OpenShift projects](https://docs.openshift.com/container-platform/3.6/architecture/core_concepts/projects_and_users.html#projects). All configuration for the applications should be defined by an OpenShift template and the corresponding parameters file.
619

720
Currently, the following components are included in this inventory:
821

9-
* Long lived CI/CD, Development and Demo projects
22+
* Long lived CI/CD, Development and Demo OpenShift projects
1023
* Jenkins, including
1124
* S2I build for Jenkins plugins and configuration
1225
* maven and npm slaves for Jenkins
1326
* Sonatype Nexus
27+
* SonarQube
1428
* Example Java application and pipeline
1529

30+
Currently, the following components have templates but are not yet integrated into the inventory:
31+
32+
* Gitlab
33+
* Gogs
34+
1635
## Prerequisites
36+
1737
* [Ansible](http://docs.ansible.com/ansible/latest/intro_installation.html)
1838
* [OpenShift CLI Tools](https://docs.openshift.com/container-platform/3.6/cli_reference/get_started_cli.html)
1939
* Access to the OpenShift cluster
2040

2141
## Usage
42+
2243
1. Log on to an OpenShift server `oc login -u <user> https://<server>:<port>/`
2344
1. Your user needs permissions to deploy ProjectRequest objects
2445
2. Clone this repository
@@ -30,7 +51,7 @@ Currently, the following components are included in this inventory:
3051
After running the playbook, the pipeline should execute in Jenkins, build the spring boot app, deploy artifacts to nexus, deploy the container to the dev stage and then wait approval to deploy to the demo stage. See Common Issues
3152

3253

33-
## Running a Subset of the Inventory
54+
## Running a Subset of the Inventory
3455

3556
See [the docs](https://github.com/redhat-cop/casl-ansible/tree/master/roles/openshift-applier#filtering-content-based-on-tags) in casl-ansible
3657

@@ -45,7 +66,7 @@ See [the docs](https://github.com/redhat-cop/casl-ansible/tree/master/roles/open
4566
## Common Issues
4667

4768
- S2I Build fails to push image to registry with `error: build error: Failed to push image: unauthorized: authentication required`
48-
- This appears to be an eventual consistency error. Wait a minute or two and then kick the build off again, it should work
69+
- See [this issue](https://github.com/openshift/origin/issues/4518)
4970

5071
## License
51-
[ASL 2.0](LICENSE)
72+
[ASL 2.0](LICENSE)

0 commit comments

Comments
 (0)