Rename virtuslab.com to jenkins.io
This commit is contained in:
		
							parent
							
								
									8c1a44bc30
								
							
						
					
					
						commit
						da17e1a011
					
				
							
								
								
									
										4
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										4
									
								
								Makefile
								
								
								
								
							|  | @ -159,7 +159,7 @@ ifeq ($(ENVIRONMENT),minikube) | ||||||
| endif | endif | ||||||
| 
 | 
 | ||||||
| 	@RUNNING_TESTS=1 go test -parallel=1 "./test/e2e/" -tags "$(BUILDTAGS) cgo" -v -timeout 30m \
 | 	@RUNNING_TESTS=1 go test -parallel=1 "./test/e2e/" -tags "$(BUILDTAGS) cgo" -v -timeout 30m \
 | ||||||
| 		-root=$(CURRENT_DIRECTORY) -kubeconfig=$(HOME)/.kube/config -globalMan deploy/crds/virtuslab_v1alpha1_jenkins_crd.yaml -namespacedMan deploy/namespace-init.yaml $(EXTRA_ARGS) | 		-root=$(CURRENT_DIRECTORY) -kubeconfig=$(HOME)/.kube/config -globalMan deploy/crds/jenkinsio_v1alpha1_jenkins_crd.yaml -namespacedMan deploy/namespace-init.yaml $(EXTRA_ARGS) | ||||||
| 
 | 
 | ||||||
| .PHONY: vet | .PHONY: vet | ||||||
| vet: ## Verifies `go vet` passes
 | vet: ## Verifies `go vet` passes
 | ||||||
|  | @ -307,7 +307,7 @@ minikube-run: export OPERATOR_NAME = $(NAME) | ||||||
| minikube-run: start-minikube ## Run the operator locally and use minikube as Kubernetes cluster, you can use EXTRA_ARGS
 | minikube-run: start-minikube ## Run the operator locally and use minikube as Kubernetes cluster, you can use EXTRA_ARGS
 | ||||||
| 	@echo "+ $@" | 	@echo "+ $@" | ||||||
| 	kubectl config use-context minikube | 	kubectl config use-context minikube | ||||||
| 	kubectl apply -f deploy/crds/virtuslab_v1alpha1_jenkins_crd.yaml | 	kubectl apply -f deploy/crds/jenkinsio_v1alpha1_jenkins_crd.yaml | ||||||
| 	@echo "Watching '$(WATCH_NAMESPACE)' namespace" | 	@echo "Watching '$(WATCH_NAMESPACE)' namespace" | ||||||
| 	build/_output/bin/jenkins-operator $(EXTRA_ARGS) | 	build/_output/bin/jenkins-operator $(EXTRA_ARGS) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| apiVersion: virtuslab.com/v1alpha1 | apiVersion: jenkins.io/v1alpha1 | ||||||
| kind: Jenkins | kind: Jenkins | ||||||
| metadata: | metadata: | ||||||
|   name: example |   name: example | ||||||
|  | @ -1,9 +1,9 @@ | ||||||
| apiVersion: apiextensions.k8s.io/v1beta1 | apiVersion: apiextensions.k8s.io/v1beta1 | ||||||
| kind: CustomResourceDefinition | kind: CustomResourceDefinition | ||||||
| metadata: | metadata: | ||||||
|   name: jenkins.virtuslab.com |   name: jenkins.jenkins.io | ||||||
| spec: | spec: | ||||||
|   group: virtuslab.com |   group: jenkins.io | ||||||
|   names: |   names: | ||||||
|     kind: Jenkins |     kind: Jenkins | ||||||
|     listKind: JenkinsList |     listKind: JenkinsList | ||||||
|  | @ -5,7 +5,7 @@ metadata: | ||||||
|   name: jenkins-operator |   name: jenkins-operator | ||||||
| rules: | rules: | ||||||
|   - apiGroups: |   - apiGroups: | ||||||
|       - virtuslab.com |       - jenkins.io | ||||||
|     resources: |     resources: | ||||||
|       - '*' |       - '*' | ||||||
|     verbs: |     verbs: | ||||||
|  |  | ||||||
|  | @ -32,7 +32,7 @@ make build && make minikube-run EXTRA_ARGS='--minikube --local' | ||||||
| Once minikube and **jenkins-operator** are up and running, apply Jenkins custom resource: | Once minikube and **jenkins-operator** are up and running, apply Jenkins custom resource: | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| kubectl apply -f deploy/crds/virtuslab_v1alpha1_jenkins_cr.yaml | kubectl apply -f deploy/crds/jenkinsio_v1alpha1_jenkins_cr.yaml | ||||||
| kubectl get jenkins -o yaml | kubectl get jenkins -o yaml | ||||||
| kubectl get po | kubectl get po | ||||||
| ``` | ``` | ||||||
|  | @ -63,7 +63,7 @@ To be able to work with the docker daemon on `minikube` machine run the followin | ||||||
| eval $(minikube docker-env) | eval $(minikube docker-env) | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| ### When `pkg/apis/virtuslab/v1alpha1/jenkins_types.go` has changed | ### When `pkg/apis/jenkinsio/v1alpha1/jenkins_types.go` has changed | ||||||
| 
 | 
 | ||||||
| Run: | Run: | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -21,7 +21,7 @@ Once jenkins-operator is up and running let's deploy actual Jenkins instance. | ||||||
| Let's use example below: | Let's use example below: | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| apiVersion: virtuslab.com/v1alpha1 | apiVersion: jenkins.io/v1alpha1 | ||||||
| kind: Jenkins | kind: Jenkins | ||||||
| metadata: | metadata: | ||||||
|   name: example |   name: example | ||||||
|  | @ -149,7 +149,7 @@ podTemplate(label: label, | ||||||
| Jenkins Seed Jobs are configured using `Jenkins.spec.seedJobs` section from your custom resource manifest: | Jenkins Seed Jobs are configured using `Jenkins.spec.seedJobs` section from your custom resource manifest: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| apiVersion: virtuslab.com/v1alpha1 | apiVersion: jenkins.io/v1alpha1 | ||||||
| kind: Jenkins | kind: Jenkins | ||||||
| metadata: | metadata: | ||||||
|   name: example |   name: example | ||||||
|  | @ -167,7 +167,7 @@ spec: | ||||||
| If your GitHub repository is **private** you have to configure corresponding **privateKey** and Kubernetes Secret: | If your GitHub repository is **private** you have to configure corresponding **privateKey** and Kubernetes Secret: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| apiVersion: virtuslab.com/v1alpha1 | apiVersion: jenkins.io/v1alpha1 | ||||||
| kind: Jenkins | kind: Jenkins | ||||||
| metadata: | metadata: | ||||||
|   name: example |   name: example | ||||||
|  |  | ||||||
|  | @ -14,7 +14,7 @@ To run **jenkins-operator**, you will need: | ||||||
| Install Jenkins Custom Resource Definition: | Install Jenkins Custom Resource Definition: | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| kubectl apply -f deploy/crds/virtuslab_v1alpha1_jenkins_crd.yaml | kubectl apply -f deploy/crds/jenkinsio_v1alpha1_jenkins_crd.yaml | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| ## Deploy jenkins-operator | ## Deploy jenkins-operator | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| package apis | package apis | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func init() { | func init() { | ||||||
|  | @ -0,0 +1,4 @@ | ||||||
|  | // Package v1alpha1 contains API Schema definitions for the jenkins.io v1alpha1 API group
 | ||||||
|  | // +k8s:deepcopy-gen=package,register
 | ||||||
|  | // +groupName=jenkins.io
 | ||||||
|  | package v1alpha1 | ||||||
|  | @ -1,8 +1,8 @@ | ||||||
| // NOTE: Boilerplate only.  Ignore this file.
 | // NOTE: Boilerplate only.  Ignore this file.
 | ||||||
| 
 | 
 | ||||||
| // Package v1alpha1 contains API Schema definitions for the virtuslab v1alpha1 API group
 | // Package v1alpha1 contains API Schema definitions for the jenkins.io v1alpha1 API group
 | ||||||
| // +k8s:deepcopy-gen=package,register
 | // +k8s:deepcopy-gen=package,register
 | ||||||
| // +groupName=virtuslab.com
 | // +groupName=jenkins.io
 | ||||||
| package v1alpha1 | package v1alpha1 | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
|  | @ -17,7 +17,7 @@ const ( | ||||||
| 
 | 
 | ||||||
| var ( | var ( | ||||||
| 	// SchemeGroupVersion is group version used to register these objects
 | 	// SchemeGroupVersion is group version used to register these objects
 | ||||||
| 	SchemeGroupVersion = schema.GroupVersion{Group: "virtuslab.com", Version: "v1alpha1"} | 	SchemeGroupVersion = schema.GroupVersion{Group: "jenkins.io", Version: "v1alpha1"} | ||||||
| 
 | 
 | ||||||
| 	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
 | 	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
 | ||||||
| 	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} | 	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} | ||||||
|  | @ -1,4 +0,0 @@ | ||||||
| // Package v1alpha1 contains API Schema definitions for the virtuslab v1alpha1 API group
 |  | ||||||
| // +k8s:deepcopy-gen=package,register
 |  | ||||||
| // +groupName=virtuslab.com
 |  | ||||||
| package v1alpha1 |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/plugins" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/plugins" | ||||||
|  | @ -21,7 +21,7 @@ import ( | ||||||
| type AmazonS3Backup struct{} | type AmazonS3Backup struct{} | ||||||
| 
 | 
 | ||||||
| // GetRestoreJobXML returns Jenkins restore backup job config XML
 | // GetRestoreJobXML returns Jenkins restore backup job config XML
 | ||||||
| func (b *AmazonS3Backup) GetRestoreJobXML(jenkins virtuslabv1alpha1.Jenkins) (string, error) { | func (b *AmazonS3Backup) GetRestoreJobXML(jenkins v1alpha1.Jenkins) (string, error) { | ||||||
| 	return `<?xml version='1.1' encoding='UTF-8'?> | 	return `<?xml version='1.1' encoding='UTF-8'?> | ||||||
| <flow-definition plugin="workflow-job@2.31"> | <flow-definition plugin="workflow-job@2.31"> | ||||||
|   <actions/> |   <actions/> | ||||||
|  | @ -106,7 +106,7 @@ node('master') { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // GetBackupJobXML returns Jenkins backup job config XML
 | // GetBackupJobXML returns Jenkins backup job config XML
 | ||||||
| func (b *AmazonS3Backup) GetBackupJobXML(jenkins virtuslabv1alpha1.Jenkins) (string, error) { | func (b *AmazonS3Backup) GetBackupJobXML(jenkins v1alpha1.Jenkins) (string, error) { | ||||||
| 	return `<?xml version='1.1' encoding='UTF-8'?> | 	return `<?xml version='1.1' encoding='UTF-8'?> | ||||||
| <flow-definition plugin="workflow-job@2.31"> | <flow-definition plugin="workflow-job@2.31"> | ||||||
|   <actions/> |   <actions/> | ||||||
|  | @ -188,7 +188,7 @@ node('master') { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // IsConfigurationValidForBasePhase validates if user provided valid configuration of backup for base phase
 | // IsConfigurationValidForBasePhase validates if user provided valid configuration of backup for base phase
 | ||||||
| func (b *AmazonS3Backup) IsConfigurationValidForBasePhase(jenkins virtuslabv1alpha1.Jenkins, logger logr.Logger) bool { | func (b *AmazonS3Backup) IsConfigurationValidForBasePhase(jenkins v1alpha1.Jenkins, logger logr.Logger) bool { | ||||||
| 	if len(jenkins.Spec.BackupAmazonS3.BucketName) == 0 { | 	if len(jenkins.Spec.BackupAmazonS3.BucketName) == 0 { | ||||||
| 		logger.V(log.VWarn).Info("Bucket name not set in 'spec.backupAmazonS3.bucketName'") | 		logger.V(log.VWarn).Info("Bucket name not set in 'spec.backupAmazonS3.bucketName'") | ||||||
| 		return false | 		return false | ||||||
|  | @ -208,7 +208,7 @@ func (b *AmazonS3Backup) IsConfigurationValidForBasePhase(jenkins virtuslabv1alp | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // IsConfigurationValidForUserPhase validates if user provided valid configuration of backup for user phase
 | // IsConfigurationValidForUserPhase validates if user provided valid configuration of backup for user phase
 | ||||||
| func (b *AmazonS3Backup) IsConfigurationValidForUserPhase(k8sClient k8s.Client, jenkins virtuslabv1alpha1.Jenkins, logger logr.Logger) (bool, error) { | func (b *AmazonS3Backup) IsConfigurationValidForUserPhase(k8sClient k8s.Client, jenkins v1alpha1.Jenkins, logger logr.Logger) (bool, error) { | ||||||
| 	backupSecretName := resources.GetBackupCredentialsSecretName(&jenkins) | 	backupSecretName := resources.GetBackupCredentialsSecretName(&jenkins) | ||||||
| 	backupSecret := &corev1.Secret{} | 	backupSecret := &corev1.Secret{} | ||||||
| 	err := k8sClient.Get(context.TODO(), types.NamespacedName{Namespace: jenkins.Namespace, Name: backupSecretName}, backupSecret) | 	err := k8sClient.Get(context.TODO(), types.NamespacedName{Namespace: jenkins.Namespace, Name: backupSecretName}, backupSecret) | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | ||||||
| 
 | 
 | ||||||
| 	"github.com/stretchr/testify/assert" | 	"github.com/stretchr/testify/assert" | ||||||
|  | @ -17,14 +17,14 @@ import ( | ||||||
| func TestAmazonS3Backup_IsConfigurationValidForBasePhase(t *testing.T) { | func TestAmazonS3Backup_IsConfigurationValidForBasePhase(t *testing.T) { | ||||||
| 	tests := []struct { | 	tests := []struct { | ||||||
| 		name    string | 		name    string | ||||||
| 		jenkins virtuslabv1alpha1.Jenkins | 		jenkins v1alpha1.Jenkins | ||||||
| 		want    bool | 		want    bool | ||||||
| 	}{ | 	}{ | ||||||
| 		{ | 		{ | ||||||
| 			name: "happy", | 			name: "happy", | ||||||
| 			jenkins: virtuslabv1alpha1.Jenkins{ | 			jenkins: v1alpha1.Jenkins{ | ||||||
| 				Spec: virtuslabv1alpha1.JenkinsSpec{ | 				Spec: v1alpha1.JenkinsSpec{ | ||||||
| 					BackupAmazonS3: virtuslabv1alpha1.JenkinsBackupAmazonS3{ | 					BackupAmazonS3: v1alpha1.JenkinsBackupAmazonS3{ | ||||||
| 						BucketName: "some-value", | 						BucketName: "some-value", | ||||||
| 						BucketPath: "some-value", | 						BucketPath: "some-value", | ||||||
| 						Region:     "some-value", | 						Region:     "some-value", | ||||||
|  | @ -35,9 +35,9 @@ func TestAmazonS3Backup_IsConfigurationValidForBasePhase(t *testing.T) { | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			name: "fail, no bucket name", | 			name: "fail, no bucket name", | ||||||
| 			jenkins: virtuslabv1alpha1.Jenkins{ | 			jenkins: v1alpha1.Jenkins{ | ||||||
| 				Spec: virtuslabv1alpha1.JenkinsSpec{ | 				Spec: v1alpha1.JenkinsSpec{ | ||||||
| 					BackupAmazonS3: virtuslabv1alpha1.JenkinsBackupAmazonS3{ | 					BackupAmazonS3: v1alpha1.JenkinsBackupAmazonS3{ | ||||||
| 						BucketName: "", | 						BucketName: "", | ||||||
| 						BucketPath: "some-value", | 						BucketPath: "some-value", | ||||||
| 						Region:     "some-value", | 						Region:     "some-value", | ||||||
|  | @ -48,9 +48,9 @@ func TestAmazonS3Backup_IsConfigurationValidForBasePhase(t *testing.T) { | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			name: "fail, no bucket path", | 			name: "fail, no bucket path", | ||||||
| 			jenkins: virtuslabv1alpha1.Jenkins{ | 			jenkins: v1alpha1.Jenkins{ | ||||||
| 				Spec: virtuslabv1alpha1.JenkinsSpec{ | 				Spec: v1alpha1.JenkinsSpec{ | ||||||
| 					BackupAmazonS3: virtuslabv1alpha1.JenkinsBackupAmazonS3{ | 					BackupAmazonS3: v1alpha1.JenkinsBackupAmazonS3{ | ||||||
| 						BucketName: "some-value", | 						BucketName: "some-value", | ||||||
| 						BucketPath: "", | 						BucketPath: "", | ||||||
| 						Region:     "some-value", | 						Region:     "some-value", | ||||||
|  | @ -61,9 +61,9 @@ func TestAmazonS3Backup_IsConfigurationValidForBasePhase(t *testing.T) { | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			name: "fail, no region", | 			name: "fail, no region", | ||||||
| 			jenkins: virtuslabv1alpha1.Jenkins{ | 			jenkins: v1alpha1.Jenkins{ | ||||||
| 				Spec: virtuslabv1alpha1.JenkinsSpec{ | 				Spec: v1alpha1.JenkinsSpec{ | ||||||
| 					BackupAmazonS3: virtuslabv1alpha1.JenkinsBackupAmazonS3{ | 					BackupAmazonS3: v1alpha1.JenkinsBackupAmazonS3{ | ||||||
| 						BucketName: "some-value", | 						BucketName: "some-value", | ||||||
| 						BucketPath: "some-value", | 						BucketPath: "some-value", | ||||||
| 						Region:     "", | 						Region:     "", | ||||||
|  | @ -85,14 +85,14 @@ func TestAmazonS3Backup_IsConfigurationValidForBasePhase(t *testing.T) { | ||||||
| func TestAmazonS3Backup_IsConfigurationValidForUserPhase(t *testing.T) { | func TestAmazonS3Backup_IsConfigurationValidForUserPhase(t *testing.T) { | ||||||
| 	tests := []struct { | 	tests := []struct { | ||||||
| 		name    string | 		name    string | ||||||
| 		jenkins *virtuslabv1alpha1.Jenkins | 		jenkins *v1alpha1.Jenkins | ||||||
| 		secret  *corev1.Secret | 		secret  *corev1.Secret | ||||||
| 		want    bool | 		want    bool | ||||||
| 		wantErr bool | 		wantErr bool | ||||||
| 	}{ | 	}{ | ||||||
| 		{ | 		{ | ||||||
| 			name: "happy", | 			name: "happy", | ||||||
| 			jenkins: &virtuslabv1alpha1.Jenkins{ | 			jenkins: &v1alpha1.Jenkins{ | ||||||
| 				ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"}, | 				ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"}, | ||||||
| 			}, | 			}, | ||||||
| 			secret: &corev1.Secret{ | 			secret: &corev1.Secret{ | ||||||
|  | @ -107,7 +107,7 @@ func TestAmazonS3Backup_IsConfigurationValidForUserPhase(t *testing.T) { | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			name: "fail, no secret", | 			name: "fail, no secret", | ||||||
| 			jenkins: &virtuslabv1alpha1.Jenkins{ | 			jenkins: &v1alpha1.Jenkins{ | ||||||
| 				ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"}, | 				ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"}, | ||||||
| 			}, | 			}, | ||||||
| 			want:    false, | 			want:    false, | ||||||
|  | @ -115,7 +115,7 @@ func TestAmazonS3Backup_IsConfigurationValidForUserPhase(t *testing.T) { | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			name: "fail, no secret key in secret", | 			name: "fail, no secret key in secret", | ||||||
| 			jenkins: &virtuslabv1alpha1.Jenkins{ | 			jenkins: &v1alpha1.Jenkins{ | ||||||
| 				ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"}, | 				ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"}, | ||||||
| 			}, | 			}, | ||||||
| 			secret: &corev1.Secret{ | 			secret: &corev1.Secret{ | ||||||
|  | @ -130,7 +130,7 @@ func TestAmazonS3Backup_IsConfigurationValidForUserPhase(t *testing.T) { | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			name: "fail, no access key in secret", | 			name: "fail, no access key in secret", | ||||||
| 			jenkins: &virtuslabv1alpha1.Jenkins{ | 			jenkins: &v1alpha1.Jenkins{ | ||||||
| 				ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"}, | 				ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"}, | ||||||
| 			}, | 			}, | ||||||
| 			secret: &corev1.Secret{ | 			secret: &corev1.Secret{ | ||||||
|  |  | ||||||
|  | @ -5,7 +5,7 @@ import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/backup/aws" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/backup/aws" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/backup/nobackup" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/backup/nobackup" | ||||||
| 	jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" | 	jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" | ||||||
|  | @ -26,23 +26,23 @@ const ( | ||||||
| 
 | 
 | ||||||
| // Provider defines API of backup providers
 | // Provider defines API of backup providers
 | ||||||
| type Provider interface { | type Provider interface { | ||||||
| 	GetRestoreJobXML(jenkins virtuslabv1alpha1.Jenkins) (string, error) | 	GetRestoreJobXML(jenkins v1alpha1.Jenkins) (string, error) | ||||||
| 	GetBackupJobXML(jenkins virtuslabv1alpha1.Jenkins) (string, error) | 	GetBackupJobXML(jenkins v1alpha1.Jenkins) (string, error) | ||||||
| 	IsConfigurationValidForBasePhase(jenkins virtuslabv1alpha1.Jenkins, logger logr.Logger) bool | 	IsConfigurationValidForBasePhase(jenkins v1alpha1.Jenkins, logger logr.Logger) bool | ||||||
| 	IsConfigurationValidForUserPhase(k8sClient k8s.Client, jenkins virtuslabv1alpha1.Jenkins, logger logr.Logger) (bool, error) | 	IsConfigurationValidForUserPhase(k8sClient k8s.Client, jenkins v1alpha1.Jenkins, logger logr.Logger) (bool, error) | ||||||
| 	GetRequiredPlugins() map[string][]plugins.Plugin | 	GetRequiredPlugins() map[string][]plugins.Plugin | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Backup defines backup manager which is responsible of backup of jobs history
 | // Backup defines backup manager which is responsible of backup of jobs history
 | ||||||
| type Backup struct { | type Backup struct { | ||||||
| 	jenkins       *virtuslabv1alpha1.Jenkins | 	jenkins       *v1alpha1.Jenkins | ||||||
| 	k8sClient     k8s.Client | 	k8sClient     k8s.Client | ||||||
| 	logger        logr.Logger | 	logger        logr.Logger | ||||||
| 	jenkinsClient jenkinsclient.Jenkins | 	jenkinsClient jenkinsclient.Jenkins | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // New returns instance of backup manager
 | // New returns instance of backup manager
 | ||||||
| func New(jenkins *virtuslabv1alpha1.Jenkins, k8sClient k8s.Client, logger logr.Logger, jenkinsClient jenkinsclient.Jenkins) *Backup { | func New(jenkins *v1alpha1.Jenkins, k8sClient k8s.Client, logger logr.Logger, jenkinsClient jenkinsclient.Jenkins) *Backup { | ||||||
| 	return &Backup{jenkins: jenkins, k8sClient: k8sClient, logger: logger, jenkinsClient: jenkinsClient} | 	return &Backup{jenkins: jenkins, k8sClient: k8sClient, logger: logger, jenkinsClient: jenkinsClient} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -127,11 +127,11 @@ func (b *Backup) EnsureBackupJob() error { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // GetBackupProvider returns backup provider by type
 | // GetBackupProvider returns backup provider by type
 | ||||||
| func GetBackupProvider(backupType virtuslabv1alpha1.JenkinsBackup) (Provider, error) { | func GetBackupProvider(backupType v1alpha1.JenkinsBackup) (Provider, error) { | ||||||
| 	switch backupType { | 	switch backupType { | ||||||
| 	case virtuslabv1alpha1.JenkinsBackupTypeNoBackup: | 	case v1alpha1.JenkinsBackupTypeNoBackup: | ||||||
| 		return &nobackup.NoBackup{}, nil | 		return &nobackup.NoBackup{}, nil | ||||||
| 	case virtuslabv1alpha1.JenkinsBackupTypeAmazonS3: | 	case v1alpha1.JenkinsBackupTypeAmazonS3: | ||||||
| 		return &aws.AmazonS3Backup{}, nil | 		return &aws.AmazonS3Backup{}, nil | ||||||
| 	default: | 	default: | ||||||
| 		return nil, errors.Errorf("Invalid BackupManager type '%s'", backupType) | 		return nil, errors.Errorf("Invalid BackupManager type '%s'", backupType) | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| package nobackup | package nobackup | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/plugins" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/plugins" | ||||||
| 
 | 
 | ||||||
| 	"github.com/go-logr/logr" | 	"github.com/go-logr/logr" | ||||||
|  | @ -27,22 +27,22 @@ var emptyJob = `<?xml version='1.1' encoding='UTF-8'?> | ||||||
| ` | ` | ||||||
| 
 | 
 | ||||||
| // GetRestoreJobXML returns Jenkins restore backup job config XML
 | // GetRestoreJobXML returns Jenkins restore backup job config XML
 | ||||||
| func (b *NoBackup) GetRestoreJobXML(jenkins virtuslabv1alpha1.Jenkins) (string, error) { | func (b *NoBackup) GetRestoreJobXML(jenkins v1alpha1.Jenkins) (string, error) { | ||||||
| 	return emptyJob, nil | 	return emptyJob, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // GetBackupJobXML returns Jenkins backup job config XML
 | // GetBackupJobXML returns Jenkins backup job config XML
 | ||||||
| func (b *NoBackup) GetBackupJobXML(jenkins virtuslabv1alpha1.Jenkins) (string, error) { | func (b *NoBackup) GetBackupJobXML(jenkins v1alpha1.Jenkins) (string, error) { | ||||||
| 	return emptyJob, nil | 	return emptyJob, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // IsConfigurationValidForBasePhase validates if user provided valid configuration of backup for base phase
 | // IsConfigurationValidForBasePhase validates if user provided valid configuration of backup for base phase
 | ||||||
| func (b *NoBackup) IsConfigurationValidForBasePhase(jenkins virtuslabv1alpha1.Jenkins, logger logr.Logger) bool { | func (b *NoBackup) IsConfigurationValidForBasePhase(jenkins v1alpha1.Jenkins, logger logr.Logger) bool { | ||||||
| 	return true | 	return true | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // IsConfigurationValidForUserPhase validates if user provided valid configuration of backup for user phase
 | // IsConfigurationValidForUserPhase validates if user provided valid configuration of backup for user phase
 | ||||||
| func (b *NoBackup) IsConfigurationValidForUserPhase(k8sClient k8s.Client, jenkins virtuslabv1alpha1.Jenkins, logger logr.Logger) (bool, error) { | func (b *NoBackup) IsConfigurationValidForUserPhase(k8sClient k8s.Client, jenkins v1alpha1.Jenkins, logger logr.Logger) (bool, error) { | ||||||
| 	return true, nil | 	return true, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ import ( | ||||||
| 	"reflect" | 	"reflect" | ||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/backup" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/backup" | ||||||
| 	jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" | 	jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources" | ||||||
|  | @ -36,13 +36,13 @@ type ReconcileJenkinsBaseConfiguration struct { | ||||||
| 	k8sClient       client.Client | 	k8sClient       client.Client | ||||||
| 	scheme          *runtime.Scheme | 	scheme          *runtime.Scheme | ||||||
| 	logger          logr.Logger | 	logger          logr.Logger | ||||||
| 	jenkins         *virtuslabv1alpha1.Jenkins | 	jenkins         *v1alpha1.Jenkins | ||||||
| 	local, minikube bool | 	local, minikube bool | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // New create structure which takes care of base configuration
 | // New create structure which takes care of base configuration
 | ||||||
| func New(client client.Client, scheme *runtime.Scheme, logger logr.Logger, | func New(client client.Client, scheme *runtime.Scheme, logger logr.Logger, | ||||||
| 	jenkins *virtuslabv1alpha1.Jenkins, local, minikube bool) *ReconcileJenkinsBaseConfiguration { | 	jenkins *v1alpha1.Jenkins, local, minikube bool) *ReconcileJenkinsBaseConfiguration { | ||||||
| 	return &ReconcileJenkinsBaseConfiguration{ | 	return &ReconcileJenkinsBaseConfiguration{ | ||||||
| 		k8sClient: client, | 		k8sClient: client, | ||||||
| 		scheme:    scheme, | 		scheme:    scheme, | ||||||
|  | @ -305,7 +305,7 @@ func (r *ReconcileJenkinsBaseConfiguration) ensureJenkinsMasterPod(meta metav1.O | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return reconcile.Result{}, err | 			return reconcile.Result{}, err | ||||||
| 		} | 		} | ||||||
| 		r.jenkins.Status = virtuslabv1alpha1.JenkinsStatus{} | 		r.jenkins.Status = v1alpha1.JenkinsStatus{} | ||||||
| 		err = r.updateResource(r.jenkins) | 		err = r.updateResource(r.jenkins) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return reconcile.Result{}, err | 			return reconcile.Result{}, err | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/plugins" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/plugins" | ||||||
| 
 | 
 | ||||||
| 	"github.com/stretchr/testify/assert" | 	"github.com/stretchr/testify/assert" | ||||||
|  | @ -17,16 +17,16 @@ import ( | ||||||
| func TestReconcileJenkinsBaseConfiguration_ensurePluginsRequiredByAllBackupProviders(t *testing.T) { | func TestReconcileJenkinsBaseConfiguration_ensurePluginsRequiredByAllBackupProviders(t *testing.T) { | ||||||
| 	tests := []struct { | 	tests := []struct { | ||||||
| 		name            string | 		name            string | ||||||
| 		jenkins         *virtuslabv1alpha1.Jenkins | 		jenkins         *v1alpha1.Jenkins | ||||||
| 		requiredPlugins map[string][]plugins.Plugin | 		requiredPlugins map[string][]plugins.Plugin | ||||||
| 		want            reconcile.Result | 		want            reconcile.Result | ||||||
| 		wantErr         bool | 		wantErr         bool | ||||||
| 	}{ | 	}{ | ||||||
| 		{ | 		{ | ||||||
| 			name: "happy, no required plugins", | 			name: "happy, no required plugins", | ||||||
| 			jenkins: &virtuslabv1alpha1.Jenkins{ | 			jenkins: &v1alpha1.Jenkins{ | ||||||
| 				Spec: virtuslabv1alpha1.JenkinsSpec{ | 				Spec: v1alpha1.JenkinsSpec{ | ||||||
| 					Master: virtuslabv1alpha1.JenkinsMaster{ | 					Master: v1alpha1.JenkinsMaster{ | ||||||
| 						Plugins: map[string][]string{ | 						Plugins: map[string][]string{ | ||||||
| 							"first-plugin:0.0.1": {"second-plugin:0.0.1"}, | 							"first-plugin:0.0.1": {"second-plugin:0.0.1"}, | ||||||
| 						}, | 						}, | ||||||
|  | @ -38,9 +38,9 @@ func TestReconcileJenkinsBaseConfiguration_ensurePluginsRequiredByAllBackupProvi | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			name: "happy, required plugins are set", | 			name: "happy, required plugins are set", | ||||||
| 			jenkins: &virtuslabv1alpha1.Jenkins{ | 			jenkins: &v1alpha1.Jenkins{ | ||||||
| 				Spec: virtuslabv1alpha1.JenkinsSpec{ | 				Spec: v1alpha1.JenkinsSpec{ | ||||||
| 					Master: virtuslabv1alpha1.JenkinsMaster{ | 					Master: v1alpha1.JenkinsMaster{ | ||||||
| 						Plugins: map[string][]string{ | 						Plugins: map[string][]string{ | ||||||
| 							"first-plugin:0.0.1": {"second-plugin:0.0.1"}, | 							"first-plugin:0.0.1": {"second-plugin:0.0.1"}, | ||||||
| 						}, | 						}, | ||||||
|  | @ -55,9 +55,9 @@ func TestReconcileJenkinsBaseConfiguration_ensurePluginsRequiredByAllBackupProvi | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			name: "happy, jenkins CR must be updated", | 			name: "happy, jenkins CR must be updated", | ||||||
| 			jenkins: &virtuslabv1alpha1.Jenkins{ | 			jenkins: &v1alpha1.Jenkins{ | ||||||
| 				Spec: virtuslabv1alpha1.JenkinsSpec{ | 				Spec: v1alpha1.JenkinsSpec{ | ||||||
| 					Master: virtuslabv1alpha1.JenkinsMaster{ | 					Master: v1alpha1.JenkinsMaster{ | ||||||
| 						Plugins: map[string][]string{ | 						Plugins: map[string][]string{ | ||||||
| 							"first-plugin:0.0.1": {"second-plugin:0.0.1"}, | 							"first-plugin:0.0.1": {"second-plugin:0.0.1"}, | ||||||
| 						}, | 						}, | ||||||
|  | @ -73,9 +73,9 @@ func TestReconcileJenkinsBaseConfiguration_ensurePluginsRequiredByAllBackupProvi | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			name: "happy, jenkins CR must be updated", | 			name: "happy, jenkins CR must be updated", | ||||||
| 			jenkins: &virtuslabv1alpha1.Jenkins{ | 			jenkins: &v1alpha1.Jenkins{ | ||||||
| 				Spec: virtuslabv1alpha1.JenkinsSpec{ | 				Spec: v1alpha1.JenkinsSpec{ | ||||||
| 					Master: virtuslabv1alpha1.JenkinsMaster{ | 					Master: v1alpha1.JenkinsMaster{ | ||||||
| 						Plugins: map[string][]string{ | 						Plugins: map[string][]string{ | ||||||
| 							"first-plugin:0.0.1": {"second-plugin:0.0.1"}, | 							"first-plugin:0.0.1": {"second-plugin:0.0.1"}, | ||||||
| 						}, | 						}, | ||||||
|  | @ -92,7 +92,7 @@ func TestReconcileJenkinsBaseConfiguration_ensurePluginsRequiredByAllBackupProvi | ||||||
| 	} | 	} | ||||||
| 	for _, tt := range tests { | 	for _, tt := range tests { | ||||||
| 		t.Run(tt.name, func(t *testing.T) { | 		t.Run(tt.name, func(t *testing.T) { | ||||||
| 			err := virtuslabv1alpha1.SchemeBuilder.AddToScheme(scheme.Scheme) | 			err := v1alpha1.SchemeBuilder.AddToScheme(scheme.Scheme) | ||||||
| 			assert.NoError(t, err) | 			assert.NoError(t, err) | ||||||
| 			r := &ReconcileJenkinsBaseConfiguration{ | 			r := &ReconcileJenkinsBaseConfiguration{ | ||||||
| 				k8sClient: fake.NewFakeClient(), | 				k8sClient: fake.NewFakeClient(), | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ package resources | ||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | ||||||
| 
 | 
 | ||||||
| 	corev1 "k8s.io/api/core/v1" | 	corev1 "k8s.io/api/core/v1" | ||||||
|  | @ -11,12 +11,12 @@ import ( | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // GetBackupCredentialsSecretName returns name of Kubernetes secret used to store backup credentials
 | // GetBackupCredentialsSecretName returns name of Kubernetes secret used to store backup credentials
 | ||||||
| func GetBackupCredentialsSecretName(jenkins *virtuslabv1alpha1.Jenkins) string { | func GetBackupCredentialsSecretName(jenkins *v1alpha1.Jenkins) string { | ||||||
| 	return fmt.Sprintf("%s-backup-credentials-%s", constants.OperatorName, jenkins.Name) | 	return fmt.Sprintf("%s-backup-credentials-%s", constants.OperatorName, jenkins.Name) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // NewBackupCredentialsSecret builds the Kubernetes secret used to store backup credentials
 | // NewBackupCredentialsSecret builds the Kubernetes secret used to store backup credentials
 | ||||||
| func NewBackupCredentialsSecret(jenkins *virtuslabv1alpha1.Jenkins) *corev1.Secret { | func NewBackupCredentialsSecret(jenkins *v1alpha1.Jenkins) *corev1.Secret { | ||||||
| 	meta := metav1.ObjectMeta{ | 	meta := metav1.ObjectMeta{ | ||||||
| 		Name:      GetBackupCredentialsSecretName(jenkins), | 		Name:      GetBackupCredentialsSecretName(jenkins), | ||||||
| 		Namespace: jenkins.ObjectMeta.Namespace, | 		Namespace: jenkins.ObjectMeta.Namespace, | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ package resources | ||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | ||||||
| 
 | 
 | ||||||
| 	corev1 "k8s.io/api/core/v1" | 	corev1 "k8s.io/api/core/v1" | ||||||
|  | @ -162,12 +162,12 @@ jenkins.save() | ||||||
| ` | ` | ||||||
| 
 | 
 | ||||||
| // GetBaseConfigurationConfigMapName returns name of Kubernetes config map used to base configuration
 | // GetBaseConfigurationConfigMapName returns name of Kubernetes config map used to base configuration
 | ||||||
| func GetBaseConfigurationConfigMapName(jenkins *virtuslabv1alpha1.Jenkins) string { | func GetBaseConfigurationConfigMapName(jenkins *v1alpha1.Jenkins) string { | ||||||
| 	return fmt.Sprintf("%s-base-configuration-%s", constants.OperatorName, jenkins.ObjectMeta.Name) | 	return fmt.Sprintf("%s-base-configuration-%s", constants.OperatorName, jenkins.ObjectMeta.Name) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // NewBaseConfigurationConfigMap builds Kubernetes config map used to base configuration
 | // NewBaseConfigurationConfigMap builds Kubernetes config map used to base configuration
 | ||||||
| func NewBaseConfigurationConfigMap(meta metav1.ObjectMeta, jenkins *virtuslabv1alpha1.Jenkins) (*corev1.ConfigMap, error) { | func NewBaseConfigurationConfigMap(meta metav1.ObjectMeta, jenkins *v1alpha1.Jenkins) (*corev1.ConfigMap, error) { | ||||||
| 	meta.Name = GetBaseConfigurationConfigMapName(jenkins) | 	meta.Name = GetBaseConfigurationConfigMapName(jenkins) | ||||||
| 
 | 
 | ||||||
| 	return &corev1.ConfigMap{ | 	return &corev1.ConfigMap{ | ||||||
|  |  | ||||||
|  | @ -5,7 +5,7 @@ import ( | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | ||||||
| 	"text/template" | 	"text/template" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 
 | 
 | ||||||
| 	corev1 "k8s.io/api/core/v1" | 	corev1 "k8s.io/api/core/v1" | ||||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||||
|  | @ -50,12 +50,12 @@ func buildCreateJenkinsOperatorUserGroovyScript() (*string, error) { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // GetInitConfigurationConfigMapName returns name of Kubernetes config map used to init configuration
 | // GetInitConfigurationConfigMapName returns name of Kubernetes config map used to init configuration
 | ||||||
| func GetInitConfigurationConfigMapName(jenkins *virtuslabv1alpha1.Jenkins) string { | func GetInitConfigurationConfigMapName(jenkins *v1alpha1.Jenkins) string { | ||||||
| 	return fmt.Sprintf("%s-init-configuration-%s", constants.OperatorName, jenkins.ObjectMeta.Name) | 	return fmt.Sprintf("%s-init-configuration-%s", constants.OperatorName, jenkins.ObjectMeta.Name) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // NewInitConfigurationConfigMap builds Kubernetes config map used to init configuration
 | // NewInitConfigurationConfigMap builds Kubernetes config map used to init configuration
 | ||||||
| func NewInitConfigurationConfigMap(meta metav1.ObjectMeta, jenkins *virtuslabv1alpha1.Jenkins) (*corev1.ConfigMap, error) { | func NewInitConfigurationConfigMap(meta metav1.ObjectMeta, jenkins *v1alpha1.Jenkins) (*corev1.ConfigMap, error) { | ||||||
| 	meta.Name = GetInitConfigurationConfigMapName(jenkins) | 	meta.Name = GetInitConfigurationConfigMapName(jenkins) | ||||||
| 
 | 
 | ||||||
| 	createJenkinsOperatorUserGroovy, err := buildCreateJenkinsOperatorUserGroovyScript() | 	createJenkinsOperatorUserGroovy, err := buildCreateJenkinsOperatorUserGroovyScript() | ||||||
|  |  | ||||||
|  | @ -3,14 +3,14 @@ package resources | ||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | ||||||
| 
 | 
 | ||||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // NewResourceObjectMeta builds ObjectMeta for all Kubernetes resources created by operator
 | // NewResourceObjectMeta builds ObjectMeta for all Kubernetes resources created by operator
 | ||||||
| func NewResourceObjectMeta(jenkins *virtuslabv1alpha1.Jenkins) metav1.ObjectMeta { | func NewResourceObjectMeta(jenkins *v1alpha1.Jenkins) metav1.ObjectMeta { | ||||||
| 	return metav1.ObjectMeta{ | 	return metav1.ObjectMeta{ | ||||||
| 		Name:      GetResourceName(jenkins), | 		Name:      GetResourceName(jenkins), | ||||||
| 		Namespace: jenkins.ObjectMeta.Namespace, | 		Namespace: jenkins.ObjectMeta.Namespace, | ||||||
|  | @ -19,7 +19,7 @@ func NewResourceObjectMeta(jenkins *virtuslabv1alpha1.Jenkins) metav1.ObjectMeta | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // BuildResourceLabels returns labels for all Kubernetes resources created by operator
 | // BuildResourceLabels returns labels for all Kubernetes resources created by operator
 | ||||||
| func BuildResourceLabels(jenkins *virtuslabv1alpha1.Jenkins) map[string]string { | func BuildResourceLabels(jenkins *v1alpha1.Jenkins) map[string]string { | ||||||
| 	return map[string]string{ | 	return map[string]string{ | ||||||
| 		constants.LabelAppKey:       constants.LabelAppValue, | 		constants.LabelAppKey:       constants.LabelAppValue, | ||||||
| 		constants.LabelJenkinsCRKey: jenkins.Name, | 		constants.LabelJenkinsCRKey: jenkins.Name, | ||||||
|  | @ -29,7 +29,7 @@ func BuildResourceLabels(jenkins *virtuslabv1alpha1.Jenkins) map[string]string { | ||||||
| // BuildLabelsForWatchedResources returns labels for Kubernetes resources which operator want to watch
 | // BuildLabelsForWatchedResources returns labels for Kubernetes resources which operator want to watch
 | ||||||
| // resources with that labels should not be deleted after Jenkins CR deletion, to prevent this situation don't set
 | // resources with that labels should not be deleted after Jenkins CR deletion, to prevent this situation don't set
 | ||||||
| // any owner
 | // any owner
 | ||||||
| func BuildLabelsForWatchedResources(jenkins *virtuslabv1alpha1.Jenkins) map[string]string { | func BuildLabelsForWatchedResources(jenkins *v1alpha1.Jenkins) map[string]string { | ||||||
| 	return map[string]string{ | 	return map[string]string{ | ||||||
| 		constants.LabelAppKey:       constants.LabelAppValue, | 		constants.LabelAppKey:       constants.LabelAppValue, | ||||||
| 		constants.LabelJenkinsCRKey: jenkins.Name, | 		constants.LabelJenkinsCRKey: jenkins.Name, | ||||||
|  | @ -38,6 +38,6 @@ func BuildLabelsForWatchedResources(jenkins *virtuslabv1alpha1.Jenkins) map[stri | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // GetResourceName returns name of Kubernetes resource base on Jenkins CR
 | // GetResourceName returns name of Kubernetes resource base on Jenkins CR
 | ||||||
| func GetResourceName(jenkins *virtuslabv1alpha1.Jenkins) string { | func GetResourceName(jenkins *v1alpha1.Jenkins) string { | ||||||
| 	return fmt.Sprintf("%s-%s", constants.LabelAppValue, jenkins.ObjectMeta.Name) | 	return fmt.Sprintf("%s-%s", constants.LabelAppValue, jenkins.ObjectMeta.Name) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 
 | 
 | ||||||
| 	corev1 "k8s.io/api/core/v1" | 	corev1 "k8s.io/api/core/v1" | ||||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||||
|  | @ -32,13 +32,13 @@ func buildSecretTypeMeta() metav1.TypeMeta { | ||||||
| 
 | 
 | ||||||
| // GetOperatorCredentialsSecretName returns name of Kubernetes secret used to store jenkins operator credentials
 | // GetOperatorCredentialsSecretName returns name of Kubernetes secret used to store jenkins operator credentials
 | ||||||
| // to allow calls to Jenkins API
 | // to allow calls to Jenkins API
 | ||||||
| func GetOperatorCredentialsSecretName(jenkins *virtuslabv1alpha1.Jenkins) string { | func GetOperatorCredentialsSecretName(jenkins *v1alpha1.Jenkins) string { | ||||||
| 	return fmt.Sprintf("%s-credentials-%s", constants.OperatorName, jenkins.Name) | 	return fmt.Sprintf("%s-credentials-%s", constants.OperatorName, jenkins.Name) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // NewOperatorCredentialsSecret builds the Kubernetes secret used to store jenkins operator credentials
 | // NewOperatorCredentialsSecret builds the Kubernetes secret used to store jenkins operator credentials
 | ||||||
| // to allow calls to Jenkins API
 | // to allow calls to Jenkins API
 | ||||||
| func NewOperatorCredentialsSecret(meta metav1.ObjectMeta, jenkins *virtuslabv1alpha1.Jenkins) *corev1.Secret { | func NewOperatorCredentialsSecret(meta metav1.ObjectMeta, jenkins *v1alpha1.Jenkins) *corev1.Secret { | ||||||
| 	meta.Name = GetOperatorCredentialsSecretName(jenkins) | 	meta.Name = GetOperatorCredentialsSecretName(jenkins) | ||||||
| 	return &corev1.Secret{ | 	return &corev1.Secret{ | ||||||
| 		TypeMeta:   buildSecretTypeMeta(), | 		TypeMeta:   buildSecretTypeMeta(), | ||||||
|  |  | ||||||
|  | @ -2,7 +2,7 @@ package resources | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 
 | 
 | ||||||
| 	corev1 "k8s.io/api/core/v1" | 	corev1 "k8s.io/api/core/v1" | ||||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||||
|  | @ -58,7 +58,7 @@ func buildPodTypeMeta() metav1.TypeMeta { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // NewJenkinsMasterPod builds Jenkins Master Kubernetes Pod resource
 | // NewJenkinsMasterPod builds Jenkins Master Kubernetes Pod resource
 | ||||||
| func NewJenkinsMasterPod(objectMeta metav1.ObjectMeta, jenkins *virtuslabv1alpha1.Jenkins) *corev1.Pod { | func NewJenkinsMasterPod(objectMeta metav1.ObjectMeta, jenkins *v1alpha1.Jenkins) *corev1.Pod { | ||||||
| 	initialDelaySeconds := int32(30) | 	initialDelaySeconds := int32(30) | ||||||
| 	timeoutSeconds := int32(5) | 	timeoutSeconds := int32(5) | ||||||
| 	failureThreshold := int32(12) | 	failureThreshold := int32(12) | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"text/template" | 	"text/template" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | ||||||
| 
 | 
 | ||||||
| 	corev1 "k8s.io/api/core/v1" | 	corev1 "k8s.io/api/core/v1" | ||||||
|  | @ -358,12 +358,12 @@ func buildInitBashScript(pluginsToInstall map[string][]string) (*string, error) | ||||||
| 	return &output, nil | 	return &output, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func getScriptsConfigMapName(jenkins *virtuslabv1alpha1.Jenkins) string { | func getScriptsConfigMapName(jenkins *v1alpha1.Jenkins) string { | ||||||
| 	return fmt.Sprintf("%s-scripts-%s", constants.OperatorName, jenkins.ObjectMeta.Name) | 	return fmt.Sprintf("%s-scripts-%s", constants.OperatorName, jenkins.ObjectMeta.Name) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // NewScriptsConfigMap builds Kubernetes config map used to store scripts
 | // NewScriptsConfigMap builds Kubernetes config map used to store scripts
 | ||||||
| func NewScriptsConfigMap(meta metav1.ObjectMeta, jenkins *virtuslabv1alpha1.Jenkins) (*corev1.ConfigMap, error) { | func NewScriptsConfigMap(meta metav1.ObjectMeta, jenkins *v1alpha1.Jenkins) (*corev1.ConfigMap, error) { | ||||||
| 	meta.Name = getScriptsConfigMapName(jenkins) | 	meta.Name = getScriptsConfigMapName(jenkins) | ||||||
| 
 | 
 | ||||||
| 	initBashScript, err := buildInitBashScript(jenkins.Spec.Master.Plugins) | 	initBashScript, err := buildInitBashScript(jenkins.Spec.Master.Plugins) | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ package resources | ||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | ||||||
| 
 | 
 | ||||||
| 	corev1 "k8s.io/api/core/v1" | 	corev1 "k8s.io/api/core/v1" | ||||||
|  | @ -33,12 +33,12 @@ jenkins.save() | ||||||
| ` | ` | ||||||
| 
 | 
 | ||||||
| // GetUserConfigurationConfigMapName returns name of Kubernetes config map used to user configuration
 | // GetUserConfigurationConfigMapName returns name of Kubernetes config map used to user configuration
 | ||||||
| func GetUserConfigurationConfigMapName(jenkins *virtuslabv1alpha1.Jenkins) string { | func GetUserConfigurationConfigMapName(jenkins *v1alpha1.Jenkins) string { | ||||||
| 	return fmt.Sprintf("%s-user-configuration-%s", constants.OperatorName, jenkins.ObjectMeta.Name) | 	return fmt.Sprintf("%s-user-configuration-%s", constants.OperatorName, jenkins.ObjectMeta.Name) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // NewUserConfigurationConfigMap builds Kubernetes config map used to user configuration
 | // NewUserConfigurationConfigMap builds Kubernetes config map used to user configuration
 | ||||||
| func NewUserConfigurationConfigMap(jenkins *virtuslabv1alpha1.Jenkins) *corev1.ConfigMap { | func NewUserConfigurationConfigMap(jenkins *v1alpha1.Jenkins) *corev1.ConfigMap { | ||||||
| 	meta := metav1.ObjectMeta{ | 	meta := metav1.ObjectMeta{ | ||||||
| 		Name:      GetUserConfigurationConfigMapName(jenkins), | 		Name:      GetUserConfigurationConfigMapName(jenkins), | ||||||
| 		Namespace: jenkins.ObjectMeta.Namespace, | 		Namespace: jenkins.ObjectMeta.Namespace, | ||||||
|  |  | ||||||
|  | @ -5,7 +5,7 @@ import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"regexp" | 	"regexp" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/backup" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/backup" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/plugins" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/plugins" | ||||||
|  | @ -22,7 +22,7 @@ var ( | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // Validate validates Jenkins CR Spec.master section
 | // Validate validates Jenkins CR Spec.master section
 | ||||||
| func (r *ReconcileJenkinsBaseConfiguration) Validate(jenkins *virtuslabv1alpha1.Jenkins) (bool, error) { | func (r *ReconcileJenkinsBaseConfiguration) Validate(jenkins *v1alpha1.Jenkins) (bool, error) { | ||||||
| 	if jenkins.Spec.Master.Image == "" { | 	if jenkins.Spec.Master.Image == "" { | ||||||
| 		r.logger.V(log.VWarn).Info("Image not set") | 		r.logger.V(log.VWarn).Info("Image not set") | ||||||
| 		return false, nil | 		return false, nil | ||||||
|  | @ -92,7 +92,7 @@ func (r *ReconcileJenkinsBaseConfiguration) verifyBackup() (bool, error) { | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	valid := false | 	valid := false | ||||||
| 	for _, backupType := range virtuslabv1alpha1.AllowedJenkinsBackups { | 	for _, backupType := range v1alpha1.AllowedJenkinsBackups { | ||||||
| 		if r.jenkins.Spec.Backup == backupType { | 		if r.jenkins.Spec.Backup == backupType { | ||||||
| 			valid = true | 			valid = true | ||||||
| 		} | 		} | ||||||
|  | @ -100,11 +100,11 @@ func (r *ReconcileJenkinsBaseConfiguration) verifyBackup() (bool, error) { | ||||||
| 
 | 
 | ||||||
| 	if !valid { | 	if !valid { | ||||||
| 		r.logger.V(log.VWarn).Info(fmt.Sprintf("Invalid backup strategy '%s'", r.jenkins.Spec.Backup)) | 		r.logger.V(log.VWarn).Info(fmt.Sprintf("Invalid backup strategy '%s'", r.jenkins.Spec.Backup)) | ||||||
| 		r.logger.V(log.VWarn).Info(fmt.Sprintf("Allowed backups '%+v'", virtuslabv1alpha1.AllowedJenkinsBackups)) | 		r.logger.V(log.VWarn).Info(fmt.Sprintf("Allowed backups '%+v'", v1alpha1.AllowedJenkinsBackups)) | ||||||
| 		return false, nil | 		return false, nil | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if r.jenkins.Spec.Backup == virtuslabv1alpha1.JenkinsBackupTypeNoBackup { | 	if r.jenkins.Spec.Backup == v1alpha1.JenkinsBackupTypeNoBackup { | ||||||
| 		return true, nil | 		return true, nil | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -5,7 +5,7 @@ import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 
 | 
 | ||||||
| 	"github.com/stretchr/testify/assert" | 	"github.com/stretchr/testify/assert" | ||||||
| 	corev1 "k8s.io/api/core/v1" | 	corev1 "k8s.io/api/core/v1" | ||||||
|  | @ -66,17 +66,17 @@ func TestValidatePlugins(t *testing.T) { | ||||||
| func TestReconcileJenkinsBaseConfiguration_verifyBackup(t *testing.T) { | func TestReconcileJenkinsBaseConfiguration_verifyBackup(t *testing.T) { | ||||||
| 	tests := []struct { | 	tests := []struct { | ||||||
| 		name    string | 		name    string | ||||||
| 		jenkins *virtuslabv1alpha1.Jenkins | 		jenkins *v1alpha1.Jenkins | ||||||
| 		secret  *corev1.Secret | 		secret  *corev1.Secret | ||||||
| 		want    bool | 		want    bool | ||||||
| 		wantErr bool | 		wantErr bool | ||||||
| 	}{ | 	}{ | ||||||
| 		{ | 		{ | ||||||
| 			name: "happy, no backup", | 			name: "happy, no backup", | ||||||
| 			jenkins: &virtuslabv1alpha1.Jenkins{ | 			jenkins: &v1alpha1.Jenkins{ | ||||||
| 				ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"}, | 				ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"}, | ||||||
| 				Spec: virtuslabv1alpha1.JenkinsSpec{ | 				Spec: v1alpha1.JenkinsSpec{ | ||||||
| 					Backup: virtuslabv1alpha1.JenkinsBackupTypeNoBackup, | 					Backup: v1alpha1.JenkinsBackupTypeNoBackup, | ||||||
| 				}, | 				}, | ||||||
| 			}, | 			}, | ||||||
| 			want:    true, | 			want:    true, | ||||||
|  | @ -84,10 +84,10 @@ func TestReconcileJenkinsBaseConfiguration_verifyBackup(t *testing.T) { | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			name: "happy", | 			name: "happy", | ||||||
| 			jenkins: &virtuslabv1alpha1.Jenkins{ | 			jenkins: &v1alpha1.Jenkins{ | ||||||
| 				ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"}, | 				ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"}, | ||||||
| 				Spec: virtuslabv1alpha1.JenkinsSpec{ | 				Spec: v1alpha1.JenkinsSpec{ | ||||||
| 					Backup: virtuslabv1alpha1.JenkinsBackupTypeAmazonS3, | 					Backup: v1alpha1.JenkinsBackupTypeAmazonS3, | ||||||
| 				}, | 				}, | ||||||
| 			}, | 			}, | ||||||
| 			secret: &corev1.Secret{ | 			secret: &corev1.Secret{ | ||||||
|  | @ -98,10 +98,10 @@ func TestReconcileJenkinsBaseConfiguration_verifyBackup(t *testing.T) { | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			name: "fail, no secret", | 			name: "fail, no secret", | ||||||
| 			jenkins: &virtuslabv1alpha1.Jenkins{ | 			jenkins: &v1alpha1.Jenkins{ | ||||||
| 				ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"}, | 				ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"}, | ||||||
| 				Spec: virtuslabv1alpha1.JenkinsSpec{ | 				Spec: v1alpha1.JenkinsSpec{ | ||||||
| 					Backup: virtuslabv1alpha1.JenkinsBackupTypeAmazonS3, | 					Backup: v1alpha1.JenkinsBackupTypeAmazonS3, | ||||||
| 				}, | 				}, | ||||||
| 			}, | 			}, | ||||||
| 			want:    false, | 			want:    false, | ||||||
|  | @ -109,9 +109,9 @@ func TestReconcileJenkinsBaseConfiguration_verifyBackup(t *testing.T) { | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			name: "fail, empty backup type", | 			name: "fail, empty backup type", | ||||||
| 			jenkins: &virtuslabv1alpha1.Jenkins{ | 			jenkins: &v1alpha1.Jenkins{ | ||||||
| 				ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"}, | 				ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"}, | ||||||
| 				Spec: virtuslabv1alpha1.JenkinsSpec{ | 				Spec: v1alpha1.JenkinsSpec{ | ||||||
| 					Backup: "", | 					Backup: "", | ||||||
| 				}, | 				}, | ||||||
| 			}, | 			}, | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/backup" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/backup" | ||||||
| 	jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" | 	jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources" | ||||||
|  | @ -25,12 +25,12 @@ type ReconcileUserConfiguration struct { | ||||||
| 	k8sClient     k8s.Client | 	k8sClient     k8s.Client | ||||||
| 	jenkinsClient jenkinsclient.Jenkins | 	jenkinsClient jenkinsclient.Jenkins | ||||||
| 	logger        logr.Logger | 	logger        logr.Logger | ||||||
| 	jenkins       *virtuslabv1alpha1.Jenkins | 	jenkins       *v1alpha1.Jenkins | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // New create structure which takes care of user configuration
 | // New create structure which takes care of user configuration
 | ||||||
| func New(k8sClient k8s.Client, jenkinsClient jenkinsclient.Jenkins, logger logr.Logger, | func New(k8sClient k8s.Client, jenkinsClient jenkinsclient.Jenkins, logger logr.Logger, | ||||||
| 	jenkins *virtuslabv1alpha1.Jenkins) *ReconcileUserConfiguration { | 	jenkins *v1alpha1.Jenkins) *ReconcileUserConfiguration { | ||||||
| 	return &ReconcileUserConfiguration{ | 	return &ReconcileUserConfiguration{ | ||||||
| 		k8sClient:     k8sClient, | 		k8sClient:     k8sClient, | ||||||
| 		jenkinsClient: jenkinsClient, | 		jenkinsClient: jenkinsClient, | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ import ( | ||||||
| 	"encoding/base64" | 	"encoding/base64" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" | 	jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/jobs" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/jobs" | ||||||
|  | @ -47,7 +47,7 @@ func New(jenkinsClient jenkinsclient.Jenkins, k8sClient k8s.Client, logger logr. | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // EnsureSeedJobs configures seed job and runs it for every entry from Jenkins.Spec.SeedJobs
 | // EnsureSeedJobs configures seed job and runs it for every entry from Jenkins.Spec.SeedJobs
 | ||||||
| func (s *SeedJobs) EnsureSeedJobs(jenkins *virtuslabv1alpha1.Jenkins) (done bool, err error) { | func (s *SeedJobs) EnsureSeedJobs(jenkins *v1alpha1.Jenkins) (done bool, err error) { | ||||||
| 	err = s.createJob() | 	err = s.createJob() | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		s.logger.V(log.VWarn).Info("Couldn't create jenkins seed job") | 		s.logger.V(log.VWarn).Info("Couldn't create jenkins seed job") | ||||||
|  | @ -74,7 +74,7 @@ func (s *SeedJobs) createJob() error { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // buildJobs is responsible for running jenkins builds which configures jenkins seed jobs and deploy keys
 | // buildJobs is responsible for running jenkins builds which configures jenkins seed jobs and deploy keys
 | ||||||
| func (s *SeedJobs) buildJobs(jenkins *virtuslabv1alpha1.Jenkins) (done bool, err error) { | func (s *SeedJobs) buildJobs(jenkins *v1alpha1.Jenkins) (done bool, err error) { | ||||||
| 	allDone := true | 	allDone := true | ||||||
| 	seedJobs := jenkins.Spec.SeedJobs | 	seedJobs := jenkins.Spec.SeedJobs | ||||||
| 	for _, seedJob := range seedJobs { | 	for _, seedJob := range seedJobs { | ||||||
|  | @ -113,7 +113,7 @@ func (s *SeedJobs) buildJobs(jenkins *virtuslabv1alpha1.Jenkins) (done bool, err | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // privateKeyFromSecret it's utility function which extracts deploy key from the kubernetes secret
 | // privateKeyFromSecret it's utility function which extracts deploy key from the kubernetes secret
 | ||||||
| func (s *SeedJobs) privateKeyFromSecret(namespace string, seedJob virtuslabv1alpha1.SeedJob) (string, error) { | func (s *SeedJobs) privateKeyFromSecret(namespace string, seedJob v1alpha1.SeedJob) (string, error) { | ||||||
| 	if seedJob.PrivateKey.SecretKeyRef != nil { | 	if seedJob.PrivateKey.SecretKeyRef != nil { | ||||||
| 		deployKeySecret := &v1.Secret{} | 		deployKeySecret := &v1.Secret{} | ||||||
| 		namespaceName := types.NamespacedName{Namespace: namespace, Name: seedJob.PrivateKey.SecretKeyRef.Name} | 		namespaceName := types.NamespacedName{Namespace: namespace, Name: seedJob.PrivateKey.SecretKeyRef.Name} | ||||||
|  |  | ||||||
|  | @ -5,7 +5,7 @@ import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" | ||||||
| 
 | 
 | ||||||
| 	"github.com/bndr/gojenkins" | 	"github.com/bndr/gojenkins" | ||||||
|  | @ -29,7 +29,7 @@ func TestEnsureSeedJobs(t *testing.T) { | ||||||
| 
 | 
 | ||||||
| 	jenkinsClient := client.NewMockJenkins(ctrl) | 	jenkinsClient := client.NewMockJenkins(ctrl) | ||||||
| 	fakeClient := fake.NewFakeClient() | 	fakeClient := fake.NewFakeClient() | ||||||
| 	err := virtuslabv1alpha1.SchemeBuilder.AddToScheme(scheme.Scheme) | 	err := v1alpha1.SchemeBuilder.AddToScheme(scheme.Scheme) | ||||||
| 	assert.NoError(t, err) | 	assert.NoError(t, err) | ||||||
| 
 | 
 | ||||||
| 	jenkins := jenkinsCustomResource() | 	jenkins := jenkinsCustomResource() | ||||||
|  | @ -76,7 +76,7 @@ func TestEnsureSeedJobs(t *testing.T) { | ||||||
| 				GetBuild(ConfigureSeedJobsName, gomock.Any()). | 				GetBuild(ConfigureSeedJobsName, gomock.Any()). | ||||||
| 				Return(&gojenkins.Build{ | 				Return(&gojenkins.Build{ | ||||||
| 					Raw: &gojenkins.BuildResponse{ | 					Raw: &gojenkins.BuildResponse{ | ||||||
| 						Result: string(virtuslabv1alpha1.BuildSuccessStatus), | 						Result: string(v1alpha1.BuildSuccessStatus), | ||||||
| 					}, | 					}, | ||||||
| 				}, nil) | 				}, nil) | ||||||
| 		} | 		} | ||||||
|  | @ -99,26 +99,26 @@ func TestEnsureSeedJobs(t *testing.T) { | ||||||
| 		// first run - should create job and schedule build
 | 		// first run - should create job and schedule build
 | ||||||
| 		if reconcileAttempt == 1 { | 		if reconcileAttempt == 1 { | ||||||
| 			assert.False(t, done) | 			assert.False(t, done) | ||||||
| 			assert.Equal(t, string(virtuslabv1alpha1.BuildRunningStatus), string(build.Status)) | 			assert.Equal(t, string(v1alpha1.BuildRunningStatus), string(build.Status)) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		// second run - should update and finish job
 | 		// second run - should update and finish job
 | ||||||
| 		if reconcileAttempt == 2 { | 		if reconcileAttempt == 2 { | ||||||
| 			assert.True(t, done) | 			assert.True(t, done) | ||||||
| 			assert.Equal(t, string(virtuslabv1alpha1.BuildSuccessStatus), string(build.Status)) | 			assert.Equal(t, string(v1alpha1.BuildSuccessStatus), string(build.Status)) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func jenkinsCustomResource() *virtuslabv1alpha1.Jenkins { | func jenkinsCustomResource() *v1alpha1.Jenkins { | ||||||
| 	return &virtuslabv1alpha1.Jenkins{ | 	return &v1alpha1.Jenkins{ | ||||||
| 		ObjectMeta: metav1.ObjectMeta{ | 		ObjectMeta: metav1.ObjectMeta{ | ||||||
| 			Name:      "jenkins", | 			Name:      "jenkins", | ||||||
| 			Namespace: "default", | 			Namespace: "default", | ||||||
| 		}, | 		}, | ||||||
| 		Spec: virtuslabv1alpha1.JenkinsSpec{ | 		Spec: v1alpha1.JenkinsSpec{ | ||||||
| 			Master: virtuslabv1alpha1.JenkinsMaster{ | 			Master: v1alpha1.JenkinsMaster{ | ||||||
| 				Image:       "jenkins/jenkins", | 				Image:       "jenkins/jenkins", | ||||||
| 				Annotations: map[string]string{"test": "label"}, | 				Annotations: map[string]string{"test": "label"}, | ||||||
| 				Resources: corev1.ResourceRequirements{ | 				Resources: corev1.ResourceRequirements{ | ||||||
|  | @ -132,13 +132,13 @@ func jenkinsCustomResource() *virtuslabv1alpha1.Jenkins { | ||||||
| 					}, | 					}, | ||||||
| 				}, | 				}, | ||||||
| 			}, | 			}, | ||||||
| 			SeedJobs: []virtuslabv1alpha1.SeedJob{ | 			SeedJobs: []v1alpha1.SeedJob{ | ||||||
| 				{ | 				{ | ||||||
| 					ID:               "jenkins-operator-e2e", | 					ID:               "jenkins-operator-e2e", | ||||||
| 					Targets:          "cicd/jobs/*.jenkins", | 					Targets:          "cicd/jobs/*.jenkins", | ||||||
| 					Description:      "Jenkins Operator e2e tests repository", | 					Description:      "Jenkins Operator e2e tests repository", | ||||||
| 					RepositoryBranch: "master", | 					RepositoryBranch: "master", | ||||||
| 					RepositoryURL:    "https://github.com/VirtusLab/jenkins-operator-e2e.git", | 					RepositoryURL:    "https://github.com/jenkinsci/kubernetes-operator.git", | ||||||
| 				}, | 				}, | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
|  |  | ||||||
|  | @ -8,7 +8,7 @@ import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"strings" | 	"strings" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/backup" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/backup" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/log" | 	"github.com/jenkinsci/kubernetes-operator/pkg/log" | ||||||
| 
 | 
 | ||||||
|  | @ -18,7 +18,7 @@ import ( | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // Validate validates Jenkins CR Spec section
 | // Validate validates Jenkins CR Spec section
 | ||||||
| func (r *ReconcileUserConfiguration) Validate(jenkins *virtuslabv1alpha1.Jenkins) (bool, error) { | func (r *ReconcileUserConfiguration) Validate(jenkins *v1alpha1.Jenkins) (bool, error) { | ||||||
| 	valid, err := r.validateSeedJobs(jenkins) | 	valid, err := r.validateSeedJobs(jenkins) | ||||||
| 	if !valid || err != nil { | 	if !valid || err != nil { | ||||||
| 		return valid, err | 		return valid, err | ||||||
|  | @ -32,7 +32,7 @@ func (r *ReconcileUserConfiguration) Validate(jenkins *virtuslabv1alpha1.Jenkins | ||||||
| 	return backupProvider.IsConfigurationValidForUserPhase(r.k8sClient, *r.jenkins, r.logger) | 	return backupProvider.IsConfigurationValidForUserPhase(r.k8sClient, *r.jenkins, r.logger) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (r *ReconcileUserConfiguration) validateSeedJobs(jenkins *virtuslabv1alpha1.Jenkins) (bool, error) { | func (r *ReconcileUserConfiguration) validateSeedJobs(jenkins *v1alpha1.Jenkins) (bool, error) { | ||||||
| 	valid := true | 	valid := true | ||||||
| 	if jenkins.Spec.SeedJobs != nil { | 	if jenkins.Spec.SeedJobs != nil { | ||||||
| 		for _, seedJob := range jenkins.Spec.SeedJobs { | 		for _, seedJob := range jenkins.Spec.SeedJobs { | ||||||
|  |  | ||||||
|  | @ -5,7 +5,7 @@ import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 
 | 
 | ||||||
| 	"github.com/stretchr/testify/assert" | 	"github.com/stretchr/testify/assert" | ||||||
| 	corev1 "k8s.io/api/core/v1" | 	corev1 "k8s.io/api/core/v1" | ||||||
|  | @ -52,21 +52,21 @@ SwiLd8TWAvXkxdXm8fDOGAZbYK2alMV+M+9E2OpZsBUCxmb/3FAofF6JccKoJOH8 | ||||||
| func TestValidateSeedJobs(t *testing.T) { | func TestValidateSeedJobs(t *testing.T) { | ||||||
| 	data := []struct { | 	data := []struct { | ||||||
| 		description    string | 		description    string | ||||||
| 		jenkins        *virtuslabv1alpha1.Jenkins | 		jenkins        *v1alpha1.Jenkins | ||||||
| 		secret         *corev1.Secret | 		secret         *corev1.Secret | ||||||
| 		expectedResult bool | 		expectedResult bool | ||||||
| 	}{ | 	}{ | ||||||
| 		{ | 		{ | ||||||
| 			description: "Valid with public repository and without private key", | 			description: "Valid with public repository and without private key", | ||||||
| 			jenkins: &virtuslabv1alpha1.Jenkins{ | 			jenkins: &v1alpha1.Jenkins{ | ||||||
| 				Spec: virtuslabv1alpha1.JenkinsSpec{ | 				Spec: v1alpha1.JenkinsSpec{ | ||||||
| 					SeedJobs: []virtuslabv1alpha1.SeedJob{ | 					SeedJobs: []v1alpha1.SeedJob{ | ||||||
| 						{ | 						{ | ||||||
| 							ID:               "jenkins-operator-e2e", | 							ID:               "jenkins-operator-e2e", | ||||||
| 							Targets:          "cicd/jobs/*.jenkins", | 							Targets:          "cicd/jobs/*.jenkins", | ||||||
| 							Description:      "Jenkins Operator e2e tests repository", | 							Description:      "Jenkins Operator e2e tests repository", | ||||||
| 							RepositoryBranch: "master", | 							RepositoryBranch: "master", | ||||||
| 							RepositoryURL:    "https://github.com/VirtusLab/jenkins-operator-e2e.git", | 							RepositoryURL:    "https://github.com/jenkinsci/kubernetes-operator.git", | ||||||
| 						}, | 						}, | ||||||
| 					}, | 					}, | ||||||
| 				}, | 				}, | ||||||
|  | @ -75,14 +75,14 @@ func TestValidateSeedJobs(t *testing.T) { | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			description: "Invalid without id", | 			description: "Invalid without id", | ||||||
| 			jenkins: &virtuslabv1alpha1.Jenkins{ | 			jenkins: &v1alpha1.Jenkins{ | ||||||
| 				Spec: virtuslabv1alpha1.JenkinsSpec{ | 				Spec: v1alpha1.JenkinsSpec{ | ||||||
| 					SeedJobs: []virtuslabv1alpha1.SeedJob{ | 					SeedJobs: []v1alpha1.SeedJob{ | ||||||
| 						{ | 						{ | ||||||
| 							Targets:          "cicd/jobs/*.jenkins", | 							Targets:          "cicd/jobs/*.jenkins", | ||||||
| 							Description:      "Jenkins Operator e2e tests repository", | 							Description:      "Jenkins Operator e2e tests repository", | ||||||
| 							RepositoryBranch: "master", | 							RepositoryBranch: "master", | ||||||
| 							RepositoryURL:    "https://github.com/VirtusLab/jenkins-operator-e2e.git", | 							RepositoryURL:    "https://github.com/jenkinsci/kubernetes-operator.git", | ||||||
| 						}, | 						}, | ||||||
| 					}, | 					}, | ||||||
| 				}, | 				}, | ||||||
|  | @ -91,16 +91,16 @@ func TestValidateSeedJobs(t *testing.T) { | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			description: "Valid with private key and secret", | 			description: "Valid with private key and secret", | ||||||
| 			jenkins: &virtuslabv1alpha1.Jenkins{ | 			jenkins: &v1alpha1.Jenkins{ | ||||||
| 				Spec: virtuslabv1alpha1.JenkinsSpec{ | 				Spec: v1alpha1.JenkinsSpec{ | ||||||
| 					SeedJobs: []virtuslabv1alpha1.SeedJob{ | 					SeedJobs: []v1alpha1.SeedJob{ | ||||||
| 						{ | 						{ | ||||||
| 							ID:               "jenkins-operator-e2e", | 							ID:               "jenkins-operator-e2e", | ||||||
| 							Targets:          "cicd/jobs/*.jenkins", | 							Targets:          "cicd/jobs/*.jenkins", | ||||||
| 							Description:      "Jenkins Operator e2e tests repository", | 							Description:      "Jenkins Operator e2e tests repository", | ||||||
| 							RepositoryBranch: "master", | 							RepositoryBranch: "master", | ||||||
| 							RepositoryURL:    "https://github.com/VirtusLab/jenkins-operator-e2e.git", | 							RepositoryURL:    "https://github.com/jenkinsci/kubernetes-operator.git", | ||||||
| 							PrivateKey: virtuslabv1alpha1.PrivateKey{ | 							PrivateKey: v1alpha1.PrivateKey{ | ||||||
| 								SecretKeyRef: &corev1.SecretKeySelector{ | 								SecretKeyRef: &corev1.SecretKeySelector{ | ||||||
| 									LocalObjectReference: corev1.LocalObjectReference{ | 									LocalObjectReference: corev1.LocalObjectReference{ | ||||||
| 										Name: "deploy-keys", | 										Name: "deploy-keys", | ||||||
|  | @ -129,16 +129,16 @@ func TestValidateSeedJobs(t *testing.T) { | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			description: "Invalid private key in secret", | 			description: "Invalid private key in secret", | ||||||
| 			jenkins: &virtuslabv1alpha1.Jenkins{ | 			jenkins: &v1alpha1.Jenkins{ | ||||||
| 				Spec: virtuslabv1alpha1.JenkinsSpec{ | 				Spec: v1alpha1.JenkinsSpec{ | ||||||
| 					SeedJobs: []virtuslabv1alpha1.SeedJob{ | 					SeedJobs: []v1alpha1.SeedJob{ | ||||||
| 						{ | 						{ | ||||||
| 							ID:               "jenkins-operator-e2e", | 							ID:               "jenkins-operator-e2e", | ||||||
| 							Targets:          "cicd/jobs/*.jenkins", | 							Targets:          "cicd/jobs/*.jenkins", | ||||||
| 							Description:      "Jenkins Operator e2e tests repository", | 							Description:      "Jenkins Operator e2e tests repository", | ||||||
| 							RepositoryBranch: "master", | 							RepositoryBranch: "master", | ||||||
| 							RepositoryURL:    "https://github.com/VirtusLab/jenkins-operator-e2e.git", | 							RepositoryURL:    "https://github.com/jenkinsci/kubernetes-operator.git", | ||||||
| 							PrivateKey: virtuslabv1alpha1.PrivateKey{ | 							PrivateKey: v1alpha1.PrivateKey{ | ||||||
| 								SecretKeyRef: &corev1.SecretKeySelector{ | 								SecretKeyRef: &corev1.SecretKeySelector{ | ||||||
| 									LocalObjectReference: corev1.LocalObjectReference{ | 									LocalObjectReference: corev1.LocalObjectReference{ | ||||||
| 										Name: "deploy-keys", | 										Name: "deploy-keys", | ||||||
|  | @ -167,16 +167,16 @@ func TestValidateSeedJobs(t *testing.T) { | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			description: "Invalid with PrivateKey and empty Secret data", | 			description: "Invalid with PrivateKey and empty Secret data", | ||||||
| 			jenkins: &virtuslabv1alpha1.Jenkins{ | 			jenkins: &v1alpha1.Jenkins{ | ||||||
| 				Spec: virtuslabv1alpha1.JenkinsSpec{ | 				Spec: v1alpha1.JenkinsSpec{ | ||||||
| 					SeedJobs: []virtuslabv1alpha1.SeedJob{ | 					SeedJobs: []v1alpha1.SeedJob{ | ||||||
| 						{ | 						{ | ||||||
| 							ID:               "jenkins-operator-e2e", | 							ID:               "jenkins-operator-e2e", | ||||||
| 							Targets:          "cicd/jobs/*.jenkins", | 							Targets:          "cicd/jobs/*.jenkins", | ||||||
| 							Description:      "Jenkins Operator e2e tests repository", | 							Description:      "Jenkins Operator e2e tests repository", | ||||||
| 							RepositoryBranch: "master", | 							RepositoryBranch: "master", | ||||||
| 							RepositoryURL:    "https://github.com/VirtusLab/jenkins-operator-e2e.git", | 							RepositoryURL:    "https://github.com/jenkinsci/kubernetes-operator.git", | ||||||
| 							PrivateKey: virtuslabv1alpha1.PrivateKey{ | 							PrivateKey: v1alpha1.PrivateKey{ | ||||||
| 								SecretKeyRef: &corev1.SecretKeySelector{ | 								SecretKeyRef: &corev1.SecretKeySelector{ | ||||||
| 									LocalObjectReference: corev1.LocalObjectReference{ | 									LocalObjectReference: corev1.LocalObjectReference{ | ||||||
| 										Name: "deploy-keys", | 										Name: "deploy-keys", | ||||||
|  | @ -205,15 +205,15 @@ func TestValidateSeedJobs(t *testing.T) { | ||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			description: "Invalid with ssh RepositoryURL and empty PrivateKey", | 			description: "Invalid with ssh RepositoryURL and empty PrivateKey", | ||||||
| 			jenkins: &virtuslabv1alpha1.Jenkins{ | 			jenkins: &v1alpha1.Jenkins{ | ||||||
| 				Spec: virtuslabv1alpha1.JenkinsSpec{ | 				Spec: v1alpha1.JenkinsSpec{ | ||||||
| 					SeedJobs: []virtuslabv1alpha1.SeedJob{ | 					SeedJobs: []v1alpha1.SeedJob{ | ||||||
| 						{ | 						{ | ||||||
| 							ID:               "jenkins-operator-e2e", | 							ID:               "jenkins-operator-e2e", | ||||||
| 							Targets:          "cicd/jobs/*.jenkins", | 							Targets:          "cicd/jobs/*.jenkins", | ||||||
| 							Description:      "Jenkins Operator e2e tests repository", | 							Description:      "Jenkins Operator e2e tests repository", | ||||||
| 							RepositoryBranch: "master", | 							RepositoryBranch: "master", | ||||||
| 							RepositoryURL:    "git@github.com:VirtusLab/jenkins-operator.git", | 							RepositoryURL:    "git@github.com:jenkinsci/kubernetes-operator.git", | ||||||
| 						}, | 						}, | ||||||
| 					}, | 					}, | ||||||
| 				}, | 				}, | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"sort" | 	"sort" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" | 	jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/jobs" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/jobs" | ||||||
| 
 | 
 | ||||||
|  | @ -51,7 +51,7 @@ func (g *Groovy) ConfigureGroovyJob() error { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // EnsureGroovyJob executes groovy script and verifies jenkins job status according to reconciliation loop lifecycle
 | // EnsureGroovyJob executes groovy script and verifies jenkins job status according to reconciliation loop lifecycle
 | ||||||
| func (g *Groovy) EnsureGroovyJob(secretOrConfigMapData map[string]string, jenkins *virtuslabv1alpha1.Jenkins) (bool, error) { | func (g *Groovy) EnsureGroovyJob(secretOrConfigMapData map[string]string, jenkins *v1alpha1.Jenkins) (bool, error) { | ||||||
| 	jobsClient := jobs.New(g.jenkinsClient, g.k8sClient, g.logger) | 	jobsClient := jobs.New(g.jenkinsClient, g.k8sClient, g.logger) | ||||||
| 
 | 
 | ||||||
| 	hash := g.calculateHash(secretOrConfigMapData) | 	hash := g.calculateHash(secretOrConfigMapData) | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/user" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/user" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | ||||||
|  | @ -61,7 +61,7 @@ func add(mgr manager.Manager, r reconcile.Reconciler) error { | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// Watch for changes to primary resource Jenkins
 | 	// Watch for changes to primary resource Jenkins
 | ||||||
| 	err = c.Watch(&source.Kind{Type: &virtuslabv1alpha1.Jenkins{}}, &handler.EnqueueRequestForObject{}) | 	err = c.Watch(&source.Kind{Type: &v1alpha1.Jenkins{}}, &handler.EnqueueRequestForObject{}) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
|  | @ -69,7 +69,7 @@ func add(mgr manager.Manager, r reconcile.Reconciler) error { | ||||||
| 	// Watch for changes to secondary resource Pods and requeue the owner Jenkins
 | 	// Watch for changes to secondary resource Pods and requeue the owner Jenkins
 | ||||||
| 	err = c.Watch(&source.Kind{Type: &corev1.Pod{}}, &handler.EnqueueRequestForOwner{ | 	err = c.Watch(&source.Kind{Type: &corev1.Pod{}}, &handler.EnqueueRequestForOwner{ | ||||||
| 		IsController: true, | 		IsController: true, | ||||||
| 		OwnerType:    &virtuslabv1alpha1.Jenkins{}, | 		OwnerType:    &v1alpha1.Jenkins{}, | ||||||
| 	}) | 	}) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
|  | @ -117,7 +117,7 @@ func (r *ReconcileJenkins) Reconcile(request reconcile.Request) (reconcile.Resul | ||||||
| 
 | 
 | ||||||
| func (r *ReconcileJenkins) reconcile(request reconcile.Request, logger logr.Logger) (reconcile.Result, error) { | func (r *ReconcileJenkins) reconcile(request reconcile.Request, logger logr.Logger) (reconcile.Result, error) { | ||||||
| 	// Fetch the Jenkins instance
 | 	// Fetch the Jenkins instance
 | ||||||
| 	jenkins := &virtuslabv1alpha1.Jenkins{} | 	jenkins := &v1alpha1.Jenkins{} | ||||||
| 	err := r.client.Get(context.TODO(), request.NamespacedName, jenkins) | 	err := r.client.Get(context.TODO(), request.NamespacedName, jenkins) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		if apierrors.IsNotFound(err) { | 		if apierrors.IsNotFound(err) { | ||||||
|  | @ -205,7 +205,7 @@ func (r *ReconcileJenkins) buildLogger(jenkinsName string) logr.Logger { | ||||||
| 	return log.Log.WithValues("cr", jenkinsName) | 	return log.Log.WithValues("cr", jenkinsName) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (r *ReconcileJenkins) setDefaults(jenkins *virtuslabv1alpha1.Jenkins, logger logr.Logger) error { | func (r *ReconcileJenkins) setDefaults(jenkins *v1alpha1.Jenkins, logger logr.Logger) error { | ||||||
| 	changed := false | 	changed := false | ||||||
| 	if len(jenkins.Spec.Master.Image) == 0 { | 	if len(jenkins.Spec.Master.Image) == 0 { | ||||||
| 		logger.Info("Setting default Jenkins master image: " + constants.DefaultJenkinsMasterImage) | 		logger.Info("Setting default Jenkins master image: " + constants.DefaultJenkinsMasterImage) | ||||||
|  | @ -213,10 +213,10 @@ func (r *ReconcileJenkins) setDefaults(jenkins *virtuslabv1alpha1.Jenkins, logge | ||||||
| 		jenkins.Spec.Master.Image = constants.DefaultJenkinsMasterImage | 		jenkins.Spec.Master.Image = constants.DefaultJenkinsMasterImage | ||||||
| 	} | 	} | ||||||
| 	if len(jenkins.Spec.Backup) == 0 { | 	if len(jenkins.Spec.Backup) == 0 { | ||||||
| 		logger.Info("Setting default backup strategy: " + virtuslabv1alpha1.JenkinsBackupTypeNoBackup) | 		logger.Info("Setting default backup strategy: " + v1alpha1.JenkinsBackupTypeNoBackup) | ||||||
| 		logger.V(log.VWarn).Info("Backup is disable !!! Please configure backup in '.spec.backup'") | 		logger.V(log.VWarn).Info("Backup is disable !!! Please configure backup in '.spec.backup'") | ||||||
| 		changed = true | 		changed = true | ||||||
| 		jenkins.Spec.Backup = virtuslabv1alpha1.JenkinsBackupTypeNoBackup | 		jenkins.Spec.Backup = v1alpha1.JenkinsBackupTypeNoBackup | ||||||
| 	} | 	} | ||||||
| 	if len(jenkins.Spec.Master.Plugins) == 0 { | 	if len(jenkins.Spec.Master.Plugins) == 0 { | ||||||
| 		logger.Info("Setting default base plugins") | 		logger.Info("Setting default base plugins") | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"strings" | 	"strings" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/log" | 	"github.com/jenkinsci/kubernetes-operator/pkg/log" | ||||||
| 
 | 
 | ||||||
|  | @ -51,7 +51,7 @@ func New(jenkinsClient client.Jenkins, k8sClient k8s.Client, logger logr.Logger) | ||||||
| // entire state is saved in Jenkins.Status.Builds section
 | // entire state is saved in Jenkins.Status.Builds section
 | ||||||
| // function return 'true' when build finished successfully or false when reconciliation loop should requeue this function
 | // function return 'true' when build finished successfully or false when reconciliation loop should requeue this function
 | ||||||
| // preserveStatus determines that build won't be removed from Jenkins.Status.Builds section
 | // preserveStatus determines that build won't be removed from Jenkins.Status.Builds section
 | ||||||
| func (jobs *Jobs) EnsureBuildJob(jobName, hash string, parameters map[string]string, jenkins *virtuslabv1alpha1.Jenkins, preserveStatus bool) (done bool, err error) { | func (jobs *Jobs) EnsureBuildJob(jobName, hash string, parameters map[string]string, jenkins *v1alpha1.Jenkins, preserveStatus bool) (done bool, err error) { | ||||||
| 	jobs.logger.V(log.VDebug).Info(fmt.Sprintf("Ensuring build, name:'%s' hash:'%s'", jobName, hash)) | 	jobs.logger.V(log.VDebug).Info(fmt.Sprintf("Ensuring build, name:'%s' hash:'%s'", jobName, hash)) | ||||||
| 
 | 
 | ||||||
| 	build, err := jobs.getBuildFromStatus(jobName, hash, jenkins) | 	build, err := jobs.getBuildFromStatus(jobName, hash, jenkins) | ||||||
|  | @ -62,13 +62,13 @@ func (jobs *Jobs) EnsureBuildJob(jobName, hash string, parameters map[string]str | ||||||
| 	if build != nil { | 	if build != nil { | ||||||
| 		jobs.logger.V(log.VDebug).Info(fmt.Sprintf("Build exists in status, %+v", build)) | 		jobs.logger.V(log.VDebug).Info(fmt.Sprintf("Build exists in status, %+v", build)) | ||||||
| 		switch build.Status { | 		switch build.Status { | ||||||
| 		case virtuslabv1alpha1.BuildSuccessStatus: | 		case v1alpha1.BuildSuccessStatus: | ||||||
| 			return jobs.ensureSuccessBuild(*build, jenkins, preserveStatus) | 			return jobs.ensureSuccessBuild(*build, jenkins, preserveStatus) | ||||||
| 		case virtuslabv1alpha1.BuildRunningStatus: | 		case v1alpha1.BuildRunningStatus: | ||||||
| 			return jobs.ensureRunningBuild(*build, jenkins, preserveStatus) | 			return jobs.ensureRunningBuild(*build, jenkins, preserveStatus) | ||||||
| 		case virtuslabv1alpha1.BuildUnstableStatus, virtuslabv1alpha1.BuildNotBuildStatus, virtuslabv1alpha1.BuildFailureStatus, virtuslabv1alpha1.BuildAbortedStatus: | 		case v1alpha1.BuildUnstableStatus, v1alpha1.BuildNotBuildStatus, v1alpha1.BuildFailureStatus, v1alpha1.BuildAbortedStatus: | ||||||
| 			return jobs.ensureFailedBuild(*build, jenkins, parameters, preserveStatus) | 			return jobs.ensureFailedBuild(*build, jenkins, parameters, preserveStatus) | ||||||
| 		case virtuslabv1alpha1.BuildExpiredStatus: | 		case v1alpha1.BuildExpiredStatus: | ||||||
| 			return jobs.ensureExpiredBuild(*build, jenkins, preserveStatus) | 			return jobs.ensureExpiredBuild(*build, jenkins, preserveStatus) | ||||||
| 		default: | 		default: | ||||||
| 			jobs.logger.V(log.VWarn).Info(fmt.Sprintf("Unexpected build status, %+v", build)) | 			jobs.logger.V(log.VWarn).Info(fmt.Sprintf("Unexpected build status, %+v", build)) | ||||||
|  | @ -78,7 +78,7 @@ func (jobs *Jobs) EnsureBuildJob(jobName, hash string, parameters map[string]str | ||||||
| 
 | 
 | ||||||
| 	// build is run first time - build job and update status
 | 	// build is run first time - build job and update status
 | ||||||
| 	created := metav1.Now() | 	created := metav1.Now() | ||||||
| 	newBuild := virtuslabv1alpha1.Build{ | 	newBuild := v1alpha1.Build{ | ||||||
| 		JobName:    jobName, | 		JobName:    jobName, | ||||||
| 		Hash:       hash, | 		Hash:       hash, | ||||||
| 		CreateTime: &created, | 		CreateTime: &created, | ||||||
|  | @ -86,7 +86,7 @@ func (jobs *Jobs) EnsureBuildJob(jobName, hash string, parameters map[string]str | ||||||
| 	return jobs.buildJob(newBuild, parameters, jenkins) | 	return jobs.buildJob(newBuild, parameters, jenkins) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (jobs *Jobs) getBuildFromStatus(jobName string, hash string, jenkins *virtuslabv1alpha1.Jenkins) (*virtuslabv1alpha1.Build, error) { | func (jobs *Jobs) getBuildFromStatus(jobName string, hash string, jenkins *v1alpha1.Jenkins) (*v1alpha1.Build, error) { | ||||||
| 	if jenkins != nil { | 	if jenkins != nil { | ||||||
| 		builds := jenkins.Status.Builds | 		builds := jenkins.Status.Builds | ||||||
| 		for _, build := range builds { | 		for _, build := range builds { | ||||||
|  | @ -98,7 +98,7 @@ func (jobs *Jobs) getBuildFromStatus(jobName string, hash string, jenkins *virtu | ||||||
| 	return nil, nil | 	return nil, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (jobs *Jobs) ensureSuccessBuild(build virtuslabv1alpha1.Build, jenkins *virtuslabv1alpha1.Jenkins, preserveStatus bool) (bool, error) { | func (jobs *Jobs) ensureSuccessBuild(build v1alpha1.Build, jenkins *v1alpha1.Jenkins, preserveStatus bool) (bool, error) { | ||||||
| 	jobs.logger.V(log.VDebug).Info(fmt.Sprintf("Ensuring success build, %+v", build)) | 	jobs.logger.V(log.VDebug).Info(fmt.Sprintf("Ensuring success build, %+v", build)) | ||||||
| 
 | 
 | ||||||
| 	if !preserveStatus { | 	if !preserveStatus { | ||||||
|  | @ -112,7 +112,7 @@ func (jobs *Jobs) ensureSuccessBuild(build virtuslabv1alpha1.Build, jenkins *vir | ||||||
| 	return true, nil | 	return true, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (jobs *Jobs) ensureRunningBuild(build virtuslabv1alpha1.Build, jenkins *virtuslabv1alpha1.Jenkins, preserveStatus bool) (bool, error) { | func (jobs *Jobs) ensureRunningBuild(build v1alpha1.Build, jenkins *v1alpha1.Jenkins, preserveStatus bool) (bool, error) { | ||||||
| 	jobs.logger.V(log.VDebug).Info(fmt.Sprintf("Ensuring running build, %+v", build)) | 	jobs.logger.V(log.VDebug).Info(fmt.Sprintf("Ensuring running build, %+v", build)) | ||||||
| 	// FIXME (antoniaklja) implement build expiration
 | 	// FIXME (antoniaklja) implement build expiration
 | ||||||
| 
 | 
 | ||||||
|  | @ -126,7 +126,7 @@ func (jobs *Jobs) ensureRunningBuild(build virtuslabv1alpha1.Build, jenkins *vir | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if jenkinsBuild.GetResult() != "" { | 	if jenkinsBuild.GetResult() != "" { | ||||||
| 		build.Status = virtuslabv1alpha1.BuildStatus(strings.ToLower(jenkinsBuild.GetResult())) | 		build.Status = v1alpha1.BuildStatus(strings.ToLower(jenkinsBuild.GetResult())) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	err = jobs.updateBuildStatus(build, jenkins) | 	err = jobs.updateBuildStatus(build, jenkins) | ||||||
|  | @ -135,13 +135,13 @@ func (jobs *Jobs) ensureRunningBuild(build virtuslabv1alpha1.Build, jenkins *vir | ||||||
| 		return false, err | 		return false, err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if build.Status == virtuslabv1alpha1.BuildSuccessStatus { | 	if build.Status == v1alpha1.BuildSuccessStatus { | ||||||
| 		jobs.logger.Info(fmt.Sprintf("Build finished successfully, %+v", build)) | 		jobs.logger.Info(fmt.Sprintf("Build finished successfully, %+v", build)) | ||||||
| 		return true, nil | 		return true, nil | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if build.Status == virtuslabv1alpha1.BuildFailureStatus || build.Status == virtuslabv1alpha1.BuildUnstableStatus || | 	if build.Status == v1alpha1.BuildFailureStatus || build.Status == v1alpha1.BuildUnstableStatus || | ||||||
| 		build.Status == virtuslabv1alpha1.BuildNotBuildStatus || build.Status == virtuslabv1alpha1.BuildAbortedStatus { | 		build.Status == v1alpha1.BuildNotBuildStatus || build.Status == v1alpha1.BuildAbortedStatus { | ||||||
| 		jobs.logger.V(log.VWarn).Info(fmt.Sprintf("Build failed, %+v", build)) | 		jobs.logger.V(log.VWarn).Info(fmt.Sprintf("Build failed, %+v", build)) | ||||||
| 		return false, ErrorBuildFailed | 		return false, ErrorBuildFailed | ||||||
| 	} | 	} | ||||||
|  | @ -149,7 +149,7 @@ func (jobs *Jobs) ensureRunningBuild(build virtuslabv1alpha1.Build, jenkins *vir | ||||||
| 	return false, nil | 	return false, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (jobs *Jobs) ensureFailedBuild(build virtuslabv1alpha1.Build, jenkins *virtuslabv1alpha1.Jenkins, parameters map[string]string, preserveStatus bool) (bool, error) { | func (jobs *Jobs) ensureFailedBuild(build v1alpha1.Build, jenkins *v1alpha1.Jenkins, parameters map[string]string, preserveStatus bool) (bool, error) { | ||||||
| 	jobs.logger.V(log.VDebug).Info(fmt.Sprintf("Ensuring failed build, %+v", build)) | 	jobs.logger.V(log.VDebug).Info(fmt.Sprintf("Ensuring failed build, %+v", build)) | ||||||
| 
 | 
 | ||||||
| 	if build.Retires < BuildRetires { | 	if build.Retires < BuildRetires { | ||||||
|  | @ -176,7 +176,7 @@ func (jobs *Jobs) ensureFailedBuild(build virtuslabv1alpha1.Build, jenkins *virt | ||||||
| 	return false, ErrorUnrecoverableBuildFailed | 	return false, ErrorUnrecoverableBuildFailed | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (jobs *Jobs) ensureExpiredBuild(build virtuslabv1alpha1.Build, jenkins *virtuslabv1alpha1.Jenkins, preserveStatus bool) (bool, error) { | func (jobs *Jobs) ensureExpiredBuild(build v1alpha1.Build, jenkins *v1alpha1.Jenkins, preserveStatus bool) (bool, error) { | ||||||
| 	jobs.logger.V(log.VDebug).Info(fmt.Sprintf("Ensuring expired build, %+v", build)) | 	jobs.logger.V(log.VDebug).Info(fmt.Sprintf("Ensuring expired build, %+v", build)) | ||||||
| 
 | 
 | ||||||
| 	jenkinsBuild, err := jobs.jenkinsClient.GetBuild(build.JobName, build.Number) | 	jenkinsBuild, err := jobs.jenkinsClient.GetBuild(build.JobName, build.Number) | ||||||
|  | @ -194,7 +194,7 @@ func (jobs *Jobs) ensureExpiredBuild(build virtuslabv1alpha1.Build, jenkins *vir | ||||||
| 		return false, err | 		return false, err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if virtuslabv1alpha1.BuildStatus(jenkinsBuild.GetResult()) != virtuslabv1alpha1.BuildAbortedStatus { | 	if v1alpha1.BuildStatus(jenkinsBuild.GetResult()) != v1alpha1.BuildAbortedStatus { | ||||||
| 		return false, ErrorAbortBuildFailed | 		return false, ErrorAbortBuildFailed | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -217,8 +217,8 @@ func (jobs *Jobs) ensureExpiredBuild(build virtuslabv1alpha1.Build, jenkins *vir | ||||||
| 	return true, nil | 	return true, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (jobs *Jobs) removeBuildFromStatus(build virtuslabv1alpha1.Build, jenkins *virtuslabv1alpha1.Jenkins) error { | func (jobs *Jobs) removeBuildFromStatus(build v1alpha1.Build, jenkins *v1alpha1.Jenkins) error { | ||||||
| 	builds := make([]virtuslabv1alpha1.Build, len(jenkins.Status.Builds)) | 	builds := make([]v1alpha1.Build, len(jenkins.Status.Builds)) | ||||||
| 	for _, existingBuild := range jenkins.Status.Builds { | 	for _, existingBuild := range jenkins.Status.Builds { | ||||||
| 		if existingBuild.JobName != build.JobName && existingBuild.Hash != build.Hash { | 		if existingBuild.JobName != build.JobName && existingBuild.Hash != build.Hash { | ||||||
| 			builds = append(builds, existingBuild) | 			builds = append(builds, existingBuild) | ||||||
|  | @ -233,7 +233,7 @@ func (jobs *Jobs) removeBuildFromStatus(build virtuslabv1alpha1.Build, jenkins * | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (jobs *Jobs) buildJob(build virtuslabv1alpha1.Build, parameters map[string]string, jenkins *virtuslabv1alpha1.Jenkins) (bool, error) { | func (jobs *Jobs) buildJob(build v1alpha1.Build, parameters map[string]string, jenkins *v1alpha1.Jenkins) (bool, error) { | ||||||
| 	jobs.logger.Info(fmt.Sprintf("Running job, %+v", build)) | 	jobs.logger.Info(fmt.Sprintf("Running job, %+v", build)) | ||||||
| 	job, err := jobs.jenkinsClient.GetJob(build.JobName) | 	job, err := jobs.jenkinsClient.GetJob(build.JobName) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|  | @ -249,7 +249,7 @@ func (jobs *Jobs) buildJob(build virtuslabv1alpha1.Build, parameters map[string] | ||||||
| 		return false, err | 		return false, err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	build.Status = virtuslabv1alpha1.BuildRunningStatus | 	build.Status = v1alpha1.BuildRunningStatus | ||||||
| 	build.Number = nextBuildNumber | 	build.Number = nextBuildNumber | ||||||
| 
 | 
 | ||||||
| 	err = jobs.updateBuildStatus(build, jenkins) | 	err = jobs.updateBuildStatus(build, jenkins) | ||||||
|  | @ -260,7 +260,7 @@ func (jobs *Jobs) buildJob(build virtuslabv1alpha1.Build, parameters map[string] | ||||||
| 	return false, nil | 	return false, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (jobs *Jobs) updateBuildStatus(build virtuslabv1alpha1.Build, jenkins *virtuslabv1alpha1.Jenkins) error { | func (jobs *Jobs) updateBuildStatus(build v1alpha1.Build, jenkins *v1alpha1.Jenkins) error { | ||||||
| 	jobs.logger.V(log.VDebug).Info(fmt.Sprintf("Updating build status, %+v", build)) | 	jobs.logger.V(log.VDebug).Info(fmt.Sprintf("Updating build status, %+v", build)) | ||||||
| 	// get index of existing build from status if exists
 | 	// get index of existing build from status if exists
 | ||||||
| 	buildIndex := -1 | 	buildIndex := -1 | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" | ||||||
| 
 | 
 | ||||||
| 	"github.com/bndr/gojenkins" | 	"github.com/bndr/gojenkins" | ||||||
|  | @ -37,7 +37,7 @@ func TestSuccessEnsureJob(t *testing.T) { | ||||||
| 	// when
 | 	// when
 | ||||||
| 	jenkins := jenkinsCustomResource() | 	jenkins := jenkinsCustomResource() | ||||||
| 	fakeClient := fake.NewFakeClient() | 	fakeClient := fake.NewFakeClient() | ||||||
| 	err := virtuslabv1alpha1.SchemeBuilder.AddToScheme(scheme.Scheme) | 	err := v1alpha1.SchemeBuilder.AddToScheme(scheme.Scheme) | ||||||
| 	assert.NoError(t, err) | 	assert.NoError(t, err) | ||||||
| 	err = fakeClient.Create(ctx, jenkins) | 	err = fakeClient.Create(ctx, jenkins) | ||||||
| 	assert.NoError(t, err) | 	assert.NoError(t, err) | ||||||
|  | @ -67,7 +67,7 @@ func TestSuccessEnsureJob(t *testing.T) { | ||||||
| 			GetBuild(jobName, buildNumber). | 			GetBuild(jobName, buildNumber). | ||||||
| 			Return(&gojenkins.Build{ | 			Return(&gojenkins.Build{ | ||||||
| 				Raw: &gojenkins.BuildResponse{ | 				Raw: &gojenkins.BuildResponse{ | ||||||
| 					Result: string(virtuslabv1alpha1.BuildSuccessStatus), | 					Result: string(v1alpha1.BuildSuccessStatus), | ||||||
| 				}, | 				}, | ||||||
| 			}, nil).AnyTimes() | 			}, nil).AnyTimes() | ||||||
| 
 | 
 | ||||||
|  | @ -91,13 +91,13 @@ func TestSuccessEnsureJob(t *testing.T) { | ||||||
| 		// first run - build should be scheduled and status updated
 | 		// first run - build should be scheduled and status updated
 | ||||||
| 		if reconcileAttempt == 1 { | 		if reconcileAttempt == 1 { | ||||||
| 			assert.False(t, done) | 			assert.False(t, done) | ||||||
| 			assert.Equal(t, build.Status, virtuslabv1alpha1.BuildRunningStatus) | 			assert.Equal(t, build.Status, v1alpha1.BuildRunningStatus) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		// second run -job should be success and status updated
 | 		// second run -job should be success and status updated
 | ||||||
| 		if reconcileAttempt == 2 { | 		if reconcileAttempt == 2 { | ||||||
| 			assert.True(t, done) | 			assert.True(t, done) | ||||||
| 			assert.Equal(t, build.Status, virtuslabv1alpha1.BuildSuccessStatus) | 			assert.Equal(t, build.Status, v1alpha1.BuildSuccessStatus) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | @ -149,7 +149,7 @@ func TestEnsureJobWithFailedBuild(t *testing.T) { | ||||||
| 				GetBuild(jobName, int64(1)). | 				GetBuild(jobName, int64(1)). | ||||||
| 				Return(&gojenkins.Build{ | 				Return(&gojenkins.Build{ | ||||||
| 					Raw: &gojenkins.BuildResponse{ | 					Raw: &gojenkins.BuildResponse{ | ||||||
| 						Result: string(virtuslabv1alpha1.BuildFailureStatus), | 						Result: string(v1alpha1.BuildFailureStatus), | ||||||
| 					}, | 					}, | ||||||
| 				}, nil) | 				}, nil) | ||||||
| 		} | 		} | ||||||
|  | @ -178,7 +178,7 @@ func TestEnsureJobWithFailedBuild(t *testing.T) { | ||||||
| 				GetBuild(jobName, int64(2)). | 				GetBuild(jobName, int64(2)). | ||||||
| 				Return(&gojenkins.Build{ | 				Return(&gojenkins.Build{ | ||||||
| 					Raw: &gojenkins.BuildResponse{ | 					Raw: &gojenkins.BuildResponse{ | ||||||
| 						Result: string(virtuslabv1alpha1.BuildSuccessStatus), | 						Result: string(v1alpha1.BuildSuccessStatus), | ||||||
| 					}, | 					}, | ||||||
| 				}, nil) | 				}, nil) | ||||||
| 		} | 		} | ||||||
|  | @ -204,7 +204,7 @@ func TestEnsureJobWithFailedBuild(t *testing.T) { | ||||||
| 			assert.NoError(t, errEnsureBuildJob) | 			assert.NoError(t, errEnsureBuildJob) | ||||||
| 			assert.False(t, done) | 			assert.False(t, done) | ||||||
| 			assert.Equal(t, build.Number, int64(1)) | 			assert.Equal(t, build.Number, int64(1)) | ||||||
| 			assert.Equal(t, build.Status, virtuslabv1alpha1.BuildRunningStatus) | 			assert.Equal(t, build.Status, v1alpha1.BuildRunningStatus) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		// second run - build should be failure and status updated
 | 		// second run - build should be failure and status updated
 | ||||||
|  | @ -212,7 +212,7 @@ func TestEnsureJobWithFailedBuild(t *testing.T) { | ||||||
| 			assert.Error(t, errEnsureBuildJob) | 			assert.Error(t, errEnsureBuildJob) | ||||||
| 			assert.False(t, done) | 			assert.False(t, done) | ||||||
| 			assert.Equal(t, build.Number, int64(1)) | 			assert.Equal(t, build.Number, int64(1)) | ||||||
| 			assert.Equal(t, build.Status, virtuslabv1alpha1.BuildFailureStatus) | 			assert.Equal(t, build.Status, v1alpha1.BuildFailureStatus) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		// third run - build should be rescheduled and status updated
 | 		// third run - build should be rescheduled and status updated
 | ||||||
|  | @ -220,7 +220,7 @@ func TestEnsureJobWithFailedBuild(t *testing.T) { | ||||||
| 			assert.NoError(t, errEnsureBuildJob) | 			assert.NoError(t, errEnsureBuildJob) | ||||||
| 			assert.False(t, done) | 			assert.False(t, done) | ||||||
| 			assert.Equal(t, build.Number, int64(2)) | 			assert.Equal(t, build.Number, int64(2)) | ||||||
| 			assert.Equal(t, build.Status, virtuslabv1alpha1.BuildRunningStatus) | 			assert.Equal(t, build.Status, v1alpha1.BuildRunningStatus) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		// fourth run - build should be success and status updated
 | 		// fourth run - build should be success and status updated
 | ||||||
|  | @ -228,7 +228,7 @@ func TestEnsureJobWithFailedBuild(t *testing.T) { | ||||||
| 			assert.NoError(t, errEnsureBuildJob) | 			assert.NoError(t, errEnsureBuildJob) | ||||||
| 			assert.True(t, done) | 			assert.True(t, done) | ||||||
| 			assert.Equal(t, build.Number, int64(2)) | 			assert.Equal(t, build.Number, int64(2)) | ||||||
| 			assert.Equal(t, build.Status, virtuslabv1alpha1.BuildSuccessStatus) | 			assert.Equal(t, build.Status, v1alpha1.BuildSuccessStatus) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | @ -281,7 +281,7 @@ func TestEnsureJobFailedWithMaxRetries(t *testing.T) { | ||||||
| 				GetBuild(buildName, int64(1)). | 				GetBuild(buildName, int64(1)). | ||||||
| 				Return(&gojenkins.Build{ | 				Return(&gojenkins.Build{ | ||||||
| 					Raw: &gojenkins.BuildResponse{ | 					Raw: &gojenkins.BuildResponse{ | ||||||
| 						Result: string(virtuslabv1alpha1.BuildFailureStatus), | 						Result: string(v1alpha1.BuildFailureStatus), | ||||||
| 					}, | 					}, | ||||||
| 				}, nil) | 				}, nil) | ||||||
| 		} | 		} | ||||||
|  | @ -310,7 +310,7 @@ func TestEnsureJobFailedWithMaxRetries(t *testing.T) { | ||||||
| 				GetBuild(buildName, int64(2)). | 				GetBuild(buildName, int64(2)). | ||||||
| 				Return(&gojenkins.Build{ | 				Return(&gojenkins.Build{ | ||||||
| 					Raw: &gojenkins.BuildResponse{ | 					Raw: &gojenkins.BuildResponse{ | ||||||
| 						Result: string(virtuslabv1alpha1.BuildFailureStatus), | 						Result: string(v1alpha1.BuildFailureStatus), | ||||||
| 					}, | 					}, | ||||||
| 				}, nil) | 				}, nil) | ||||||
| 		} | 		} | ||||||
|  | @ -337,7 +337,7 @@ func TestEnsureJobFailedWithMaxRetries(t *testing.T) { | ||||||
| 			assert.False(t, done) | 			assert.False(t, done) | ||||||
| 			assert.Equal(t, build.Number, int64(1)) | 			assert.Equal(t, build.Number, int64(1)) | ||||||
| 			assert.Equal(t, build.Retires, 0) | 			assert.Equal(t, build.Retires, 0) | ||||||
| 			assert.Equal(t, build.Status, virtuslabv1alpha1.BuildRunningStatus) | 			assert.Equal(t, build.Status, v1alpha1.BuildRunningStatus) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		// second run - build should be failure and status updated
 | 		// second run - build should be failure and status updated
 | ||||||
|  | @ -346,7 +346,7 @@ func TestEnsureJobFailedWithMaxRetries(t *testing.T) { | ||||||
| 			assert.False(t, done) | 			assert.False(t, done) | ||||||
| 			assert.Equal(t, build.Number, int64(1)) | 			assert.Equal(t, build.Number, int64(1)) | ||||||
| 			assert.Equal(t, build.Retires, 0) | 			assert.Equal(t, build.Retires, 0) | ||||||
| 			assert.Equal(t, build.Status, virtuslabv1alpha1.BuildFailureStatus) | 			assert.Equal(t, build.Status, v1alpha1.BuildFailureStatus) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		// third run - build should be rescheduled and status updated
 | 		// third run - build should be rescheduled and status updated
 | ||||||
|  | @ -356,7 +356,7 @@ func TestEnsureJobFailedWithMaxRetries(t *testing.T) { | ||||||
| 			//assert.Equal(t, build.Retires, 1)
 | 			//assert.Equal(t, build.Retires, 1)
 | ||||||
| 			assert.Equal(t, build.Number, int64(2)) | 			assert.Equal(t, build.Number, int64(2)) | ||||||
| 			assert.Equal(t, build.Retires, 1) | 			assert.Equal(t, build.Retires, 1) | ||||||
| 			assert.Equal(t, build.Status, virtuslabv1alpha1.BuildRunningStatus) | 			assert.Equal(t, build.Status, v1alpha1.BuildRunningStatus) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		// fourth run - build should be failure and status updated
 | 		// fourth run - build should be failure and status updated
 | ||||||
|  | @ -365,7 +365,7 @@ func TestEnsureJobFailedWithMaxRetries(t *testing.T) { | ||||||
| 			assert.False(t, done) | 			assert.False(t, done) | ||||||
| 			assert.Equal(t, build.Number, int64(2)) | 			assert.Equal(t, build.Number, int64(2)) | ||||||
| 			assert.Equal(t, build.Retires, 1) | 			assert.Equal(t, build.Retires, 1) | ||||||
| 			assert.Equal(t, build.Status, virtuslabv1alpha1.BuildFailureStatus) | 			assert.Equal(t, build.Status, v1alpha1.BuildFailureStatus) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		// fifth run - build should be unrecoverable failed and status updated
 | 		// fifth run - build should be unrecoverable failed and status updated
 | ||||||
|  | @ -374,19 +374,19 @@ func TestEnsureJobFailedWithMaxRetries(t *testing.T) { | ||||||
| 			assert.False(t, done) | 			assert.False(t, done) | ||||||
| 			assert.Equal(t, build.Number, int64(2)) | 			assert.Equal(t, build.Number, int64(2)) | ||||||
| 			assert.Equal(t, build.Retires, 1) | 			assert.Equal(t, build.Retires, 1) | ||||||
| 			assert.Equal(t, build.Status, virtuslabv1alpha1.BuildFailureStatus) | 			assert.Equal(t, build.Status, v1alpha1.BuildFailureStatus) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func jenkinsCustomResource() *virtuslabv1alpha1.Jenkins { | func jenkinsCustomResource() *v1alpha1.Jenkins { | ||||||
| 	return &virtuslabv1alpha1.Jenkins{ | 	return &v1alpha1.Jenkins{ | ||||||
| 		ObjectMeta: metav1.ObjectMeta{ | 		ObjectMeta: metav1.ObjectMeta{ | ||||||
| 			Name:      "jenkins", | 			Name:      "jenkins", | ||||||
| 			Namespace: "default", | 			Namespace: "default", | ||||||
| 		}, | 		}, | ||||||
| 		Spec: virtuslabv1alpha1.JenkinsSpec{ | 		Spec: v1alpha1.JenkinsSpec{ | ||||||
| 			Master: virtuslabv1alpha1.JenkinsMaster{ | 			Master: v1alpha1.JenkinsMaster{ | ||||||
| 				Image:       "jenkins/jenkins", | 				Image:       "jenkins/jenkins", | ||||||
| 				Annotations: map[string]string{"test": "label"}, | 				Annotations: map[string]string{"test": "label"}, | ||||||
| 				Resources: corev1.ResourceRequirements{ | 				Resources: corev1.ResourceRequirements{ | ||||||
|  | @ -400,13 +400,13 @@ func jenkinsCustomResource() *virtuslabv1alpha1.Jenkins { | ||||||
| 					}, | 					}, | ||||||
| 				}, | 				}, | ||||||
| 			}, | 			}, | ||||||
| 			SeedJobs: []virtuslabv1alpha1.SeedJob{ | 			SeedJobs: []v1alpha1.SeedJob{ | ||||||
| 				{ | 				{ | ||||||
| 					ID:               "jenkins-operator-e2e", | 					ID:               "jenkins-operator-e2e", | ||||||
| 					Targets:          "cicd/jobs/*.jenkins", | 					Targets:          "cicd/jobs/*.jenkins", | ||||||
| 					Description:      "Jenkins Operator e2e tests repository", | 					Description:      "Jenkins Operator e2e tests repository", | ||||||
| 					RepositoryBranch: "master", | 					RepositoryBranch: "master", | ||||||
| 					RepositoryURL:    "https://github.com/VirtusLab/jenkins-operator-e2e.git", | 					RepositoryURL:    "https://github.com/jenkinsci/kubernetes-operator.git", | ||||||
| 				}, | 				}, | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
|  |  | ||||||
|  | @ -8,7 +8,7 @@ import ( | ||||||
| 	"os" | 	"os" | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | ||||||
| 
 | 
 | ||||||
|  | @ -98,20 +98,20 @@ func verifyIfBackupAndRestoreWasSuccessfull(t *testing.T, jenkinsClient *gojenki | ||||||
| 	assert.True(t, latestBackupFound) | 	assert.True(t, latestBackupFound) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func createJenkinsCRWithAmazonS3Backup(t *testing.T, namespace string, backupConfig amazonS3BackupConfiguration) *virtuslabv1alpha1.Jenkins { | func createJenkinsCRWithAmazonS3Backup(t *testing.T, namespace string, backupConfig amazonS3BackupConfiguration) *v1alpha1.Jenkins { | ||||||
| 	jenkins := &virtuslabv1alpha1.Jenkins{ | 	jenkins := &v1alpha1.Jenkins{ | ||||||
| 		ObjectMeta: metav1.ObjectMeta{ | 		ObjectMeta: metav1.ObjectMeta{ | ||||||
| 			Name:      "e2e", | 			Name:      "e2e", | ||||||
| 			Namespace: namespace, | 			Namespace: namespace, | ||||||
| 		}, | 		}, | ||||||
| 		Spec: virtuslabv1alpha1.JenkinsSpec{ | 		Spec: v1alpha1.JenkinsSpec{ | ||||||
| 			Backup: virtuslabv1alpha1.JenkinsBackupTypeAmazonS3, | 			Backup: v1alpha1.JenkinsBackupTypeAmazonS3, | ||||||
| 			BackupAmazonS3: virtuslabv1alpha1.JenkinsBackupAmazonS3{ | 			BackupAmazonS3: v1alpha1.JenkinsBackupAmazonS3{ | ||||||
| 				Region:     backupConfig.Region, | 				Region:     backupConfig.Region, | ||||||
| 				BucketPath: backupConfig.BucketPath, | 				BucketPath: backupConfig.BucketPath, | ||||||
| 				BucketName: backupConfig.BucketName, | 				BucketName: backupConfig.BucketName, | ||||||
| 			}, | 			}, | ||||||
| 			Master: virtuslabv1alpha1.JenkinsMaster{ | 			Master: v1alpha1.JenkinsMaster{ | ||||||
| 				Image: "jenkins/jenkins", | 				Image: "jenkins/jenkins", | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
|  |  | ||||||
|  | @ -5,7 +5,7 @@ import ( | ||||||
| 	"reflect" | 	"reflect" | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/plugins" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/plugins" | ||||||
| 
 | 
 | ||||||
| 	"github.com/bndr/gojenkins" | 	"github.com/bndr/gojenkins" | ||||||
|  | @ -59,7 +59,7 @@ func createDefaultLimitsForContainersInNamespace(t *testing.T, namespace string) | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func verifyJenkinsMasterPodAttributes(t *testing.T, jenkins *virtuslabv1alpha1.Jenkins) { | func verifyJenkinsMasterPodAttributes(t *testing.T, jenkins *v1alpha1.Jenkins) { | ||||||
| 	jenkinsPod := getJenkinsMasterPod(t, jenkins) | 	jenkinsPod := getJenkinsMasterPod(t, jenkins) | ||||||
| 	jenkins = getJenkins(t, jenkins.Namespace, jenkins.Name) | 	jenkins = getJenkins(t, jenkins.Namespace, jenkins.Name) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ import ( | ||||||
| 	"net/http" | 	"net/http" | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" | 	jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources" | ||||||
| 
 | 
 | ||||||
|  | @ -18,8 +18,8 @@ import ( | ||||||
| 	"k8s.io/apimachinery/pkg/types" | 	"k8s.io/apimachinery/pkg/types" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func getJenkins(t *testing.T, namespace, name string) *virtuslabv1alpha1.Jenkins { | func getJenkins(t *testing.T, namespace, name string) *v1alpha1.Jenkins { | ||||||
| 	jenkins := &virtuslabv1alpha1.Jenkins{} | 	jenkins := &v1alpha1.Jenkins{} | ||||||
| 	namespaceName := types.NamespacedName{Namespace: namespace, Name: name} | 	namespaceName := types.NamespacedName{Namespace: namespace, Name: name} | ||||||
| 	if err := framework.Global.Client.Get(context.TODO(), namespaceName, jenkins); err != nil { | 	if err := framework.Global.Client.Get(context.TODO(), namespaceName, jenkins); err != nil { | ||||||
| 		t.Fatal(err) | 		t.Fatal(err) | ||||||
|  | @ -28,7 +28,7 @@ func getJenkins(t *testing.T, namespace, name string) *virtuslabv1alpha1.Jenkins | ||||||
| 	return jenkins | 	return jenkins | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func getJenkinsMasterPod(t *testing.T, jenkins *virtuslabv1alpha1.Jenkins) *v1.Pod { | func getJenkinsMasterPod(t *testing.T, jenkins *v1alpha1.Jenkins) *v1.Pod { | ||||||
| 	lo := metav1.ListOptions{ | 	lo := metav1.ListOptions{ | ||||||
| 		LabelSelector: labels.SelectorFromSet(resources.BuildResourceLabels(jenkins)).String(), | 		LabelSelector: labels.SelectorFromSet(resources.BuildResourceLabels(jenkins)).String(), | ||||||
| 	} | 	} | ||||||
|  | @ -42,7 +42,7 @@ func getJenkinsMasterPod(t *testing.T, jenkins *virtuslabv1alpha1.Jenkins) *v1.P | ||||||
| 	return &podList.Items[0] | 	return &podList.Items[0] | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func createJenkinsAPIClient(jenkins *virtuslabv1alpha1.Jenkins) (*gojenkins.Jenkins, error) { | func createJenkinsAPIClient(jenkins *v1alpha1.Jenkins) (*gojenkins.Jenkins, error) { | ||||||
| 	adminSecret := &v1.Secret{} | 	adminSecret := &v1.Secret{} | ||||||
| 	namespaceName := types.NamespacedName{Namespace: jenkins.Namespace, Name: resources.GetOperatorCredentialsSecretName(jenkins)} | 	namespaceName := types.NamespacedName{Namespace: jenkins.Namespace, Name: resources.GetOperatorCredentialsSecretName(jenkins)} | ||||||
| 	if err := framework.Global.Client.Get(context.TODO(), namespaceName, adminSecret); err != nil { | 	if err := framework.Global.Client.Get(context.TODO(), namespaceName, adminSecret); err != nil { | ||||||
|  | @ -75,14 +75,14 @@ func createJenkinsAPIClient(jenkins *virtuslabv1alpha1.Jenkins) (*gojenkins.Jenk | ||||||
| 	return jenkinsClient, nil | 	return jenkinsClient, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func createJenkinsCR(t *testing.T, namespace string) *virtuslabv1alpha1.Jenkins { | func createJenkinsCR(t *testing.T, namespace string) *v1alpha1.Jenkins { | ||||||
| 	jenkins := &virtuslabv1alpha1.Jenkins{ | 	jenkins := &v1alpha1.Jenkins{ | ||||||
| 		ObjectMeta: metav1.ObjectMeta{ | 		ObjectMeta: metav1.ObjectMeta{ | ||||||
| 			Name:      "e2e", | 			Name:      "e2e", | ||||||
| 			Namespace: namespace, | 			Namespace: namespace, | ||||||
| 		}, | 		}, | ||||||
| 		Spec: virtuslabv1alpha1.JenkinsSpec{ | 		Spec: v1alpha1.JenkinsSpec{ | ||||||
| 			Master: virtuslabv1alpha1.JenkinsMaster{ | 			Master: v1alpha1.JenkinsMaster{ | ||||||
| 				Image:       "jenkins/jenkins", | 				Image:       "jenkins/jenkins", | ||||||
| 				Annotations: map[string]string{"test": "label"}, | 				Annotations: map[string]string{"test": "label"}, | ||||||
| 			}, | 			}, | ||||||
|  | @ -97,19 +97,19 @@ func createJenkinsCR(t *testing.T, namespace string) *virtuslabv1alpha1.Jenkins | ||||||
| 	return jenkins | 	return jenkins | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func createJenkinsCRWithSeedJob(t *testing.T, namespace string) *virtuslabv1alpha1.Jenkins { | func createJenkinsCRWithSeedJob(t *testing.T, namespace string) *v1alpha1.Jenkins { | ||||||
| 	jenkins := &virtuslabv1alpha1.Jenkins{ | 	jenkins := &v1alpha1.Jenkins{ | ||||||
| 		ObjectMeta: metav1.ObjectMeta{ | 		ObjectMeta: metav1.ObjectMeta{ | ||||||
| 			Name:      "e2e", | 			Name:      "e2e", | ||||||
| 			Namespace: namespace, | 			Namespace: namespace, | ||||||
| 		}, | 		}, | ||||||
| 		Spec: virtuslabv1alpha1.JenkinsSpec{ | 		Spec: v1alpha1.JenkinsSpec{ | ||||||
| 			Master: virtuslabv1alpha1.JenkinsMaster{ | 			Master: v1alpha1.JenkinsMaster{ | ||||||
| 				Image:       "jenkins/jenkins", | 				Image:       "jenkins/jenkins", | ||||||
| 				Annotations: map[string]string{"test": "label"}, | 				Annotations: map[string]string{"test": "label"}, | ||||||
| 			}, | 			}, | ||||||
| 			//TODO(bantoniak) add seed job with private key
 | 			//TODO(bantoniak) add seed job with private key
 | ||||||
| 			SeedJobs: []virtuslabv1alpha1.SeedJob{ | 			SeedJobs: []v1alpha1.SeedJob{ | ||||||
| 				{ | 				{ | ||||||
| 					ID:               "jenkins-operator", | 					ID:               "jenkins-operator", | ||||||
| 					Targets:          "cicd/jobs/*.jenkins", | 					Targets:          "cicd/jobs/*.jenkins", | ||||||
|  | @ -129,7 +129,7 @@ func createJenkinsCRWithSeedJob(t *testing.T, namespace string) *virtuslabv1alph | ||||||
| 	return jenkins | 	return jenkins | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func verifyJenkinsAPIConnection(t *testing.T, jenkins *virtuslabv1alpha1.Jenkins) *gojenkins.Jenkins { | func verifyJenkinsAPIConnection(t *testing.T, jenkins *v1alpha1.Jenkins) *gojenkins.Jenkins { | ||||||
| 	client, err := createJenkinsAPIClient(jenkins) | 	client, err := createJenkinsAPIClient(jenkins) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		t.Fatal(err) | 		t.Fatal(err) | ||||||
|  | @ -139,7 +139,7 @@ func verifyJenkinsAPIConnection(t *testing.T, jenkins *virtuslabv1alpha1.Jenkins | ||||||
| 	return client | 	return client | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func restartJenkinsMasterPod(t *testing.T, jenkins *virtuslabv1alpha1.Jenkins) { | func restartJenkinsMasterPod(t *testing.T, jenkins *v1alpha1.Jenkins) { | ||||||
| 	t.Log("Restarting Jenkins master pod") | 	t.Log("Restarting Jenkins master pod") | ||||||
| 	jenkinsPod := getJenkinsMasterPod(t, jenkins) | 	jenkinsPod := getJenkinsMasterPod(t, jenkins) | ||||||
| 	err := framework.Global.Client.Delete(context.TODO(), jenkinsPod) | 	err := framework.Global.Client.Delete(context.TODO(), jenkinsPod) | ||||||
|  |  | ||||||
|  | @ -5,7 +5,7 @@ import ( | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/apis" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis" | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" | ||||||
| 
 | 
 | ||||||
| 	f "github.com/operator-framework/operator-sdk/pkg/test" | 	f "github.com/operator-framework/operator-sdk/pkg/test" | ||||||
|  | @ -35,10 +35,10 @@ func setupTest(t *testing.T) (string, *framework.TestCtx) { | ||||||
| 		t.Fatalf("could not initialize cluster resources: %v", err) | 		t.Fatalf("could not initialize cluster resources: %v", err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	jenkinsServiceList := &virtuslabv1alpha1.JenkinsList{ | 	jenkinsServiceList := &v1alpha1.JenkinsList{ | ||||||
| 		TypeMeta: metav1.TypeMeta{ | 		TypeMeta: metav1.TypeMeta{ | ||||||
| 			Kind:       virtuslabv1alpha1.Kind, | 			Kind:       v1alpha1.Kind, | ||||||
| 			APIVersion: virtuslabv1alpha1.SchemeGroupVersion.String(), | 			APIVersion: v1alpha1.SchemeGroupVersion.String(), | ||||||
| 		}, | 		}, | ||||||
| 	} | 	} | ||||||
| 	err = framework.AddToFrameworkScheme(apis.AddToScheme, jenkinsServiceList) | 	err = framework.AddToFrameworkScheme(apis.AddToScheme, jenkinsServiceList) | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 
 | 
 | ||||||
| 	framework "github.com/operator-framework/operator-sdk/pkg/test" | 	framework "github.com/operator-framework/operator-sdk/pkg/test" | ||||||
| 	"k8s.io/apimachinery/pkg/types" | 	"k8s.io/apimachinery/pkg/types" | ||||||
|  | @ -24,8 +24,8 @@ func TestJenkinsMasterPodRestart(t *testing.T) { | ||||||
| 	waitForJenkinsBaseConfigurationToComplete(t, jenkins) | 	waitForJenkinsBaseConfigurationToComplete(t, jenkins) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func checkBaseConfigurationCompleteTimeIsNotSet(t *testing.T, jenkins *virtuslabv1alpha1.Jenkins) { | func checkBaseConfigurationCompleteTimeIsNotSet(t *testing.T, jenkins *v1alpha1.Jenkins) { | ||||||
| 	jenkinsStatus := &virtuslabv1alpha1.Jenkins{} | 	jenkinsStatus := &v1alpha1.Jenkins{} | ||||||
| 	namespaceName := types.NamespacedName{Namespace: jenkins.Namespace, Name: jenkins.Name} | 	namespaceName := types.NamespacedName{Namespace: jenkins.Namespace, Name: jenkins.Name} | ||||||
| 	err := framework.Global.Client.Get(context.TODO(), namespaceName, jenkinsStatus) | 	err := framework.Global.Client.Get(context.TODO(), namespaceName, jenkinsStatus) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|  |  | ||||||
|  | @ -5,7 +5,7 @@ import ( | ||||||
| 	"testing" | 	"testing" | ||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/user/seedjobs" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/user/seedjobs" | ||||||
| 
 | 
 | ||||||
| 	"github.com/bndr/gojenkins" | 	"github.com/bndr/gojenkins" | ||||||
|  | @ -31,7 +31,7 @@ func TestUserConfiguration(t *testing.T) { | ||||||
| 	verifyJenkinsSeedJobs(t, client, jenkins) | 	verifyJenkinsSeedJobs(t, client, jenkins) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func verifyJenkinsSeedJobs(t *testing.T, client *gojenkins.Jenkins, jenkins *virtuslabv1alpha1.Jenkins) { | func verifyJenkinsSeedJobs(t *testing.T, client *gojenkins.Jenkins, jenkins *v1alpha1.Jenkins) { | ||||||
| 	t.Logf("Attempting to get configure seed job status '%v'", seedjobs.ConfigureSeedJobsName) | 	t.Logf("Attempting to get configure seed job status '%v'", seedjobs.ConfigureSeedJobsName) | ||||||
| 
 | 
 | ||||||
| 	configureSeedJobs, err := client.GetJob(seedjobs.ConfigureSeedJobsName) | 	configureSeedJobs, err := client.GetJob(seedjobs.ConfigureSeedJobsName) | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ import ( | ||||||
| 	"testing" | 	"testing" | ||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources" | ||||||
| 
 | 
 | ||||||
| 	framework "github.com/operator-framework/operator-sdk/pkg/test" | 	framework "github.com/operator-framework/operator-sdk/pkg/test" | ||||||
|  | @ -22,11 +22,11 @@ var ( | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // checkConditionFunc is used to check if a condition for the jenkins CR is true
 | // checkConditionFunc is used to check if a condition for the jenkins CR is true
 | ||||||
| type checkConditionFunc func(*virtuslabv1alpha1.Jenkins) bool | type checkConditionFunc func(*v1alpha1.Jenkins) bool | ||||||
| 
 | 
 | ||||||
| func waitForJenkinsBaseConfigurationToComplete(t *testing.T, jenkins *virtuslabv1alpha1.Jenkins) { | func waitForJenkinsBaseConfigurationToComplete(t *testing.T, jenkins *v1alpha1.Jenkins) { | ||||||
| 	t.Log("Waiting for Jenkins base configuration to complete") | 	t.Log("Waiting for Jenkins base configuration to complete") | ||||||
| 	_, err := WaitUntilJenkinsConditionTrue(retryInterval, 150, jenkins, func(jenkins *virtuslabv1alpha1.Jenkins) bool { | 	_, err := WaitUntilJenkinsConditionTrue(retryInterval, 150, jenkins, func(jenkins *v1alpha1.Jenkins) bool { | ||||||
| 		t.Logf("Current Jenkins status '%+v'", jenkins.Status) | 		t.Logf("Current Jenkins status '%+v'", jenkins.Status) | ||||||
| 		return jenkins.Status.BaseConfigurationCompletedTime != nil | 		return jenkins.Status.BaseConfigurationCompletedTime != nil | ||||||
| 	}) | 	}) | ||||||
|  | @ -36,7 +36,7 @@ func waitForJenkinsBaseConfigurationToComplete(t *testing.T, jenkins *virtuslabv | ||||||
| 	t.Log("Jenkins pod is running") | 	t.Log("Jenkins pod is running") | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func waitForRecreateJenkinsMasterPod(t *testing.T, jenkins *virtuslabv1alpha1.Jenkins) { | func waitForRecreateJenkinsMasterPod(t *testing.T, jenkins *v1alpha1.Jenkins) { | ||||||
| 	err := wait.Poll(retryInterval, 30*retryInterval, func() (bool, error) { | 	err := wait.Poll(retryInterval, 30*retryInterval, func() (bool, error) { | ||||||
| 		lo := metav1.ListOptions{ | 		lo := metav1.ListOptions{ | ||||||
| 			LabelSelector: labels.SelectorFromSet(resources.BuildResourceLabels(jenkins)).String(), | 			LabelSelector: labels.SelectorFromSet(resources.BuildResourceLabels(jenkins)).String(), | ||||||
|  | @ -57,9 +57,9 @@ func waitForRecreateJenkinsMasterPod(t *testing.T, jenkins *virtuslabv1alpha1.Je | ||||||
| 	t.Log("Jenkins pod has been recreated") | 	t.Log("Jenkins pod has been recreated") | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func waitForJenkinsUserConfigurationToComplete(t *testing.T, jenkins *virtuslabv1alpha1.Jenkins) { | func waitForJenkinsUserConfigurationToComplete(t *testing.T, jenkins *v1alpha1.Jenkins) { | ||||||
| 	t.Log("Waiting for Jenkins user configuration to complete") | 	t.Log("Waiting for Jenkins user configuration to complete") | ||||||
| 	_, err := WaitUntilJenkinsConditionTrue(retryInterval, 30, jenkins, func(jenkins *virtuslabv1alpha1.Jenkins) bool { | 	_, err := WaitUntilJenkinsConditionTrue(retryInterval, 30, jenkins, func(jenkins *v1alpha1.Jenkins) bool { | ||||||
| 		t.Logf("Current Jenkins status '%+v'", jenkins.Status) | 		t.Logf("Current Jenkins status '%+v'", jenkins.Status) | ||||||
| 		return jenkins.Status.UserConfigurationCompletedTime != nil | 		return jenkins.Status.UserConfigurationCompletedTime != nil | ||||||
| 	}) | 	}) | ||||||
|  | @ -70,8 +70,8 @@ func waitForJenkinsUserConfigurationToComplete(t *testing.T, jenkins *virtuslabv | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // WaitUntilJenkinsConditionTrue retries until the specified condition check becomes true for the jenkins CR
 | // WaitUntilJenkinsConditionTrue retries until the specified condition check becomes true for the jenkins CR
 | ||||||
| func WaitUntilJenkinsConditionTrue(retryInterval time.Duration, retries int, jenkins *virtuslabv1alpha1.Jenkins, checkCondition checkConditionFunc) (*virtuslabv1alpha1.Jenkins, error) { | func WaitUntilJenkinsConditionTrue(retryInterval time.Duration, retries int, jenkins *v1alpha1.Jenkins, checkCondition checkConditionFunc) (*v1alpha1.Jenkins, error) { | ||||||
| 	jenkinsStatus := &virtuslabv1alpha1.Jenkins{} | 	jenkinsStatus := &v1alpha1.Jenkins{} | ||||||
| 	err := wait.Poll(retryInterval, time.Duration(retries)*retryInterval, func() (bool, error) { | 	err := wait.Poll(retryInterval, time.Duration(retries)*retryInterval, func() (bool, error) { | ||||||
| 		namespacedName := types.NamespacedName{Namespace: jenkins.Namespace, Name: jenkins.Name} | 		namespacedName := types.NamespacedName{Namespace: jenkins.Namespace, Name: jenkins.Name} | ||||||
| 		err := framework.Global.Client.Get(goctx.TODO(), namespacedName, jenkinsStatus) | 		err := framework.Global.Client.Get(goctx.TODO(), namespacedName, jenkinsStatus) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue