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{
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{

View File

@@ -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
}

View File

@@ -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",

11
main.go
View File

@@ -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)