generated from SAP/repository-template
/
handle-configmap.go
55 lines (45 loc) · 1.5 KB
/
handle-configmap.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/*
SPDX-FileCopyrightText: 2023 SAP SE or an SAP affiliate company and pod-reloader contributors
SPDX-License-Identifier: Apache-2.0
*/
package controller
import (
"context"
corev1 "k8s.io/api/core/v1"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/controller"
"sigs.k8s.io/controller-runtime/pkg/handler"
"sigs.k8s.io/controller-runtime/pkg/reconcile"
"sigs.k8s.io/controller-runtime/pkg/source"
"github.com/sap/pod-reloader/internal/reloader"
)
const configMapHandlerName = "configmap-handler"
type configMapHandler struct {
genericHandler
}
var _ reconcile.Reconciler = &configMapHandler{}
func newConfigMapHandler(mgr ctrl.Manager) *configMapHandler {
return &configMapHandler{
genericHandler{
client: mgr.GetClient(),
recorder: mgr.GetEventRecorderFor(controllerName),
annotation: reloader.AnnotationConfigMaps,
},
}
}
func setupConfigMapHandler(mgr ctrl.Manager) error {
c, err := controller.New(configMapHandlerName, mgr, controller.Options{Reconciler: newConfigMapHandler(mgr), MaxConcurrentReconciles: 5})
if err != nil {
return err
}
if err := c.Watch(source.Kind(mgr.GetCache(), &corev1.ConfigMap{}), &handler.EnqueueRequestForObject{}); err != nil {
return err
}
return nil
}
func (h *configMapHandler) Reconcile(ctx context.Context, request reconcile.Request) (reconcile.Result, error) {
if err := h.handle(ctx, "ConfigMap", request.Namespace, request.Name); err != nil {
return reconcile.Result{}, err
}
return reconcile.Result{}, nil
}