kubernetes-operator/pkg/controller/jenkins/reconciler.go

53 lines
2.2 KiB
Go

package jenkins
import (
"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2"
jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/client"
"github.com/jenkinsci/kubernetes-operator/pkg/configuration"
"github.com/jenkinsci/kubernetes-operator/pkg/notifications/event"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/manager"
"sigs.k8s.io/controller-runtime/pkg/reconcile"
)
// ReconcileJenkins reconciles a Jenkins object.
type ReconcileJenkins struct {
client client.Client
scheme *runtime.Scheme
jenkinsAPIConnectionSettings jenkinsclient.JenkinsAPIConnectionSettings
clientSet kubernetes.Clientset
config rest.Config
notificationEvents *chan event.Event
KubernetesClusterDomain string
}
func (r *ReconcileJenkins) newReconcilierConfiguration(jenkins *v1alpha2.Jenkins) configuration.Configuration {
config := configuration.Configuration{
Client: r.client,
ClientSet: r.clientSet,
Notifications: r.notificationEvents,
Jenkins: jenkins,
Scheme: r.scheme,
Config: &r.config,
JenkinsAPIConnectionSettings: r.jenkinsAPIConnectionSettings,
KubernetesClusterDomain: r.KubernetesClusterDomain,
}
return config
}
// newReconciler returns a newReconcilierConfiguration reconcile.Reconciler.
func newReconciler(mgr manager.Manager, jenkinsAPIConnectionSettings jenkinsclient.JenkinsAPIConnectionSettings, kubernetesClusterDomain string, clientSet kubernetes.Clientset, config rest.Config, notificationEvents *chan event.Event) reconcile.Reconciler {
return &ReconcileJenkins{
client: mgr.GetClient(),
scheme: mgr.GetScheme(),
jenkinsAPIConnectionSettings: jenkinsAPIConnectionSettings,
clientSet: clientSet,
config: config,
notificationEvents: notificationEvents,
KubernetesClusterDomain: kubernetesClusterDomain,
}
}