Skip to content

Commit eaeeafc

Browse files
committed
fix(olm): No longer report status if minKubeVersion not specified
Currently, OLM will report requirementStatus for `minKubeVersion` even if it is not specified. The status becomes confusing as `minKubeVersion` is not required. After this change, the status is no longer reported if `minKubeVersion` is not specified. Signed-off-by: Vu Dinh <[email protected]>
1 parent 3a31383 commit eaeeafc

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

pkg/controller/operators/olm/requirements.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,17 @@ import (
1616
)
1717

1818
func (a *Operator) minKubeVersionStatus(name string, minKubeVersion string) (met bool, statuses []v1alpha1.RequirementStatus) {
19+
if minKubeVersion == "" {
20+
return true, nil
21+
}
22+
1923
status := v1alpha1.RequirementStatus{
2024
Group: "operators.coreos.com",
2125
Version: "v1alpha1",
2226
Kind: "ClusterServiceVersion",
2327
Name: name,
2428
}
2529

26-
if minKubeVersion == "" {
27-
status.Status = v1alpha1.RequirementStatusReasonNotPresent
28-
status.Message = "CSV missing minimum kube version specification"
29-
met = true
30-
statuses = append(statuses, status)
31-
return
32-
}
33-
3430
// Retrieve server k8s version
3531
serverVersionInfo, err := a.opClient.KubernetesInterface().Discovery().ServerVersion()
3632
if err != nil {
@@ -340,6 +336,7 @@ func (a *Operator) permissionStatus(strategyDetailsDeployment *install.StrategyD
340336

341337
// requirementAndPermissionStatus returns the aggregate requirement and permissions statuses for the given CSV
342338
func (a *Operator) requirementAndPermissionStatus(csv *v1alpha1.ClusterServiceVersion) (bool, []v1alpha1.RequirementStatus, error) {
339+
allReqStatuses := []v1alpha1.RequirementStatus{}
343340
// Use a StrategyResolver to unmarshal
344341
strategyResolver := install.StrategyResolver{}
345342
strategy, err := strategyResolver.UnmarshalStrategy(csv.Spec.InstallStrategy)
@@ -355,8 +352,12 @@ func (a *Operator) requirementAndPermissionStatus(csv *v1alpha1.ClusterServiceVe
355352

356353
// Check kubernetes version requirement between CSV and server
357354
minKubeMet, minKubeStatus := a.minKubeVersionStatus(csv.GetName(), csv.Spec.MinKubeVersion)
355+
if minKubeStatus != nil {
356+
allReqStatuses = append(allReqStatuses, minKubeStatus...)
357+
}
358+
358359
reqMet, reqStatuses := a.requirementStatus(strategyDetailsDeployment, csv.GetAllCRDDescriptions(), csv.GetOwnedAPIServiceDescriptions(), csv.GetRequiredAPIServiceDescriptions(), csv.Spec.NativeAPIs)
359-
allReqStatuses := append(minKubeStatus, reqStatuses...)
360+
allReqStatuses = append(allReqStatuses, reqStatuses...)
360361

361362
rbacLister := a.lister.RbacV1()
362363
roleLister := rbacLister.RoleLister()

0 commit comments

Comments
 (0)