github.com/cilium/cilium@v1.16.2/operator/pkg/ciliumenvoyconfig/ciliumenvoyconfig.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // Copyright Authors of Cilium 3 4 package ciliumenvoyconfig 5 6 import ( 7 "github.com/sirupsen/logrus" 8 corev1 "k8s.io/api/core/v1" 9 ctrl "sigs.k8s.io/controller-runtime" 10 "sigs.k8s.io/controller-runtime/pkg/client" 11 12 ciliumv2 "github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2" 13 ) 14 15 // ciliumEnvoyConfigReconciler syncs secrets to dedicated namespace. 16 type ciliumEnvoyConfigReconciler struct { 17 client client.Client 18 logger logrus.FieldLogger 19 20 algorithm string 21 ports []string 22 maxRetries int 23 idleTimeoutSeconds int 24 } 25 26 func newCiliumEnvoyConfigReconciler(c client.Client, logger logrus.FieldLogger, defaultAlgorithm string, ports []string, maxRetries int, idleTimeoutSeconds int) *ciliumEnvoyConfigReconciler { 27 return &ciliumEnvoyConfigReconciler{ 28 client: c, 29 logger: logger, 30 31 algorithm: defaultAlgorithm, 32 ports: ports, 33 maxRetries: maxRetries, 34 idleTimeoutSeconds: idleTimeoutSeconds, 35 } 36 } 37 38 // SetupWithManager sets up the controller with the Manager. 39 func (r *ciliumEnvoyConfigReconciler) SetupWithManager(mgr ctrl.Manager) error { 40 return ctrl.NewControllerManagedBy(mgr). 41 For(&corev1.Service{}). 42 Owns(&ciliumv2.CiliumEnvoyConfig{}). 43 Complete(r) 44 }