pkg/monitor/cluster/clusteroperatorversions.go (29 lines of code) (raw):
package cluster
// Copyright (c) Microsoft Corporation.
// Licensed under the Apache License 2.0.
import (
"context"
)
func (mon *Monitor) emitClusterOperatorVersions(ctx context.Context) error {
cv, err := mon.getClusterVersion(ctx)
if err != nil {
return err
}
cos, err := mon.listClusterOperators(ctx)
if err != nil {
return err
}
for _, co := range cos.Items {
for _, v := range co.Status.Versions {
if v.Name != "operator" {
continue
}
if v.Version == desiredVersion(cv) {
continue
}
mon.emitGauge("clusteroperator.versions", 1, map[string]string{
"name": co.Name,
"version": v.Version,
})
}
}
return nil
}