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 | ||||
| 
 | ||||
| import ( | ||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha1" | ||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2" | ||||
| 
 | ||||
| 	"k8s.io/apimachinery/pkg/runtime" | ||||
| ) | ||||
| 
 | ||||
|  | @ -11,3 +14,10 @@ var AddToSchemes runtime.SchemeBuilder | |||
| func AddToScheme(s *runtime.Scheme) error { | ||||
| 	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