diff --git a/controllers/deployment.go b/controllers/deployment.go index bd2c51b..b436e83 100644 --- a/controllers/deployment.go +++ b/controllers/deployment.go @@ -22,7 +22,7 @@ func genOwner(ent entanglev1alpha1.Entanglement) []metav1.OwnerReference { } } -func (r *EntanglementReconciler) genDeployment(ent entanglev1alpha1.Entanglement) (*appsv1.Deployment, error) { +func (r *EntanglementReconciler) genDeployment(ent entanglev1alpha1.Entanglement, logLevel string) (*appsv1.Deployment, error) { objMeta := metav1.ObjectMeta{ Name: ent.Name, Namespace: ent.Namespace, @@ -96,9 +96,9 @@ func (r *EntanglementReconciler) genDeployment(ent entanglev1alpha1.Entanglement } if ent.Spec.ServiceRef != nil { - expose.Args = []string{cmd, "--log-level", "debug", ent.Spec.ServiceUUID, fmt.Sprintf("%s:%s", fmt.Sprintf("%s.svc.cluster.local", svc.Name), ent.Spec.Port)} + expose.Args = []string{cmd, "--log-level", logLevel, ent.Spec.ServiceUUID, fmt.Sprintf("%s:%s", fmt.Sprintf("%s.svc.cluster.local", svc.Name), ent.Spec.Port)} } else { - expose.Args = []string{cmd, "--log-level", "debug", ent.Spec.ServiceUUID, fmt.Sprintf("%s:%s", ent.Spec.Host, ent.Spec.Port)} + expose.Args = []string{cmd, "--log-level", logLevel, ent.Spec.ServiceUUID, fmt.Sprintf("%s:%s", ent.Spec.Host, ent.Spec.Port)} } pod := v1.PodSpec{ diff --git a/controllers/entanglement_controller.go b/controllers/entanglement_controller.go index 64e0cb5..efcc130 100644 --- a/controllers/entanglement_controller.go +++ b/controllers/entanglement_controller.go @@ -37,8 +37,8 @@ import ( type EntanglementReconciler struct { clientSet *kubernetes.Clientset client.Client - Scheme *runtime.Scheme - EntangleServiceImage string + Scheme *runtime.Scheme + EntangleServiceImage, LogLevel string } //+kubebuilder:rbac:groups=entangle.kairos.io,resources=entanglements,verbs=get;list;watch;create;update;patch;delete @@ -70,7 +70,7 @@ func (r *EntanglementReconciler) Reconcile(ctx context.Context, req ctrl.Request return ctrl.Result{}, err } - desiredDeployment, err := r.genDeployment(ent) + desiredDeployment, err := r.genDeployment(ent,r.LogLevel) if err != nil { return ctrl.Result{}, err } diff --git a/controllers/webhooks/pod.go b/controllers/webhooks/pod.go index 6d69787..f0be699 100644 --- a/controllers/webhooks/pod.go +++ b/controllers/webhooks/pod.go @@ -24,7 +24,7 @@ type Webhook struct { clientSet *kubernetes.Clientset Scheme *runtime.Scheme - SidecarImage string + SidecarImage, LogLevel string } //+kubebuilder:rbac:groups="",resources=secrets,verbs=get;list;watch @@ -109,7 +109,7 @@ func (w *Webhook) Mutate(ctx context.Context, request admission.Request, object servingContainer := corev1.Container{ ImagePullPolicy: corev1.PullAlways, Command: []string{"/usr/bin/edgevpn"}, - Args: []string{cmd, entanglementService, fmt.Sprintf("%s:%s", host, entanglementPort)}, + Args: []string{cmd, entanglementService, fmt.Sprintf("%s:%s", host, entanglementPort), "--log-level", w.LogLevel}, Env: []corev1.EnvVar{ { Name: "EDGEVPNTOKEN", diff --git a/main.go b/main.go index 84e7bfe..c5f0557 100644 --- a/main.go +++ b/main.go @@ -57,8 +57,13 @@ func main() { var metricsAddr string var enableLeaderElection bool var probeAddr string + var serviceImage string + var logLevel string flag.StringVar(&metricsAddr, "metrics-bind-address", ":8080", "The address the metric endpoint binds to.") flag.StringVar(&probeAddr, "health-probe-bind-address", ":8081", "The address the probe endpoint binds to.") + flag.StringVar(&serviceImage, "service-image", defaultImage, "The image used to create services.") + flag.StringVar(&logLevel, "service-log-level", "debug", "The log level of the sidecar container.") + flag.BoolVar(&enableLeaderElection, "leader-elect", false, "Enable leader election for controller manager. "+ "Enabling this will ensure there is only one active controller manager.") @@ -97,15 +102,17 @@ func main() { if err = (&controllers.EntanglementReconciler{ Client: mgr.GetClient(), Scheme: mgr.GetScheme(), - EntangleServiceImage: defaultImage, + EntangleServiceImage: serviceImage, + LogLevel: logLevel, }).SetupWithManager(mgr); err != nil { setupLog.Error(err, "unable to create controller", "controller", "Entanglement") os.Exit(1) } if err = (&webhooks.Webhook{ Client: mgr.GetClient(), - SidecarImage: defaultImage, + SidecarImage: serviceImage, Scheme: mgr.GetScheme(), + LogLevel: logLevel, }).SetupWebhookWithManager(mgr); err != nil { setupLog.Error(err, "unable to create webhook", "webhook", "Pod") os.Exit(1)