diff --git a/Makefile b/Makefile
index 61b0bf0f..2407b8c9 100644
--- a/Makefile
+++ b/Makefile
@@ -362,7 +362,7 @@ ifndef HAS_GEN_CRD_API_REFERENCE_DOCS
@tar -C $(GEN_CRD_API) -zxf $(GEN_CRD_API)_linux_amd64.tar.gz
@rm $(GEN_CRD_API)_linux_amd64.tar.gz
endif
- $(GEN_CRD_API)/$(GEN_CRD_API) -config gen-crd-api-config.json -api-dir github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/$(API_VERSION) -template-dir $(GEN_CRD_API)/template -out-file docs/jenkins-$(API_VERSION)-scheme.md
+ $(GEN_CRD_API)/$(GEN_CRD_API) -config gen-crd-api-config.json -api-dir github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/$(API_VERSION) -template-dir $(GEN_CRD_API)/template -out-file documentation/$(VERSION)/jenkins-$(API_VERSION)-scheme.md
.PHONY: minikube-start
minikube-start: ## Start minikube
diff --git a/README.md b/README.md
index f65b4c32..2ebd2ef3 100644
--- a/README.md
+++ b/README.md
@@ -51,9 +51,9 @@ Feel free to file [issues](https://github.com/jenkinsci/kubernetes-operator/issu
This project was originally developed by [VirtusLab](https://virtuslab.com/) and the following [CONTRIBUTORS](https://github.com/jenkinsci/kubernetes-operator/graphs/contributors).
-[installation]:docs/installation.md
-[getting_started]:docs/getting-started.md
-[how_it_works]:docs/how-it-works.md
-[security]:docs/security.md
-[developer_guide]:docs/developer-guide.md
-[jenkins_scheme]:docs/jenkins-v1alpha2-scheme.md
\ No newline at end of file
+[installation]:documentation/installation.md
+[getting_started]:documentation/v0.1.1/getting-started.md
+[how_it_works]:documentation/how-it-works.md
+[security]:documentation/security.md
+[developer_guide]:documentation/developer-guide.md
+[jenkins_scheme]:documentation/v0.1.1/jenkins-v1alpha2-scheme.md
\ No newline at end of file
diff --git a/docs/developer-guide.md b/documentation/developer-guide.md
similarity index 98%
rename from docs/developer-guide.md
rename to documentation/developer-guide.md
index 06786beb..9f5aaa3c 100644
--- a/docs/developer-guide.md
+++ b/documentation/developer-guide.md
@@ -112,5 +112,5 @@ kubectl get secret jenkins-operator-credentials- Packages:
+ Package v1alpha2 contains API Schema definitions for the jenkins.io v1alpha2 API group
+
+jenkins.io
+
+
Jenkins is the Schema for the jenkins API
+ +| Field | +Description | +||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+apiVersion
+string |
+
+
+jenkins.io/v1alpha2
+
+ |
+||||||||||||
+kind
+string
+ |
+Jenkins |
+||||||||||||
+metadata
+
+
+Kubernetes meta/v1.ObjectMeta
+
+
+ |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||||||||
+spec
+
+
+JenkinsSpec
+
+
+ |
+
+ Spec defines the desired state of the Jenkins ++ +
|
+||||||||||||
+status
+
+
+JenkinsStatus
+
+
+ |
+
+ Status defines the observed state of Jenkins + |
+
+(Appears on: +JenkinsSpec) +
++
Backup defines configuration of Jenkins backup
+ +| Field | +Description | +
|---|---|
+containerName
+
+string
+
+ |
+
+ ContainerName is the container name responsible for backup operation + |
+
+action
+
+
+Handler
+
+
+ |
+
+ Action defines action which performs backup in backup container sidecar + |
+
+interval
+
+uint64
+
+ |
+
+ Interval tells how often make backup in seconds +Defaults to 30. + |
+
+makeBackupBeforePodDeletion
+
+bool
+
+ |
+
+ MakeBackupBeforePodDeletion tells operator to make backup before Jenkins master pod deletion + |
+
+(Appears on: +JenkinsStatus) +
++
Build defines Jenkins Build status with corresponding metadata
+ +| Field | +Description | +
|---|---|
+jobName
+
+string
+
+ |
+
+ JobName is the Jenkins job name + |
+
+hash
+
+string
+
+ |
+
+ Hash is the unique data identifier used in build + |
+
+number
+
+int64
+
+ |
+
+ Number is the Jenkins build number + |
+
+status
+
+
+BuildStatus
+
+
+ |
+
+ Status is the status of Jenkins build + |
+
+retries
+
+int
+
+ |
+
+ Retires is the amount of Jenkins job build retries + |
+
+createTime
+
+
+Kubernetes meta/v1.Time
+
+
+ |
+
+ CreateTime is the time when the first build has been created + |
+
+lastUpdateTime
+
+
+Kubernetes meta/v1.Time
+
+
+ |
+
+ LastUpdateTime is the last update status time + |
+
string alias)+(Appears on: +Build) +
++
BuildStatus defines type of Jenkins build job status
+ ++(Appears on: +JenkinsMaster) +
++
Container defines Kubernetes container attributes
+ +| Field | +Description | +
|---|---|
+name
+
+string
+
+ |
+
+ Name of the container specified as a DNS_LABEL. +Each container in a pod must have a unique name (DNS_LABEL). + |
+
+image
+
+string
+
+ |
+
+ Docker image name. +More info: https://kubernetes.io/docs/concepts/containers/images + |
+
+imagePullPolicy
+
+
+Kubernetes core/v1.PullPolicy
+
+
+ |
+
+ Image pull policy. +One of Always, Never, IfNotPresent. +Defaults to Always. + |
+
+resources
+
+
+Kubernetes core/v1.ResourceRequirements
+
+
+ |
+
+ Compute Resources required by this container. +More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ + |
+
+command
+
+[]string
+
+ |
+
+(Optional)
+ Entrypoint array. Not executed within a shell. +The docker image’s ENTRYPOINT is used if this is not provided. +Variable references $(VAR_NAME) are expanded using the container’s environment. If a variable +cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax +can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, +regardless of whether the variable exists or not. +More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell + |
+
+args
+
+[]string
+
+ |
+
+(Optional)
+ Arguments to the entrypoint. +The docker image’s CMD is used if this is not provided. +Variable references $(VAR_NAME) are expanded using the container’s environment. If a variable +cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax +can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, +regardless of whether the variable exists or not. +More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell + |
+
+workingDir
+
+string
+
+ |
+
+(Optional)
+ Container’s working directory. +If not specified, the container runtime’s default will be used, which +might be configured in the container image. + |
+
+ports
+
+
+[]Kubernetes core/v1.ContainerPort
+
+
+ |
+
+(Optional)
+ List of ports to expose from the container. Exposing a port here gives +the system additional information about the network connections a +container uses, but is primarily informational. Not specifying a port here +DOES NOT prevent that port from being exposed. Any port which is +listening on the default “0.0.0.0” address inside a container will be +accessible from the network. + |
+
+envFrom
+
+
+[]Kubernetes core/v1.EnvFromSource
+
+
+ |
+
+(Optional)
+ List of sources to populate environment variables in the container. +The keys defined within a source must be a C_IDENTIFIER. All invalid keys +will be reported as an event when the container is starting. When a key exists in multiple +sources, the value associated with the last source will take precedence. +Values defined by an Env with a duplicate key will take precedence. + |
+
+env
+
+
+[]Kubernetes core/v1.EnvVar
+
+
+ |
+
+(Optional)
+ List of environment variables to set in the container. + |
+
+volumeMounts
+
+
+[]Kubernetes core/v1.VolumeMount
+
+
+ |
+
+(Optional)
+ Pod volumes to mount into the container’s filesystem. + |
+
+livenessProbe
+
+
+Kubernetes core/v1.Probe
+
+
+ |
+
+(Optional)
+ Periodic probe of container liveness. +Container will be restarted if the probe fails. + |
+
+readinessProbe
+
+
+Kubernetes core/v1.Probe
+
+
+ |
+
+(Optional)
+ Periodic probe of container service readiness. +Container will be removed from service endpoints if the probe fails. + |
+
+lifecycle
+
+
+Kubernetes core/v1.Lifecycle
+
+
+ |
+
+(Optional)
+ Actions that the management system should take in response to container lifecycle events. + |
+
+securityContext
+
+
+Kubernetes core/v1.SecurityContext
+
+
+ |
+
+(Optional)
+ Security options the pod should run with. +More info: https://kubernetes.io/docs/concepts/policy/security-context/ +More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + |
+
+(Appears on: +Backup, +Restore) +
++
Handler defines a specific action that should be taken
+ +| Field | +Description | +
|---|---|
+exec
+
+
+Kubernetes core/v1.ExecAction
+
+
+ |
+
+ Exec specifies the action to take. + |
+
string alias)+(Appears on: +SeedJob) +
++
JenkinsCredentialType defines type of Jenkins credential used to seed job mechanism
+ ++(Appears on: +JenkinsSpec) +
++
JenkinsMaster defines the Jenkins master pod attributes and plugins, +every single change requires a Jenkins master pod restart
+ +| Field | +Description | +
|---|---|
+masterAnnotations
+
+map[string]string
+
+ |
+
+(Optional)
+ Annotations is an unstructured key value map stored with a resource that may be +set by external tools to store and retrieve arbitrary metadata. They are not +queryable and should be preserved when modifying objects. +More info: http://kubernetes.io/docs/user-guide/annotations + |
+
+nodeSelector
+
+map[string]string
+
+ |
+
+(Optional)
+ NodeSelector is a selector which must be true for the pod to fit on a node. +Selector which must match a node’s labels for the pod to be scheduled on that node. +More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ + |
+
+securityContext
+
+
+Kubernetes core/v1.PodSecurityContext
+
+
+ |
+
+(Optional)
+ SecurityContext that applies to all the containers of the Jenkins +Master. As per kubernetes specification, it can be overridden +for each container individually. +Defaults to: +runAsUser: 1000 +fsGroup: 1000 + |
+
+containers
+
+
+[][]github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Container
+
+
+ |
+
+ List of containers belonging to the pod. +Containers cannot currently be added or removed. +There must be at least one container in a Pod. +Defaults to: +- image: jenkins/jenkins:lts +imagePullPolicy: Always +livenessProbe: +failureThreshold: 12 +httpGet: +path: /login +port: http +scheme: HTTP +initialDelaySeconds: 80 +periodSeconds: 10 +successThreshold: 1 +timeoutSeconds: 5 +name: jenkins-master +readinessProbe: +failureThreshold: 3 +httpGet: +path: /login +port: http +scheme: HTTP +initialDelaySeconds: 30 +periodSeconds: 10 +successThreshold: 1 +timeoutSeconds: 1 +resources: +limits: +cpu: 1500m +memory: 3Gi +requests: +cpu: “1” +memory: 600Mi + |
+
+volumes
+
+
+[]Kubernetes core/v1.Volume
+
+
+ |
+
+(Optional)
+ List of volumes that can be mounted by containers belonging to the pod. +More info: https://kubernetes.io/docs/concepts/storage/volumes + |
+
+basePlugins
+
+
+[][]github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Plugin
+
+
+ |
+
+ BasePlugins contains plugins required by operator +Defaults to : +- name: kubernetes +version: 1.15.7 +- name: workflow-job +version: “2.32” +- name: workflow-aggregator +version: “2.6” +- name: git +version: 3.10.0 +- name: job-dsl +version: “1.74” +- name: configuration-as-code +version: “1.19” +- name: configuration-as-code-support +version: “1.19” +- name: kubernetes-credentials-provider +version: 0.12.1 + |
+
+plugins
+
+
+[][]github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Plugin
+
+
+ |
+
+(Optional)
+ Plugins contains plugins required by user + |
+
+(Appears on: +Jenkins) +
++
JenkinsSpec defines the desired state of the Jenkins
+ +| Field | +Description | +
|---|---|
+master
+
+
+JenkinsMaster
+
+
+ |
+
+ Master represents Jenkins master pod properties and Jenkins plugins. +Every single change here requires a pod restart. + |
+
+seedJobs
+
+
+[][]github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.SeedJob
+
+
+ |
+
+(Optional)
+ SeedJobs defines list of Jenkins Seed Job configurations +More info: https://github.com/jenkinsci/kubernetes-operator/blob/master/docs/getting-started.md#configure-seed-jobs-and-pipelines + |
+
+service
+
+
+Service
+
+
+ |
+
+(Optional)
+ Service is Kubernetes service of Jenkins master HTTP pod +Defaults to : +port: 8080 +type: ClusterIP + |
+
+slaveService
+
+
+Service
+
+
+ |
+
+(Optional)
+ Service is Kubernetes service of Jenkins slave pods +Defaults to : +port: 50000 +type: ClusterIP + |
+
+backup
+
+
+Backup
+
+
+ |
+
+(Optional)
+ Backup defines configuration of Jenkins backup +More info: https://github.com/jenkinsci/kubernetes-operator/blob/master/docs/getting-started.md#configure-backup-and-restore + |
+
+restore
+
+
+Restore
+
+
+ |
+
+(Optional)
+ Backup defines configuration of Jenkins backup restore +More info: https://github.com/jenkinsci/kubernetes-operator/blob/master/docs/getting-started.md#configure-backup-and-restore + |
+
+(Appears on: +Jenkins) +
++
JenkinsStatus defines the observed state of Jenkins
+ +| Field | +Description | +
|---|---|
+operatorVersion
+
+string
+
+ |
+
+(Optional)
+ OperatorVersion is the operator version which manages this CR + |
+
+provisionStartTime
+
+
+Kubernetes meta/v1.Time
+
+
+ |
+
+(Optional)
+ ProvisionStartTime is a time when Jenkins master pod has been created + |
+
+baseConfigurationCompletedTime
+
+
+Kubernetes meta/v1.Time
+
+
+ |
+
+(Optional)
+ BaseConfigurationCompletedTime is a time when Jenkins base configuration phase has been completed + |
+
+userConfigurationCompletedTime
+
+
+Kubernetes meta/v1.Time
+
+
+ |
+
+(Optional)
+ UserConfigurationCompletedTime is a time when Jenkins user configuration phase has been completed + |
+
+builds
+
+
+[][]github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Build
+
+
+ |
+
+(Optional)
+ Builds contains Jenkins builds statues + |
+
+restoredBackup
+
+uint64
+
+ |
+
+(Optional)
+ RestoredBackup is the restored backup number after Jenkins master pod restart + |
+
+lastBackup
+
+uint64
+
+ |
+
+(Optional)
+ LastBackup is the latest backup number + |
+
+pendingBackup
+
+uint64
+
+ |
+
+(Optional)
+ PendingBackup is the pending backup number + |
+
+backupDoneBeforePodDeletion
+
+bool
+
+ |
+
+(Optional)
+ BackupDoneBeforePodDeletion tells if backup before pod deletion has been made + |
+
+userAndPasswordHash
+
+string
+
+ |
+
+(Optional)
+ UserAndPasswordHash is a SHA256 hash made from user and password + |
+
+createdSeedJobs
+
+[]string
+
+ |
+
+(Optional)
+ CreatedSeedJobs contains list of seed job id already created in Jenkins + |
+
+(Appears on: +JenkinsMaster) +
++
Plugin defines Jenkins plugin
+ +| Field | +Description | +
|---|---|
+name
+
+string
+
+ |
+
+ Name is the name of Jenkins plugin + |
+
+version
+
+string
+
+ |
+
+ Version is the version of Jenkins plugin + |
+
+(Appears on: +JenkinsSpec) +
++
Restore defines configuration of Jenkins backup restore operation
+ +| Field | +Description | +
|---|---|
+containerName
+
+string
+
+ |
+
+ ContainerName is the container name responsible for restore backup operation + |
+
+action
+
+
+Handler
+
+
+ |
+
+ Action defines action which performs restore backup in restore container sidecar + |
+
+recoveryOnce
+
+uint64
+
+ |
+
+(Optional)
+ RecoveryOnce if want to restore specific backup set this field and then Jenkins will be restarted and desired backup will be restored + |
+
+(Appears on: +JenkinsSpec) +
++
SeedJob defines configuration for seed job +More info: https://github.com/jenkinsci/kubernetes-operator/blob/master/docs/getting-started.md#configure-seed-jobs-and-pipelines
+ +| Field | +Description | +
|---|---|
+id
+
+string
+
+ |
+
+ ID is the unique seed job name + |
+
+credentialID
+
+string
+
+ |
+
+ CredentialID is the Kubernetes secret name which stores repository access credentials + |
+
+description
+
+string
+
+ |
+
+(Optional)
+ Description is the description of the seed job + |
+
+targets
+
+string
+
+ |
+
+ Targets is the repository path where are seed job definitions + |
+
+repositoryBranch
+
+string
+
+ |
+
+ RepositoryBranch is the repository branch where are seed job definitions + |
+
+repositoryUrl
+
+string
+
+ |
+
+ RepositoryURL is the repository access URL. Can be SSH or HTTPS. + |
+
+credentialType
+
+
+JenkinsCredentialType
+
+
+ |
+
+(Optional)
+ JenkinsCredentialType is the https://jenkinsci.github.io/kubernetes-credentials-provider-plugin/ credential type + |
+
+(Appears on: +JenkinsSpec) +
++
Service defines Kubernetes service attributes
+ +| Field | +Description | +
|---|---|
+annotations
+
+map[string]string
+
+ |
+
+(Optional)
+ Annotations is an unstructured key value map stored with a resource that may be +set by external tools to store and retrieve arbitrary metadata. They are not +queryable and should be preserved when modifying objects. +More info: http://kubernetes.io/docs/user-guide/annotations + |
+
+labels
+
+map[string]string
+
+ |
+
+ Route service traffic to pods with label keys and values matching this +selector. If empty or not present, the service is assumed to have an +external process managing its endpoints, which Kubernetes will not +modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. +Ignored if type is ExternalName. +More info: https://kubernetes.io/docs/concepts/services-networking/service/ + |
+
+type
+
+
+Kubernetes core/v1.ServiceType
+
+
+ |
+
+(Optional)
+ Type determines how the Service is exposed. Defaults to ClusterIP. Valid +options are ExternalName, ClusterIP, NodePort, and LoadBalancer. +“ExternalName” maps to the specified externalName. +“ClusterIP” allocates a cluster-internal IP address for load-balancing to +endpoints. Endpoints are determined by the selector or if that is not +specified, by manual construction of an Endpoints object. If clusterIP is +“None”, no virtual IP is allocated and the endpoints are published as a +set of endpoints rather than a stable IP. +“NodePort” builds on ClusterIP and allocates a port on every node which +routes to the clusterIP. +“LoadBalancer” builds on NodePort and creates an +external load-balancer (if supported in the current cloud) which routes +to the clusterIP. +More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services—service-types + |
+
+port
+
+int32
+
+ |
+
+ The port that are exposed by this service. +More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies + |
+
+nodePort
+
+int32
+
+ |
+
+(Optional)
+ The port on each node on which this service is exposed when type=NodePort or LoadBalancer. +Usually assigned by the system. If specified, it will be allocated to the service +if unused or else creation of the service will fail. +Default is to auto-allocate a port if the ServiceType of this Service requires one. +More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport + |
+
+loadBalancerSourceRanges
+
+[]string
+
+ |
+
+(Optional)
+ If specified and supported by the platform, this will restrict traffic through the cloud-provider +load-balancer will be restricted to the specified client IPs. This field will be ignored if the +cloud-provider does not support the feature.” +More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/ + |
+
+loadBalancerIP
+
+string
+
+ |
+
+(Optional)
+ Only applies to Service Type: LoadBalancer +LoadBalancer will get created with the IP specified in this field. +This feature depends on whether the underlying cloud-provider supports specifying +the loadBalancerIP when a load balancer is created. +This field will be ignored if the cloud-provider does not support the feature. + |
+
+Generated with gen-crd-api-reference-docs
+on git commit 37e531a.
+