Documentation
¶
Overview ¶
Package v1alpha2 contains API Schema definitions for the jenkins.io v1alpha2 API group +k8s:deepcopy-gen=package,register +groupName=jenkins.io
Package v1alpha2 contains API Schema definitions for the jenkins.io v1alpha2 API group +k8s:deepcopy-gen=package,register +groupName=jenkins.io
Index ¶
- Constants
- Variables
- func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition
- func JenkinsTypeMeta() metav1.TypeMeta
- type AppliedGroovyScript
- type AuthorizationStrategy
- type Backup
- type ConfigMapRef
- type ConfigurationAsCode
- type Container
- type Customization
- type GroovyScripts
- type Handler
- type Image
- type Jenkins
- func (in *Jenkins) DeepCopy() *Jenkins
- func (in *Jenkins) DeepCopyInto(out *Jenkins)
- func (in *Jenkins) DeepCopyObject() runtime.Object
- func (in *Jenkins) GetObjectKind() schema.ObjectKind
- func (in *Jenkins) GroupVersionKind() schema.GroupVersionKind
- func (in *Jenkins) SetGroupVersionKind(kind schema.GroupVersionKind)
- type JenkinsAPISettings
- type JenkinsCredentialType
- type JenkinsImage
- type JenkinsImageList
- type JenkinsImageSpec
- type JenkinsImageStatus
- type JenkinsList
- type JenkinsMaster
- type JenkinsPlugin
- type JenkinsSpec
- type JenkinsStatus
- type Mailgun
- type MicrosoftTeams
- type Notification
- type NotificationLevel
- type Plugin
- type Restore
- type SMTP
- type SecretKeySelector
- type SecretRef
- type SeedJob
- type Service
- type ServiceAccount
- type Slack
Constants ¶
const (
// Kind defines Jenkins CRD kind name
Kind = "Jenkins"
)
Variables ¶
var ( // SchemeGroupVersion is group version used to register these objects SchemeGroupVersion = schema.GroupVersion{Group: "jenkins.io", Version: "v1alpha2"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} )
var AllowedJenkinsCredentialMap = map[string]string{ string(NoJenkinsCredentialCredentialType): "", string(BasicSSHCredentialType): "", string(UsernamePasswordCredentialType): "", string(ExternalCredentialType): "", }
AllowedJenkinsCredentialMap contains all allowed Jenkins credentials types.
Functions ¶
func GetOpenAPIDefinitions ¶
func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition
func JenkinsTypeMeta ¶ added in v0.1.1
JenkinsTypeMeta returns Jenkins type meta
Types ¶
type AppliedGroovyScript ¶ added in v0.2.0
type AppliedGroovyScript struct {
// ConfigurationType is the name of the configuration type(base-groovy, user-groovy, user-casc)
ConfigurationType string `json:"configurationType"`
// Source is the name of source where is located groovy script
Source string `json:"source"`
// Name is the name of the groovy script
Name string `json:"name"`
// Hash is the hash of the groovy script and secrets which it uses
Hash string `json:"hash"`
}
AppliedGroovyScript is the applied groovy script in Jenkins by the operator.
func (*AppliedGroovyScript) DeepCopy ¶ added in v0.2.0
func (in *AppliedGroovyScript) DeepCopy() *AppliedGroovyScript
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppliedGroovyScript.
func (*AppliedGroovyScript) DeepCopyInto ¶ added in v0.2.0
func (in *AppliedGroovyScript) DeepCopyInto(out *AppliedGroovyScript)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AuthorizationStrategy ¶ added in v0.4.0
type AuthorizationStrategy string
AuthorizationStrategy defines authorization strategy of the operator for the Jenkins API
const ( // CreateUserAuthorizationStrategy operator sets HudsonPrivateSecurityRealm and FullControlOnceLoggedInAuthorizationStrategy than creates user using init.d groovy script CreateUserAuthorizationStrategy AuthorizationStrategy = "createUser" // ServiceAccountAuthorizationStrategy operator gets token associated with Jenkins service account and uses it as bearer token ServiceAccountAuthorizationStrategy AuthorizationStrategy = "serviceAccount" )
type Backup ¶
type Backup struct {
// ContainerName is the container name responsible for backup operation
ContainerName string `json:"containerName"`
// Action defines action which performs backup in backup container sidecar
Action Handler `json:"action"`
// Interval tells how often make backup in seconds
// Defaults to 30.
Interval uint64 `json:"interval"`
// MakeBackupBeforePodDeletion tells operator to make backup before Jenkins master pod deletion
MakeBackupBeforePodDeletion bool `json:"makeBackupBeforePodDeletion"`
}
Backup defines configuration of Jenkins backup.
func (*Backup) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Backup.
func (*Backup) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigMapRef ¶ added in v0.2.0
type ConfigMapRef struct {
Name string `json:"name"`
}
ConfigMapRef is reference to Kubernetes ConfigMap.
func (*ConfigMapRef) DeepCopy ¶ added in v0.2.0
func (in *ConfigMapRef) DeepCopy() *ConfigMapRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapRef.
func (*ConfigMapRef) DeepCopyInto ¶ added in v0.2.0
func (in *ConfigMapRef) DeepCopyInto(out *ConfigMapRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigurationAsCode ¶ added in v0.2.0
type ConfigurationAsCode struct {
Customization `json:",inline"`
}
ConfigurationAsCode defines configuration of Jenkins customization via Configuration as Code Jenkins plugin.
func (*ConfigurationAsCode) DeepCopy ¶ added in v0.2.0
func (in *ConfigurationAsCode) DeepCopy() *ConfigurationAsCode
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationAsCode.
func (*ConfigurationAsCode) DeepCopyInto ¶ added in v0.2.0
func (in *ConfigurationAsCode) DeepCopyInto(out *ConfigurationAsCode)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Container ¶
type Container struct {
// Name of the container specified as a DNS_LABEL.
// Each container in a pod must have a unique name (DNS_LABEL).
Name string `json:"name"`
// Docker image name.
// More info: https://kubernetes.io/docs/concepts/containers/images
Image string `json:"image"`
// Image pull policy.
// One of Always, Never, IfNotPresent.
// Defaults to Always.
ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy"`
// Compute Resources required by this container.
// More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
Resources corev1.ResourceRequirements `json:"resources"`
// 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
// +optional
Command []string `json:"command,omitempty"`
// 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
// +optional
Args []string `json:"args,omitempty"`
// Container's working directory.
// If not specified, the container runtime's default will be used, which
// might be configured in the container image.
// +optional
WorkingDir string `json:"workingDir,omitempty"`
// 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.
// +optional
Ports []corev1.ContainerPort `json:"ports,omitempty"`
// 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.
// +optional
EnvFrom []corev1.EnvFromSource `json:"envFrom,omitempty"`
// List of environment variables to set in the container.
// +optional
Env []corev1.EnvVar `json:"env,omitempty"`
// Pod volumes to mount into the container's filesystem.
// +optional
VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
// Periodic probe of container liveness.
// Container will be restarted if the probe fails.
// +optional
LivenessProbe *corev1.Probe `json:"livenessProbe,omitempty"`
// Periodic probe of container service readiness.
// Container will be removed from service endpoints if the probe fails.
// +optional
ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty"`
// Actions that the management system should take in response to container lifecycle events.
// +optional
Lifecycle *corev1.Lifecycle `json:"lifecycle,omitempty"`
// 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/
// +optional
SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`
}
Container defines Kubernetes container attributes.
func (*Container) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Container.
func (*Container) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Customization ¶ added in v0.2.0
type Customization struct {
Secret SecretRef `json:"secret"`
Configurations []ConfigMapRef `json:"configurations"`
}
Customization defines configuration of Jenkins customization.
func (*Customization) DeepCopy ¶ added in v0.2.0
func (in *Customization) DeepCopy() *Customization
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Customization.
func (*Customization) DeepCopyInto ¶ added in v0.2.0
func (in *Customization) DeepCopyInto(out *Customization)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GroovyScripts ¶ added in v0.2.0
type GroovyScripts struct {
Customization `json:",inline"`
}
GroovyScripts defines configuration of Jenkins customization via groovy scripts.
func (*GroovyScripts) DeepCopy ¶ added in v0.2.0
func (in *GroovyScripts) DeepCopy() *GroovyScripts
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroovyScripts.
func (*GroovyScripts) DeepCopyInto ¶ added in v0.2.0
func (in *GroovyScripts) DeepCopyInto(out *GroovyScripts)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Handler ¶
type Handler struct {
// Exec specifies the action to take.
Exec *corev1.ExecAction `json:"exec,omitempty"`
}
Handler defines a specific action that should be taken.
func (*Handler) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Handler.
func (*Handler) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Image ¶ added in v0.5.0
Defines Jenkins Plugin structure
func (*Image) DeepCopy ¶ added in v0.5.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Image.
func (*Image) DeepCopyInto ¶ added in v0.5.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Jenkins ¶
type Jenkins struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// Spec defines the desired state of the Jenkins
Spec JenkinsSpec `json:"spec,omitempty"`
// Status defines the observed state of Jenkins
Status JenkinsStatus `json:"status,omitempty"`
}
Jenkins is the Schema for the jenkins API +k8s:openapi-gen=true +kubebuilder:subresource:status
func (*Jenkins) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Jenkins.
func (*Jenkins) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Jenkins) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Jenkins) GetObjectKind ¶
func (in *Jenkins) GetObjectKind() schema.ObjectKind
GetObjectKind returns Jenkins object kind
func (*Jenkins) GroupVersionKind ¶ added in v0.1.1
func (in *Jenkins) GroupVersionKind() schema.GroupVersionKind
GroupVersionKind returns GroupVersionKind
func (*Jenkins) SetGroupVersionKind ¶ added in v0.1.1
func (in *Jenkins) SetGroupVersionKind(kind schema.GroupVersionKind)
SetGroupVersionKind sets GroupVersionKind
type JenkinsAPISettings ¶ added in v0.4.0
type JenkinsAPISettings struct {
AuthorizationStrategy AuthorizationStrategy `json:"authorizationStrategy"`
}
JenkinsAPISettings defines configuration used by the operator to gain admin access to the Jenkins API
func (*JenkinsAPISettings) DeepCopy ¶ added in v0.4.0
func (in *JenkinsAPISettings) DeepCopy() *JenkinsAPISettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JenkinsAPISettings.
func (*JenkinsAPISettings) DeepCopyInto ¶ added in v0.4.0
func (in *JenkinsAPISettings) DeepCopyInto(out *JenkinsAPISettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JenkinsCredentialType ¶
type JenkinsCredentialType string
JenkinsCredentialType defines type of Jenkins credential used to seed job mechanism.
const ( // NoJenkinsCredentialCredentialType define none Jenkins credential type NoJenkinsCredentialCredentialType JenkinsCredentialType = "" // BasicSSHCredentialType define basic SSH Jenkins credential type BasicSSHCredentialType JenkinsCredentialType = "basicSSHUserPrivateKey" // UsernamePasswordCredentialType define username & password Jenkins credential type UsernamePasswordCredentialType JenkinsCredentialType = "usernamePassword" // ExternalCredentialType defines other credential type ExternalCredentialType JenkinsCredentialType = "external" )
type JenkinsImage ¶ added in v0.5.0
type JenkinsImage struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec JenkinsImageSpec `json:"spec,omitempty"`
Status JenkinsImageStatus `json:"status,omitempty"`
}
JenkinsImage is the Schema for the jenkinsimages API +kubebuilder:subresource:status +kubebuilder:resource:path=jenkinsimages,scope=Namespaced
func (*JenkinsImage) DeepCopy ¶ added in v0.5.0
func (in *JenkinsImage) DeepCopy() *JenkinsImage
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JenkinsImage.
func (*JenkinsImage) DeepCopyInto ¶ added in v0.5.0
func (in *JenkinsImage) DeepCopyInto(out *JenkinsImage)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*JenkinsImage) DeepCopyObject ¶ added in v0.5.0
func (in *JenkinsImage) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type JenkinsImageList ¶ added in v0.5.0
type JenkinsImageList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []JenkinsImage `json:"items"`
}
JenkinsImageList contains a list of JenkinsImage
func (*JenkinsImageList) DeepCopy ¶ added in v0.5.0
func (in *JenkinsImageList) DeepCopy() *JenkinsImageList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JenkinsImageList.
func (*JenkinsImageList) DeepCopyInto ¶ added in v0.5.0
func (in *JenkinsImageList) DeepCopyInto(out *JenkinsImageList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*JenkinsImageList) DeepCopyObject ¶ added in v0.5.0
func (in *JenkinsImageList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type JenkinsImageSpec ¶ added in v0.5.0
type JenkinsImageSpec struct {
BaseImage Image `json:"image"`
Plugins []JenkinsPlugin `json:"plugins"` // Plugins list
}
JenkinsImageSpec defines the desired state of JenkinsImage
func (*JenkinsImageSpec) DeepCopy ¶ added in v0.5.0
func (in *JenkinsImageSpec) DeepCopy() *JenkinsImageSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JenkinsImageSpec.
func (*JenkinsImageSpec) DeepCopyInto ¶ added in v0.5.0
func (in *JenkinsImageSpec) DeepCopyInto(out *JenkinsImageSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JenkinsImageStatus ¶ added in v0.5.0
type JenkinsImageStatus struct {
Image string `json:"image,omitempty"`
MD5Sum string `json:"md5sum,omitempty"`
InstalledPlugins []JenkinsPlugin `json:"installedPlugins,omitempty"`
}
JenkinsImageStatus defines the observed state of JenkinsImage
func (*JenkinsImageStatus) DeepCopy ¶ added in v0.5.0
func (in *JenkinsImageStatus) DeepCopy() *JenkinsImageStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JenkinsImageStatus.
func (*JenkinsImageStatus) DeepCopyInto ¶ added in v0.5.0
func (in *JenkinsImageStatus) DeepCopyInto(out *JenkinsImageStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JenkinsList ¶
type JenkinsList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Jenkins `json:"items"`
}
JenkinsList contains a list of Jenkins.
func (*JenkinsList) DeepCopy ¶
func (in *JenkinsList) DeepCopy() *JenkinsList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JenkinsList.
func (*JenkinsList) DeepCopyInto ¶
func (in *JenkinsList) DeepCopyInto(out *JenkinsList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*JenkinsList) DeepCopyObject ¶
func (in *JenkinsList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type JenkinsMaster ¶
type JenkinsMaster struct {
// 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
// +optional
Annotations map[string]string `json:"annotations,omitempty"`
// 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
// Deprecated: will be removed in the future, please use Annotations(annotations)
// +optional
AnnotationsDeprecated map[string]string `json:"masterAnnotations,omitempty"`
// Map of string keys and values that can be used to organize and categorize
// (scope and select) objects. May match selectors of replication controllers
// and services.
// More info: http://kubernetes.io/docs/user-guide/labels
// +optional
Labels map[string]string `json:"labels,omitempty"`
// 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/
// +optional
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
// SecurityContext that applies to all the containers of the Jenkins
// Master. As per kubernetes specification, it can be overridden
// for each container individually.
// +optional
// Defaults to:
// runAsUser: 1000
// fsGroup: 1000
SecurityContext *corev1.PodSecurityContext `json:"securityContext,omitempty"`
// List of containers belonging to the pod.
// Containers cannot currently be added or removed.
// There must be at least one container in a Pod.
// +optional
// 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
Containers []Container `json:"containers,omitempty"`
// ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
// If specified, these secrets will be passed to individual puller implementations for them to use. For example,
// in the case of docker, only DockerConfig type secrets are honored.
// More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
// +optional
ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
// List of volumes that can be mounted by containers belonging to the pod.
// More info: https://kubernetes.io/docs/concepts/storage/volumes
// +optional
Volumes []corev1.Volume `json:"volumes,omitempty"`
// If specified, the pod's tolerations.
// +optional
Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
// BasePlugins contains plugins required by operator
// +optional
// Defaults to :
// - name: kubernetes
// version: "1.28.6"
// - name: workflow-job
// version: "2.40"
// - name: workflow-aggregator
// version: "2.6"
// - name: git
// version: "4.5.0"
// - name: job-dsl
// version: "1.77"
// - name: configuration-as-code
// version: "1.46"
// - name: kubernetes-credentials-provider
// version: "0.15"
BasePlugins []Plugin `json:"basePlugins,omitempty"`
// Plugins contains plugins required by user
// +optional
Plugins []Plugin `json:"plugins,omitempty"`
// DisableCSRFProtection allows you to toggle CSRF Protection on Jenkins
DisableCSRFProtection bool `json:"disableCSRFProtection"`
// PriorityClassName for Jenkins master pod
// +optional
PriorityClassName string `json:"priorityClassName,omitempty"`
}
JenkinsMaster defines the Jenkins master pod attributes and plugins, every single change requires a Jenkins master pod restart.
func (*JenkinsMaster) DeepCopy ¶
func (in *JenkinsMaster) DeepCopy() *JenkinsMaster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JenkinsMaster.
func (*JenkinsMaster) DeepCopyInto ¶
func (in *JenkinsMaster) DeepCopyInto(out *JenkinsMaster)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JenkinsPlugin ¶ added in v0.5.0
Defines Jenkins Plugin structure
func (*JenkinsPlugin) DeepCopy ¶ added in v0.5.0
func (in *JenkinsPlugin) DeepCopy() *JenkinsPlugin
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JenkinsPlugin.
func (*JenkinsPlugin) DeepCopyInto ¶ added in v0.5.0
func (in *JenkinsPlugin) DeepCopyInto(out *JenkinsPlugin)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JenkinsSpec ¶
type JenkinsSpec struct {
// Master represents Jenkins master pod properties and Jenkins plugins.
// Every single change here requires a pod restart.
Master JenkinsMaster `json:"master"`
// SeedJobs defines list of Jenkins Seed Job configurations
// More info: https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuration#configure-seed-jobs-and-pipelines
// +optional
SeedJobs []SeedJob `json:"seedJobs,omitempty"`
// Notifications defines list of a services which are used to inform about Jenkins status
// Can be used to integrate chat services like Slack, Microsoft Teams or Mailgun
// +optional
Notifications []Notification `json:"notifications,omitempty"`
// Service is Kubernetes service of Jenkins master HTTP pod
// Defaults to :
// port: 8080
// type: ClusterIP
// +optional
Service Service `json:"service,omitempty"`
// Service is Kubernetes service of Jenkins slave pods
// Defaults to :
// port: 50000
// type: ClusterIP
// +optional
SlaveService Service `json:"slaveService,omitempty"`
// Backup defines configuration of Jenkins backup
// More info: https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configure-backup-and-restore/
// +optional
Backup Backup `json:"backup,omitempty"`
// Backup defines configuration of Jenkins backup restore
// More info: https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configure-backup-and-restore/
// +optional
Restore Restore `json:"restore,omitempty"`
// GroovyScripts defines configuration of Jenkins customization via groovy scripts
// +optional
GroovyScripts GroovyScripts `json:"groovyScripts,omitempty"`
// ConfigurationAsCode defines configuration of Jenkins customization via Configuration as Code Jenkins plugin
// +optional
ConfigurationAsCode ConfigurationAsCode `json:"configurationAsCode,omitempty"`
// Roles defines list of extra RBAC roles for the Jenkins Master pod service account
// +optional
Roles []rbacv1.RoleRef `json:"roles,omitempty"`
// ServiceAccount defines Jenkins master service account attributes
// +optional
ServiceAccount ServiceAccount `json:"serviceAccount,omitempty"`
// JenkinsAPISettings defines configuration used by the operator to gain admin access to the Jenkins API
JenkinsAPISettings JenkinsAPISettings `json:"jenkinsAPISettings"`
}
JenkinsSpec defines the desired state of the Jenkins. +k8s:openapi-gen=true
func (*JenkinsSpec) DeepCopy ¶
func (in *JenkinsSpec) DeepCopy() *JenkinsSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JenkinsSpec.
func (*JenkinsSpec) DeepCopyInto ¶
func (in *JenkinsSpec) DeepCopyInto(out *JenkinsSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JenkinsStatus ¶
type JenkinsStatus struct {
// OperatorVersion is the operator version which manages this CR
// +optional
OperatorVersion string `json:"operatorVersion,omitempty"`
// ProvisionStartTime is a time when Jenkins master pod has been created
// +optional
ProvisionStartTime *metav1.Time `json:"provisionStartTime,omitempty"`
// BaseConfigurationCompletedTime is a time when Jenkins base configuration phase has been completed
// +optional
BaseConfigurationCompletedTime *metav1.Time `json:"baseConfigurationCompletedTime,omitempty"`
// UserConfigurationCompletedTime is a time when Jenkins user configuration phase has been completed
// +optional
UserConfigurationCompletedTime *metav1.Time `json:"userConfigurationCompletedTime,omitempty"`
// RestoredBackup is the restored backup number after Jenkins master pod restart
// +optional
RestoredBackup uint64 `json:"restoredBackup,omitempty"`
// LastBackup is the latest backup number
// +optional
LastBackup uint64 `json:"lastBackup,omitempty"`
// PendingBackup is the pending backup number
// +optional
PendingBackup uint64 `json:"pendingBackup,omitempty"`
// BackupDoneBeforePodDeletion tells if backup before pod deletion has been made
// +optional
BackupDoneBeforePodDeletion bool `json:"backupDoneBeforePodDeletion,omitempty"`
// UserAndPasswordHash is a SHA256 hash made from user and password
// +optional
UserAndPasswordHash string `json:"userAndPasswordHash,omitempty"`
// CreatedSeedJobs contains list of seed job id already created in Jenkins
// +optional
CreatedSeedJobs []string `json:"createdSeedJobs,omitempty"`
// AppliedGroovyScripts is a list with all applied groovy scripts in Jenkins by the operator
// +optional
AppliedGroovyScripts []AppliedGroovyScript `json:"appliedGroovyScripts,omitempty"`
}
JenkinsStatus defines the observed state of Jenkins +k8s:openapi-gen=true
func (*JenkinsStatus) DeepCopy ¶
func (in *JenkinsStatus) DeepCopy() *JenkinsStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JenkinsStatus.
func (*JenkinsStatus) DeepCopyInto ¶
func (in *JenkinsStatus) DeepCopyInto(out *JenkinsStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Mailgun ¶ added in v0.2.0
type Mailgun struct {
Domain string `json:"domain"`
APIKeySecretKeySelector SecretKeySelector `json:"apiKeySecretKeySelector"`
Recipient string `json:"recipient"`
From string `json:"from"`
}
Mailgun is handler for Mailgun email service notification channel.
func (*Mailgun) DeepCopy ¶ added in v0.2.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Mailgun.
func (*Mailgun) DeepCopyInto ¶ added in v0.2.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MicrosoftTeams ¶ added in v0.2.0
type MicrosoftTeams struct {
// The web hook URL to MicrosoftTeams App
WebHookURLSecretKeySelector SecretKeySelector `json:"webHookURLSecretKeySelector"`
}
MicrosoftTeams is handler for Microsoft MicrosoftTeams notification channel.
func (*MicrosoftTeams) DeepCopy ¶ added in v0.2.0
func (in *MicrosoftTeams) DeepCopy() *MicrosoftTeams
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MicrosoftTeams.
func (*MicrosoftTeams) DeepCopyInto ¶ added in v0.2.0
func (in *MicrosoftTeams) DeepCopyInto(out *MicrosoftTeams)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Notification ¶ added in v0.2.0
type Notification struct {
LoggingLevel NotificationLevel `json:"level"`
Verbose bool `json:"verbose"`
Name string `json:"name"`
Slack *Slack `json:"slack,omitempty"`
Teams *MicrosoftTeams `json:"teams,omitempty"`
Mailgun *Mailgun `json:"mailgun,omitempty"`
SMTP *SMTP `json:"smtp,omitempty"`
}
Notification is a service configuration used to send notifications about Jenkins status.
func (*Notification) DeepCopy ¶ added in v0.2.0
func (in *Notification) DeepCopy() *Notification
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Notification.
func (*Notification) DeepCopyInto ¶ added in v0.2.0
func (in *Notification) DeepCopyInto(out *Notification)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NotificationLevel ¶ added in v0.3.0
type NotificationLevel string
NotificationLevel defines the level of a Notification.
const ( // NotificationLevelWarning - Only Warnings NotificationLevelWarning NotificationLevel = "warning" // NotificationLevelInfo - Only info NotificationLevelInfo NotificationLevel = "info" )
type Plugin ¶
type Plugin struct {
// Name is the name of Jenkins plugin
Name string `json:"name"`
// Version is the version of Jenkins plugin
Version string `json:"version"`
// DownloadURL is the custom url from where plugin has to be downloaded.
DownloadURL string `json:"downloadURL,omitempty"`
}
Plugin defines Jenkins plugin.
func (*Plugin) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Plugin.
func (*Plugin) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Restore ¶
type Restore struct {
// ContainerName is the container name responsible for restore backup operation
ContainerName string `json:"containerName"`
// Action defines action which performs restore backup in restore container sidecar
Action Handler `json:"action"`
// GetLatestAction defines action which returns the latest backup number. If there is no backup "-1" should be
// returned.
// +optional
GetLatestAction Handler `json:"getLatestAction"`
// RecoveryOnce if want to restore specific backup set this field and then Jenkins will be restarted and desired backup will be restored
// +optional
RecoveryOnce uint64 `json:"recoveryOnce,omitempty"`
}
Restore defines configuration of Jenkins backup restore operation.
func (*Restore) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Restore.
func (*Restore) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SMTP ¶ added in v0.3.0
type SMTP struct {
UsernameSecretKeySelector SecretKeySelector `json:"usernameSecretKeySelector"`
PasswordSecretKeySelector SecretKeySelector `json:"passwordSecretKeySelector"`
Port int `json:"port"`
Server string `json:"server"`
TLSInsecureSkipVerify bool `json:"tlsInsecureSkipVerify,omitempty"`
From string `json:"from"`
To string `json:"to"`
}
SMTP is handler for sending emails via this protocol.
func (*SMTP) DeepCopy ¶ added in v0.3.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SMTP.
func (*SMTP) DeepCopyInto ¶ added in v0.3.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecretKeySelector ¶ added in v0.2.0
type SecretKeySelector struct {
// The name of the secret in the pod's namespace to select from.
corev1.LocalObjectReference `json:"secret"`
// The key of the secret to select from. Must be a valid secret key.
Key string `json:"key"`
}
SecretKeySelector selects a key of a Secret.
func (*SecretKeySelector) DeepCopy ¶ added in v0.2.0
func (in *SecretKeySelector) DeepCopy() *SecretKeySelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretKeySelector.
func (*SecretKeySelector) DeepCopyInto ¶ added in v0.2.0
func (in *SecretKeySelector) DeepCopyInto(out *SecretKeySelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecretRef ¶ added in v0.2.0
type SecretRef struct {
Name string `json:"name"`
}
SecretRef is reference to Kubernetes secret.
func (*SecretRef) DeepCopy ¶ added in v0.2.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretRef.
func (*SecretRef) DeepCopyInto ¶ added in v0.2.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SeedJob ¶
type SeedJob struct {
// ID is the unique seed job name
ID string `json:"id,omitempty"`
// CredentialID is the Kubernetes secret name which stores repository access credentials
CredentialID string `json:"credentialID,omitempty"`
// Description is the description of the seed job
// +optional
Description string `json:"description,omitempty"`
// Targets is the repository path where are seed job definitions
Targets string `json:"targets,omitempty"`
// RepositoryBranch is the repository branch where are seed job definitions
RepositoryBranch string `json:"repositoryBranch,omitempty"`
// RepositoryURL is the repository access URL. Can be SSH or HTTPS.
RepositoryURL string `json:"repositoryUrl,omitempty"`
// JenkinsCredentialType is the https://jenkinsci.github.io/kubernetes-credentials-provider-plugin/ credential type
// +optional
JenkinsCredentialType JenkinsCredentialType `json:"credentialType,omitempty"`
// BitbucketPushTrigger is used for Bitbucket web hooks
// +optional
BitbucketPushTrigger bool `json:"bitbucketPushTrigger"`
// GitHubPushTrigger is used for GitHub web hooks
// +optional
GitHubPushTrigger bool `json:"githubPushTrigger"`
// BuildPeriodically is setting for scheduled trigger
// +optional
BuildPeriodically string `json:"buildPeriodically"`
// PollSCM is setting for polling changes in SCM
// +optional
PollSCM string `json:"pollSCM"`
// IgnoreMissingFiles is setting for Job DSL API plugin to ignore files that miss
// +optional
IgnoreMissingFiles bool `json:"ignoreMissingFiles"`
// AdditionalClasspath is setting for Job DSL API plugin to set Additional Classpath
// +optional
AdditionalClasspath string `json:"additionalClasspath"`
// FailOnMissingPlugin is setting for Job DSL API plugin that fails job if required plugin is missing
// +optional
FailOnMissingPlugin bool `json:"failOnMissingPlugin"`
// UnstableOnDeprecation is setting for Job DSL API plugin that sets build status as unstable if build using deprecated features
// +optional
UnstableOnDeprecation bool `json:"unstableOnDeprecation"`
}
SeedJob defines configuration for seed job More info: https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuration/#configure-seed-jobs-and-pipelines.
func (*SeedJob) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SeedJob.
func (*SeedJob) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Service ¶
type Service struct {
// 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
// +optional
Annotations map[string]string `json:"annotations,omitempty"`
// 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/
// +optional
Labels map[string]string `json:"labels,omitempty"`
// 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
// +optional
Type corev1.ServiceType `json:"type,omitempty"`
// The port that are exposed by this service.
// More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
Port int32 `json:"port,omitempty"`
// 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
// +optional
NodePort int32 `json:"nodePort,omitempty"`
// 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/administer-cluster/securing-a-cluster/#restricting-cloud-metadata-api-access
// +optional
LoadBalancerSourceRanges []string `json:"loadBalancerSourceRanges,omitempty"`
// 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.
// +optional
LoadBalancerIP string `json:"loadBalancerIP,omitempty"`
}
Service defines Kubernetes service attributes
func (*Service) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Service.
func (*Service) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceAccount ¶ added in v0.4.0
type ServiceAccount struct {
// 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
// +optional
Annotations map[string]string `json:"annotations,omitempty"`
}
ServiceAccount defines Kubernetes service account attributes
func (*ServiceAccount) DeepCopy ¶ added in v0.4.0
func (in *ServiceAccount) DeepCopy() *ServiceAccount
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccount.
func (*ServiceAccount) DeepCopyInto ¶ added in v0.4.0
func (in *ServiceAccount) DeepCopyInto(out *ServiceAccount)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Slack ¶ added in v0.2.0
type Slack struct {
// The web hook URL to Slack App
WebHookURLSecretKeySelector SecretKeySelector `json:"webHookURLSecretKeySelector"`
}
Slack is handler for Slack notification channel.
func (*Slack) DeepCopy ¶ added in v0.2.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Slack.
func (*Slack) DeepCopyInto ¶ added in v0.2.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.