Documentation ¶
Overview ¶
Package v1alpha2 contains API Schema definitions for the jenkins.io v1alpha2 API group +k8s:deepcopy-gen=package,register +kubebuilder:object:generate=true +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 JenkinsTypeMeta() metav1.TypeMeta
- func Validate(r Jenkins) error
- type AppliedGroovyScript
- type AuthorizationStrategy
- type Backup
- type ConfigMapRef
- type ConfigurationAsCode
- type Container
- type Customization
- type GroovyScripts
- type Handler
- 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)
- func (in *Jenkins) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (in *Jenkins) ValidateCreate() error
- func (in *Jenkins) ValidateDelete() error
- func (in *Jenkins) ValidateUpdate(old runtime.Object) error
- type JenkinsAPISettings
- type JenkinsCredentialType
- type JenkinsList
- type JenkinsMaster
- type JenkinsSpec
- type JenkinsStatus
- type Mailgun
- type MicrosoftTeams
- type Notification
- type NotificationLevel
- type Plugin
- type PluginData
- type PluginInfo
- type PluginsInfo
- type Restore
- type SMTP
- type SecretKeySelector
- type SecretRef
- type SecurityValidator
- type SeedJob
- type Service
- type ServiceAccount
- type Slack
- type Version
- type Warning
Constants ¶
const ( Hosturl = "https://ci.jenkins.io/job/Infra/job/plugin-site-api/job/generate-data/lastSuccessfulBuild/artifact/plugins.json.gzip" CompressedFilePath = "/tmp/plugins.json.gzip" PluginDataFile = "/tmp/plugins.json" )
const (
// Kind defines Jenkins CRD kind name
Kind = "Jenkins"
)
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "jenkins.io", Version: "v1alpha2"} // 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: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
var AllowedJenkinsCredentialMap = map[string]string{ string(NoJenkinsCredentialCredentialType): "", string(BasicSSHCredentialType): "", string(UsernamePasswordCredentialType): "", string(GithubAppCredentialType): "", string(ExternalCredentialType): "", }
AllowedJenkinsCredentialMap contains all allowed Jenkins credentials types.
var (
SecValidator = *NewSecurityValidator()
)
Functions ¶
func JenkinsTypeMeta ¶
JenkinsTypeMeta returns Jenkins type meta
Types ¶
type AppliedGroovyScript ¶
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 ¶
func (in *AppliedGroovyScript) DeepCopy() *AppliedGroovyScript
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppliedGroovyScript.
func (*AppliedGroovyScript) DeepCopyInto ¶
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 ¶
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 ¶
type ConfigMapRef struct {
Name string `json:"name"`
}
ConfigMapRef is reference to Kubernetes ConfigMap.
func (*ConfigMapRef) DeepCopy ¶
func (in *ConfigMapRef) DeepCopy() *ConfigMapRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapRef.
func (*ConfigMapRef) DeepCopyInto ¶
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 ¶
type ConfigurationAsCode struct {
Customization `json:",inline"`
}
ConfigurationAsCode defines configuration of Jenkins customization via Configuration as Code Jenkins plugin.
func (*ConfigurationAsCode) DeepCopy ¶
func (in *ConfigurationAsCode) DeepCopy() *ConfigurationAsCode
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationAsCode.
func (*ConfigurationAsCode) DeepCopyInto ¶
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 ¶
type Customization struct { Secret SecretRef `json:"secret"` Configurations []ConfigMapRef `json:"configurations"` }
Customization defines configuration of Jenkins customization.
func (*Customization) DeepCopy ¶
func (in *Customization) DeepCopy() *Customization
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Customization.
func (*Customization) DeepCopyInto ¶
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 ¶
type GroovyScripts struct {
Customization `json:",inline"`
}
GroovyScripts defines configuration of Jenkins customization via groovy scripts.
func (*GroovyScripts) DeepCopy ¶
func (in *GroovyScripts) DeepCopy() *GroovyScripts
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroovyScripts.
func (*GroovyScripts) DeepCopyInto ¶
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 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
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 ¶
func (in *Jenkins) GroupVersionKind() schema.GroupVersionKind
GroupVersionKind returns GroupVersionKind
func (*Jenkins) SetGroupVersionKind ¶
func (in *Jenkins) SetGroupVersionKind(kind schema.GroupVersionKind)
SetGroupVersionKind sets GroupVersionKind
func (*Jenkins) SetupWebhookWithManager ¶ added in v0.7.0
func (*Jenkins) ValidateCreate ¶ added in v0.7.0
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*Jenkins) ValidateDelete ¶ added in v0.7.0
type JenkinsAPISettings ¶
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 ¶
func (in *JenkinsAPISettings) DeepCopy() *JenkinsAPISettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JenkinsAPISettings.
func (*JenkinsAPISettings) DeepCopyInto ¶
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" GithubAppCredentialType JenkinsCredentialType = "githubApp" // ExternalCredentialType defines other credential type ExternalCredentialType JenkinsCredentialType = "external" )
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"` // 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: configuration-as-code // version: "1625.v27444588cc3d" // - name: git // version: "5.0.0" // - name: job-dsl // version: "1.83" // - name: kubernetes // version: "3909.v1f2c633e8590" // - name: kubernetes-credentials-provider // version: "1.211.vc236a_f5a_2f3c" // - name: workflow-aggregator // version: "596.v8c21c963d92d" // - name: workflow-job // version: "1289.vd1c337fd5354" BasePlugins []Plugin `json:"basePlugins,omitempty"` // Plugins contains plugins required by user // +optional Plugins []Plugin `json:"plugins,omitempty"` // Allow to override jenkins-plugin-cli default behavior // while downloading the plugin and dependencies // see: https://github.com/jenkinsci/plugin-installation-manager-tool#cli-options // +optional LatestPlugins *bool `json:"latestPlugins,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"` // HostAliases for Jenkins master pod and SeedJob agent // +optional HostAliases []corev1.HostAlias `json:"hostAliases,omitempty"` // The grace period is the duration in seconds after the processes running in the pod are sent // a termination signal and the time when the processes are forcibly halted with a kill signal. // Set this value longer than the expected cleanup time for your process. // Defaults to 30 seconds. // +optional TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,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 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"` // SeedJobAgentImage defines the image that will be used by the seed job agent. If not defined jenkins/inbound-agent:4.9-1 will be used. // +optional SeedJobAgentImage string `json:"seedJobAgentImage,omitempty"` // ValidateSecurityWarnings enables or disables validating potential security warnings in Jenkins plugins via admission webhooks. //+optional ValidateSecurityWarnings bool `json:"validateSecurityWarnings,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 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 ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Mailgun.
func (*Mailgun) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MicrosoftTeams ¶
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 ¶
func (in *MicrosoftTeams) DeepCopy() *MicrosoftTeams
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MicrosoftTeams.
func (*MicrosoftTeams) DeepCopyInto ¶
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 ¶
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 ¶
func (in *Notification) DeepCopy() *Notification
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Notification.
func (*Notification) DeepCopyInto ¶
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 ¶
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 PluginData ¶ added in v0.7.0
func (*PluginData) DeepCopy ¶ added in v0.7.0
func (in *PluginData) DeepCopy() *PluginData
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginData.
func (*PluginData) DeepCopyInto ¶ added in v0.7.0
func (in *PluginData) DeepCopyInto(out *PluginData)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PluginInfo ¶ added in v0.7.0
type PluginInfo struct { Name string `json:"name"` SecurityWarnings []Warning `json:"securityWarnings"` }
func (*PluginInfo) DeepCopy ¶ added in v0.7.0
func (in *PluginInfo) DeepCopy() *PluginInfo
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginInfo.
func (*PluginInfo) DeepCopyInto ¶ added in v0.7.0
func (in *PluginInfo) DeepCopyInto(out *PluginInfo)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PluginsInfo ¶ added in v0.7.0
type PluginsInfo struct {
Plugins []PluginInfo `json:"plugins"`
}
func (*PluginsInfo) DeepCopy ¶ added in v0.7.0
func (in *PluginsInfo) DeepCopy() *PluginsInfo
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginsInfo.
func (*PluginsInfo) DeepCopyInto ¶ added in v0.7.0
func (in *PluginsInfo) DeepCopyInto(out *PluginsInfo)
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 ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SMTP.
func (*SMTP) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecretKeySelector ¶
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 ¶
func (in *SecretKeySelector) DeepCopy() *SecretKeySelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretKeySelector.
func (*SecretKeySelector) DeepCopyInto ¶
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 ¶
type SecretRef struct {
Name string `json:"name"`
}
SecretRef is reference to Kubernetes secret.
func (*SecretRef) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretRef.
func (*SecretRef) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecurityValidator ¶ added in v0.7.0
type SecurityValidator struct { PluginDataCache PluginsInfo Attempts int // contains filtered or unexported fields }
func NewSecurityValidator ¶ added in v0.7.0
func NewSecurityValidator() *SecurityValidator
NewMonitor creates a new worker and instantiates all the data structures required
func (*SecurityValidator) DeepCopy ¶ added in v0.7.0
func (in *SecurityValidator) DeepCopy() *SecurityValidator
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityValidator.
func (*SecurityValidator) DeepCopyInto ¶ added in v0.7.0
func (in *SecurityValidator) DeepCopyInto(out *SecurityValidator)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SecurityValidator) MonitorSecurityWarnings ¶ added in v0.7.0
func (in *SecurityValidator) MonitorSecurityWarnings(securityWarningsFetched chan bool)
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 ¶
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 ¶
func (in *ServiceAccount) DeepCopy() *ServiceAccount
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccount.
func (*ServiceAccount) DeepCopyInto ¶
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 ¶
type Slack struct { // The web hook URL to Slack App WebHookURLSecretKeySelector SecretKeySelector `json:"webHookURLSecretKeySelector"` }
Slack is handler for Slack notification channel.
func (*Slack) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Slack.
func (*Slack) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Version ¶ added in v0.7.0
type Version struct { FirstVersion string `json:"firstVersion"` LastVersion string `json:"lastVersion"` }
func (*Version) DeepCopy ¶ added in v0.7.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Version.
func (*Version) DeepCopyInto ¶ added in v0.7.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Warning ¶ added in v0.7.0
type Warning struct { Versions []Version `json:"versions"` ID string `json:"id"` Message string `json:"message"` URL string `json:"url"` Active bool `json:"active"` }
func (*Warning) DeepCopy ¶ added in v0.7.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Warning.
func (*Warning) DeepCopyInto ¶ added in v0.7.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.