Add v1alpha2 Jenkins schema
This commit is contained in:
		
							parent
							
								
									0ae462dbb5
								
							
						
					
					
						commit
						a183531683
					
				|  | @ -1,10 +0,0 @@ | ||||||
| package apis |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha1" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| func init() { |  | ||||||
| 	// Register the types with the Scheme so the components can map objects to GroupVersionKinds and back
 |  | ||||||
| 	AddToSchemes = append(AddToSchemes, v1alpha1.SchemeBuilder.AddToScheme) |  | ||||||
| } |  | ||||||
|  | @ -1,6 +1,9 @@ | ||||||
| package apis | package apis | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
|  | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha1" | ||||||
|  | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2" | ||||||
|  | 
 | ||||||
| 	"k8s.io/apimachinery/pkg/runtime" | 	"k8s.io/apimachinery/pkg/runtime" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | @ -11,3 +14,10 @@ var AddToSchemes runtime.SchemeBuilder | ||||||
| func AddToScheme(s *runtime.Scheme) error { | func AddToScheme(s *runtime.Scheme) error { | ||||||
| 	return AddToSchemes.AddToScheme(s) | 	return AddToSchemes.AddToScheme(s) | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | func init() { | ||||||
|  | 	// Register the types with the Scheme so the components can map objects to GroupVersionKinds and back
 | ||||||
|  | 	AddToSchemes = append(AddToSchemes, v1alpha1.SchemeBuilder.AddToScheme) | ||||||
|  | 	// Register the types with the Scheme so the components can map objects to GroupVersionKinds and back
 | ||||||
|  | 	AddToSchemes = append(AddToSchemes, v1alpha2.SchemeBuilder.AddToScheme) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -0,0 +1,4 @@ | ||||||
|  | // Package v1alpha2 contains API Schema definitions for the jenkins.io v1alpha2 API group
 | ||||||
|  | // +k8s:deepcopy-gen=package,register
 | ||||||
|  | // +groupName=jenkins.io
 | ||||||
|  | package v1alpha2 | ||||||
|  | @ -0,0 +1,166 @@ | ||||||
|  | package v1alpha2 | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	corev1 "k8s.io/api/core/v1" | ||||||
|  | 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | // EDIT THIS FILE!  THIS IS SCAFFOLDING FOR YOU TO OWN!
 | ||||||
|  | // NOTE: json tags are required.  Any new fields you add must have json tags for the fields to be serialized.
 | ||||||
|  | 
 | ||||||
|  | // JenkinsSpec defines the desired state of Jenkins
 | ||||||
|  | // +k8s:openapi-gen=true
 | ||||||
|  | type JenkinsSpec struct { | ||||||
|  | 	// INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
 | ||||||
|  | 	// Important: Run "operator-sdk generate k8s" to regenerate code after modifying this file
 | ||||||
|  | 	Master       JenkinsMaster `json:"master,omitempty"` | ||||||
|  | 	SeedJobs     []SeedJob     `json:"seedJobs,omitempty"` | ||||||
|  | 	Service      Service       `json:"service,omitempty"` | ||||||
|  | 	SlaveService Service       `json:"slaveService,omitempty"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Container defines Kubernetes container attributes
 | ||||||
|  | type Container struct { | ||||||
|  | 	Name            string                      `json:"name"` | ||||||
|  | 	Image           string                      `json:"image"` | ||||||
|  | 	Command         []string                    `json:"command,omitempty"` | ||||||
|  | 	Args            []string                    `json:"args,omitempty"` | ||||||
|  | 	WorkingDir      string                      `json:"workingDir,omitempty"` | ||||||
|  | 	Ports           []corev1.ContainerPort      `json:"ports,omitempty"` | ||||||
|  | 	EnvFrom         []corev1.EnvFromSource      `json:"envFrom,omitempty"` | ||||||
|  | 	Env             []corev1.EnvVar             `json:"env,omitempty"` | ||||||
|  | 	Resources       corev1.ResourceRequirements `json:"resources,omitempty"` | ||||||
|  | 	VolumeMounts    []corev1.VolumeMount        `json:"volumeMounts,omitempty"` | ||||||
|  | 	LivenessProbe   *corev1.Probe               `json:"livenessProbe,omitempty"` | ||||||
|  | 	ReadinessProbe  *corev1.Probe               `json:"readinessProbe,omitempty"` | ||||||
|  | 	Lifecycle       *corev1.Lifecycle           `json:"lifecycle,omitempty"` | ||||||
|  | 	ImagePullPolicy corev1.PullPolicy           `json:"imagePullPolicy,omitempty"` | ||||||
|  | 	SecurityContext *corev1.SecurityContext     `json:"securityContext,omitempty"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // JenkinsMaster defines the Jenkins master pod attributes and plugins,
 | ||||||
|  | // every single change requires Jenkins master pod restart
 | ||||||
|  | type JenkinsMaster struct { | ||||||
|  | 	Container //TODO move to containers
 | ||||||
|  | 
 | ||||||
|  | 	// pod properties
 | ||||||
|  | 	Annotations  map[string]string `json:"masterAnnotations,omitempty"` | ||||||
|  | 	NodeSelector map[string]string `json:"nodeSelector,omitempty"` | ||||||
|  | 	Containers   []Container       `json:"containers,omitempty"` | ||||||
|  | 	Volumes      []corev1.Volume   `json:"volumes,omitempty"` | ||||||
|  | 
 | ||||||
|  | 	// OperatorPlugins contains plugins required by operator
 | ||||||
|  | 	OperatorPlugins map[string][]string `json:"basePlugins,omitempty"` | ||||||
|  | 	// Plugins contains plugins required by user
 | ||||||
|  | 	Plugins map[string][]string `json:"plugins,omitempty"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Service defines Kubernetes service attributes which Operator will manage
 | ||||||
|  | type Service struct { | ||||||
|  | 	Annotations              map[string]string  `json:"annotations,omitempty"` | ||||||
|  | 	Labels                   map[string]string  `json:"labels,omitempty"` | ||||||
|  | 	Type                     corev1.ServiceType `json:"type,omitempty"` | ||||||
|  | 	Port                     int32              `json:"port,omitempty"` | ||||||
|  | 	NodePort                 int32              `json:"nodePort,omitempty"` | ||||||
|  | 	LoadBalancerSourceRanges []string           `json:"loadBalancerSourceRanges,omitempty"` | ||||||
|  | 	LoadBalancerIP           string             `json:"loadBalancerIP,omitempty"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // JenkinsStatus defines the observed state of Jenkins
 | ||||||
|  | // +k8s:openapi-gen=true
 | ||||||
|  | type JenkinsStatus struct { | ||||||
|  | 	// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
 | ||||||
|  | 	// Important: Run "operator-sdk generate k8s" to regenerate code after modifying this file
 | ||||||
|  | 	OperatorVersion                string       `json:"operatorVersion,omitempty"` | ||||||
|  | 	ProvisionStartTime             *metav1.Time `json:"provisionStartTime,omitempty"` | ||||||
|  | 	BaseConfigurationCompletedTime *metav1.Time `json:"baseConfigurationCompletedTime,omitempty"` | ||||||
|  | 	UserConfigurationCompletedTime *metav1.Time `json:"userConfigurationCompletedTime,omitempty"` | ||||||
|  | 	Builds                         []Build      `json:"builds,omitempty"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // BuildStatus defines type of Jenkins build job status
 | ||||||
|  | type BuildStatus string | ||||||
|  | 
 | ||||||
|  | const ( | ||||||
|  | 	// BuildSuccessStatus - the build had no errors
 | ||||||
|  | 	BuildSuccessStatus BuildStatus = "success" | ||||||
|  | 	// BuildUnstableStatus - the build had some errors but they were not fatal. For example, some tests failed
 | ||||||
|  | 	BuildUnstableStatus BuildStatus = "unstable" | ||||||
|  | 	// BuildNotBuildStatus - this status code is used in a multi-stage build (like maven2) where a problem in earlier stage prevented later stages from building
 | ||||||
|  | 	BuildNotBuildStatus BuildStatus = "not_build" | ||||||
|  | 	// BuildFailureStatus - the build had a fatal error
 | ||||||
|  | 	BuildFailureStatus BuildStatus = "failure" | ||||||
|  | 	// BuildAbortedStatus - the build was manually aborted
 | ||||||
|  | 	BuildAbortedStatus BuildStatus = "aborted" | ||||||
|  | 	// BuildRunningStatus - this is custom build status for running build, not present in jenkins build result
 | ||||||
|  | 	BuildRunningStatus BuildStatus = "running" | ||||||
|  | 	// BuildExpiredStatus - this is custom build status for expired build, not present in jenkins build result
 | ||||||
|  | 	BuildExpiredStatus BuildStatus = "expired" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | // Build defines Jenkins Build status with corresponding metadata
 | ||||||
|  | type Build struct { | ||||||
|  | 	JobName        string       `json:"jobName,omitempty"` | ||||||
|  | 	Hash           string       `json:"hash,omitempty"` | ||||||
|  | 	Number         int64        `json:"number,omitempty"` | ||||||
|  | 	Status         BuildStatus  `json:"status,omitempty"` | ||||||
|  | 	Retires        int          `json:"retries,omitempty"` | ||||||
|  | 	CreateTime     *metav1.Time `json:"createTime,omitempty"` | ||||||
|  | 	LastUpdateTime *metav1.Time `json:"lastUpdateTime,omitempty"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
 | ||||||
|  | 
 | ||||||
|  | // Jenkins is the Schema for the jenkins API
 | ||||||
|  | // +k8s:openapi-gen=true
 | ||||||
|  | // +kubebuilder:subresource:status
 | ||||||
|  | type Jenkins struct { | ||||||
|  | 	metav1.TypeMeta   `json:",inline"` | ||||||
|  | 	metav1.ObjectMeta `json:"metadata,omitempty"` | ||||||
|  | 
 | ||||||
|  | 	Spec   JenkinsSpec   `json:"spec,omitempty"` | ||||||
|  | 	Status JenkinsStatus `json:"status,omitempty"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
 | ||||||
|  | 
 | ||||||
|  | // JenkinsList contains a list of Jenkins
 | ||||||
|  | type JenkinsList struct { | ||||||
|  | 	metav1.TypeMeta `json:",inline"` | ||||||
|  | 	metav1.ListMeta `json:"metadata,omitempty"` | ||||||
|  | 	Items           []Jenkins `json:"items"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // JenkinsCredentialType defines type of Jenkins credential used to seed job mechanisms
 | ||||||
|  | type JenkinsCredentialType string | ||||||
|  | 
 | ||||||
|  | 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" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | // AllowedJenkinsCredentialMap contains all allowed Jenkins credentials types
 | ||||||
|  | var AllowedJenkinsCredentialMap = map[string]string{ | ||||||
|  | 	string(NoJenkinsCredentialCredentialType): "", | ||||||
|  | 	string(BasicSSHCredentialType):            "", | ||||||
|  | 	string(UsernamePasswordCredentialType):    "", | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // SeedJob defined configuration for seed jobs and deploy keys
 | ||||||
|  | type SeedJob struct { | ||||||
|  | 	ID                    string                `json:"id,omitempty"` | ||||||
|  | 	CredentialID          string                `json:"credentialID,omitempty"` | ||||||
|  | 	Description           string                `json:"description,omitempty"` | ||||||
|  | 	Targets               string                `json:"targets,omitempty"` | ||||||
|  | 	RepositoryBranch      string                `json:"repositoryBranch,omitempty"` | ||||||
|  | 	RepositoryURL         string                `json:"repositoryUrl,omitempty"` | ||||||
|  | 	JenkinsCredentialType JenkinsCredentialType `json:"credentialType,omitempty"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func init() { | ||||||
|  | 	SchemeBuilder.Register(&Jenkins{}, &JenkinsList{}) | ||||||
|  | } | ||||||
|  | @ -0,0 +1,27 @@ | ||||||
|  | // NOTE: Boilerplate only.  Ignore this file.
 | ||||||
|  | 
 | ||||||
|  | // Package v1alpha2 contains API Schema definitions for the jenkins.io v1alpha2 API group
 | ||||||
|  | // +k8s:deepcopy-gen=package,register
 | ||||||
|  | // +groupName=jenkins.io
 | ||||||
|  | package v1alpha2 | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"k8s.io/apimachinery/pkg/runtime/schema" | ||||||
|  | 	"sigs.k8s.io/controller-runtime/pkg/runtime/scheme" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | const ( | ||||||
|  | 	// Kind defines Jenkins CRD kind name
 | ||||||
|  | 	Kind = "Jenkins" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | 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} | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | // GetObjectKind returns Jenkins object kind
 | ||||||
|  | func (in *Jenkins) GetObjectKind() schema.ObjectKind { return in } | ||||||
|  | @ -0,0 +1,299 @@ | ||||||
|  | // +build !ignore_autogenerated
 | ||||||
|  | 
 | ||||||
|  | /* | ||||||
|  | Copyright The Kubernetes Authors. | ||||||
|  | 
 | ||||||
|  | Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  | you may not use this file except in compliance with the License. | ||||||
|  | You may obtain a copy of the License at | ||||||
|  | 
 | ||||||
|  |     http://www.apache.org/licenses/LICENSE-2.0
 | ||||||
|  | 
 | ||||||
|  | Unless required by applicable law or agreed to in writing, software | ||||||
|  | distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  | See the License for the specific language governing permissions and | ||||||
|  | limitations under the License. | ||||||
|  | */ | ||||||
|  | 
 | ||||||
|  | // Code generated by deepcopy-gen. DO NOT EDIT.
 | ||||||
|  | 
 | ||||||
|  | package v1alpha2 | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	v1 "k8s.io/api/core/v1" | ||||||
|  | 	runtime "k8s.io/apimachinery/pkg/runtime" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 | ||||||
|  | func (in *Build) DeepCopyInto(out *Build) { | ||||||
|  | 	*out = *in | ||||||
|  | 	if in.CreateTime != nil { | ||||||
|  | 		in, out := &in.CreateTime, &out.CreateTime | ||||||
|  | 		*out = (*in).DeepCopy() | ||||||
|  | 	} | ||||||
|  | 	if in.LastUpdateTime != nil { | ||||||
|  | 		in, out := &in.LastUpdateTime, &out.LastUpdateTime | ||||||
|  | 		*out = (*in).DeepCopy() | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Build.
 | ||||||
|  | func (in *Build) DeepCopy() *Build { | ||||||
|  | 	if in == nil { | ||||||
|  | 		return nil | ||||||
|  | 	} | ||||||
|  | 	out := new(Build) | ||||||
|  | 	in.DeepCopyInto(out) | ||||||
|  | 	return out | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 | ||||||
|  | func (in *Jenkins) DeepCopyInto(out *Jenkins) { | ||||||
|  | 	*out = *in | ||||||
|  | 	out.TypeMeta = in.TypeMeta | ||||||
|  | 	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) | ||||||
|  | 	in.Spec.DeepCopyInto(&out.Spec) | ||||||
|  | 	in.Status.DeepCopyInto(&out.Status) | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Jenkins.
 | ||||||
|  | func (in *Jenkins) DeepCopy() *Jenkins { | ||||||
|  | 	if in == nil { | ||||||
|  | 		return nil | ||||||
|  | 	} | ||||||
|  | 	out := new(Jenkins) | ||||||
|  | 	in.DeepCopyInto(out) | ||||||
|  | 	return out | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
 | ||||||
|  | func (in *Jenkins) DeepCopyObject() runtime.Object { | ||||||
|  | 	if c := in.DeepCopy(); c != nil { | ||||||
|  | 		return c | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 | ||||||
|  | func (in *JenkinsList) DeepCopyInto(out *JenkinsList) { | ||||||
|  | 	*out = *in | ||||||
|  | 	out.TypeMeta = in.TypeMeta | ||||||
|  | 	out.ListMeta = in.ListMeta | ||||||
|  | 	if in.Items != nil { | ||||||
|  | 		in, out := &in.Items, &out.Items | ||||||
|  | 		*out = make([]Jenkins, len(*in)) | ||||||
|  | 		for i := range *in { | ||||||
|  | 			(*in)[i].DeepCopyInto(&(*out)[i]) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JenkinsList.
 | ||||||
|  | func (in *JenkinsList) DeepCopy() *JenkinsList { | ||||||
|  | 	if in == nil { | ||||||
|  | 		return nil | ||||||
|  | 	} | ||||||
|  | 	out := new(JenkinsList) | ||||||
|  | 	in.DeepCopyInto(out) | ||||||
|  | 	return out | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
 | ||||||
|  | func (in *JenkinsList) DeepCopyObject() runtime.Object { | ||||||
|  | 	if c := in.DeepCopy(); c != nil { | ||||||
|  | 		return c | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 | ||||||
|  | func (in *JenkinsMaster) DeepCopyInto(out *JenkinsMaster) { | ||||||
|  | 	*out = *in | ||||||
|  | 	if in.NodeSelector != nil { | ||||||
|  | 		in, out := &in.NodeSelector, &out.NodeSelector | ||||||
|  | 		*out = make(map[string]string, len(*in)) | ||||||
|  | 		for key, val := range *in { | ||||||
|  | 			(*out)[key] = val | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	if in.Annotations != nil { | ||||||
|  | 		in, out := &in.Annotations, &out.Annotations | ||||||
|  | 		*out = make(map[string]string, len(*in)) | ||||||
|  | 		for key, val := range *in { | ||||||
|  | 			(*out)[key] = val | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	in.Resources.DeepCopyInto(&out.Resources) | ||||||
|  | 	if in.Env != nil { | ||||||
|  | 		in, out := &in.Env, &out.Env | ||||||
|  | 		*out = make([]v1.EnvVar, len(*in)) | ||||||
|  | 		for i := range *in { | ||||||
|  | 			(*in)[i].DeepCopyInto(&(*out)[i]) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	if in.LivenessProbe != nil { | ||||||
|  | 		in, out := &in.LivenessProbe, &out.LivenessProbe | ||||||
|  | 		*out = new(v1.Probe) | ||||||
|  | 		(*in).DeepCopyInto(*out) | ||||||
|  | 	} | ||||||
|  | 	if in.ReadinessProbe != nil { | ||||||
|  | 		in, out := &in.ReadinessProbe, &out.ReadinessProbe | ||||||
|  | 		*out = new(v1.Probe) | ||||||
|  | 		(*in).DeepCopyInto(*out) | ||||||
|  | 	} | ||||||
|  | 	if in.OperatorPlugins != nil { | ||||||
|  | 		in, out := &in.OperatorPlugins, &out.OperatorPlugins | ||||||
|  | 		*out = make(map[string][]string, len(*in)) | ||||||
|  | 		for key, val := range *in { | ||||||
|  | 			var outVal []string | ||||||
|  | 			if val == nil { | ||||||
|  | 				(*out)[key] = nil | ||||||
|  | 			} else { | ||||||
|  | 				in, out := &val, &outVal | ||||||
|  | 				*out = make([]string, len(*in)) | ||||||
|  | 				copy(*out, *in) | ||||||
|  | 			} | ||||||
|  | 			(*out)[key] = outVal | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	if in.Plugins != nil { | ||||||
|  | 		in, out := &in.Plugins, &out.Plugins | ||||||
|  | 		*out = make(map[string][]string, len(*in)) | ||||||
|  | 		for key, val := range *in { | ||||||
|  | 			var outVal []string | ||||||
|  | 			if val == nil { | ||||||
|  | 				(*out)[key] = nil | ||||||
|  | 			} else { | ||||||
|  | 				in, out := &val, &outVal | ||||||
|  | 				*out = make([]string, len(*in)) | ||||||
|  | 				copy(*out, *in) | ||||||
|  | 			} | ||||||
|  | 			(*out)[key] = outVal | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JenkinsMaster.
 | ||||||
|  | func (in *JenkinsMaster) DeepCopy() *JenkinsMaster { | ||||||
|  | 	if in == nil { | ||||||
|  | 		return nil | ||||||
|  | 	} | ||||||
|  | 	out := new(JenkinsMaster) | ||||||
|  | 	in.DeepCopyInto(out) | ||||||
|  | 	return out | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 | ||||||
|  | func (in *JenkinsSpec) DeepCopyInto(out *JenkinsSpec) { | ||||||
|  | 	*out = *in | ||||||
|  | 	in.Master.DeepCopyInto(&out.Master) | ||||||
|  | 	if in.SeedJobs != nil { | ||||||
|  | 		in, out := &in.SeedJobs, &out.SeedJobs | ||||||
|  | 		*out = make([]SeedJob, len(*in)) | ||||||
|  | 		copy(*out, *in) | ||||||
|  | 	} | ||||||
|  | 	in.Service.DeepCopyInto(&out.Service) | ||||||
|  | 	in.SlaveService.DeepCopyInto(&out.SlaveService) | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JenkinsSpec.
 | ||||||
|  | func (in *JenkinsSpec) DeepCopy() *JenkinsSpec { | ||||||
|  | 	if in == nil { | ||||||
|  | 		return nil | ||||||
|  | 	} | ||||||
|  | 	out := new(JenkinsSpec) | ||||||
|  | 	in.DeepCopyInto(out) | ||||||
|  | 	return out | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 | ||||||
|  | func (in *JenkinsStatus) DeepCopyInto(out *JenkinsStatus) { | ||||||
|  | 	*out = *in | ||||||
|  | 	if in.ProvisionStartTime != nil { | ||||||
|  | 		in, out := &in.ProvisionStartTime, &out.ProvisionStartTime | ||||||
|  | 		*out = (*in).DeepCopy() | ||||||
|  | 	} | ||||||
|  | 	if in.BaseConfigurationCompletedTime != nil { | ||||||
|  | 		in, out := &in.BaseConfigurationCompletedTime, &out.BaseConfigurationCompletedTime | ||||||
|  | 		*out = (*in).DeepCopy() | ||||||
|  | 	} | ||||||
|  | 	if in.UserConfigurationCompletedTime != nil { | ||||||
|  | 		in, out := &in.UserConfigurationCompletedTime, &out.UserConfigurationCompletedTime | ||||||
|  | 		*out = (*in).DeepCopy() | ||||||
|  | 	} | ||||||
|  | 	if in.Builds != nil { | ||||||
|  | 		in, out := &in.Builds, &out.Builds | ||||||
|  | 		*out = make([]Build, len(*in)) | ||||||
|  | 		for i := range *in { | ||||||
|  | 			(*in)[i].DeepCopyInto(&(*out)[i]) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JenkinsStatus.
 | ||||||
|  | func (in *JenkinsStatus) DeepCopy() *JenkinsStatus { | ||||||
|  | 	if in == nil { | ||||||
|  | 		return nil | ||||||
|  | 	} | ||||||
|  | 	out := new(JenkinsStatus) | ||||||
|  | 	in.DeepCopyInto(out) | ||||||
|  | 	return out | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 | ||||||
|  | func (in *SeedJob) DeepCopyInto(out *SeedJob) { | ||||||
|  | 	*out = *in | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SeedJob.
 | ||||||
|  | func (in *SeedJob) DeepCopy() *SeedJob { | ||||||
|  | 	if in == nil { | ||||||
|  | 		return nil | ||||||
|  | 	} | ||||||
|  | 	out := new(SeedJob) | ||||||
|  | 	in.DeepCopyInto(out) | ||||||
|  | 	return out | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 | ||||||
|  | func (in *Service) DeepCopyInto(out *Service) { | ||||||
|  | 	*out = *in | ||||||
|  | 	if in.Annotations != nil { | ||||||
|  | 		in, out := &in.Annotations, &out.Annotations | ||||||
|  | 		*out = make(map[string]string, len(*in)) | ||||||
|  | 		for key, val := range *in { | ||||||
|  | 			(*out)[key] = val | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	if in.Labels != nil { | ||||||
|  | 		in, out := &in.Labels, &out.Labels | ||||||
|  | 		*out = make(map[string]string, len(*in)) | ||||||
|  | 		for key, val := range *in { | ||||||
|  | 			(*out)[key] = val | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	if in.LoadBalancerSourceRanges != nil { | ||||||
|  | 		in, out := &in.LoadBalancerSourceRanges, &out.LoadBalancerSourceRanges | ||||||
|  | 		*out = make([]string, len(*in)) | ||||||
|  | 		copy(*out, *in) | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Service.
 | ||||||
|  | func (in *Service) DeepCopy() *Service { | ||||||
|  | 	if in == nil { | ||||||
|  | 		return nil | ||||||
|  | 	} | ||||||
|  | 	out := new(Service) | ||||||
|  | 	in.DeepCopyInto(out) | ||||||
|  | 	return out | ||||||
|  | } | ||||||
|  | @ -0,0 +1,153 @@ | ||||||
|  | // +build !ignore_autogenerated
 | ||||||
|  | 
 | ||||||
|  | // Code generated by openapi-gen. DO NOT EDIT.
 | ||||||
|  | 
 | ||||||
|  | // This file was autogenerated by openapi-gen. Do not edit it manually!
 | ||||||
|  | 
 | ||||||
|  | package v1alpha2 | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	spec "github.com/go-openapi/spec" | ||||||
|  | 	common "k8s.io/kube-openapi/pkg/common" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition { | ||||||
|  | 	return map[string]common.OpenAPIDefinition{ | ||||||
|  | 		"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Jenkins":       schema_pkg_apis_jenkins_v1alpha2_Jenkins(ref), | ||||||
|  | 		"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsSpec":   schema_pkg_apis_jenkins_v1alpha2_JenkinsSpec(ref), | ||||||
|  | 		"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsStatus": schema_pkg_apis_jenkins_v1alpha2_JenkinsStatus(ref), | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func schema_pkg_apis_jenkins_v1alpha2_Jenkins(ref common.ReferenceCallback) common.OpenAPIDefinition { | ||||||
|  | 	return common.OpenAPIDefinition{ | ||||||
|  | 		Schema: spec.Schema{ | ||||||
|  | 			SchemaProps: spec.SchemaProps{ | ||||||
|  | 				Description: "Jenkins is the Schema for the jenkins API", | ||||||
|  | 				Properties: map[string]spec.Schema{ | ||||||
|  | 					"kind": { | ||||||
|  | 						SchemaProps: spec.SchemaProps{ | ||||||
|  | 							Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", | ||||||
|  | 							Type:        []string{"string"}, | ||||||
|  | 							Format:      "", | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 					"apiVersion": { | ||||||
|  | 						SchemaProps: spec.SchemaProps{ | ||||||
|  | 							Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", | ||||||
|  | 							Type:        []string{"string"}, | ||||||
|  | 							Format:      "", | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 					"metadata": { | ||||||
|  | 						SchemaProps: spec.SchemaProps{ | ||||||
|  | 							Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 					"spec": { | ||||||
|  | 						SchemaProps: spec.SchemaProps{ | ||||||
|  | 							Ref: ref("github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsSpec"), | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 					"status": { | ||||||
|  | 						SchemaProps: spec.SchemaProps{ | ||||||
|  | 							Ref: ref("github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsStatus"), | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
|  | 		Dependencies: []string{ | ||||||
|  | 			"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsSpec", "github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func schema_pkg_apis_jenkins_v1alpha2_JenkinsSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { | ||||||
|  | 	return common.OpenAPIDefinition{ | ||||||
|  | 		Schema: spec.Schema{ | ||||||
|  | 			SchemaProps: spec.SchemaProps{ | ||||||
|  | 				Description: "JenkinsSpec defines the desired state of Jenkins", | ||||||
|  | 				Properties: map[string]spec.Schema{ | ||||||
|  | 					"master": { | ||||||
|  | 						SchemaProps: spec.SchemaProps{ | ||||||
|  | 							Description: "INSERT ADDITIONAL SPEC FIELDS - desired state of cluster Important: Run \"operator-sdk generate k8s\" to regenerate code after modifying this file", | ||||||
|  | 							Ref:         ref("github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsMaster"), | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 					"seedJobs": { | ||||||
|  | 						SchemaProps: spec.SchemaProps{ | ||||||
|  | 							Type: []string{"array"}, | ||||||
|  | 							Items: &spec.SchemaOrArray{ | ||||||
|  | 								Schema: &spec.Schema{ | ||||||
|  | 									SchemaProps: spec.SchemaProps{ | ||||||
|  | 										Ref: ref("github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.SeedJob"), | ||||||
|  | 									}, | ||||||
|  | 								}, | ||||||
|  | 							}, | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 					"service": { | ||||||
|  | 						SchemaProps: spec.SchemaProps{ | ||||||
|  | 							Ref: ref("github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Service"), | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 					"slaveService": { | ||||||
|  | 						SchemaProps: spec.SchemaProps{ | ||||||
|  | 							Ref: ref("github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Service"), | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
|  | 		Dependencies: []string{ | ||||||
|  | 			"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsMaster", "github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.SeedJob", "github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Service"}, | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func schema_pkg_apis_jenkins_v1alpha2_JenkinsStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { | ||||||
|  | 	return common.OpenAPIDefinition{ | ||||||
|  | 		Schema: spec.Schema{ | ||||||
|  | 			SchemaProps: spec.SchemaProps{ | ||||||
|  | 				Description: "JenkinsStatus defines the observed state of Jenkins", | ||||||
|  | 				Properties: map[string]spec.Schema{ | ||||||
|  | 					"operatorVersion": { | ||||||
|  | 						SchemaProps: spec.SchemaProps{ | ||||||
|  | 							Description: "INSERT ADDITIONAL STATUS FIELD - define observed state of cluster Important: Run \"operator-sdk generate k8s\" to regenerate code after modifying this file", | ||||||
|  | 							Type:        []string{"string"}, | ||||||
|  | 							Format:      "", | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 					"provisionStartTime": { | ||||||
|  | 						SchemaProps: spec.SchemaProps{ | ||||||
|  | 							Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 					"baseConfigurationCompletedTime": { | ||||||
|  | 						SchemaProps: spec.SchemaProps{ | ||||||
|  | 							Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 					"userConfigurationCompletedTime": { | ||||||
|  | 						SchemaProps: spec.SchemaProps{ | ||||||
|  | 							Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 					"builds": { | ||||||
|  | 						SchemaProps: spec.SchemaProps{ | ||||||
|  | 							Type: []string{"array"}, | ||||||
|  | 							Items: &spec.SchemaOrArray{ | ||||||
|  | 								Schema: &spec.Schema{ | ||||||
|  | 									SchemaProps: spec.SchemaProps{ | ||||||
|  | 										Ref: ref("github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Build"), | ||||||
|  | 									}, | ||||||
|  | 								}, | ||||||
|  | 							}, | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
|  | 		Dependencies: []string{ | ||||||
|  | 			"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Build", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, | ||||||
|  | 	} | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue