Skip to content

Commit 42ed784

Browse files
author
Jeff Peeler
committed
feat(olm): add message to requirement statuses
1 parent 6817e82 commit 42ed784

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

pkg/api/apis/operators/v1alpha1/clusterserviceversion_types.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,7 @@ type RequirementStatus struct {
274274
Kind string `json:"kind"`
275275
Name string `json:"name"`
276276
Status StatusReason `json:"status"`
277+
Message string `json:"message"`
277278
UUID string `json:"uuid,omitempty"`
278279
Dependents []DependentStatus `json:"dependents,omitempty"`
279280
}
@@ -445,3 +446,4 @@ func (csv ClusterServiceVersion) GetOwnedAPIServiceDescriptions() []APIServiceDe
445446

446447
return descs
447448
}
449+

pkg/controller/operators/olm/operator_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2143,6 +2143,7 @@ func TestSyncOperatorGroups(t *testing.T) {
21432143
Kind: "CustomResourceDefinition",
21442144
Name: crd.GetName(),
21452145
Status: v1alpha1.RequirementStatusReasonPresent,
2146+
Message: "CRD is present and Established condition is true",
21462147
},
21472148
{
21482149
Group: "",

pkg/controller/operators/olm/requirements.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,20 +31,18 @@ func (a *Operator) requirementStatus(strategyDetailsDeployment *install.Strategy
3131
crd, err := a.lister.APIExtensionsV1beta1().CustomResourceDefinitionLister().Get(r.Name)
3232
if err != nil {
3333
status.Status = v1alpha1.RequirementStatusReasonNotPresent
34+
status.Message = "CRD is not present"
3435
a.Log.Debugf("Setting 'met' to false, %v with status %v, with err: %v", r.Name, status, err)
3536
met = false
3637
statuses = append(statuses, status)
3738
continue
3839
}
3940

40-
if crd.Spec.Version == r.Version {
41-
status.Status = v1alpha1.RequirementStatusReasonPresent
42-
} else {
41+
if crd.Spec.Version != r.Version {
4342
served := false
4443
for _, version := range crd.Spec.Versions {
4544
if version.Name == r.Version {
4645
if version.Served {
47-
status.Status = v1alpha1.RequirementStatusReasonPresent
4846
served = true
4947
}
5048
break
@@ -53,6 +51,7 @@ func (a *Operator) requirementStatus(strategyDetailsDeployment *install.Strategy
5351

5452
if !served {
5553
status.Status = v1alpha1.RequirementStatusReasonNotPresent
54+
status.Message = "CRD version not served"
5655
a.Log.Debugf("Setting 'met' to false, %v with status %v, CRD version %v not found", r.Name, status, r.Version)
5756
met = false
5857
statuses = append(statuses, status)
@@ -77,10 +76,13 @@ func (a *Operator) requirementStatus(strategyDetailsDeployment *install.Strategy
7776
}
7877

7978
if established && namesAccepted {
79+
status.Status = v1alpha1.RequirementStatusReasonPresent
80+
status.Message = "CRD is present and Established condition is true"
8081
status.UUID = string(crd.GetUID())
8182
statuses = append(statuses, status)
8283
} else {
8384
status.Status = v1alpha1.RequirementStatusReasonNotAvailable
85+
status.Message = "CRD is present but the Established condition is False (not available)"
8486
met = false
8587
a.Log.Debugf("Setting 'met' to false, %v with status %v, established=%v, namesAccepted=%v", r.Name, status, established, namesAccepted)
8688
statuses = append(statuses, status)
@@ -163,11 +165,13 @@ func (a *Operator) requirementStatus(strategyDetailsDeployment *install.Strategy
163165

164166
if err := a.isGVKRegistered(r.Group, r.Version, r.Kind); err != nil {
165167
status.Status = v1alpha1.RequirementStatusReasonNotPresent
168+
status.Message = "Native API does not exist"
166169
met = false
167170
statuses = append(statuses, status)
168171
continue
169172
} else {
170173
status.Status = v1alpha1.RequirementStatusReasonPresent
174+
status.Message = "Native API exists"
171175
statuses = append(statuses, status)
172176
continue
173177
}
@@ -205,6 +209,7 @@ func (a *Operator) permissionStatus(strategyDetailsDeployment *install.StrategyD
205209
if err != nil {
206210
met = false
207211
status.Status = v1alpha1.RequirementStatusReasonNotPresent
212+
status.Message = "Service account does not exist"
208213
statusesSet[saName] = status
209214
continue
210215
}
@@ -240,6 +245,7 @@ func (a *Operator) permissionStatus(strategyDetailsDeployment *install.StrategyD
240245
met = false
241246
dependent.Status = v1alpha1.DependentStatusReasonNotSatisfied
242247
status.Status = v1alpha1.RequirementStatusReasonPresentNotSatisfied
248+
status.Message = "Policy rule not satisfied for service account"
243249
} else {
244250
dependent.Status = v1alpha1.DependentStatusReasonSatisfied
245251
}

0 commit comments

Comments
 (0)