Update docs

This commit is contained in:
antoniaklja
2019-01-08 21:44:17 +01:00
parent ef7cd96cb3
commit a6a85bcbf0
2 changed files with 28 additions and 17 deletions
+12 -6
View File
@@ -5,6 +5,7 @@ This document describes a high level overview how **jenkins-operator** works.
1. [Architecture and design](#architecture-and-design)
2. [Operator State](#operator-state)
3. [System Jenkins Jobs](#system-jenkins-jobs)
3. [Jenkins Docker Images](#jenkins-docker-images)
## Architecture and design
@@ -14,13 +15,13 @@ The **jenkins-operator** design incorporates the following concepts:
![reconcile](../reconcile.png)
Base reconciliation loop takes care of reconciling base Jenkins configuration, which consists of:
**Base** reconciliation loop takes care of reconciling base Jenkins configuration, which consists of:
- Ensure Manifests - monitors any changes in manifests
- Ensure Jenkins Pod - creates and verifies status of Jenkins master Pod
- Ensure Jenkins Configuration - configures Jenkins instance including hardening, initial configuration for plugins, etc.
- Ensure Jenkins API token - generates Jenkins API token and initialized Jenkins client
User reconciliation loop takes care of reconciling user provided configuration, which consists of:
**User** reconciliation loop takes care of reconciling user provided configuration, which consists of:
- Ensure Restore Job - creates Restore job and ensures that restore has been successfully performed
- Ensure Seed Jobs - creates Seed Jobs and ensures that all of them have been successfully executed
- Ensure User Configuration - executed user provided configuration, like groovy scripts, configuration as code or plugins
@@ -35,12 +36,17 @@ It helps to maintain or recover desired state even after operator or Jenkins res
## System Jenkins Jobs
The operator or Jenkins instance can be restarted at any time and any operation should not block the reconciliation loop so we implemented
custom jobs API for executing system jobs (seed jobs, groovy scripts, etc.) according to the operator lifecycle.
The operator or Jenkins instance can be restarted at any time and any operation should not block the reconciliation loop.
Taking this into account we implemented custom jobs API for executing system jobs (seed jobs, groovy scripts, etc.) according to the operator lifecycle.
Main assumptions are:
- do not block reconciliation loop
- fire job, requeue reconciliation loop and verify status next time
- fire job, requeue reconciliation loop and verify job status next time
- handle retries if case of failure
- handle build expiration (deadline)
- keep state in the custom resource status
- keep state in the custom resource status section
## Jenkins Docker Images
**jenkins-operator** is fully compatible with **jenkins:lts** docker image and does not introduce and hidden changes there.
In case of need docker image can be easily changed in custom resource manifest as long as it supports standard Jenkins file system structure.