From 003d265392f3cf81e0e541d731298735b86ef2cb Mon Sep 17 00:00:00 2001 From: William Ong Date: Thu, 6 Mar 2025 15:55:32 -0800 Subject: [PATCH] Add env vars to the whisker deployment --- pkg/controller/whisker/controller.go | 13 +++++++++++++ pkg/render/whisker/component.go | 7 +++++++ pkg/render/whisker/component_test.go | 14 +++++++++++++- 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/pkg/controller/whisker/controller.go b/pkg/controller/whisker/controller.go index 49d946023b..b6334d6446 100644 --- a/pkg/controller/whisker/controller.go +++ b/pkg/controller/whisker/controller.go @@ -19,6 +19,7 @@ import ( "fmt" corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" "sigs.k8s.io/controller-runtime/pkg/client" @@ -28,7 +29,9 @@ import ( "sigs.k8s.io/controller-runtime/pkg/manager" "sigs.k8s.io/controller-runtime/pkg/reconcile" + v3 "github.com/tigera/api/pkg/apis/projectcalico/v3" operatorv1 "github.com/tigera/operator/api/v1" + "github.com/tigera/operator/pkg/common" "github.com/tigera/operator/pkg/controller/certificatemanager" "github.com/tigera/operator/pkg/controller/options" @@ -205,6 +208,13 @@ func (r *Reconciler) Reconcile(ctx context.Context, request reconcile.Request) ( return reconcile.Result{}, err } + clusterInfo := &v3.ClusterInformation{ObjectMeta: metav1.ObjectMeta{Name: "default"}} + err = r.cli.Get(ctx, client.ObjectKeyFromObject(clusterInfo), clusterInfo) + if err != nil { + r.status.SetDegraded(operatorv1.ResourceReadError, "Failed to get ClusterInformation: ", err, reqLogger) + return reconcile.Result{}, err + } + ch := utils.NewComponentHandler(log, r.cli, r.scheme, whiskerCR) cfg := &whisker.Configuration{ PullSecrets: pullSecrets, @@ -213,6 +223,9 @@ func (r *Reconciler) Reconcile(ctx context.Context, request reconcile.Request) ( TunnelSecret: tunnelSecret, TrustedCertBundle: trustedCertBundle, ManagementClusterConnection: managementClusterConnection, + ClusterID: clusterInfo.Spec.ClusterGUID, + ClusterType: clusterInfo.Spec.ClusterType, + CalicoVersion: clusterInfo.Spec.CalicoVersion, } components := []render.Component{whisker.Whisker(cfg)} diff --git a/pkg/render/whisker/component.go b/pkg/render/whisker/component.go index 8989d8c6fc..c7fc9b470e 100644 --- a/pkg/render/whisker/component.go +++ b/pkg/render/whisker/component.go @@ -64,6 +64,10 @@ type Configuration struct { TunnelSecret *corev1.Secret TrustedCertBundle certificatemanagement.TrustedBundleRO ManagementClusterConnection *operatorv1.ManagementClusterConnection + + ClusterID string + CalicoVersion string + ClusterType string } type Component struct { @@ -154,6 +158,9 @@ func (c *Component) whiskerContainer() corev1.Container { ImagePullPolicy: render.ImagePullPolicy(), Env: []corev1.EnvVar{ {Name: "LOG_LEVEL", Value: "INFO"}, + {Name: "CALICO_VERSION", Value: c.cfg.CalicoVersion}, + {Name: "CLUSTER_ID", Value: c.cfg.ClusterID}, + {Name: "CLUSTER_TYPE", Value: string(c.cfg.ClusterType)}, }, SecurityContext: securitycontext.NewNonRootContext(), } diff --git a/pkg/render/whisker/component_test.go b/pkg/render/whisker/component_test.go index e740016348..27faeb015e 100644 --- a/pkg/render/whisker/component_test.go +++ b/pkg/render/whisker/component_test.go @@ -76,6 +76,9 @@ var _ = Describe("ComponentRendering", func() { Variant: operatorv1.Calico, }, TrustedCertBundle: certificatemanagement.CreateTrustedBundle(nil), + ClusterID: "test-cluster-id", + CalicoVersion: "test-calico-version", + ClusterType: "test-cluster-type", }, &appsv1.Deployment{ TypeMeta: metav1.TypeMeta{Kind: "Deployment", APIVersion: "apps/v1"}, @@ -102,6 +105,9 @@ var _ = Describe("ComponentRendering", func() { ImagePullPolicy: render.ImagePullPolicy(), Env: []corev1.EnvVar{ {Name: "LOG_LEVEL", Value: "INFO"}, + {Name: "CALICO_VERSION", Value: "test-calico-version"}, + {Name: "CLUSTER_ID", Value: "test-cluster-id"}, + {Name: "CLUSTER_TYPE", Value: "test-cluster-type"}, }, SecurityContext: securitycontext.NewNonRootContext(), }, @@ -156,7 +162,10 @@ var _ = Describe("ComponentRendering", func() { }, }, }, - TunnelSecret: &corev1.Secret{ObjectMeta: metav1.ObjectMeta{Name: "tigera-tunnel-secret"}}, + TunnelSecret: &corev1.Secret{ObjectMeta: metav1.ObjectMeta{Name: "tigera-tunnel-secret"}}, + ClusterID: "test-cluster-id", + CalicoVersion: "test-calico-version", + ClusterType: "test-cluster-type", }, &appsv1.Deployment{ TypeMeta: metav1.TypeMeta{Kind: "Deployment", APIVersion: "apps/v1"}, @@ -183,6 +192,9 @@ var _ = Describe("ComponentRendering", func() { ImagePullPolicy: render.ImagePullPolicy(), Env: []corev1.EnvVar{ {Name: "LOG_LEVEL", Value: "INFO"}, + {Name: "CALICO_VERSION", Value: "test-calico-version"}, + {Name: "CLUSTER_ID", Value: "test-cluster-id"}, + {Name: "CLUSTER_TYPE", Value: "test-cluster-type"}, }, SecurityContext: securitycontext.NewNonRootContext(), },