diff --git a/controllers/che/checluster_controller_test.go b/controllers/che/checluster_controller_test.go index 5d987b21b..c520ceb39 100644 --- a/controllers/che/checluster_controller_test.go +++ b/controllers/che/checluster_controller_test.go @@ -1083,7 +1083,13 @@ func TestCheController(t *testing.T) { r := &CheClusterReconciler{client: cl, nonCachedClient: cl, Scheme: &scheme, discoveryClient: dc, tests: true, Log: ctrl.Log.WithName("controllers").WithName("CheCluster")} // get CR - cheCR := &orgv1.CheCluster{} + cheCR := &orgv1.CheCluster{ + Spec: orgv1.CheClusterSpec{ + Server: orgv1.CheClusterSpecServer{ + CheHost: "eclipse.org", + }, + }, + } if err := cl.Get(context.TODO(), types.NamespacedName{Name: os.Getenv("CHE_FLAVOR"), Namespace: namespace}, cheCR); err != nil { t.Errorf("CR not found") } @@ -1283,6 +1289,15 @@ func TestCheController(t *testing.T) { t.Fatalf("Expecting %s storageClassName, got %s", fakeStorageClassName, *actualStorageClassName) } + // Get CheCR one more time to get it with newer Che url in the status. + r.client.Get(context.TODO(), types.NamespacedName{Name: cheCR.GetName(), Namespace: cheCR.GetNamespace()}, cheCR) + if err != nil { + t.Fatalf("Failed to get custom resource Eclipse Che: %s", err.Error()) + } + if cheCR.Status.CheURL != "https://eclipse.org" { + t.Fatalf("Expected che host url in the custom resource status: %s, but got %s", "https://eclipse.org", cheCR.Status.CheURL) + } + // check if oAuthClient is deleted after CR is deleted (finalizer logic) // since fake api does not set deletion timestamp, CR is updated in tests rather than deleted logrus.Info("Updating CR with deletion timestamp") diff --git a/pkg/deploy/dashboard/deployment_dashboard.go b/pkg/deploy/dashboard/deployment_dashboard.go index 755020c57..457aca50c 100644 --- a/pkg/deploy/dashboard/deployment_dashboard.go +++ b/pkg/deploy/dashboard/deployment_dashboard.go @@ -122,7 +122,7 @@ func (d *Dashboard) getDashboardDeploymentSpec() (*appsv1.Deployment, error) { Env: []corev1.EnvVar{ { Name: "CHE_HOST", - Value: d.deployContext.CheCluster.Status.CheURL, + Value: util.GetCheURL(d.deployContext.CheCluster), }, { Name: "KEYCLOAK_URL", diff --git a/pkg/deploy/server/server.go b/pkg/deploy/server/server.go index 5ad228f29..6fd029c1c 100644 --- a/pkg/deploy/server/server.go +++ b/pkg/deploy/server/server.go @@ -59,11 +59,6 @@ func (s *Server) ExposeCheServiceAndEndpoint() (bool, error) { return false, err } - done, err = s.UpdateCheURL() - if !done { - return false, err - } - return true, nil } @@ -100,6 +95,11 @@ func (s *Server) SyncAll() (bool, error) { return false, err } + done, err = s.UpdateCheURL() + if !done { + return false, err + } + done, err = s.UpdateCheVersion() if !done { return false, err @@ -193,13 +193,7 @@ func (s Server) ExposeCheEndpoint() (bool, error) { } func (s Server) UpdateCheURL() (bool, error) { - var cheUrl string - if s.deployContext.CheCluster.Spec.Server.TlsSupport { - cheUrl = "https://" + s.deployContext.CheCluster.Spec.Server.CheHost - } else { - cheUrl = "http://" + s.deployContext.CheCluster.Spec.Server.CheHost - } - + var cheUrl = util.GetCheURL(s.deployContext.CheCluster) if s.deployContext.CheCluster.Status.CheURL != cheUrl { s.deployContext.CheCluster.Status.CheURL = cheUrl err := deploy.UpdateCheCRStatus(s.deployContext, s.component+" server URL", cheUrl) diff --git a/pkg/util/util.go b/pkg/util/util.go index c7a9b4252..e47075298 100644 --- a/pkg/util/util.go +++ b/pkg/util/util.go @@ -612,3 +612,14 @@ func ClearMetadata(objectMeta *metav1.ObjectMeta) { objectMeta.Finalizers = []string{} objectMeta.ManagedFields = []metav1.ManagedFieldsEntry{} } + +// GetCheURL returns Che url. +func GetCheURL(cheCluster *orgv1.CheCluster) string { + var cheUrl string + if cheCluster.Spec.Server.TlsSupport { + cheUrl = "https://" + cheCluster.Spec.Server.CheHost + } else { + cheUrl = "http://" + cheCluster.Spec.Server.CheHost + } + return cheUrl +}