Skip to content

Commit 8631e8f

Browse files
committed
[controller] Propagating Limitador's env vars
* limitador namespace * limitador service name * limitador service grpc port * Using keyed values
1 parent cd03aa9 commit 8631e8f

File tree

1 file changed

+28
-8
lines changed

1 file changed

+28
-8
lines changed

controllers/kuadrant_controller.go

+28-8
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ import (
2121
"encoding/json"
2222
"errors"
2323
"fmt"
24-
2524
"github.com/go-logr/logr"
2625
authorinov1beta1 "github.com/kuadrant/authorino-operator/api/v1beta1"
2726
limitadorv1alpha1 "github.com/kuadrant/limitador-operator/api/v1alpha1"
2827
istioapiv1alpha1 "istio.io/api/operator/v1alpha1"
2928
iopv1alpha1 "istio.io/istio/operator/pkg/apis/istio/v1alpha1"
3029
appsv1 "k8s.io/api/apps/v1"
30+
v1 "k8s.io/api/core/v1"
3131
apierrors "k8s.io/apimachinery/pkg/api/errors"
3232
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3333
"k8s.io/apimachinery/pkg/runtime"
@@ -43,8 +43,15 @@ import (
4343
)
4444

4545
const (
46-
kuadrantFinalizer = "kuadrant.kuadrant.io/finalizer"
47-
extAuthorizerName = "kuadrant-authorization"
46+
kuadrantFinalizer = "kuadrant.kuadrant.io/finalizer"
47+
extAuthorizerName = "kuadrant-authorization"
48+
envLimitadorName = "LIMITADOR_NAME"
49+
envLimitadorGrpcPort = "LIMITADOR_GRPC_PORT"
50+
)
51+
52+
var (
53+
limitadorName = common.FetchEnv(envLimitadorName, "limitador")
54+
limitadorGrpcPort = common.FetchEnv(envLimitadorGrpcPort, "8081")
4855
)
4956

5057
// KuadrantReconciler reconciles a Kuadrant object
@@ -341,7 +348,7 @@ func (r *KuadrantReconciler) reconcileLimitador(ctx context.Context, kObj *kuadr
341348
APIVersion: "limitador.kuadrant.io/v1alpha1",
342349
},
343350
ObjectMeta: metav1.ObjectMeta{
344-
Name: "limitador",
351+
Name: limitadorName,
345352
Namespace: kObj.Namespace,
346353
},
347354
Spec: limitadorv1alpha1.LimitadorSpec{},
@@ -386,14 +393,27 @@ func (r *KuadrantReconciler) createOnlyInKuadrantNSCb(ctx context.Context, kObj
386393
return err
387394
}
388395

389-
k8sObjKind := k8sObj.DeepCopyObject().GetObjectKind()
396+
var newObj client.Object
397+
newObj = k8sObj
398+
399+
switch obj := k8sObj.(type) {
400+
case *appsv1.Deployment: // If it's a Deployment obj, it adds the required env vars
401+
obj.Spec.Template.Spec.Containers[0].Env = []v1.EnvVar{
402+
{Name: "LIMITADOR_NAMESPACE", Value: kObj.Namespace},
403+
{Name: envLimitadorName, Value: limitadorName},
404+
{Name: envLimitadorGrpcPort, Value: limitadorGrpcPort},
405+
}
406+
newObj = obj
407+
default:
408+
}
409+
err = r.Client().Create(ctx, newObj)
390410

391-
err = r.Client().Create(ctx, k8sObj)
392-
logger.V(1).Info("create resource", "GKV", k8sObjKind.GroupVersionKind(), "name", k8sObj.GetName(), "error", err)
411+
k8sObjKind := newObj.DeepCopyObject().GetObjectKind()
412+
logger.V(1).Info("create resource", "GKV", k8sObjKind.GroupVersionKind(), "name", newObj.GetName(), "error", err)
393413
if err != nil {
394414
if apierrors.IsAlreadyExists(err) {
395415
// Omit error
396-
logger.Info("Already exists", "GKV", k8sObjKind.GroupVersionKind(), "name", k8sObj.GetName())
416+
logger.Info("Already exists", "GKV", k8sObjKind.GroupVersionKind(), "name", newObj.GetName())
397417
} else {
398418
return err
399419
}

0 commit comments

Comments
 (0)