diff --git a/website/content/en/docs/Installation/_index.md b/website/content/en/docs/Installation/_index.md index 4786ad19..44b134ca 100644 --- a/website/content/en/docs/Installation/_index.md +++ b/website/content/en/docs/Installation/_index.md @@ -52,15 +52,787 @@ Now **Jenkins Operator** should be up and running in the `default` namespace. There is a option to use Helm to install the operator. It requires the Helm 3+ for deployment. +Create a namespace for the operator: + +```bash +$ kubectl create -n +``` + To install, you need only to type these commands: ```bash $ helm repo add jenkins https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/chart -$ helm install jenkins/jenkins-operator +$ helm install jenkins/jenkins-operator -n ``` To add custom labels and annotations, you can use `values.yaml` file or pass them into `helm install` command, e.g.: ```bash $ helm install jenkins/jenkins-operator --set jenkins.labels.LabelKey=LabelValue,jenkins.annotations.AnnotationKey=AnnotationValue -``` \ No newline at end of file +``` +You can further customize Jenkins using `values.yaml`: + +## Jenkins instance configuration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDefault valueDescription
+jenkins + + + +
+enabled
+
+true + +Enabled can enable or disable the Jenkins instance. +Set to false if you have configured CR already and/or you want to deploy an operator only. +
+apiVersion
+
jenkins.io/v1alpha2 +Version of the CR manifest. The recommended and default value is jenkins.io/v1alpha2. +More info +
+name
+
+jenkins + +Name of resource. The pod name will be jenkins-<name> (name will be set as suffix). +
+namespace + +default + +Namespace the resources will be deployed to. It's not recommended to use default namespace. +Create new namespace for jenkins (e.g. kubectl create -n jenkins) +
+labels + +{} + +Labels are injected into metadata labels field. +
+annotations + +{} + +Annotations are injected into metadata annotations field. +
+image + +jenkins/jenkins:lts + +Image is the name (and tag) of the Jenkins instance. +It's recommended to use LTS (tag: "lts") version. +
+env + +[] + +Env contains jenkins container environment variables. +
+imagePullPolicy + +Always + +Defines policy for pulling images +
+priorityClassName + +"" + +PriorityClassName indicates the importance of a Pod relative to other Pods. +More info +
+disableCSRFProtection + +false + +disableCSRFProtection can enable or disable operator built-in CSRF protection. +Set it to true if you are using OpenShift Jenkins Plugin. +More info +
+imagePullSecrets + +[] + +Used if you want to pull images from private repository +More info +
+notifications + +[] + +Notifications is feature that notify user about Jenkins reconcilation status +More info +
+basePlugins + +
+- name: kubernetes
+  version: "1.25.2"
+- name: workflow-job
+  version: "2.39"
+- name: workflow-aggregator
+  version: "2.6"
+- name: git
+  version: "4.2.2"
+- name: job-dsl
+  version: "1.77"
+- name: configuration-as-code
+  version: "1.38"
+- name: kubernetes-credentials
+        -provider
+  version: "0.13"
+
+
+Plugins installed and required by the operator +shouldn't contain plugins defined by user +You can change their versions here +More info +
+plugins + +[] + +Plugins required by the user. You can define plugins here. +More info +Example: +
+plugins:
+ - name: simple-theme-plugin
+   version: 0.5.1
+
+
+seedJobs + +[] + +Placeholder for jenkins seed jobs +For seed job creation tutorial, check:
Prepare seed jobs +
Configure seed jobs +
Example: + +
+seedJobs:
+- id: jenkins-operator
+  targets: "cicd/jobs/*.jenkins"
+  description: "Jenkins Operator repository"
+  repositoryBranch: master
+  repositoryUrl: 
+  - https://github.com/jenkinsci/kubernetes-operator.git
+
+
+
+resources + +
+limits:
+  cpu: 1500m
+  memory: 3Gi
+requests:
+  cpu: 1
+  memory: 500M
+
+
+Resource limit/request for Jenkins +More info +
+volumes + +
+- name: backup
+  persistentVolumeClaim:
+    claimName: jenkins-backup
+
+
+Volumes used by Jenkins +By default, we are only using PVC volume for storing backups. +
+volumeMounts + +[] + +volumeMounts are mounts for Jenkins pod. +
+securityContext + +runAsUser: 1000 +fsGroup: 1000 + +SecurityContext for pod. +
+ +backup + + + +Backup is section for configuring operator's backup feature +By default backup feature is enabled and pre-configured +This section simplifies the configuration described here: Configure backup and restore +For customization tips see Custom backup and restore +
+ +configuration + + +Section where we can configure Jenkins instance. +See Customization for details +
+ +### Configuring operator deployment + + + + + + + + + + + + + + + + + +
FieldDefault valueDescription
+operator + +

operator is section for configuring operator deployment

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+replicaCount
+
+1 + +Number of Replicas. +
+image + +virtuslab/jenkins-operator:v0.4.0 + +Name (and tag) of the Jenkins Operator image. +
+imagePullPolicy + +IfNotPresent + +Defines policy for pulling images. +
+imagePullSecrets + +[] + +Used if you want to pull images from private repository. +
+nameOverride + +"" + +nameOverride overrides the app name. +
+fullnameOverride + +"" + +fullnameOverride overrides the deployment name +
+ resources + + {} + +
+ nodeSelector + + {} + +
+ tolerations + + {} + +
+ affinity + + {} + +
+
+ + + +

Backup +

+

+(Appears on: +JenkinsSpec) +

+

+Backup defines configuration of Jenkins backup. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDefault valueDescription
+ enabled + + true + + Enabled is enable/disable switch for backup feature. +
+ image + + virtuslab/jenkins-operator-backup-pvc:v0.0.8 + + Image used by backup feature. +
+ containerName + + backup + + Backup container name. +
+ interval + + 30 + + Defines how often make backup in seconds. +
+ makeBackupBeforePodDeletion + + true + + When enabled will make backup before pod deletion. +
+ backupCommand + + /home/user/bin/backup.sh + + Backup container command. +
+ restoreCommand + + /home/user/bin/restore.sh + + Backup restore command. +
+ pvc + + + + Persistent Volume Claim Kubernetes resource +
+ + enabled + + true + + Enable/disable switch for PVC +
+ size + + 5Gi + + Size of PVC +
+ className + + "" + + StorageClassName for PVC + More info +
+ env + +
+- name: BACKUP_DIR
+  value: /backup
+- name: JENKINS_HOME
+  value: /jenkins-home
+- name: BACKUP_COUNT
+  value: "3"
+
+
+ Contains container environment variables. + PVC backup provider handles these variables:
+ BACKUP_DIR - path for storing backup files (default: "/backup")
+ JENKINS_HOME - path to jenkins home (default: "/jenkins-home")
+ BACKUP_COUNT - define how much recent backups will be kept
+
+ volumeMounts + +
+- name: jenkins-home
+  mountPath: /jenkins-home
+- mountPath: /backup
+  name: backup
+
+
+ Holds the mount points for volumes. +
+ + +

Configuration +

+

+ (Appears on: + JenkinsSpec) +

+

+Configuration is section where we can configure Jenkins instance +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDefault valueDescription
+ configurationAsCode + + {} + + ConfigurationAsCode defines configuration of Jenkins customization via Configuration as Code Jenkins plugin. +Example:
+
+- configMapName: jenkins-casc
+  content: {}
+
+
+ groovyScripts + + {} + + GroovyScripts defines configuration of Jenkins customization via groovy scripts. + Example:
+
+- configMapName: jenkins-gs
+  content: {}
+
+
+ secretRefName + + "" + + secretRefName of existing secret (previously created). +
+ secretData + + {} + + If secretRefName is empty, secretData creates new secret and fills with data provided in secretData. +
+ + + + # See https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/schema/#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Service for details + #service: + # slave Jenkins service + # See https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/schema/#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Service for details + #slaveService: + +