Merge pull request #12315 from rook/mergify/bp/release-1.11/pr-12271
core: cleanup exporter resources (backport #12271)
This commit is contained in:
2 files changed
+47
-1
No files matched your search
@@ -85,6 +85,18 @@ func (r *ReconcileNode) Reconcile(context context.Context, request reconcile.Req
|
||||
return result, err
|
||||
}
|
||||
|
||||
func (r *ReconcileNode) cleanupExporterResources(clusterNamespace string, ns string, nodeName string) (reconcile.Result, error) {
|
||||
err := k8sutil.DeleteServiceMonitor(r.opManagerContext, ns, cephExporterAppName)
|
||||
if err != nil {
|
||||
logger.Debugf("failed to delete service monitor for ceph exporter in namespace %q on node %q", ns, nodeName)
|
||||
}
|
||||
err = k8sutil.DeleteService(r.opManagerContext, r.context.Clientset, r.opConfig.OperatorNamespace, cephExporterAppName)
|
||||
if err != nil {
|
||||
return reconcile.Result{}, errors.Wrapf(err, "failed to delete ceph exporter metrics service in namespace %q on node %q", ns, nodeName)
|
||||
}
|
||||
return reconcile.Result{}, nil
|
||||
}
|
||||
|
||||
func (r *ReconcileNode) reconcile(request reconcile.Request) (reconcile.Result, error) {
|
||||
logger.Debugf("reconciling node: %q", request.Name)
|
||||
|
||||
@@ -195,6 +207,24 @@ func (r *ReconcileNode) reconcile(request reconcile.Request) (reconcile.Result,
|
||||
if err != nil {
|
||||
return reconcile.Result{}, errors.Wrapf(err, "failed to list and delete deployments in namespace %q on node %q", namespace, request.Name)
|
||||
}
|
||||
result, err := r.cleanupExporterResources(cephCluster.Namespace, namespace, request.Name)
|
||||
if err != nil {
|
||||
return result, errors.Wrapf(err, "failed to cleanup exporter resources in namespace %q on node %q", namespace, request.Name)
|
||||
}
|
||||
}
|
||||
// Cleanup exporter if the ceph version isn't supported
|
||||
if !cephVersion.IsAtLeast(MinVersionForCephExporter) {
|
||||
for _, cephPod := range cephPods {
|
||||
if cephPod.Spec.NodeName == request.Name {
|
||||
if err := r.listDeploymentAndDelete(cephExporterAppName, request.Name, namespace); err != nil {
|
||||
return reconcile.Result{}, errors.Wrap(err, "failed to delete ceph-exporter")
|
||||
}
|
||||
result, err := r.cleanupExporterResources(cephCluster.Namespace, namespace, request.Name)
|
||||
if err != nil {
|
||||
return result, errors.Wrapf(err, "failed to cleanup exporter resources in namespace %q on node %q", namespace, request.Name)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if err := r.reconcileCrashPruner(namespace, cephCluster, cephVersion); err != nil {
|
||||
@@ -218,7 +248,7 @@ func (r *ReconcileNode) createOrUpdateNodeDaemons(node corev1.Node, tolerations
|
||||
logger.Debugf("crash collector successfully reconciled for node %q. operation: %q", node.Name, op)
|
||||
}
|
||||
}
|
||||
if !cephCluster.Spec.Monitoring.MetricsDisabled {
|
||||
if cephVersion.IsAtLeast(MinVersionForCephExporter) && !cephCluster.Spec.Monitoring.MetricsDisabled {
|
||||
op, err := r.createOrUpdateCephExporter(node, tolerations, cephCluster, cephVersion)
|
||||
if err != nil {
|
||||
if op == "unchanged" {
|
||||
|
||||
@@ -23,6 +23,7 @@ import (
|
||||
|
||||
monitoringv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1"
|
||||
monitoringclient "github.com/prometheus-operator/prometheus-operator/pkg/client/versioned"
|
||||
kerror "k8s.io/apimachinery/pkg/api/errors"
|
||||
kerrors "k8s.io/apimachinery/pkg/api/errors"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/client-go/tools/clientcmd"
|
||||
@@ -101,3 +102,18 @@ func CreateOrUpdateServiceMonitor(ctx context.Context, serviceMonitorDefinition
|
||||
}
|
||||
return sm, nil
|
||||
}
|
||||
|
||||
// DeleteServiceMonitor deletes a ServiceMonitor and returns the error if any
|
||||
func DeleteServiceMonitor(ctx context.Context, ns string, name string) error {
|
||||
client, err := getMonitoringClient()
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to get monitoring client. %v", err)
|
||||
}
|
||||
err = client.MonitoringV1().ServiceMonitors(ns).Delete(ctx, name, metav1.DeleteOptions{})
|
||||
if err != nil {
|
||||
if kerror.IsNotFound(err) {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
return err
|
||||
}
|
||||
Reference in new issue
Block a user