Scheme

API Schema definitions for Jenkins CR

This document contains API scheme for jenkins-operator manifest

Packages:

jenkins.io

Package v1alpha2 contains the API Schema definitions for the jenkins.io v1alpha2 API group

Resource Types:

Jenkins

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



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 a 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 the Kubernetes service of the Jenkins master HTTP pod Defaults to : port: 8080 type: ClusterIP

slaveService
Service
(Optional)

Service is the Kubernetes service of the Jenkins slave pods Defaults to : port: 50000 type: ClusterIP

backup
Backup
(Optional)

Backup defines the configuration of a 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 the configuration of a Jenkins backup restore More info: https://github.com/jenkinsci/kubernetes-operator/blob/master/docs/getting-started.md#configure-backup-and-restore

status
JenkinsStatus

Status defines the observed state of Jenkins

Backup

(Appears on: JenkinsSpec)

Backup defines the configuration of Jenkins backup

Field Description
containerName
string

ContainerName is the container name responsible for backup operation

action
Handler

Action defines the action which performs the backup in the backup container sidecar

interval
uint64

Interval tells you how often the backup is made in seconds Defaults to 30.

makeBackupBeforePodDeletion
bool

MakeBackupBeforePodDeletion tells the operator to make a backup before Jenkins master pod deletion

Build

(Appears on: JenkinsStatus)

Build defines the 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 a Jenkins build

retries
int

Retires is the amount of times a 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

BuildStatus (string alias)

(Appears on: Build)

BuildStatus defines the type of Jenkins build job status

Container

(Appears on: JenkinsMaster)

Container defines the 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. The container will be restarted if the probe fails.

readinessProbe
Kubernetes core/v1.Probe
(Optional)

Periodic probe of container service readiness. The 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/

Handler

(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.

JenkinsCredentialType (string alias)

(Appears on: SeedJob)

JenkinsCredentialType defines type of Jenkins credential used in the seed job mechanism

JenkinsMaster

(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: 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

JenkinsSpec

(Appears on: Jenkins)

JenkinsSpec defines the desired state of the Jenkins

Field Description
master
JenkinsMaster

Master represents the 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 the Kubernetes service of the Jenkins master HTTP pod Defaults to : port: 8080 type: ClusterIP

slaveService
Service
(Optional)

Service is the Kubernetes service of the Jenkins slave pods Defaults to : port: 50000 type: ClusterIP

backup
Backup
(Optional)

Backup defines the configuration of the 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 the configuration of the Jenkins backup restore More info: https://github.com/jenkinsci/kubernetes-operator/blob/master/docs/getting-started.md#configure-backup-and-restore

JenkinsStatus

(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 the 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 the Jenkins builds statues

restoredBackup
uint64
(Optional)

RestoredBackup is the restored backup number after the 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 a backup before pod deletion has been made

userAndPasswordHash
string
(Optional)

UserAndPasswordHash is a SHA256 hash made from the username and password

createdSeedJobs
[]string
(Optional)

CreatedSeedJobs contains list of seed job ids already created in Jenkins

Plugin

(Appears on: JenkinsMaster)

Plugin defines Jenkins plugin

Field Description
name
string

Name is the name of the Jenkins plugin

version
string

Version is the version of the Jenkins plugin

Restore

(Appears on: JenkinsSpec)

Restore defines the configuration of a Jenkins backup restore operation

Field Description
containerName
string

ContainerName is the container name responsible for the restore backup operation

action
Handler

Action defines action which performs the restore backup in a restore container sidecar

recoveryOnce
uint64
(Optional)

RecoveryOnce if you want to restore a specific backup, set this field, and then Jenkins will be restarted and the desired backup will be restored

SeedJob

(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 the seed job definitions are

repositoryBranch
string

RepositoryBranch is the repository branch where the seed job definitions are

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

Service

(Appears on: JenkinsSpec)

Service defines the 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 is 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. The 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.

Last modified August 5, 2019