Skip to content

Commit 8cc4430

Browse files
authored
SANDBOX-1392: Drop dependency on Che instance (codeready-toolchain#701)
* SANDBOX-1392: Drop dependency on Che instance, remove the che-related checks and logic Signed-off-by: Feny Mehta <fbm3307@gmail.com>
1 parent 1a93cb7 commit 8cc4430

File tree

3 files changed

+27
-98
lines changed

3 files changed

+27
-98
lines changed

controllers/memberstatus/memberstatus_controller.go

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ const (
4141
hostConnectionTag statusComponentTag = "hostConnection"
4242
resourceUsageTag statusComponentTag = "resourceUsage"
4343
routesTag statusComponentTag = "routes"
44-
cheTag statusComponentTag = "che"
4544

4645
labelNodeRoleMaster = "node-role.kubernetes.io/master"
4746
labelNodeRoleWorker = "node-role.kubernetes.io/worker"
@@ -273,7 +272,7 @@ func (r *Reconciler) loadCurrentResourceUsage(ctx context.Context, memberStatus
273272
return nil
274273
}
275274

276-
// routesHandleStatus retrieves the public routes which should be exposed to the users. Such as Web Console and Che Dashboard URLs.
275+
// routesHandleStatus retrieves the public routes which should be exposed to the users. Such as Web Console URL.
277276
// Returns an error if at least one of the required routes are not available.
278277
func (r *Reconciler) routesHandleStatus(ctx context.Context, memberStatus *toolchainv1alpha1.MemberStatus, config membercfg.Configuration) error {
279278
if memberStatus.Status.Routes == nil {
@@ -287,17 +286,6 @@ func (r *Reconciler) routesHandleStatus(ctx context.Context, memberStatus *toolc
287286
}
288287
memberStatus.Status.Routes.ConsoleURL = consoleURL
289288

290-
cheURL, err := r.cheDashboardURL(ctx, config)
291-
if err != nil {
292-
if config.Che().IsRequired() {
293-
errCondition := status.NewComponentErrorCondition(toolchainv1alpha1.ToolchainStatusMemberStatusCheRouteUnavailableReason, err.Error())
294-
memberStatus.Status.Routes.Conditions = []toolchainv1alpha1.Condition{*errCondition}
295-
return err
296-
}
297-
log.FromContext(ctx).Info("Che route is not available but not required. Ignoring.", "err", err.Error())
298-
}
299-
memberStatus.Status.Routes.CheDashboardURL = cheURL
300-
301289
readyCondition := status.NewComponentReadyCondition(toolchainv1alpha1.ToolchainStatusMemberStatusRoutesAvailableReason)
302290
memberStatus.Status.Routes.Conditions = []toolchainv1alpha1.Condition{*readyCondition}
303291

@@ -395,20 +383,6 @@ func (r *Reconciler) consoleURL(ctx context.Context, config membercfg.Configurat
395383
return sanitizeURL(fmt.Sprintf("https://%s/%s", route.Spec.Host, route.Spec.Path)), nil
396384
}
397385

398-
func (r *Reconciler) cheDashboardURL(ctx context.Context, config membercfg.Configuration) (string, error) {
399-
route := &routev1.Route{}
400-
namespacedName := types.NamespacedName{Namespace: config.Che().Namespace(), Name: config.Che().RouteName()}
401-
err := r.AllNamespacesClient.Get(ctx, namespacedName, route)
402-
if err != nil {
403-
return "", err
404-
}
405-
scheme := "https"
406-
if route.Spec.TLS == nil || *route.Spec.TLS == (routev1.TLSConfig{}) {
407-
scheme = "http"
408-
}
409-
return sanitizeURL(fmt.Sprintf("%s://%s/%s", scheme, route.Spec.Host, route.Spec.Path)), nil
410-
}
411-
412386
func sanitizeURL(url string) string {
413387
if strings.HasSuffix(url, "//") {
414388
return sanitizeURL(strings.TrimSuffix(url, "/")) // remove the extra `/`

controllers/memberstatus/memberstatus_controller_test.go

Lines changed: 25 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ func TestOverallStatusCondition(t *testing.T) {
127127
HasCondition(ComponentsReady()).
128128
HasMemoryUsage(OfNodeRole("master", 33), OfNodeRole("worker", 25)).
129129
HasMemberOperatorRevisionCheckConditions(ConditionReady(toolchainv1alpha1.ToolchainStatusDeploymentUpToDateReason)).
130-
HasRoutes("https://console.member-cluster/console/", "", routesAvailable())
130+
HasRoutes("https://console.member-cluster/console/", routesAvailable())
131131

132132
t.Run("when node has multiple roles", func(t *testing.T) {
133133
// given
@@ -145,7 +145,7 @@ func TestOverallStatusCondition(t *testing.T) {
145145
HasCondition(ComponentsReady()).
146146
HasMemoryUsage(OfNodeRole("worker", 20), OfNodeRole("master", 20)).
147147
HasMemberOperatorRevisionCheckConditions(ConditionReady(toolchainv1alpha1.ToolchainStatusDeploymentUpToDateReason)).
148-
HasRoutes("https://console.member-cluster/console/", "", routesAvailable())
148+
HasRoutes("https://console.member-cluster/console/", routesAvailable())
149149
})
150150

151151
t.Run("ignore infra node", func(t *testing.T) {
@@ -166,7 +166,7 @@ func TestOverallStatusCondition(t *testing.T) {
166166
HasCondition(ComponentsReady()).
167167
HasMemoryUsage(OfNodeRole("worker", 75), OfNodeRole("master", 50)).
168168
HasMemberOperatorRevisionCheckConditions(ConditionReady(toolchainv1alpha1.ToolchainStatusDeploymentUpToDateReason)).
169-
HasRoutes("https://console.member-cluster/console/", "", routesAvailable())
169+
HasRoutes("https://console.member-cluster/console/", routesAvailable())
170170
})
171171

172172
t.Run("ignore infra node when node is shared", func(t *testing.T) {
@@ -187,7 +187,7 @@ func TestOverallStatusCondition(t *testing.T) {
187187
HasCondition(ComponentsReady()).
188188
HasMemoryUsage(OfNodeRole("worker", 75), OfNodeRole("master", 50)).
189189
HasMemberOperatorRevisionCheckConditions(ConditionReady(toolchainv1alpha1.ToolchainStatusDeploymentUpToDateReason)).
190-
HasRoutes("https://console.member-cluster/console/", "", routesAvailable())
190+
HasRoutes("https://console.member-cluster/console/", routesAvailable())
191191
})
192192
})
193193

@@ -209,7 +209,7 @@ func TestOverallStatusCondition(t *testing.T) {
209209
HasCondition(ComponentsNotReady(string(hostConnectionTag))).
210210
HasHostConditionErrorMsg("the cluster connection was not found").
211211
HasMemoryUsage(OfNodeRole("master", 33), OfNodeRole("worker", 25)).
212-
HasRoutes("https://console.member-cluster/console/", "", routesAvailable())
212+
HasRoutes("https://console.member-cluster/console/", routesAvailable())
213213
})
214214

215215
t.Run("Host connection not ready", func(t *testing.T) {
@@ -229,7 +229,7 @@ func TestOverallStatusCondition(t *testing.T) {
229229
AssertThatMemberStatus(t, req.Namespace, requestName, fakeClient).
230230
HasCondition(ComponentsNotReady(string(hostConnectionTag))).
231231
HasMemoryUsage(OfNodeRole("master", 33), OfNodeRole("worker", 25)).
232-
HasRoutes("https://console.member-cluster/console/", "", routesAvailable())
232+
HasRoutes("https://console.member-cluster/console/", routesAvailable())
233233
})
234234

235235
t.Run("Host connection probe not working", func(t *testing.T) {
@@ -249,7 +249,7 @@ func TestOverallStatusCondition(t *testing.T) {
249249
AssertThatMemberStatus(t, req.Namespace, requestName, fakeClient).
250250
HasCondition(ComponentsNotReady(string(hostConnectionTag))).
251251
HasMemoryUsage(OfNodeRole("master", 33), OfNodeRole("worker", 25)).
252-
HasRoutes("https://console.member-cluster/console/", "", routesAvailable())
252+
HasRoutes("https://console.member-cluster/console/", routesAvailable())
253253
})
254254

255255
t.Run("Member operator deployment not found - deployment env var not set", func(t *testing.T) {
@@ -271,7 +271,7 @@ func TestOverallStatusCondition(t *testing.T) {
271271
HasCondition(ComponentsNotReady(string(memberOperatorTag))).
272272
HasMemoryUsage(OfNodeRole("master", 33), OfNodeRole("worker", 25)).
273273
HasMemberOperatorConditionErrorMsg("unable to get the deployment: OPERATOR_NAME must be set").
274-
HasRoutes("https://console.member-cluster/console/", "", routesAvailable())
274+
HasRoutes("https://console.member-cluster/console/", routesAvailable())
275275
})
276276

277277
t.Run("Member operator deployment not found", func(t *testing.T) {
@@ -290,7 +290,7 @@ func TestOverallStatusCondition(t *testing.T) {
290290
AssertThatMemberStatus(t, req.Namespace, requestName, fakeClient).
291291
HasCondition(ComponentsNotReady(string(memberOperatorTag))).
292292
HasMemoryUsage(OfNodeRole("master", 33), OfNodeRole("worker", 25)).
293-
HasRoutes("https://console.member-cluster/console/", "", routesAvailable())
293+
HasRoutes("https://console.member-cluster/console/", routesAvailable())
294294
})
295295

296296
t.Run("Member operator deployment not ready", func(t *testing.T) {
@@ -310,7 +310,7 @@ func TestOverallStatusCondition(t *testing.T) {
310310
AssertThatMemberStatus(t, req.Namespace, requestName, fakeClient).
311311
HasCondition(ComponentsNotReady(string(memberOperatorTag))).
312312
HasMemoryUsage(OfNodeRole("master", 33), OfNodeRole("worker", 25)).
313-
HasRoutes("https://console.member-cluster/console/", "", routesAvailable())
313+
HasRoutes("https://console.member-cluster/console/", routesAvailable())
314314
})
315315

316316
t.Run("Member operator deployment not progressing", func(t *testing.T) {
@@ -330,7 +330,7 @@ func TestOverallStatusCondition(t *testing.T) {
330330
AssertThatMemberStatus(t, req.Namespace, requestName, fakeClient).
331331
HasCondition(ComponentsNotReady(string(memberOperatorTag))).
332332
HasMemoryUsage(OfNodeRole("master", 33), OfNodeRole("worker", 25)).
333-
HasRoutes("https://console.member-cluster/console/", "", routesAvailable())
333+
HasRoutes("https://console.member-cluster/console/", routesAvailable())
334334
})
335335

336336
t.Run("when missing only one NodeMetrics resource then it's fine", func(t *testing.T) {
@@ -352,7 +352,7 @@ func TestOverallStatusCondition(t *testing.T) {
352352
AssertThatMemberStatus(t, req.Namespace, defaultMemberStatusName, fakeClient).
353353
HasCondition(ComponentsReady()).
354354
HasMemoryUsage(OfNodeRole("master", 33), OfNodeRole("worker", 25)).
355-
HasRoutes("https://console.member-cluster/console/", "", routesAvailable())
355+
HasRoutes("https://console.member-cluster/console/", routesAvailable())
356356
})
357357

358358
t.Run("metrics failures", func(t *testing.T) {
@@ -376,7 +376,7 @@ func TestOverallStatusCondition(t *testing.T) {
376376
AssertThatMemberStatus(t, req.Namespace, requestName, fakeClient).
377377
HasCondition(ComponentsNotReady(string("resourceUsage"))).
378378
HasMemoryUsage().
379-
HasRoutes("https://console.member-cluster/console/", "", routesAvailable())
379+
HasRoutes("https://console.member-cluster/console/", routesAvailable())
380380
})
381381

382382
t.Run("when unable to list Nodes", func(t *testing.T) {
@@ -398,7 +398,7 @@ func TestOverallStatusCondition(t *testing.T) {
398398
AssertThatMemberStatus(t, req.Namespace, requestName, fakeClient).
399399
HasCondition(ComponentsNotReady(string("resourceUsage"))).
400400
HasMemoryUsage().
401-
HasRoutes("https://console.member-cluster/console/", "", routesAvailable())
401+
HasRoutes("https://console.member-cluster/console/", routesAvailable())
402402
})
403403

404404
t.Run("when unable to list NodeMetrics", func(t *testing.T) {
@@ -420,7 +420,7 @@ func TestOverallStatusCondition(t *testing.T) {
420420
AssertThatMemberStatus(t, req.Namespace, requestName, fakeClient).
421421
HasCondition(ComponentsNotReady(string("resourceUsage"))).
422422
HasMemoryUsage().
423-
HasRoutes("https://console.member-cluster/console/", "", routesAvailable())
423+
HasRoutes("https://console.member-cluster/console/", routesAvailable())
424424
})
425425

426426
t.Run("when missing NodeMetrics for two Nodes", func(t *testing.T) {
@@ -444,7 +444,7 @@ func TestOverallStatusCondition(t *testing.T) {
444444
AssertThatMemberStatus(t, req.Namespace, requestName, fakeClient).
445445
HasCondition(ComponentsNotReady(string("resourceUsage"))).
446446
HasMemoryUsage().
447-
HasRoutes("https://console.member-cluster/console/", "", routesAvailable())
447+
HasRoutes("https://console.member-cluster/console/", routesAvailable())
448448
})
449449
})
450450

@@ -455,7 +455,7 @@ func TestOverallStatusCondition(t *testing.T) {
455455
memberStatus := newMemberStatus()
456456
getHostClusterFunc := newGetHostClusterReady
457457

458-
t.Run("che not using tls with path", func(t *testing.T) {
458+
t.Run("console not using tls with path", func(t *testing.T) {
459459
// given
460460
allNamespacesCl := test.NewFakeClient(t, consoleRoute())
461461
reconciler, req, fakeClient := prepareReconcile(t, requestName, getHostClusterFunc, allNamespacesCl, mockLastGitHubAPICall, defaultGitHubClient, append(nodeAndMetrics, memberOperatorDeployment, memberStatus)...)
@@ -469,10 +469,10 @@ func TestOverallStatusCondition(t *testing.T) {
469469
AssertThatMemberStatus(t, req.Namespace, requestName, fakeClient).
470470
HasCondition(ComponentsReady()).
471471
HasMemoryUsage(OfNodeRole("master", 33), OfNodeRole("worker", 25)).
472-
HasRoutes("https://console.member-cluster/console/", "", routesAvailable())
472+
HasRoutes("https://console.member-cluster/console/", routesAvailable())
473473
})
474474

475-
t.Run("che and console without path", func(t *testing.T) {
475+
t.Run("console without path", func(t *testing.T) {
476476
// given
477477
consoleRoute := consoleRoute()
478478
consoleRoute.Spec.Path = ""
@@ -488,7 +488,7 @@ func TestOverallStatusCondition(t *testing.T) {
488488
AssertThatMemberStatus(t, req.Namespace, requestName, fakeClient).
489489
HasCondition(ComponentsReady()).
490490
HasMemoryUsage(OfNodeRole("master", 33), OfNodeRole("worker", 25)).
491-
HasRoutes("https://console.member-cluster/", "", routesAvailable())
491+
HasRoutes("https://console.member-cluster/", routesAvailable())
492492
})
493493

494494
t.Run("console route unavailable", func(t *testing.T) {
@@ -505,45 +505,9 @@ func TestOverallStatusCondition(t *testing.T) {
505505
AssertThatMemberStatus(t, req.Namespace, requestName, fakeClient).
506506
HasCondition(ComponentsNotReady(string("routes"))).
507507
HasMemoryUsage(OfNodeRole("master", 33), OfNodeRole("worker", 25)).
508-
HasRoutes("", "", consoleRouteUnavailable("routes.route.openshift.io \"console\" not found"))
508+
HasRoutes("", consoleRouteUnavailable("routes.route.openshift.io \"console\" not found"))
509509
})
510510

511-
t.Run("che route unavailable", func(t *testing.T) {
512-
// given
513-
allNamespacesCl := test.NewFakeClient(t, consoleRoute())
514-
515-
t.Run("when not required", func(t *testing.T) {
516-
// given
517-
reconciler, req, fakeClient := prepareReconcile(t, requestName, getHostClusterFunc, allNamespacesCl, mockLastGitHubAPICall, defaultGitHubClient, append(nodeAndMetrics, memberOperatorDeployment, memberStatus)...)
518-
519-
// when
520-
res, err := reconciler.Reconcile(context.TODO(), req)
521-
522-
// then
523-
require.NoError(t, err)
524-
assert.Equal(t, requeueResult, res)
525-
AssertThatMemberStatus(t, req.Namespace, requestName, fakeClient).
526-
HasCondition(ComponentsReady()).
527-
HasMemoryUsage(OfNodeRole("master", 33), OfNodeRole("worker", 25)).
528-
HasRoutes("https://console.member-cluster/console/", "", routesAvailable())
529-
})
530-
531-
t.Run("when required", func(t *testing.T) {
532-
// given
533-
config := commonconfig.NewMemberOperatorConfigWithReset(t, testconfig.Che().Required(true))
534-
reconciler, req, fakeClient := prepareReconcile(t, requestName, getHostClusterFunc, allNamespacesCl, mockLastGitHubAPICall, defaultGitHubClient, append(nodeAndMetrics, config, memberOperatorDeployment, memberStatus)...)
535-
536-
// when
537-
res, err := reconciler.Reconcile(context.TODO(), req)
538-
539-
// then
540-
require.NoError(t, err)
541-
assert.Equal(t, requeueResult, res)
542-
AssertThatMemberStatus(t, req.Namespace, requestName, fakeClient).
543-
HasCondition(ComponentsNotReady(string("routes"))).
544-
HasMemoryUsage(OfNodeRole("master", 33), OfNodeRole("worker", 25))
545-
})
546-
})
547511
})
548512

549513
t.Run("member operator deployment revision check", func(t *testing.T) {
@@ -576,7 +540,7 @@ func TestOverallStatusCondition(t *testing.T) {
576540
HasMemberOperatorConditions(ConditionReady(toolchainv1alpha1.ToolchainStatusDeploymentReadyReason)). // we have only one condition for the deployment status
577541
HasMemberOperatorRevisionCheckConditions(ConditionReadyWithMessage(toolchainv1alpha1.ToolchainStatusDeploymentRevisionCheckDisabledReason, "is not running in prod environment")).
578542
HasMemoryUsage(OfNodeRole("master", 33), OfNodeRole("worker", 25)).
579-
HasRoutes("https://console.member-cluster/console/", "", routesAvailable())
543+
HasRoutes("https://console.member-cluster/console/", routesAvailable())
580544
})
581545
//
582546
t.Run("when environment is prod but github secret is not present", func(t *testing.T) {
@@ -595,7 +559,7 @@ func TestOverallStatusCondition(t *testing.T) {
595559
HasMemberOperatorConditions(ConditionReady(toolchainv1alpha1.ToolchainStatusDeploymentReadyReason)). // we have only one condition for the deployment status
596560
HasMemberOperatorRevisionCheckConditions(ConditionReadyWithMessage(toolchainv1alpha1.ToolchainStatusDeploymentRevisionCheckDisabledReason, "access token key is not provided")).
597561
HasMemoryUsage(OfNodeRole("master", 33), OfNodeRole("worker", 25)).
598-
HasRoutes("https://console.member-cluster/console/", "", routesAvailable())
562+
HasRoutes("https://console.member-cluster/console/", routesAvailable())
599563
})
600564
})
601565

@@ -635,7 +599,7 @@ func TestOverallStatusCondition(t *testing.T) {
635599
HasMemberOperatorConditions(ConditionReady(toolchainv1alpha1.ToolchainStatusDeploymentReadyReason)).
636600
HasMemberOperatorRevisionCheckConditions(ConditionReady(toolchainv1alpha1.ToolchainStatusDeploymentUpToDateReason)).
637601
HasMemoryUsage(OfNodeRole("master", 33), OfNodeRole("worker", 25)).
638-
HasRoutes("https://console.member-cluster/console/", "", routesAvailable())
602+
HasRoutes("https://console.member-cluster/console/", routesAvailable())
639603
})
640604

641605
t.Run("member operator deployment version is not up to date", func(t *testing.T) {
@@ -655,7 +619,7 @@ func TestOverallStatusCondition(t *testing.T) {
655619
HasMemberOperatorConditions(ConditionReady(toolchainv1alpha1.ToolchainStatusDeploymentReadyReason)).
656620
HasMemberOperatorRevisionCheckConditions(ConditionNotReady(toolchainv1alpha1.ToolchainStatusDeploymentNotUpToDateReason, "deployment version is not up to date with latest github commit SHA. deployed commit SHA "+version.Commit+" ,github latest SHA "+latestCommitSHA+", expected deployment timestamp: "+commitTimeStamp.Add(status.DeploymentThreshold).Format(time.RFC3339))).
657621
HasMemoryUsage(OfNodeRole("master", 33), OfNodeRole("worker", 25)).
658-
HasRoutes("https://console.member-cluster/console/", "", routesAvailable())
622+
HasRoutes("https://console.member-cluster/console/", routesAvailable())
659623
})
660624
})
661625
})

test/memberstatus_assertion.go

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -109,24 +109,15 @@ func (a *MemberStatusAssertion) HasMemoryUsage(usages ...AddUsage) *MemberStatus
109109
return a
110110
}
111111

112-
func (a *MemberStatusAssertion) HasRoutes(consoleURL, cheURL string, expCondition toolchainv1alpha1.Condition) *MemberStatusAssertion {
112+
func (a *MemberStatusAssertion) HasRoutes(consoleURL string, expCondition toolchainv1alpha1.Condition) *MemberStatusAssertion {
113113
err := a.loadMemberStatus()
114114
require.NoError(a.t, err)
115115
require.NotNil(a.t, a.memberStatus.Status.Routes)
116116
require.Equal(a.t, consoleURL, a.memberStatus.Status.Routes.ConsoleURL)
117-
require.Equal(a.t, cheURL, a.memberStatus.Status.Routes.CheDashboardURL)
118117
test.AssertConditionsMatch(a.t, a.memberStatus.Status.Routes.Conditions, expCondition)
119118
return a
120119
}
121120

122-
func (a *MemberStatusAssertion) HasCheConditions(expCondition toolchainv1alpha1.Condition) *MemberStatusAssertion {
123-
err := a.loadMemberStatus()
124-
require.NoError(a.t, err)
125-
require.NotNil(a.t, a.memberStatus.Status.Che)
126-
test.AssertConditionsMatch(a.t, a.memberStatus.Status.Che.Conditions, expCondition)
127-
return a
128-
}
129-
130121
func ComponentsReady() toolchainv1alpha1.Condition {
131122
return toolchainv1alpha1.Condition{
132123
Type: toolchainv1alpha1.ConditionReady,

0 commit comments

Comments
 (0)