This commit is contained in:
Akram Ben Aissi 2020-05-05 14:46:57 +02:00
parent b6144b5559
commit ebfb38a9c4
4 changed files with 21 additions and 8 deletions

View File

@ -16,6 +16,7 @@ import (
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants"
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/notifications"
e "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/notifications/event"
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources"
"github.com/jenkinsci/kubernetes-operator/pkg/event"
"github.com/jenkinsci/kubernetes-operator/pkg/log"
"github.com/jenkinsci/kubernetes-operator/version"
@ -118,6 +119,9 @@ func main() {
fatal(errors.Wrap(err, "failed to create Kubernetes client set"), *debug)
}
if( resources.IsRouteAPIAvailable(clientSet) ) {
log.Log.Info("Route API found: Route creation will be performed")
}
c := make(chan e.Event)
go notifications.Listen(c, events, mgr.GetClient())

View File

@ -2,6 +2,7 @@ package apis
import (
"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2"
routev1 "github.com/openshift/api/route/v1"
"k8s.io/apimachinery/pkg/runtime"
)
@ -17,4 +18,5 @@ func AddToScheme(s *runtime.Scheme) error {
func init() {
// Register the types with the Scheme so the components can map objects to GroupVersionKinds and back
AddToSchemes = append(AddToSchemes, v1alpha2.SchemeBuilder.AddToScheme)
AddToSchemes = append(AddToSchemes, routev1.AddToScheme)
}

View File

@ -182,15 +182,19 @@ func (r *ReconcileJenkinsBaseConfiguration) ensureResourcesRequiredForJenkinsPod
return err
}
r.logger.V(log.VDebug).Info("Jenkins HTTP Service is present")
if err := r.createService(metaObject, resources.GetJenkinsSlavesServiceName(r.Configuration.Jenkins), r.Configuration.Jenkins.Spec.SlaveService); err != nil {
return err
}
if resources.IsRouteAPIAvailable(r.ClientSet) {
r.logger.V(log.VDebug).Info("Jenkins slave Service is present")
if resources.IsRouteAPIAvailable(&r.ClientSet) {
r.logger.V(log.VDebug).Info("Route API is available. Now creating route.")
if err := r.createRoute(metaObject, httpServiceName, r.Configuration.Jenkins); err != nil {
return err
}
r.logger.V(log.VDebug).Info("Jenkins Route is present")
}
r.logger.V(log.VDebug).Info("Jenkins slave Service is present")
return nil
}

View File

@ -2,7 +2,6 @@ package resources
import (
"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2"
routev1 "github.com/openshift/api/route/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/util/intstr"
@ -29,8 +28,8 @@ func UpdateRoute(actual routev1.Route,jenkins *v1alpha2.Jenkins) routev1.Route {
return actual
}
//IsRouteAPIDiscoverable tells if the Route API is installed and discoverable
func IsRouteAPIAvailable(clientSet kubernetes.Clientset) (bool) {
//IsRouteAPIAvailable tells if the Route API is installed and discoverable
func IsRouteAPIAvailable(clientSet *kubernetes.Clientset) (bool) {
if (routeAPIChecked){
return isRouteAPIAvailable
}
@ -40,8 +39,12 @@ func IsRouteAPIAvailable(clientSet kubernetes.Clientset) (bool) {
}
if err := discovery.ServerSupportsVersion(clientSet, gv); err != nil {
// error, API not available
return false
}
routeAPIChecked = true
isRouteAPIAvailable = false
} else {
// API Exists
return true
routeAPIChecked = true
isRouteAPIAvailable = true
}
return isRouteAPIAvailable
}