make ReconcilePodMonitor
Change-Id: I39be505b37128c7583975b75fde0ba79fed6dddc
This commit is contained in:
parent
bbbe4f9b68
commit
9b5c71c6a5
@ -129,36 +129,10 @@ func (r *McrouterReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) {
|
||||
log.WithValues("resource", "Deployment").WithValues("op", op).Info("Reconciled")
|
||||
|
||||
// PodMonitor
|
||||
podMonitor := &monitoringv1.PodMonitor{
|
||||
TypeMeta: metav1.TypeMeta{
|
||||
APIVersion: "monitoring.coreos.com/v1",
|
||||
Kind: "PodMonitor",
|
||||
},
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Namespace: req.Namespace,
|
||||
Name: "mcrouter-podmonitor",
|
||||
},
|
||||
if res, err := r.ReconcilePodMonitor(ctx, req, &mcrouter, log, typeLabels); err != nil || res != (ctrl.Result{}) {
|
||||
return res, err
|
||||
}
|
||||
|
||||
op, err = k8sutils.CreateOrUpdate(ctx, r, podMonitor, func() error {
|
||||
return builders.PodMonitor(podMonitor, &mcrouter, r.Scheme).
|
||||
Labels(typeLabels).
|
||||
Selector(map[string]string{
|
||||
"app.kubernetes.io/name": "mcrouter",
|
||||
}).
|
||||
PodMetricsEndpoints(
|
||||
builders.PodMetricsEndpoint().
|
||||
Port("metrics").
|
||||
Path("/metrics").
|
||||
Interval("15s"),
|
||||
).Build()
|
||||
|
||||
})
|
||||
if err != nil {
|
||||
return ctrl.Result{}, err
|
||||
}
|
||||
log.WithValues("resource", "mcrouter-podmonitor").WithValues("op", op).Info("Reconciled")
|
||||
|
||||
// Alertrule
|
||||
alertRule := &monitoringv1.PrometheusRule{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
@ -232,3 +206,36 @@ func (r *McrouterReconciler) ReconcileService(ctx context.Context, req ctrl.Requ
|
||||
log.WithValues("resource", "Service").WithValues("op", op).Info("Reconciled")
|
||||
return ctrl.Result{}, nil
|
||||
}
|
||||
|
||||
// ReconcilePodMonitor reconciles the podMonitor
|
||||
func (r *McrouterReconciler) ReconcilePodMonitor(ctx context.Context, req ctrl.Request, mcrouter *infrastructurev1alpha1.Mcrouter, log logr.Logger, labels map[string]string) (ctrl.Result, error) {
|
||||
podMonitor := &monitoringv1.PodMonitor{
|
||||
TypeMeta: metav1.TypeMeta{
|
||||
APIVersion: "monitoring.coreos.com/v1",
|
||||
Kind: "PodMonitor",
|
||||
},
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Namespace: req.Namespace,
|
||||
Name: "mcrouter-podmonitor",
|
||||
},
|
||||
}
|
||||
op, err := k8sutils.CreateOrUpdate(ctx, r, podMonitor, func() error {
|
||||
return builders.PodMonitor(podMonitor, mcrouter, r.Scheme).
|
||||
Labels(labels).
|
||||
Selector(map[string]string{
|
||||
"app.kubernetes.io/name": "mcrouter",
|
||||
}).
|
||||
PodMetricsEndpoints(
|
||||
builders.PodMetricsEndpoint().
|
||||
Port("metrics").
|
||||
Path("/metrics").
|
||||
Interval("15s"),
|
||||
).Build()
|
||||
|
||||
})
|
||||
if err != nil {
|
||||
return ctrl.Result{}, err
|
||||
}
|
||||
log.WithValues("resource", "mcrouter-podmonitor").WithValues("op", op).Info("Reconciled")
|
||||
return ctrl.Result{}, nil
|
||||
}
|
||||
|
@ -129,36 +129,10 @@ func (r *MemcachedReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) {
|
||||
log.WithValues("resource", "Deployment").WithValues("op", op).Info("Reconciled")
|
||||
|
||||
// PodMonitor
|
||||
podMonitor := &monitoringv1.PodMonitor{
|
||||
TypeMeta: metav1.TypeMeta{
|
||||
APIVersion: "monitoring.coreos.com/v1",
|
||||
Kind: "PodMonitor",
|
||||
},
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Namespace: req.Namespace,
|
||||
Name: "memcached-podmonitor",
|
||||
},
|
||||
if res, err := r.ReconcilePodMonitor(ctx, req, &memcached, log, typeLabels); err != nil || res != (ctrl.Result{}) {
|
||||
return res, err
|
||||
}
|
||||
|
||||
op, err = k8sutils.CreateOrUpdate(ctx, r, podMonitor, func() error {
|
||||
return builders.PodMonitor(podMonitor, &memcached, r.Scheme).
|
||||
Labels(typeLabels).
|
||||
Selector(map[string]string{
|
||||
"app.kubernetes.io/name": "memcached",
|
||||
}).
|
||||
PodMetricsEndpoints(
|
||||
builders.PodMetricsEndpoint().
|
||||
Port("metrics").
|
||||
Path("/metrics").
|
||||
Interval("15s"),
|
||||
).Build()
|
||||
|
||||
})
|
||||
if err != nil {
|
||||
return ctrl.Result{}, err
|
||||
}
|
||||
log.WithValues("resource", "podmonitor").WithValues("op", op).Info("Reconciled")
|
||||
|
||||
// Pods
|
||||
pods := &corev1.PodList{}
|
||||
err = r.List(ctx, pods, client.InNamespace(req.Namespace), client.MatchingLabels(labels))
|
||||
@ -249,3 +223,36 @@ func (r *MemcachedReconciler) SetupWithManager(mgr ctrl.Manager) error {
|
||||
Owns(&monitoringv1.PrometheusRule{}).
|
||||
Complete(r)
|
||||
}
|
||||
|
||||
// ReconcilePodMonitor reconciles the podMonitor
|
||||
func (r *MemcachedReconciler) ReconcilePodMonitor(ctx context.Context, req ctrl.Request, memcached *infrastructurev1alpha1.Memcached, log logr.Logger, labels map[string]string) (ctrl.Result, error) {
|
||||
podMonitor := &monitoringv1.PodMonitor{
|
||||
TypeMeta: metav1.TypeMeta{
|
||||
APIVersion: "monitoring.coreos.com/v1",
|
||||
Kind: "PodMonitor",
|
||||
},
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Namespace: req.Namespace,
|
||||
Name: "memcached-podmonitor",
|
||||
},
|
||||
}
|
||||
op, err := k8sutils.CreateOrUpdate(ctx, r, podMonitor, func() error {
|
||||
return builders.PodMonitor(podMonitor, memcached, r.Scheme).
|
||||
Labels(labels).
|
||||
Selector(map[string]string{
|
||||
"app.kubernetes.io/name": "memcached",
|
||||
}).
|
||||
PodMetricsEndpoints(
|
||||
builders.PodMetricsEndpoint().
|
||||
Port("metrics").
|
||||
Path("/metrics").
|
||||
Interval("15s"),
|
||||
).Build()
|
||||
|
||||
})
|
||||
if err != nil {
|
||||
return ctrl.Result{}, err
|
||||
}
|
||||
log.WithValues("resource", "podmonitor").WithValues("op", op).Info("Reconciled")
|
||||
return ctrl.Result{}, nil
|
||||
}
|
||||
|
@ -105,36 +105,10 @@ func (r *RabbitmqReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) {
|
||||
log.WithValues("resource", "Deployment").WithValues("op", op).Info("Reconciled")
|
||||
|
||||
// PodMonitor
|
||||
podMonitor := &monitoringv1.PodMonitor{
|
||||
TypeMeta: metav1.TypeMeta{
|
||||
APIVersion: "monitoring.coreos.com/v1",
|
||||
Kind: "PodMonitor",
|
||||
},
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Namespace: req.Namespace,
|
||||
Name: "rabbitmq-podmonitor",
|
||||
},
|
||||
if res, err := r.ReconcilePodMonitor(ctx, req, &Rabbitmq, log, typeLabels); err != nil || res != (ctrl.Result{}) {
|
||||
return res, err
|
||||
}
|
||||
|
||||
op, err = k8sutils.CreateOrUpdate(ctx, r, podMonitor, func() error {
|
||||
return builders.PodMonitor(podMonitor, &Rabbitmq, r.Scheme).
|
||||
Labels(typeLabels).
|
||||
Selector(map[string]string{
|
||||
"app.kubernetes.io/name": "rabbitmq",
|
||||
}).
|
||||
PodMetricsEndpoints(
|
||||
builders.PodMetricsEndpoint().
|
||||
Port("metrics").
|
||||
Path("/metrics").
|
||||
Interval("15s"),
|
||||
).Build()
|
||||
|
||||
})
|
||||
if err != nil {
|
||||
return ctrl.Result{}, err
|
||||
}
|
||||
log.WithValues("resource", "rabbitmq-podmonitor").WithValues("op", op).Info("Reconciled")
|
||||
|
||||
// Alertrule
|
||||
alertRule := &monitoringv1.PrometheusRule{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
@ -215,3 +189,35 @@ func (r *RabbitmqReconciler) ReconcileService(ctx context.Context, req ctrl.Requ
|
||||
log.WithValues("resource", "Service").WithValues("op", op).Info("Reconciled")
|
||||
return ctrl.Result{}, nil
|
||||
}
|
||||
|
||||
// ReconcilePodMonitor reconciles the podMonitor
|
||||
func (r *RabbitmqReconciler) ReconcilePodMonitor(ctx context.Context, req ctrl.Request, rabbitmq *infrastructurev1alpha1.Rabbitmq, log logr.Logger, labels map[string]string) (ctrl.Result, error) {
|
||||
podMonitor := &monitoringv1.PodMonitor{
|
||||
TypeMeta: metav1.TypeMeta{
|
||||
APIVersion: "monitoring.coreos.com/v1",
|
||||
Kind: "PodMonitor",
|
||||
},
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Namespace: req.Namespace,
|
||||
Name: "rabbitmq-podmonitor",
|
||||
},
|
||||
}
|
||||
op, err := k8sutils.CreateOrUpdate(ctx, r, podMonitor, func() error {
|
||||
return builders.PodMonitor(podMonitor, rabbitmq, r.Scheme).
|
||||
Labels(labels).
|
||||
Selector(map[string]string{
|
||||
"app.kubernetes.io/name": "rabbitmq",
|
||||
}).
|
||||
PodMetricsEndpoints(
|
||||
builders.PodMetricsEndpoint().
|
||||
Port("metrics").
|
||||
Path("/metrics").
|
||||
Interval("15s"),
|
||||
).Build()
|
||||
})
|
||||
if err != nil {
|
||||
return ctrl.Result{}, err
|
||||
}
|
||||
log.WithValues("resource", "rabbitmq-podmonitor").WithValues("op", op).Info("Reconciled")
|
||||
return ctrl.Result{}, nil
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user