diff --git a/pkg/reconciler/eventtransform/controller.go b/pkg/reconciler/eventtransform/controller.go index 12750a24f32..83bc0ff2f56 100644 --- a/pkg/reconciler/eventtransform/controller.go +++ b/pkg/reconciler/eventtransform/controller.go @@ -36,6 +36,7 @@ import ( eventtransformeryinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/eventtransform" sinkbindinginformer "knative.dev/eventing/pkg/client/injection/informers/sources/v1/sinkbinding/filtered" "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1alpha1/eventtransform" + reconcilersource "knative.dev/eventing/pkg/reconciler/source" ) const ( @@ -72,6 +73,10 @@ func NewController( }) featureStore.WatchConfigs(cmw) + configWatcher := reconcilersource.WatchConfigurations(ctx, "eventtransform", cmw, + reconcilersource.WithTracing, + ) + r := &Reconciler{ k8s: kubeclient.Get(ctx), client: eventingclient.Get(ctx), @@ -80,6 +85,7 @@ func NewController( jsonataServiceLister: jsonataServiceInformer.Lister(), jsonataEndpointLister: jsonataEndpointInformer.Lister(), jsonataSinkBindingLister: jsonataSinkBindingInformer.Lister(), + configWatcher: configWatcher, } impl := eventtransform.NewImpl(ctx, r, func(impl *controller.Impl) controller.Options { diff --git a/pkg/reconciler/eventtransform/eventtransform.go b/pkg/reconciler/eventtransform/eventtransform.go index 467a9f4a626..5ec3e237a99 100644 --- a/pkg/reconciler/eventtransform/eventtransform.go +++ b/pkg/reconciler/eventtransform/eventtransform.go @@ -40,6 +40,7 @@ import ( sources "knative.dev/eventing/pkg/apis/sources/v1" eventingclient "knative.dev/eventing/pkg/client/clientset/versioned" sourceslisters "knative.dev/eventing/pkg/client/listers/sources/v1" + reconcilersource "knative.dev/eventing/pkg/reconciler/source" ) type Reconciler struct { @@ -51,6 +52,8 @@ type Reconciler struct { jsonataServiceLister corelister.ServiceLister jsonataEndpointLister corelister.EndpointsLister jsonataSinkBindingLister sourceslisters.SinkBindingLister + + configWatcher *reconcilersource.ConfigWatcher } func (r *Reconciler) ReconcileKind(ctx context.Context, transform *eventing.EventTransform) reconciler.Event { @@ -144,7 +147,7 @@ func (r *Reconciler) reconcileJsonataTransformationService(ctx context.Context, } func (r *Reconciler) reconcileJsonataTransformationDeployment(ctx context.Context, expression *corev1.ConfigMap, transform *eventing.EventTransform) error { - expected := jsonataDeployment(ctx, expression, transform) + expected := jsonataDeployment(ctx, r.configWatcher, expression, transform) curr, err := r.jsonataDeploymentsLister.Deployments(expected.GetNamespace()).Get(expected.GetName()) if apierrors.IsNotFound(err) { diff --git a/pkg/reconciler/eventtransform/resources_jsonata.go b/pkg/reconciler/eventtransform/resources_jsonata.go index 23974bd1cff..9a2428b1ad4 100644 --- a/pkg/reconciler/eventtransform/resources_jsonata.go +++ b/pkg/reconciler/eventtransform/resources_jsonata.go @@ -34,6 +34,7 @@ import ( eventing "knative.dev/eventing/pkg/apis/eventing/v1alpha1" sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1" + reconcilersource "knative.dev/eventing/pkg/reconciler/source" ) const ( @@ -71,7 +72,7 @@ func jsonataExpressionConfigMap(_ context.Context, transform *eventing.EventTran return expression } -func jsonataDeployment(_ context.Context, expression *corev1.ConfigMap, transform *eventing.EventTransform) appsv1.Deployment { +func jsonataDeployment(_ context.Context, cw *reconcilersource.ConfigWatcher, expression *corev1.ConfigMap, transform *eventing.EventTransform) appsv1.Deployment { image := os.Getenv("EVENT_TRANSFORM_JSONATA_IMAGE") if image == "" { panic("EVENT_TRANSFORM_JSONATA_IMAGE must be set") @@ -106,12 +107,15 @@ func jsonataDeployment(_ context.Context, expression *corev1.ConfigMap, transfor { Name: "jsonata-event-transform", Image: image, - Env: []corev1.EnvVar{ - { - Name: "JSONATA_TRANSFORM_FILE_NAME", - Value: filepath.Join(JsonataExpressionPath, JsonataExpressionDataKey), + Env: append( + []corev1.EnvVar{ + { + Name: "JSONATA_TRANSFORM_FILE_NAME", + Value: filepath.Join(JsonataExpressionPath, JsonataExpressionDataKey), + }, }, - }, + cw.ToEnvVars()..., + ), VolumeMounts: []corev1.VolumeMount{ { Name: expression.GetName(),