mirror of
https://github.com/kairos-io/entangle.git
synced 2025-09-06 11:20:23 +00:00
Allow to set service image and loglevel from CLI
This commit is contained in:
@@ -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{
|
||||||
|
@@ -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
|
||||||
}
|
}
|
||||||
|
@@ -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
11
main.go
@@ -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)
|
||||||
|
Reference in New Issue
Block a user