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  }