Rename virtuslab.com to jenkins.io

This commit is contained in:
Tomasz Sęk 2019-02-12 19:50:22 +01:00
parent 8c1a44bc30
commit da17e1a011
No known key found for this signature in database
GPG Key ID: DC356D23F6A644D0
45 changed files with 269 additions and 269 deletions

View File

@ -159,7 +159,7 @@ ifeq ($(ENVIRONMENT),minikube)
endif
@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
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
@echo "+ $@"
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"
build/_output/bin/jenkins-operator $(EXTRA_ARGS)

View File

@ -1,4 +1,4 @@
apiVersion: virtuslab.com/v1alpha1
apiVersion: jenkins.io/v1alpha1
kind: Jenkins
metadata:
name: example

View File

@ -1,9 +1,9 @@
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: jenkins.virtuslab.com
name: jenkins.jenkins.io
spec:
group: virtuslab.com
group: jenkins.io
names:
kind: Jenkins
listKind: JenkinsList

View File

@ -5,7 +5,7 @@ metadata:
name: jenkins-operator
rules:
- apiGroups:
- virtuslab.com
- jenkins.io
resources:
- '*'
verbs:

View File

@ -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:
```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 po
```
@ -63,7 +63,7 @@ To be able to work with the docker daemon on `minikube` machine run the followin
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:

View File

@ -21,7 +21,7 @@ Once jenkins-operator is up and running let's deploy actual Jenkins instance.
Let's use example below:
```bash
apiVersion: virtuslab.com/v1alpha1
apiVersion: jenkins.io/v1alpha1
kind: Jenkins
metadata:
name: example
@ -149,7 +149,7 @@ podTemplate(label: label,
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
metadata:
name: example
@ -167,7 +167,7 @@ spec:
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
metadata:
name: example

View File

@ -14,7 +14,7 @@ To run **jenkins-operator**, you will need:
Install Jenkins Custom Resource Definition:
```bash
kubectl apply -f deploy/crds/virtuslab_v1alpha1_jenkins_crd.yaml
kubectl apply -f deploy/crds/jenkinsio_v1alpha1_jenkins_crd.yaml
```
## Deploy jenkins-operator

View File

@ -1,7 +1,7 @@
package apis
import (
"github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/v1alpha1"
"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1"
)
func init() {

View File

@ -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

View File

@ -1,8 +1,8 @@
// 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
// +groupName=virtuslab.com
// +groupName=jenkins.io
package v1alpha1
import (
@ -17,7 +17,7 @@ const (
var (
// 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 = &scheme.Builder{GroupVersion: SchemeGroupVersion}

View File

@ -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

View File

@ -4,7 +4,7 @@ import (
"context"
"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/constants"
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/plugins"
@ -21,7 +21,7 @@ import (
type AmazonS3Backup struct{}
// 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'?>
<flow-definition plugin="workflow-job@2.31">
<actions/>
@ -106,7 +106,7 @@ node(&apos;master&apos;) {
}
// 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'?>
<flow-definition plugin="workflow-job@2.31">
<actions/>
@ -188,7 +188,7 @@ node(&apos;master&apos;) {
}
// 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 {
logger.V(log.VWarn).Info("Bucket name not set in 'spec.backupAmazonS3.bucketName'")
return false
@ -208,7 +208,7 @@ func (b *AmazonS3Backup) IsConfigurationValidForBasePhase(jenkins virtuslabv1alp
}
// 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)
backupSecret := &corev1.Secret{}
err := k8sClient.Get(context.TODO(), types.NamespacedName{Namespace: jenkins.Namespace, Name: backupSecretName}, backupSecret)

View File

@ -4,7 +4,7 @@ import (
"context"
"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/stretchr/testify/assert"
@ -17,14 +17,14 @@ import (
func TestAmazonS3Backup_IsConfigurationValidForBasePhase(t *testing.T) {
tests := []struct {
name string
jenkins virtuslabv1alpha1.Jenkins
jenkins v1alpha1.Jenkins
want bool
}{
{
name: "happy",
jenkins: virtuslabv1alpha1.Jenkins{
Spec: virtuslabv1alpha1.JenkinsSpec{
BackupAmazonS3: virtuslabv1alpha1.JenkinsBackupAmazonS3{
jenkins: v1alpha1.Jenkins{
Spec: v1alpha1.JenkinsSpec{
BackupAmazonS3: v1alpha1.JenkinsBackupAmazonS3{
BucketName: "some-value",
BucketPath: "some-value",
Region: "some-value",
@ -35,9 +35,9 @@ func TestAmazonS3Backup_IsConfigurationValidForBasePhase(t *testing.T) {
},
{
name: "fail, no bucket name",
jenkins: virtuslabv1alpha1.Jenkins{
Spec: virtuslabv1alpha1.JenkinsSpec{
BackupAmazonS3: virtuslabv1alpha1.JenkinsBackupAmazonS3{
jenkins: v1alpha1.Jenkins{
Spec: v1alpha1.JenkinsSpec{
BackupAmazonS3: v1alpha1.JenkinsBackupAmazonS3{
BucketName: "",
BucketPath: "some-value",
Region: "some-value",
@ -48,9 +48,9 @@ func TestAmazonS3Backup_IsConfigurationValidForBasePhase(t *testing.T) {
},
{
name: "fail, no bucket path",
jenkins: virtuslabv1alpha1.Jenkins{
Spec: virtuslabv1alpha1.JenkinsSpec{
BackupAmazonS3: virtuslabv1alpha1.JenkinsBackupAmazonS3{
jenkins: v1alpha1.Jenkins{
Spec: v1alpha1.JenkinsSpec{
BackupAmazonS3: v1alpha1.JenkinsBackupAmazonS3{
BucketName: "some-value",
BucketPath: "",
Region: "some-value",
@ -61,9 +61,9 @@ func TestAmazonS3Backup_IsConfigurationValidForBasePhase(t *testing.T) {
},
{
name: "fail, no region",
jenkins: virtuslabv1alpha1.Jenkins{
Spec: virtuslabv1alpha1.JenkinsSpec{
BackupAmazonS3: virtuslabv1alpha1.JenkinsBackupAmazonS3{
jenkins: v1alpha1.Jenkins{
Spec: v1alpha1.JenkinsSpec{
BackupAmazonS3: v1alpha1.JenkinsBackupAmazonS3{
BucketName: "some-value",
BucketPath: "some-value",
Region: "",
@ -85,14 +85,14 @@ func TestAmazonS3Backup_IsConfigurationValidForBasePhase(t *testing.T) {
func TestAmazonS3Backup_IsConfigurationValidForUserPhase(t *testing.T) {
tests := []struct {
name string
jenkins *virtuslabv1alpha1.Jenkins
jenkins *v1alpha1.Jenkins
secret *corev1.Secret
want bool
wantErr bool
}{
{
name: "happy",
jenkins: &virtuslabv1alpha1.Jenkins{
jenkins: &v1alpha1.Jenkins{
ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"},
},
secret: &corev1.Secret{
@ -107,7 +107,7 @@ func TestAmazonS3Backup_IsConfigurationValidForUserPhase(t *testing.T) {
},
{
name: "fail, no secret",
jenkins: &virtuslabv1alpha1.Jenkins{
jenkins: &v1alpha1.Jenkins{
ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"},
},
want: false,
@ -115,7 +115,7 @@ func TestAmazonS3Backup_IsConfigurationValidForUserPhase(t *testing.T) {
},
{
name: "fail, no secret key in secret",
jenkins: &virtuslabv1alpha1.Jenkins{
jenkins: &v1alpha1.Jenkins{
ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"},
},
secret: &corev1.Secret{
@ -130,7 +130,7 @@ func TestAmazonS3Backup_IsConfigurationValidForUserPhase(t *testing.T) {
},
{
name: "fail, no access key in secret",
jenkins: &virtuslabv1alpha1.Jenkins{
jenkins: &v1alpha1.Jenkins{
ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"},
},
secret: &corev1.Secret{

View File

@ -5,7 +5,7 @@ import (
"fmt"
"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/nobackup"
jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client"
@ -26,23 +26,23 @@ const (
// Provider defines API of backup providers
type Provider interface {
GetRestoreJobXML(jenkins virtuslabv1alpha1.Jenkins) (string, error)
GetBackupJobXML(jenkins virtuslabv1alpha1.Jenkins) (string, error)
IsConfigurationValidForBasePhase(jenkins virtuslabv1alpha1.Jenkins, logger logr.Logger) bool
IsConfigurationValidForUserPhase(k8sClient k8s.Client, jenkins virtuslabv1alpha1.Jenkins, logger logr.Logger) (bool, error)
GetRestoreJobXML(jenkins v1alpha1.Jenkins) (string, error)
GetBackupJobXML(jenkins v1alpha1.Jenkins) (string, error)
IsConfigurationValidForBasePhase(jenkins v1alpha1.Jenkins, logger logr.Logger) bool
IsConfigurationValidForUserPhase(k8sClient k8s.Client, jenkins v1alpha1.Jenkins, logger logr.Logger) (bool, error)
GetRequiredPlugins() map[string][]plugins.Plugin
}
// Backup defines backup manager which is responsible of backup of jobs history
type Backup struct {
jenkins *virtuslabv1alpha1.Jenkins
jenkins *v1alpha1.Jenkins
k8sClient k8s.Client
logger logr.Logger
jenkinsClient jenkinsclient.Jenkins
}
// 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}
}
@ -127,11 +127,11 @@ func (b *Backup) EnsureBackupJob() error {
}
// GetBackupProvider returns backup provider by type
func GetBackupProvider(backupType virtuslabv1alpha1.JenkinsBackup) (Provider, error) {
func GetBackupProvider(backupType v1alpha1.JenkinsBackup) (Provider, error) {
switch backupType {
case virtuslabv1alpha1.JenkinsBackupTypeNoBackup:
case v1alpha1.JenkinsBackupTypeNoBackup:
return &nobackup.NoBackup{}, nil
case virtuslabv1alpha1.JenkinsBackupTypeAmazonS3:
case v1alpha1.JenkinsBackupTypeAmazonS3:
return &aws.AmazonS3Backup{}, nil
default:
return nil, errors.Errorf("Invalid BackupManager type '%s'", backupType)

View File

@ -1,7 +1,7 @@
package nobackup
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/go-logr/logr"
@ -27,22 +27,22 @@ var emptyJob = `<?xml version='1.1' encoding='UTF-8'?>
`
// 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
}
// 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
}
// 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
}
// 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
}

View File

@ -6,7 +6,7 @@ import (
"reflect"
"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"
jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client"
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources"
@ -36,13 +36,13 @@ type ReconcileJenkinsBaseConfiguration struct {
k8sClient client.Client
scheme *runtime.Scheme
logger logr.Logger
jenkins *virtuslabv1alpha1.Jenkins
jenkins *v1alpha1.Jenkins
local, minikube bool
}
// New create structure which takes care of base configuration
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{
k8sClient: client,
scheme: scheme,
@ -305,7 +305,7 @@ func (r *ReconcileJenkinsBaseConfiguration) ensureJenkinsMasterPod(meta metav1.O
if err != nil {
return reconcile.Result{}, err
}
r.jenkins.Status = virtuslabv1alpha1.JenkinsStatus{}
r.jenkins.Status = v1alpha1.JenkinsStatus{}
err = r.updateResource(r.jenkins)
if err != nil {
return reconcile.Result{}, err

View File

@ -4,7 +4,7 @@ import (
"context"
"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/stretchr/testify/assert"
@ -17,16 +17,16 @@ import (
func TestReconcileJenkinsBaseConfiguration_ensurePluginsRequiredByAllBackupProviders(t *testing.T) {
tests := []struct {
name string
jenkins *virtuslabv1alpha1.Jenkins
jenkins *v1alpha1.Jenkins
requiredPlugins map[string][]plugins.Plugin
want reconcile.Result
wantErr bool
}{
{
name: "happy, no required plugins",
jenkins: &virtuslabv1alpha1.Jenkins{
Spec: virtuslabv1alpha1.JenkinsSpec{
Master: virtuslabv1alpha1.JenkinsMaster{
jenkins: &v1alpha1.Jenkins{
Spec: v1alpha1.JenkinsSpec{
Master: v1alpha1.JenkinsMaster{
Plugins: map[string][]string{
"first-plugin:0.0.1": {"second-plugin:0.0.1"},
},
@ -38,9 +38,9 @@ func TestReconcileJenkinsBaseConfiguration_ensurePluginsRequiredByAllBackupProvi
},
{
name: "happy, required plugins are set",
jenkins: &virtuslabv1alpha1.Jenkins{
Spec: virtuslabv1alpha1.JenkinsSpec{
Master: virtuslabv1alpha1.JenkinsMaster{
jenkins: &v1alpha1.Jenkins{
Spec: v1alpha1.JenkinsSpec{
Master: v1alpha1.JenkinsMaster{
Plugins: map[string][]string{
"first-plugin:0.0.1": {"second-plugin:0.0.1"},
},
@ -55,9 +55,9 @@ func TestReconcileJenkinsBaseConfiguration_ensurePluginsRequiredByAllBackupProvi
},
{
name: "happy, jenkins CR must be updated",
jenkins: &virtuslabv1alpha1.Jenkins{
Spec: virtuslabv1alpha1.JenkinsSpec{
Master: virtuslabv1alpha1.JenkinsMaster{
jenkins: &v1alpha1.Jenkins{
Spec: v1alpha1.JenkinsSpec{
Master: v1alpha1.JenkinsMaster{
Plugins: map[string][]string{
"first-plugin:0.0.1": {"second-plugin:0.0.1"},
},
@ -73,9 +73,9 @@ func TestReconcileJenkinsBaseConfiguration_ensurePluginsRequiredByAllBackupProvi
},
{
name: "happy, jenkins CR must be updated",
jenkins: &virtuslabv1alpha1.Jenkins{
Spec: virtuslabv1alpha1.JenkinsSpec{
Master: virtuslabv1alpha1.JenkinsMaster{
jenkins: &v1alpha1.Jenkins{
Spec: v1alpha1.JenkinsSpec{
Master: v1alpha1.JenkinsMaster{
Plugins: map[string][]string{
"first-plugin:0.0.1": {"second-plugin:0.0.1"},
},
@ -92,7 +92,7 @@ func TestReconcileJenkinsBaseConfiguration_ensurePluginsRequiredByAllBackupProvi
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
err := virtuslabv1alpha1.SchemeBuilder.AddToScheme(scheme.Scheme)
err := v1alpha1.SchemeBuilder.AddToScheme(scheme.Scheme)
assert.NoError(t, err)
r := &ReconcileJenkinsBaseConfiguration{
k8sClient: fake.NewFakeClient(),

View File

@ -3,7 +3,7 @@ package resources
import (
"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"
corev1 "k8s.io/api/core/v1"
@ -11,12 +11,12 @@ import (
)
// 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)
}
// 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{
Name: GetBackupCredentialsSecretName(jenkins),
Namespace: jenkins.ObjectMeta.Namespace,

View File

@ -3,7 +3,7 @@ package resources
import (
"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"
corev1 "k8s.io/api/core/v1"
@ -162,12 +162,12 @@ jenkins.save()
`
// 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)
}
// 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)
return &corev1.ConfigMap{

View File

@ -5,7 +5,7 @@ import (
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants"
"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"
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
func GetInitConfigurationConfigMapName(jenkins *virtuslabv1alpha1.Jenkins) string {
func GetInitConfigurationConfigMapName(jenkins *v1alpha1.Jenkins) string {
return fmt.Sprintf("%s-init-configuration-%s", constants.OperatorName, jenkins.ObjectMeta.Name)
}
// 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)
createJenkinsOperatorUserGroovy, err := buildCreateJenkinsOperatorUserGroovyScript()

View File

@ -3,14 +3,14 @@ package resources
import (
"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"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
// 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{
Name: GetResourceName(jenkins),
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
func BuildResourceLabels(jenkins *virtuslabv1alpha1.Jenkins) map[string]string {
func BuildResourceLabels(jenkins *v1alpha1.Jenkins) map[string]string {
return map[string]string{
constants.LabelAppKey: constants.LabelAppValue,
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
// resources with that labels should not be deleted after Jenkins CR deletion, to prevent this situation don't set
// any owner
func BuildLabelsForWatchedResources(jenkins *virtuslabv1alpha1.Jenkins) map[string]string {
func BuildLabelsForWatchedResources(jenkins *v1alpha1.Jenkins) map[string]string {
return map[string]string{
constants.LabelAppKey: constants.LabelAppValue,
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
func GetResourceName(jenkins *virtuslabv1alpha1.Jenkins) string {
func GetResourceName(jenkins *v1alpha1.Jenkins) string {
return fmt.Sprintf("%s-%s", constants.LabelAppValue, jenkins.ObjectMeta.Name)
}

View File

@ -4,7 +4,7 @@ import (
"fmt"
"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"
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
// 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)
}
// NewOperatorCredentialsSecret builds the Kubernetes secret used to store jenkins operator credentials
// 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)
return &corev1.Secret{
TypeMeta: buildSecretTypeMeta(),

View File

@ -2,7 +2,7 @@ package resources
import (
"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"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@ -58,7 +58,7 @@ func buildPodTypeMeta() metav1.TypeMeta {
}
// 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)
timeoutSeconds := int32(5)
failureThreshold := int32(12)

View File

@ -4,7 +4,7 @@ import (
"fmt"
"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"
corev1 "k8s.io/api/core/v1"
@ -358,12 +358,12 @@ func buildInitBashScript(pluginsToInstall map[string][]string) (*string, error)
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)
}
// 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)
initBashScript, err := buildInitBashScript(jenkins.Spec.Master.Plugins)

View File

@ -3,7 +3,7 @@ package resources
import (
"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"
corev1 "k8s.io/api/core/v1"
@ -33,12 +33,12 @@ jenkins.save()
`
// 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)
}
// 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{
Name: GetUserConfigurationConfigMapName(jenkins),
Namespace: jenkins.ObjectMeta.Namespace,

View File

@ -5,7 +5,7 @@ import (
"fmt"
"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/configuration/base/resources"
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/plugins"
@ -22,7 +22,7 @@ var (
)
// 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 == "" {
r.logger.V(log.VWarn).Info("Image not set")
return false, nil
@ -92,7 +92,7 @@ func (r *ReconcileJenkinsBaseConfiguration) verifyBackup() (bool, error) {
}
valid := false
for _, backupType := range virtuslabv1alpha1.AllowedJenkinsBackups {
for _, backupType := range v1alpha1.AllowedJenkinsBackups {
if r.jenkins.Spec.Backup == backupType {
valid = true
}
@ -100,11 +100,11 @@ func (r *ReconcileJenkinsBaseConfiguration) verifyBackup() (bool, error) {
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("Allowed backups '%+v'", virtuslabv1alpha1.AllowedJenkinsBackups))
r.logger.V(log.VWarn).Info(fmt.Sprintf("Allowed backups '%+v'", v1alpha1.AllowedJenkinsBackups))
return false, nil
}
if r.jenkins.Spec.Backup == virtuslabv1alpha1.JenkinsBackupTypeNoBackup {
if r.jenkins.Spec.Backup == v1alpha1.JenkinsBackupTypeNoBackup {
return true, nil
}

View File

@ -5,7 +5,7 @@ import (
"fmt"
"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"
corev1 "k8s.io/api/core/v1"
@ -66,17 +66,17 @@ func TestValidatePlugins(t *testing.T) {
func TestReconcileJenkinsBaseConfiguration_verifyBackup(t *testing.T) {
tests := []struct {
name string
jenkins *virtuslabv1alpha1.Jenkins
jenkins *v1alpha1.Jenkins
secret *corev1.Secret
want bool
wantErr bool
}{
{
name: "happy, no backup",
jenkins: &virtuslabv1alpha1.Jenkins{
jenkins: &v1alpha1.Jenkins{
ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"},
Spec: virtuslabv1alpha1.JenkinsSpec{
Backup: virtuslabv1alpha1.JenkinsBackupTypeNoBackup,
Spec: v1alpha1.JenkinsSpec{
Backup: v1alpha1.JenkinsBackupTypeNoBackup,
},
},
want: true,
@ -84,10 +84,10 @@ func TestReconcileJenkinsBaseConfiguration_verifyBackup(t *testing.T) {
},
{
name: "happy",
jenkins: &virtuslabv1alpha1.Jenkins{
jenkins: &v1alpha1.Jenkins{
ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"},
Spec: virtuslabv1alpha1.JenkinsSpec{
Backup: virtuslabv1alpha1.JenkinsBackupTypeAmazonS3,
Spec: v1alpha1.JenkinsSpec{
Backup: v1alpha1.JenkinsBackupTypeAmazonS3,
},
},
secret: &corev1.Secret{
@ -98,10 +98,10 @@ func TestReconcileJenkinsBaseConfiguration_verifyBackup(t *testing.T) {
},
{
name: "fail, no secret",
jenkins: &virtuslabv1alpha1.Jenkins{
jenkins: &v1alpha1.Jenkins{
ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"},
Spec: virtuslabv1alpha1.JenkinsSpec{
Backup: virtuslabv1alpha1.JenkinsBackupTypeAmazonS3,
Spec: v1alpha1.JenkinsSpec{
Backup: v1alpha1.JenkinsBackupTypeAmazonS3,
},
},
want: false,
@ -109,9 +109,9 @@ func TestReconcileJenkinsBaseConfiguration_verifyBackup(t *testing.T) {
},
{
name: "fail, empty backup type",
jenkins: &virtuslabv1alpha1.Jenkins{
jenkins: &v1alpha1.Jenkins{
ObjectMeta: metav1.ObjectMeta{Namespace: "namespace-name", Name: "jenkins-cr-name"},
Spec: virtuslabv1alpha1.JenkinsSpec{
Spec: v1alpha1.JenkinsSpec{
Backup: "",
},
},

View File

@ -4,7 +4,7 @@ import (
"context"
"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"
jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client"
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources"
@ -25,12 +25,12 @@ type ReconcileUserConfiguration struct {
k8sClient k8s.Client
jenkinsClient jenkinsclient.Jenkins
logger logr.Logger
jenkins *virtuslabv1alpha1.Jenkins
jenkins *v1alpha1.Jenkins
}
// New create structure which takes care of user configuration
func New(k8sClient k8s.Client, jenkinsClient jenkinsclient.Jenkins, logger logr.Logger,
jenkins *virtuslabv1alpha1.Jenkins) *ReconcileUserConfiguration {
jenkins *v1alpha1.Jenkins) *ReconcileUserConfiguration {
return &ReconcileUserConfiguration{
k8sClient: k8sClient,
jenkinsClient: jenkinsClient,

View File

@ -6,7 +6,7 @@ import (
"encoding/base64"
"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"
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants"
"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
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()
if err != nil {
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
func (s *SeedJobs) buildJobs(jenkins *virtuslabv1alpha1.Jenkins) (done bool, err error) {
func (s *SeedJobs) buildJobs(jenkins *v1alpha1.Jenkins) (done bool, err error) {
allDone := true
seedJobs := jenkins.Spec.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
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 {
deployKeySecret := &v1.Secret{}
namespaceName := types.NamespacedName{Namespace: namespace, Name: seedJob.PrivateKey.SecretKeyRef.Name}

View File

@ -5,7 +5,7 @@ import (
"fmt"
"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/bndr/gojenkins"
@ -29,7 +29,7 @@ func TestEnsureSeedJobs(t *testing.T) {
jenkinsClient := client.NewMockJenkins(ctrl)
fakeClient := fake.NewFakeClient()
err := virtuslabv1alpha1.SchemeBuilder.AddToScheme(scheme.Scheme)
err := v1alpha1.SchemeBuilder.AddToScheme(scheme.Scheme)
assert.NoError(t, err)
jenkins := jenkinsCustomResource()
@ -76,7 +76,7 @@ func TestEnsureSeedJobs(t *testing.T) {
GetBuild(ConfigureSeedJobsName, gomock.Any()).
Return(&gojenkins.Build{
Raw: &gojenkins.BuildResponse{
Result: string(virtuslabv1alpha1.BuildSuccessStatus),
Result: string(v1alpha1.BuildSuccessStatus),
},
}, nil)
}
@ -99,26 +99,26 @@ func TestEnsureSeedJobs(t *testing.T) {
// first run - should create job and schedule build
if reconcileAttempt == 1 {
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
if reconcileAttempt == 2 {
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 {
return &virtuslabv1alpha1.Jenkins{
func jenkinsCustomResource() *v1alpha1.Jenkins {
return &v1alpha1.Jenkins{
ObjectMeta: metav1.ObjectMeta{
Name: "jenkins",
Namespace: "default",
},
Spec: virtuslabv1alpha1.JenkinsSpec{
Master: virtuslabv1alpha1.JenkinsMaster{
Spec: v1alpha1.JenkinsSpec{
Master: v1alpha1.JenkinsMaster{
Image: "jenkins/jenkins",
Annotations: map[string]string{"test": "label"},
Resources: corev1.ResourceRequirements{
@ -132,13 +132,13 @@ func jenkinsCustomResource() *virtuslabv1alpha1.Jenkins {
},
},
},
SeedJobs: []virtuslabv1alpha1.SeedJob{
SeedJobs: []v1alpha1.SeedJob{
{
ID: "jenkins-operator-e2e",
Targets: "cicd/jobs/*.jenkins",
Description: "Jenkins Operator e2e tests repository",
RepositoryBranch: "master",
RepositoryURL: "https://github.com/VirtusLab/jenkins-operator-e2e.git",
RepositoryURL: "https://github.com/jenkinsci/kubernetes-operator.git",
},
},
},

View File

@ -8,7 +8,7 @@ import (
"fmt"
"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/log"
@ -18,7 +18,7 @@ import (
)
// 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)
if !valid || err != nil {
return valid, err
@ -32,7 +32,7 @@ func (r *ReconcileUserConfiguration) Validate(jenkins *virtuslabv1alpha1.Jenkins
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
if jenkins.Spec.SeedJobs != nil {
for _, seedJob := range jenkins.Spec.SeedJobs {

View File

@ -5,7 +5,7 @@ import (
"fmt"
"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"
corev1 "k8s.io/api/core/v1"
@ -52,21 +52,21 @@ SwiLd8TWAvXkxdXm8fDOGAZbYK2alMV+M+9E2OpZsBUCxmb/3FAofF6JccKoJOH8
func TestValidateSeedJobs(t *testing.T) {
data := []struct {
description string
jenkins *virtuslabv1alpha1.Jenkins
jenkins *v1alpha1.Jenkins
secret *corev1.Secret
expectedResult bool
}{
{
description: "Valid with public repository and without private key",
jenkins: &virtuslabv1alpha1.Jenkins{
Spec: virtuslabv1alpha1.JenkinsSpec{
SeedJobs: []virtuslabv1alpha1.SeedJob{
jenkins: &v1alpha1.Jenkins{
Spec: v1alpha1.JenkinsSpec{
SeedJobs: []v1alpha1.SeedJob{
{
ID: "jenkins-operator-e2e",
Targets: "cicd/jobs/*.jenkins",
Description: "Jenkins Operator e2e tests repository",
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",
jenkins: &virtuslabv1alpha1.Jenkins{
Spec: virtuslabv1alpha1.JenkinsSpec{
SeedJobs: []virtuslabv1alpha1.SeedJob{
jenkins: &v1alpha1.Jenkins{
Spec: v1alpha1.JenkinsSpec{
SeedJobs: []v1alpha1.SeedJob{
{
Targets: "cicd/jobs/*.jenkins",
Description: "Jenkins Operator e2e tests repository",
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",
jenkins: &virtuslabv1alpha1.Jenkins{
Spec: virtuslabv1alpha1.JenkinsSpec{
SeedJobs: []virtuslabv1alpha1.SeedJob{
jenkins: &v1alpha1.Jenkins{
Spec: v1alpha1.JenkinsSpec{
SeedJobs: []v1alpha1.SeedJob{
{
ID: "jenkins-operator-e2e",
Targets: "cicd/jobs/*.jenkins",
Description: "Jenkins Operator e2e tests repository",
RepositoryBranch: "master",
RepositoryURL: "https://github.com/VirtusLab/jenkins-operator-e2e.git",
PrivateKey: virtuslabv1alpha1.PrivateKey{
RepositoryURL: "https://github.com/jenkinsci/kubernetes-operator.git",
PrivateKey: v1alpha1.PrivateKey{
SecretKeyRef: &corev1.SecretKeySelector{
LocalObjectReference: corev1.LocalObjectReference{
Name: "deploy-keys",
@ -129,16 +129,16 @@ func TestValidateSeedJobs(t *testing.T) {
},
{
description: "Invalid private key in secret",
jenkins: &virtuslabv1alpha1.Jenkins{
Spec: virtuslabv1alpha1.JenkinsSpec{
SeedJobs: []virtuslabv1alpha1.SeedJob{
jenkins: &v1alpha1.Jenkins{
Spec: v1alpha1.JenkinsSpec{
SeedJobs: []v1alpha1.SeedJob{
{
ID: "jenkins-operator-e2e",
Targets: "cicd/jobs/*.jenkins",
Description: "Jenkins Operator e2e tests repository",
RepositoryBranch: "master",
RepositoryURL: "https://github.com/VirtusLab/jenkins-operator-e2e.git",
PrivateKey: virtuslabv1alpha1.PrivateKey{
RepositoryURL: "https://github.com/jenkinsci/kubernetes-operator.git",
PrivateKey: v1alpha1.PrivateKey{
SecretKeyRef: &corev1.SecretKeySelector{
LocalObjectReference: corev1.LocalObjectReference{
Name: "deploy-keys",
@ -167,16 +167,16 @@ func TestValidateSeedJobs(t *testing.T) {
},
{
description: "Invalid with PrivateKey and empty Secret data",
jenkins: &virtuslabv1alpha1.Jenkins{
Spec: virtuslabv1alpha1.JenkinsSpec{
SeedJobs: []virtuslabv1alpha1.SeedJob{
jenkins: &v1alpha1.Jenkins{
Spec: v1alpha1.JenkinsSpec{
SeedJobs: []v1alpha1.SeedJob{
{
ID: "jenkins-operator-e2e",
Targets: "cicd/jobs/*.jenkins",
Description: "Jenkins Operator e2e tests repository",
RepositoryBranch: "master",
RepositoryURL: "https://github.com/VirtusLab/jenkins-operator-e2e.git",
PrivateKey: virtuslabv1alpha1.PrivateKey{
RepositoryURL: "https://github.com/jenkinsci/kubernetes-operator.git",
PrivateKey: v1alpha1.PrivateKey{
SecretKeyRef: &corev1.SecretKeySelector{
LocalObjectReference: corev1.LocalObjectReference{
Name: "deploy-keys",
@ -205,15 +205,15 @@ func TestValidateSeedJobs(t *testing.T) {
},
{
description: "Invalid with ssh RepositoryURL and empty PrivateKey",
jenkins: &virtuslabv1alpha1.Jenkins{
Spec: virtuslabv1alpha1.JenkinsSpec{
SeedJobs: []virtuslabv1alpha1.SeedJob{
jenkins: &v1alpha1.Jenkins{
Spec: v1alpha1.JenkinsSpec{
SeedJobs: []v1alpha1.SeedJob{
{
ID: "jenkins-operator-e2e",
Targets: "cicd/jobs/*.jenkins",
Description: "Jenkins Operator e2e tests repository",
RepositoryBranch: "master",
RepositoryURL: "git@github.com:VirtusLab/jenkins-operator.git",
RepositoryURL: "git@github.com:jenkinsci/kubernetes-operator.git",
},
},
},

View File

@ -6,7 +6,7 @@ import (
"fmt"
"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"
"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
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)
hash := g.calculateHash(secretOrConfigMapData)

View File

@ -4,7 +4,7 @@ import (
"context"
"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/user"
"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
err = c.Watch(&source.Kind{Type: &virtuslabv1alpha1.Jenkins{}}, &handler.EnqueueRequestForObject{})
err = c.Watch(&source.Kind{Type: &v1alpha1.Jenkins{}}, &handler.EnqueueRequestForObject{})
if err != nil {
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
err = c.Watch(&source.Kind{Type: &corev1.Pod{}}, &handler.EnqueueRequestForOwner{
IsController: true,
OwnerType: &virtuslabv1alpha1.Jenkins{},
OwnerType: &v1alpha1.Jenkins{},
})
if err != nil {
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) {
// Fetch the Jenkins instance
jenkins := &virtuslabv1alpha1.Jenkins{}
jenkins := &v1alpha1.Jenkins{}
err := r.client.Get(context.TODO(), request.NamespacedName, jenkins)
if err != nil {
if apierrors.IsNotFound(err) {
@ -205,7 +205,7 @@ func (r *ReconcileJenkins) buildLogger(jenkinsName string) logr.Logger {
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
if len(jenkins.Spec.Master.Image) == 0 {
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
}
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'")
changed = true
jenkins.Spec.Backup = virtuslabv1alpha1.JenkinsBackupTypeNoBackup
jenkins.Spec.Backup = v1alpha1.JenkinsBackupTypeNoBackup
}
if len(jenkins.Spec.Master.Plugins) == 0 {
logger.Info("Setting default base plugins")

View File

@ -6,7 +6,7 @@ import (
"fmt"
"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/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
// 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
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))
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 {
jobs.logger.V(log.VDebug).Info(fmt.Sprintf("Build exists in status, %+v", build))
switch build.Status {
case virtuslabv1alpha1.BuildSuccessStatus:
case v1alpha1.BuildSuccessStatus:
return jobs.ensureSuccessBuild(*build, jenkins, preserveStatus)
case virtuslabv1alpha1.BuildRunningStatus:
case v1alpha1.BuildRunningStatus:
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)
case virtuslabv1alpha1.BuildExpiredStatus:
case v1alpha1.BuildExpiredStatus:
return jobs.ensureExpiredBuild(*build, jenkins, preserveStatus)
default:
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
created := metav1.Now()
newBuild := virtuslabv1alpha1.Build{
newBuild := v1alpha1.Build{
JobName: jobName,
Hash: hash,
CreateTime: &created,
@ -86,7 +86,7 @@ func (jobs *Jobs) EnsureBuildJob(jobName, hash string, parameters map[string]str
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 {
builds := jenkins.Status.Builds
for _, build := range builds {
@ -98,7 +98,7 @@ func (jobs *Jobs) getBuildFromStatus(jobName string, hash string, jenkins *virtu
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))
if !preserveStatus {
@ -112,7 +112,7 @@ func (jobs *Jobs) ensureSuccessBuild(build virtuslabv1alpha1.Build, jenkins *vir
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))
// FIXME (antoniaklja) implement build expiration
@ -126,7 +126,7 @@ func (jobs *Jobs) ensureRunningBuild(build virtuslabv1alpha1.Build, jenkins *vir
}
if jenkinsBuild.GetResult() != "" {
build.Status = virtuslabv1alpha1.BuildStatus(strings.ToLower(jenkinsBuild.GetResult()))
build.Status = v1alpha1.BuildStatus(strings.ToLower(jenkinsBuild.GetResult()))
}
err = jobs.updateBuildStatus(build, jenkins)
@ -135,13 +135,13 @@ func (jobs *Jobs) ensureRunningBuild(build virtuslabv1alpha1.Build, jenkins *vir
return false, err
}
if build.Status == virtuslabv1alpha1.BuildSuccessStatus {
if build.Status == v1alpha1.BuildSuccessStatus {
jobs.logger.Info(fmt.Sprintf("Build finished successfully, %+v", build))
return true, nil
}
if build.Status == virtuslabv1alpha1.BuildFailureStatus || build.Status == virtuslabv1alpha1.BuildUnstableStatus ||
build.Status == virtuslabv1alpha1.BuildNotBuildStatus || build.Status == virtuslabv1alpha1.BuildAbortedStatus {
if build.Status == v1alpha1.BuildFailureStatus || build.Status == v1alpha1.BuildUnstableStatus ||
build.Status == v1alpha1.BuildNotBuildStatus || build.Status == v1alpha1.BuildAbortedStatus {
jobs.logger.V(log.VWarn).Info(fmt.Sprintf("Build failed, %+v", build))
return false, ErrorBuildFailed
}
@ -149,7 +149,7 @@ func (jobs *Jobs) ensureRunningBuild(build virtuslabv1alpha1.Build, jenkins *vir
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))
if build.Retires < BuildRetires {
@ -176,7 +176,7 @@ func (jobs *Jobs) ensureFailedBuild(build virtuslabv1alpha1.Build, jenkins *virt
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))
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
}
if virtuslabv1alpha1.BuildStatus(jenkinsBuild.GetResult()) != virtuslabv1alpha1.BuildAbortedStatus {
if v1alpha1.BuildStatus(jenkinsBuild.GetResult()) != v1alpha1.BuildAbortedStatus {
return false, ErrorAbortBuildFailed
}
@ -217,8 +217,8 @@ func (jobs *Jobs) ensureExpiredBuild(build virtuslabv1alpha1.Build, jenkins *vir
return true, nil
}
func (jobs *Jobs) removeBuildFromStatus(build virtuslabv1alpha1.Build, jenkins *virtuslabv1alpha1.Jenkins) error {
builds := make([]virtuslabv1alpha1.Build, len(jenkins.Status.Builds))
func (jobs *Jobs) removeBuildFromStatus(build v1alpha1.Build, jenkins *v1alpha1.Jenkins) error {
builds := make([]v1alpha1.Build, len(jenkins.Status.Builds))
for _, existingBuild := range jenkins.Status.Builds {
if existingBuild.JobName != build.JobName && existingBuild.Hash != build.Hash {
builds = append(builds, existingBuild)
@ -233,7 +233,7 @@ func (jobs *Jobs) removeBuildFromStatus(build virtuslabv1alpha1.Build, jenkins *
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))
job, err := jobs.jenkinsClient.GetJob(build.JobName)
if err != nil {
@ -249,7 +249,7 @@ func (jobs *Jobs) buildJob(build virtuslabv1alpha1.Build, parameters map[string]
return false, err
}
build.Status = virtuslabv1alpha1.BuildRunningStatus
build.Status = v1alpha1.BuildRunningStatus
build.Number = nextBuildNumber
err = jobs.updateBuildStatus(build, jenkins)
@ -260,7 +260,7 @@ func (jobs *Jobs) buildJob(build virtuslabv1alpha1.Build, parameters map[string]
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))
// get index of existing build from status if exists
buildIndex := -1

View File

@ -7,7 +7,7 @@ import (
"fmt"
"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/bndr/gojenkins"
@ -37,7 +37,7 @@ func TestSuccessEnsureJob(t *testing.T) {
// when
jenkins := jenkinsCustomResource()
fakeClient := fake.NewFakeClient()
err := virtuslabv1alpha1.SchemeBuilder.AddToScheme(scheme.Scheme)
err := v1alpha1.SchemeBuilder.AddToScheme(scheme.Scheme)
assert.NoError(t, err)
err = fakeClient.Create(ctx, jenkins)
assert.NoError(t, err)
@ -67,7 +67,7 @@ func TestSuccessEnsureJob(t *testing.T) {
GetBuild(jobName, buildNumber).
Return(&gojenkins.Build{
Raw: &gojenkins.BuildResponse{
Result: string(virtuslabv1alpha1.BuildSuccessStatus),
Result: string(v1alpha1.BuildSuccessStatus),
},
}, nil).AnyTimes()
@ -91,13 +91,13 @@ func TestSuccessEnsureJob(t *testing.T) {
// first run - build should be scheduled and status updated
if reconcileAttempt == 1 {
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
if reconcileAttempt == 2 {
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)).
Return(&gojenkins.Build{
Raw: &gojenkins.BuildResponse{
Result: string(virtuslabv1alpha1.BuildFailureStatus),
Result: string(v1alpha1.BuildFailureStatus),
},
}, nil)
}
@ -178,7 +178,7 @@ func TestEnsureJobWithFailedBuild(t *testing.T) {
GetBuild(jobName, int64(2)).
Return(&gojenkins.Build{
Raw: &gojenkins.BuildResponse{
Result: string(virtuslabv1alpha1.BuildSuccessStatus),
Result: string(v1alpha1.BuildSuccessStatus),
},
}, nil)
}
@ -204,7 +204,7 @@ func TestEnsureJobWithFailedBuild(t *testing.T) {
assert.NoError(t, errEnsureBuildJob)
assert.False(t, done)
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
@ -212,7 +212,7 @@ func TestEnsureJobWithFailedBuild(t *testing.T) {
assert.Error(t, errEnsureBuildJob)
assert.False(t, done)
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
@ -220,7 +220,7 @@ func TestEnsureJobWithFailedBuild(t *testing.T) {
assert.NoError(t, errEnsureBuildJob)
assert.False(t, done)
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
@ -228,7 +228,7 @@ func TestEnsureJobWithFailedBuild(t *testing.T) {
assert.NoError(t, errEnsureBuildJob)
assert.True(t, done)
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)).
Return(&gojenkins.Build{
Raw: &gojenkins.BuildResponse{
Result: string(virtuslabv1alpha1.BuildFailureStatus),
Result: string(v1alpha1.BuildFailureStatus),
},
}, nil)
}
@ -310,7 +310,7 @@ func TestEnsureJobFailedWithMaxRetries(t *testing.T) {
GetBuild(buildName, int64(2)).
Return(&gojenkins.Build{
Raw: &gojenkins.BuildResponse{
Result: string(virtuslabv1alpha1.BuildFailureStatus),
Result: string(v1alpha1.BuildFailureStatus),
},
}, nil)
}
@ -337,7 +337,7 @@ func TestEnsureJobFailedWithMaxRetries(t *testing.T) {
assert.False(t, done)
assert.Equal(t, build.Number, int64(1))
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
@ -346,7 +346,7 @@ func TestEnsureJobFailedWithMaxRetries(t *testing.T) {
assert.False(t, done)
assert.Equal(t, build.Number, int64(1))
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
@ -356,7 +356,7 @@ func TestEnsureJobFailedWithMaxRetries(t *testing.T) {
//assert.Equal(t, build.Retires, 1)
assert.Equal(t, build.Number, int64(2))
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
@ -365,7 +365,7 @@ func TestEnsureJobFailedWithMaxRetries(t *testing.T) {
assert.False(t, done)
assert.Equal(t, build.Number, int64(2))
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
@ -374,19 +374,19 @@ func TestEnsureJobFailedWithMaxRetries(t *testing.T) {
assert.False(t, done)
assert.Equal(t, build.Number, int64(2))
assert.Equal(t, build.Retires, 1)
assert.Equal(t, build.Status, virtuslabv1alpha1.BuildFailureStatus)
assert.Equal(t, build.Status, v1alpha1.BuildFailureStatus)
}
}
}
func jenkinsCustomResource() *virtuslabv1alpha1.Jenkins {
return &virtuslabv1alpha1.Jenkins{
func jenkinsCustomResource() *v1alpha1.Jenkins {
return &v1alpha1.Jenkins{
ObjectMeta: metav1.ObjectMeta{
Name: "jenkins",
Namespace: "default",
},
Spec: virtuslabv1alpha1.JenkinsSpec{
Master: virtuslabv1alpha1.JenkinsMaster{
Spec: v1alpha1.JenkinsSpec{
Master: v1alpha1.JenkinsMaster{
Image: "jenkins/jenkins",
Annotations: map[string]string{"test": "label"},
Resources: corev1.ResourceRequirements{
@ -400,13 +400,13 @@ func jenkinsCustomResource() *virtuslabv1alpha1.Jenkins {
},
},
},
SeedJobs: []virtuslabv1alpha1.SeedJob{
SeedJobs: []v1alpha1.SeedJob{
{
ID: "jenkins-operator-e2e",
Targets: "cicd/jobs/*.jenkins",
Description: "Jenkins Operator e2e tests repository",
RepositoryBranch: "master",
RepositoryURL: "https://github.com/VirtusLab/jenkins-operator-e2e.git",
RepositoryURL: "https://github.com/jenkinsci/kubernetes-operator.git",
},
},
},

View File

@ -8,7 +8,7 @@ import (
"os"
"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/constants"
@ -98,20 +98,20 @@ func verifyIfBackupAndRestoreWasSuccessfull(t *testing.T, jenkinsClient *gojenki
assert.True(t, latestBackupFound)
}
func createJenkinsCRWithAmazonS3Backup(t *testing.T, namespace string, backupConfig amazonS3BackupConfiguration) *virtuslabv1alpha1.Jenkins {
jenkins := &virtuslabv1alpha1.Jenkins{
func createJenkinsCRWithAmazonS3Backup(t *testing.T, namespace string, backupConfig amazonS3BackupConfiguration) *v1alpha1.Jenkins {
jenkins := &v1alpha1.Jenkins{
ObjectMeta: metav1.ObjectMeta{
Name: "e2e",
Namespace: namespace,
},
Spec: virtuslabv1alpha1.JenkinsSpec{
Backup: virtuslabv1alpha1.JenkinsBackupTypeAmazonS3,
BackupAmazonS3: virtuslabv1alpha1.JenkinsBackupAmazonS3{
Spec: v1alpha1.JenkinsSpec{
Backup: v1alpha1.JenkinsBackupTypeAmazonS3,
BackupAmazonS3: v1alpha1.JenkinsBackupAmazonS3{
Region: backupConfig.Region,
BucketPath: backupConfig.BucketPath,
BucketName: backupConfig.BucketName,
},
Master: virtuslabv1alpha1.JenkinsMaster{
Master: v1alpha1.JenkinsMaster{
Image: "jenkins/jenkins",
},
},

View File

@ -5,7 +5,7 @@ import (
"reflect"
"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/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)
jenkins = getJenkins(t, jenkins.Namespace, jenkins.Name)

View File

@ -6,7 +6,7 @@ import (
"net/http"
"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"
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources"
@ -18,8 +18,8 @@ import (
"k8s.io/apimachinery/pkg/types"
)
func getJenkins(t *testing.T, namespace, name string) *virtuslabv1alpha1.Jenkins {
jenkins := &virtuslabv1alpha1.Jenkins{}
func getJenkins(t *testing.T, namespace, name string) *v1alpha1.Jenkins {
jenkins := &v1alpha1.Jenkins{}
namespaceName := types.NamespacedName{Namespace: namespace, Name: name}
if err := framework.Global.Client.Get(context.TODO(), namespaceName, jenkins); err != nil {
t.Fatal(err)
@ -28,7 +28,7 @@ func getJenkins(t *testing.T, namespace, name string) *virtuslabv1alpha1.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{
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]
}
func createJenkinsAPIClient(jenkins *virtuslabv1alpha1.Jenkins) (*gojenkins.Jenkins, error) {
func createJenkinsAPIClient(jenkins *v1alpha1.Jenkins) (*gojenkins.Jenkins, error) {
adminSecret := &v1.Secret{}
namespaceName := types.NamespacedName{Namespace: jenkins.Namespace, Name: resources.GetOperatorCredentialsSecretName(jenkins)}
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
}
func createJenkinsCR(t *testing.T, namespace string) *virtuslabv1alpha1.Jenkins {
jenkins := &virtuslabv1alpha1.Jenkins{
func createJenkinsCR(t *testing.T, namespace string) *v1alpha1.Jenkins {
jenkins := &v1alpha1.Jenkins{
ObjectMeta: metav1.ObjectMeta{
Name: "e2e",
Namespace: namespace,
},
Spec: virtuslabv1alpha1.JenkinsSpec{
Master: virtuslabv1alpha1.JenkinsMaster{
Spec: v1alpha1.JenkinsSpec{
Master: v1alpha1.JenkinsMaster{
Image: "jenkins/jenkins",
Annotations: map[string]string{"test": "label"},
},
@ -97,19 +97,19 @@ func createJenkinsCR(t *testing.T, namespace string) *virtuslabv1alpha1.Jenkins
return jenkins
}
func createJenkinsCRWithSeedJob(t *testing.T, namespace string) *virtuslabv1alpha1.Jenkins {
jenkins := &virtuslabv1alpha1.Jenkins{
func createJenkinsCRWithSeedJob(t *testing.T, namespace string) *v1alpha1.Jenkins {
jenkins := &v1alpha1.Jenkins{
ObjectMeta: metav1.ObjectMeta{
Name: "e2e",
Namespace: namespace,
},
Spec: virtuslabv1alpha1.JenkinsSpec{
Master: virtuslabv1alpha1.JenkinsMaster{
Spec: v1alpha1.JenkinsSpec{
Master: v1alpha1.JenkinsMaster{
Image: "jenkins/jenkins",
Annotations: map[string]string{"test": "label"},
},
//TODO(bantoniak) add seed job with private key
SeedJobs: []virtuslabv1alpha1.SeedJob{
SeedJobs: []v1alpha1.SeedJob{
{
ID: "jenkins-operator",
Targets: "cicd/jobs/*.jenkins",
@ -129,7 +129,7 @@ func createJenkinsCRWithSeedJob(t *testing.T, namespace string) *virtuslabv1alph
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)
if err != nil {
t.Fatal(err)
@ -139,7 +139,7 @@ func verifyJenkinsAPIConnection(t *testing.T, jenkins *virtuslabv1alpha1.Jenkins
return client
}
func restartJenkinsMasterPod(t *testing.T, jenkins *virtuslabv1alpha1.Jenkins) {
func restartJenkinsMasterPod(t *testing.T, jenkins *v1alpha1.Jenkins) {
t.Log("Restarting Jenkins master pod")
jenkinsPod := getJenkinsMasterPod(t, jenkins)
err := framework.Global.Client.Delete(context.TODO(), jenkinsPod)

View File

@ -5,7 +5,7 @@ import (
"testing"
"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"
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)
}
jenkinsServiceList := &virtuslabv1alpha1.JenkinsList{
jenkinsServiceList := &v1alpha1.JenkinsList{
TypeMeta: metav1.TypeMeta{
Kind: virtuslabv1alpha1.Kind,
APIVersion: virtuslabv1alpha1.SchemeGroupVersion.String(),
Kind: v1alpha1.Kind,
APIVersion: v1alpha1.SchemeGroupVersion.String(),
},
}
err = framework.AddToFrameworkScheme(apis.AddToScheme, jenkinsServiceList)

View File

@ -4,7 +4,7 @@ import (
"context"
"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"
"k8s.io/apimachinery/pkg/types"
@ -24,8 +24,8 @@ func TestJenkinsMasterPodRestart(t *testing.T) {
waitForJenkinsBaseConfigurationToComplete(t, jenkins)
}
func checkBaseConfigurationCompleteTimeIsNotSet(t *testing.T, jenkins *virtuslabv1alpha1.Jenkins) {
jenkinsStatus := &virtuslabv1alpha1.Jenkins{}
func checkBaseConfigurationCompleteTimeIsNotSet(t *testing.T, jenkins *v1alpha1.Jenkins) {
jenkinsStatus := &v1alpha1.Jenkins{}
namespaceName := types.NamespacedName{Namespace: jenkins.Namespace, Name: jenkins.Name}
err := framework.Global.Client.Get(context.TODO(), namespaceName, jenkinsStatus)
if err != nil {

View File

@ -5,7 +5,7 @@ import (
"testing"
"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/bndr/gojenkins"
@ -31,7 +31,7 @@ func TestUserConfiguration(t *testing.T) {
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)
configureSeedJobs, err := client.GetJob(seedjobs.ConfigureSeedJobsName)

View File

@ -6,7 +6,7 @@ import (
"testing"
"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"
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
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")
_, 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)
return jenkins.Status.BaseConfigurationCompletedTime != nil
})
@ -36,7 +36,7 @@ func waitForJenkinsBaseConfigurationToComplete(t *testing.T, jenkins *virtuslabv
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) {
lo := metav1.ListOptions{
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")
}
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")
_, 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)
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
func WaitUntilJenkinsConditionTrue(retryInterval time.Duration, retries int, jenkins *virtuslabv1alpha1.Jenkins, checkCondition checkConditionFunc) (*virtuslabv1alpha1.Jenkins, error) {
jenkinsStatus := &virtuslabv1alpha1.Jenkins{}
func WaitUntilJenkinsConditionTrue(retryInterval time.Duration, retries int, jenkins *v1alpha1.Jenkins, checkCondition checkConditionFunc) (*v1alpha1.Jenkins, error) {
jenkinsStatus := &v1alpha1.Jenkins{}
err := wait.Poll(retryInterval, time.Duration(retries)*retryInterval, func() (bool, error) {
namespacedName := types.NamespacedName{Namespace: jenkins.Namespace, Name: jenkins.Name}
err := framework.Global.Client.Get(goctx.TODO(), namespacedName, jenkinsStatus)