88 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			XML
		
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			XML
		
	
	
	
| <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
 | ||
|   <channel>
 | ||
|     <title>Jenkins Operator – How it works</title>
 | ||
|     <link>https://jenkinsci.github.io/kubernetes-operator/docs/how-it-works/</link>
 | ||
|     <description>Recent Hugo news from gohugo.io</description>
 | ||
|     <generator>Hugo -- gohugo.io</generator>
 | ||
|     <lastBuildDate>Mon, 05 Aug 2019 00:00:00 +0000</lastBuildDate>
 | ||
|     <image>
 | ||
|       <url>https://jenkinsci.github.io/kubernetes-operator/img/hugo.png</url>
 | ||
|       <title>GoHugo.io</title>
 | ||
|       <link>https://jenkinsci.github.io/kubernetes-operator/docs/how-it-works/</link>
 | ||
|     </image>
 | ||
|     
 | ||
| 	  <atom:link href="https://jenkinsci.github.io/kubernetes-operator/docs/how-it-works/index.xml" rel="self" type="application/rss+xml" />
 | ||
|     
 | ||
|     
 | ||
|       
 | ||
|         
 | ||
|       
 | ||
|     
 | ||
|     
 | ||
|     <item>
 | ||
|       <title>Docs: Architecture and design</title>
 | ||
|       <link>https://jenkinsci.github.io/kubernetes-operator/docs/how-it-works/architecture-and-design/</link>
 | ||
|       <pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate>
 | ||
|       
 | ||
|       <guid>https://jenkinsci.github.io/kubernetes-operator/docs/how-it-works/architecture-and-design/</guid>
 | ||
|       <description>
 | ||
|         
 | ||
|         
 | ||
|         
 | ||
| 
 | ||
| <p>The <strong>Jenkins Operator</strong> design incorporates the following concepts:</p>
 | ||
| 
 | ||
| <ul>
 | ||
| <li>watches any changes of manifests and maintain the desired state according to deployed custom resource manifest</li>
 | ||
| <li>implements the main reconciliation loop which consists of two smaller reconciliation loops - base and user</li>
 | ||
| </ul>
 | ||
| 
 | ||
| <p><img src="https://jenkinsci.github.io/kubernetes-operator/kubernetes-operator/img/reconcile.png" alt="reconcile" /></p>
 | ||
| 
 | ||
| <p><strong>Base</strong> reconciliation loop takes care of reconciling base Jenkins configuration, which consists of:</p>
 | ||
| 
 | ||
| <ul>
 | ||
| <li>Ensure Manifests - monitors any changes in manifests</li>
 | ||
| <li>Ensure Jenkins Pod - creates and verifies the status of Jenkins master Pod</li>
 | ||
| <li>Ensure Jenkins Configuration - configures Jenkins instance including hardening, initial configuration for plugins, etc.</li>
 | ||
| <li>Ensure Jenkins API token - generates Jenkins API token and initialized Jenkins client</li>
 | ||
| </ul>
 | ||
| 
 | ||
| <p><strong>User</strong> reconciliation loop takes care of reconciling user provided configuration, which consists of:</p>
 | ||
| 
 | ||
| <ul>
 | ||
| <li>Ensure Restore Job - creates Restore job and ensures that restore has been successfully performed<br /></li>
 | ||
| <li>Ensure Seed Jobs - creates Seed Jobs and ensures that all of them have been successfully executed</li>
 | ||
| <li>Ensure User Configuration - executed user provided configuration, like groovy scripts, configuration as code or plugins</li>
 | ||
| <li>Ensure Backup Job -  creates a Backup job and ensures that backup has been successfully performed</li>
 | ||
| </ul>
 | ||
| 
 | ||
| <p><img src="https://jenkinsci.github.io/kubernetes-operator/kubernetes-operator/img/phases.png" alt="reconcile" /></p>
 | ||
| 
 | ||
| <h2 id="operator-state">Operator State</h2>
 | ||
| 
 | ||
| <p>Operator state is kept in the custom resource status section, which is used for storing any configuration events or job statuses managed by the operator.</p>
 | ||
| 
 | ||
| <p>It helps to maintain or recover the desired state even after the operator or Jenkins restarts.</p>
 | ||
| 
 | ||
|       </description>
 | ||
|     </item>
 | ||
|     
 | ||
|     <item>
 | ||
|       <title>Docs: Jenkins Docker Images</title>
 | ||
|       <link>https://jenkinsci.github.io/kubernetes-operator/docs/how-it-works/jenkins-docker-images/</link>
 | ||
|       <pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate>
 | ||
|       
 | ||
|       <guid>https://jenkinsci.github.io/kubernetes-operator/docs/how-it-works/jenkins-docker-images/</guid>
 | ||
|       <description>
 | ||
|         
 | ||
|         
 | ||
|         <p><strong>Jenkins Operator</strong> is fully compatible with <strong><code>jenkins:lts</code></strong> Docker image and does not introduce any hidden changes to the upstream Jenkins.</p>
 | ||
| 
 | ||
| <p>If needed, the Docker image can be easily changed in custom resource manifest as long as it supports standard Jenkins file system structure.</p>
 | ||
| 
 | ||
|       </description>
 | ||
|     </item>
 | ||
|     
 | ||
|   </channel>
 | ||
| </rss> |