mirror of
https://github.com/stakater/Reloader.git
synced 2026-08-21 13:06:34 +00:00
71 lines
2.3 KiB
Go
71 lines
2.3 KiB
Go
package controller
|
|
|
|
import (
|
|
"github.com/go-logr/logr"
|
|
corev1 "k8s.io/api/core/v1"
|
|
ctrl "sigs.k8s.io/controller-runtime"
|
|
"sigs.k8s.io/controller-runtime/pkg/client"
|
|
"sigs.k8s.io/controller-runtime/pkg/predicate"
|
|
"sigs.k8s.io/controller-runtime/pkg/reconcile"
|
|
|
|
"github.com/stakater/Reloader/internal/pkg/alerting"
|
|
"github.com/stakater/Reloader/internal/pkg/events"
|
|
"github.com/stakater/Reloader/internal/pkg/metrics"
|
|
"github.com/stakater/Reloader/internal/pkg/reload"
|
|
"github.com/stakater/Reloader/internal/pkg/webhook"
|
|
"github.com/stakater/Reloader/internal/pkg/workload"
|
|
"github.com/stakater/Reloader/pkg/config"
|
|
"github.com/stakater/Reloader/pkg/matcher"
|
|
)
|
|
|
|
// SecretReconciler watches Secrets and triggers workload reloads.
|
|
type SecretReconciler = ResourceReconciler[*corev1.Secret]
|
|
|
|
// NewSecretReconciler creates a new SecretReconciler with the given dependencies.
|
|
func NewSecretReconciler(
|
|
c client.Client,
|
|
log logr.Logger,
|
|
cfg *config.Config,
|
|
reloadService *reload.Service,
|
|
registry *workload.Registry,
|
|
collectors *metrics.Collectors,
|
|
eventRecorder *events.Recorder,
|
|
webhookClient *webhook.Client,
|
|
alerter alerting.Alerter,
|
|
pauseHandler *reload.PauseHandler,
|
|
nsCache *NamespaceCache,
|
|
) *SecretReconciler {
|
|
return NewResourceReconciler(
|
|
ResourceReconcilerDeps{
|
|
Client: c,
|
|
Log: log,
|
|
Config: cfg,
|
|
ReloadService: reloadService,
|
|
Registry: registry,
|
|
Collectors: collectors,
|
|
EventRecorder: eventRecorder,
|
|
WebhookClient: webhookClient,
|
|
Alerter: alerter,
|
|
PauseHandler: pauseHandler,
|
|
NamespaceCache: nsCache,
|
|
},
|
|
ResourceConfig[*corev1.Secret]{
|
|
ResourceType: matcher.ResourceTypeSecret,
|
|
NewResource: func() *corev1.Secret { return &corev1.Secret{} },
|
|
CreateChange: func(s *corev1.Secret, eventType reload.EventType) reload.ResourceChange {
|
|
return reload.SecretChange{Secret: s, EventType: eventType}
|
|
},
|
|
CreatePredicates: func(cfg *config.Config, hasher *reload.Hasher) predicate.Predicate {
|
|
return reload.SecretPredicates(cfg, hasher)
|
|
},
|
|
},
|
|
)
|
|
}
|
|
|
|
// SetupSecretReconciler sets up a Secret reconciler with the manager.
|
|
func SetupSecretReconciler(mgr ctrl.Manager, r *SecretReconciler) error {
|
|
return r.SetupWithManager(mgr, &corev1.Secret{})
|
|
}
|
|
|
|
var _ reconcile.Reconciler = &SecretReconciler{}
|