Allow to set service image and loglevel from CLI

This commit is contained in:
Ettore Di Giacinto
2022-11-11 08:03:59 +00:00
parent 297f557a04
commit 1da47ac24f
4 changed files with 17 additions and 10 deletions

View File

@@ -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{ objMeta := metav1.ObjectMeta{
Name: ent.Name, Name: ent.Name,
Namespace: ent.Namespace, Namespace: ent.Namespace,
@@ -96,9 +96,9 @@ func (r *EntanglementReconciler) genDeployment(ent entanglev1alpha1.Entanglement
} }
if ent.Spec.ServiceRef != nil { 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 { } 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{ pod := v1.PodSpec{

View File

@@ -37,8 +37,8 @@ import (
type EntanglementReconciler struct { type EntanglementReconciler struct {
clientSet *kubernetes.Clientset clientSet *kubernetes.Clientset
client.Client client.Client
Scheme *runtime.Scheme Scheme *runtime.Scheme
EntangleServiceImage string EntangleServiceImage, LogLevel string
} }
//+kubebuilder:rbac:groups=entangle.kairos.io,resources=entanglements,verbs=get;list;watch;create;update;patch;delete //+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 return ctrl.Result{}, err
} }
desiredDeployment, err := r.genDeployment(ent) desiredDeployment, err := r.genDeployment(ent,r.LogLevel)
if err != nil { if err != nil {
return ctrl.Result{}, err return ctrl.Result{}, err
} }

View File

@@ -24,7 +24,7 @@ type Webhook struct {
clientSet *kubernetes.Clientset clientSet *kubernetes.Clientset
Scheme *runtime.Scheme Scheme *runtime.Scheme
SidecarImage string SidecarImage, LogLevel string
} }
//+kubebuilder:rbac:groups="",resources=secrets,verbs=get;list;watch //+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{ servingContainer := corev1.Container{
ImagePullPolicy: corev1.PullAlways, ImagePullPolicy: corev1.PullAlways,
Command: []string{"/usr/bin/edgevpn"}, 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{ Env: []corev1.EnvVar{
{ {
Name: "EDGEVPNTOKEN", Name: "EDGEVPNTOKEN",

11
main.go
View File

@@ -57,8 +57,13 @@ func main() {
var metricsAddr string var metricsAddr string
var enableLeaderElection bool var enableLeaderElection bool
var probeAddr string 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(&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(&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, flag.BoolVar(&enableLeaderElection, "leader-elect", false,
"Enable leader election for controller manager. "+ "Enable leader election for controller manager. "+
"Enabling this will ensure there is only one active controller manager.") "Enabling this will ensure there is only one active controller manager.")
@@ -97,15 +102,17 @@ func main() {
if err = (&controllers.EntanglementReconciler{ if err = (&controllers.EntanglementReconciler{
Client: mgr.GetClient(), Client: mgr.GetClient(),
Scheme: mgr.GetScheme(), Scheme: mgr.GetScheme(),
EntangleServiceImage: defaultImage, EntangleServiceImage: serviceImage,
LogLevel: logLevel,
}).SetupWithManager(mgr); err != nil { }).SetupWithManager(mgr); err != nil {
setupLog.Error(err, "unable to create controller", "controller", "Entanglement") setupLog.Error(err, "unable to create controller", "controller", "Entanglement")
os.Exit(1) os.Exit(1)
} }
if err = (&webhooks.Webhook{ if err = (&webhooks.Webhook{
Client: mgr.GetClient(), Client: mgr.GetClient(),
SidecarImage: defaultImage, SidecarImage: serviceImage,
Scheme: mgr.GetScheme(), Scheme: mgr.GetScheme(),
LogLevel: logLevel,
}).SetupWebhookWithManager(mgr); err != nil { }).SetupWebhookWithManager(mgr); err != nil {
setupLog.Error(err, "unable to create webhook", "webhook", "Pod") setupLog.Error(err, "unable to create webhook", "webhook", "Pod")
os.Exit(1) os.Exit(1)