#28 Use new API for groovy base configuration

This commit is contained in:
Tomasz Sęk 2019-06-30 23:16:42 +02:00
parent 87fcc5f8a5
commit 6a3a68bec0
No known key found for this signature in database
GPG Key ID: DC356D23F6A644D0
2 changed files with 16 additions and 23 deletions

View File

@ -807,27 +807,20 @@ func (r *ReconcileJenkinsBaseConfiguration) ensureJenkinsClient(meta metav1.Obje
} }
func (r *ReconcileJenkinsBaseConfiguration) ensureBaseConfiguration(jenkinsClient jenkinsclient.Jenkins) (reconcile.Result, error) { func (r *ReconcileJenkinsBaseConfiguration) ensureBaseConfiguration(jenkinsClient jenkinsclient.Jenkins) (reconcile.Result, error) {
groovyClient := groovy.New(jenkinsClient, r.k8sClient, r.logger, fmt.Sprintf("%s-base-configuration", constants.OperatorName), resources.JenkinsBaseConfigurationVolumePath) customization := v1alpha2.GroovyScripts{
Customization: v1alpha2.Customization{
err := groovyClient.ConfigureJob() Secret: v1alpha2.SecretRef{Name: ""},
if err != nil { Configurations: []v1alpha2.ConfigMapRef{{Name: resources.GetBaseConfigurationConfigMapName(r.jenkins)}},
return reconcile.Result{}, err },
} }
configuration := &corev1.ConfigMap{} groovyClient := groovy.New(jenkinsClient, r.k8sClient, r.logger, r.jenkins, "base-groovy", customization.Customization)
namespaceName := types.NamespacedName{Namespace: r.jenkins.Namespace, Name: resources.GetBaseConfigurationConfigMapName(r.jenkins)}
err = r.k8sClient.Get(context.TODO(), namespaceName, configuration)
if err != nil {
return reconcile.Result{}, stackerr.WithStack(err)
}
done, err := groovyClient.Ensure(configuration.Data, r.jenkins) requeue, err := groovyClient.Ensure(func(name string) bool {
if err != nil { return strings.HasSuffix(name, ".groovy")
return reconcile.Result{}, err }, func(groovyScript string) string {
} return groovyScript
if !done { })
return reconcile.Result{Requeue: true, RequeueAfter: time.Second * 10}, nil
}
return reconcile.Result{}, nil return reconcile.Result{Requeue: requeue}, err
} }

View File

@ -6,6 +6,7 @@ import (
"reflect" "reflect"
"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2" "github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2"
jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client"
"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/base/resources" "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources"
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/user" "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/user"
@ -171,6 +172,9 @@ func (r *ReconcileJenkins) Reconcile(request reconcile.Request) (reconcile.Resul
if err == jobs.ErrorUnrecoverableBuildFailed { if err == jobs.ErrorUnrecoverableBuildFailed {
return reconcile.Result{Requeue: false}, nil return reconcile.Result{Requeue: false}, nil
} }
if _, ok := err.(*jenkinsclient.GroovyScriptExecutionFailed); ok {
return reconcile.Result{Requeue: false}, nil
}
return reconcile.Result{Requeue: true}, nil return reconcile.Result{Requeue: true}, nil
} }
return result, nil return result, nil
@ -345,10 +349,6 @@ func (r *ReconcileJenkins) setDefaults(jenkins *v1alpha2.Jenkins, logger logr.Lo
changed = true changed = true
jenkins.Status.OperatorVersion = version.Version jenkins.Status.OperatorVersion = version.Version
} }
if len(jenkins.Spec.Master.Plugins) == 0 {
changed = true
jenkins.Spec.Master.Plugins = []v1alpha2.Plugin{{Name: "simple-theme-plugin", Version: "0.5.1"}}
}
if isResourceRequirementsNotSet(jenkinsContainer.Resources) { if isResourceRequirementsNotSet(jenkinsContainer.Resources) {
logger.Info("Setting default Jenkins master container resource requirements") logger.Info("Setting default Jenkins master container resource requirements")
changed = true changed = true