Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion cmd/operator/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,18 @@ package main
import (
"knative.dev/operator/pkg/reconciler/knativeeventing"
"knative.dev/operator/pkg/reconciler/knativeserving"
kubefilteredfactory "knative.dev/pkg/client/injection/kube/informers/factory/filtered"
"knative.dev/pkg/injection/sharedmain"
"knative.dev/pkg/signals"
)

func main() {
sharedmain.Main("knative-operator",
ctx := signals.NewContext()
ctx = kubefilteredfactory.WithSelectors(ctx,
knativeserving.Selector,
knativeeventing.Selector,
)
sharedmain.MainWithContext(ctx, "knative-operator",
knativeserving.NewController,
knativeeventing.NewController,
)
Expand Down
12 changes: 12 additions & 0 deletions pkg/reconciler/common/transformers.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,3 +83,15 @@ func InjectNamespace(manifest *mf.Manifest, instance base.KComponent, extra ...m
*manifest = m
return nil
}

func InjectLabel(key, value string) mf.Transformer {
Comment thread
pierDipi marked this conversation as resolved.
return func(u *unstructured.Unstructured) error {
curr := u.GetLabels()
if curr == nil {
curr = map[string]string{}
}
curr[key] = value
u.SetLabels(curr)
return nil
}
}
16 changes: 14 additions & 2 deletions pkg/reconciler/knativeeventing/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,20 @@ import (
knereconciler "knative.dev/operator/pkg/client/injection/reconciler/operator/v1beta1/knativeeventing"
"knative.dev/operator/pkg/reconciler/common"
kubeclient "knative.dev/pkg/client/injection/kube/client"
deploymentinformer "knative.dev/pkg/client/injection/kube/informers/apps/v1/deployment"
deploymentinformer "knative.dev/pkg/client/injection/kube/informers/apps/v1/deployment/filtered"
configmapinformer "knative.dev/pkg/client/injection/kube/informers/core/v1/configmap/filtered"
"knative.dev/pkg/configmap"
"knative.dev/pkg/controller"
"knative.dev/pkg/injection"
"knative.dev/pkg/logging"
)

const (
SelectorKey = "app.kubernetes.io/name"
Comment thread
pierDipi marked this conversation as resolved.
Outdated
SelectorValue = "knative-eventing"
Selector = SelectorKey + "=" + SelectorValue
)

// NewController initializes the controller and is called by the generated code
// Registers eventhandlers to enqueue events
func NewController(ctx context.Context, cmw configmap.Watcher) *controller.Impl {
Expand All @@ -45,7 +52,8 @@ func NewController(ctx context.Context, cmw configmap.Watcher) *controller.Impl
func NewExtendedController(generator common.ExtensionGenerator) injection.ControllerConstructor {
return func(ctx context.Context, cmw configmap.Watcher) *controller.Impl {
knativeEventingInformer := knativeEventinginformer.Get(ctx)
deploymentInformer := deploymentinformer.Get(ctx)
deploymentInformer := deploymentinformer.Get(ctx, Selector)
configMapInformer := configmapinformer.Get(ctx, Selector)
kubeClient := kubeclient.Get(ctx)
logger := logging.FromContext(ctx)

Expand All @@ -72,6 +80,10 @@ func NewExtendedController(generator common.ExtensionGenerator) injection.Contro
FilterFunc: controller.FilterControllerGVK(v1beta1.SchemeGroupVersion.WithKind("KnativeEventing")),
Handler: controller.HandleAll(impl.EnqueueControllerOf),
})
configMapInformer.Informer().AddEventHandler(cache.FilteringResourceEventHandler{
FilterFunc: controller.FilterControllerGVK(v1beta1.SchemeGroupVersion.WithKind("KnativeEventing")),
Handler: controller.HandleAll(impl.EnqueueControllerOf),
})

return impl
}
Expand Down
2 changes: 2 additions & 0 deletions pkg/reconciler/knativeeventing/knativeeventing.go
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,8 @@ func (r *Reconciler) transform(ctx context.Context, manifest *mf.Manifest, comp
kec.DefaultBrokerConfigMapTransform(instance, logger),
kec.SinkBindingSelectionModeTransform(instance, logger),
kec.ReplicasEnvVarsTransform(manifest.Client),
// Ensure all resources have the selector applied so that the controller re-queues applied resources when they change.
common.InjectLabel(SelectorKey, SelectorValue),
}
extra = append(extra, r.extension.Transformers(instance)...)
return common.Transform(ctx, manifest, instance, extra...)
Expand Down
16 changes: 14 additions & 2 deletions pkg/reconciler/knativeserving/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ import (
knsreconciler "knative.dev/operator/pkg/client/injection/reconciler/operator/v1beta1/knativeserving"
"knative.dev/operator/pkg/reconciler/common"
kubeclient "knative.dev/pkg/client/injection/kube/client"
deploymentinformer "knative.dev/pkg/client/injection/kube/informers/apps/v1/deployment"
deploymentinformer "knative.dev/pkg/client/injection/kube/informers/apps/v1/deployment/filtered"
configmapinformer "knative.dev/pkg/client/injection/kube/informers/core/v1/configmap/filtered"
"knative.dev/pkg/configmap"
"knative.dev/pkg/controller"
"knative.dev/pkg/injection"
Expand All @@ -41,11 +42,18 @@ func NewController(ctx context.Context, cmw configmap.Watcher) *controller.Impl
return NewExtendedController(common.NoExtension)(ctx, cmw)
}

const (
SelectorKey = "app.kubernetes.io/name"
Comment thread
pierDipi marked this conversation as resolved.
Outdated
SelectorValue = "knative-serving"
Selector = SelectorKey + "=" + SelectorValue
)

// NewExtendedController returns a controller extended to a specific platform
func NewExtendedController(generator common.ExtensionGenerator) injection.ControllerConstructor {
return func(ctx context.Context, cmw configmap.Watcher) *controller.Impl {
knativeServingInformer := knativeServinginformer.Get(ctx)
deploymentInformer := deploymentinformer.Get(ctx)
deploymentInformer := deploymentinformer.Get(ctx, Selector)
configMapInformer := configmapinformer.Get(ctx, Selector)
kubeClient := kubeclient.Get(ctx)
logger := logging.FromContext(ctx)

Expand All @@ -72,6 +80,10 @@ func NewExtendedController(generator common.ExtensionGenerator) injection.Contro
FilterFunc: controller.FilterControllerGVK(v1beta1.SchemeGroupVersion.WithKind("KnativeServing")),
Handler: controller.HandleAll(impl.EnqueueControllerOf),
})
configMapInformer.Informer().AddEventHandler(cache.FilteringResourceEventHandler{
FilterFunc: controller.FilterControllerGVK(v1beta1.SchemeGroupVersion.WithKind("KnativeServing")),
Handler: controller.HandleAll(impl.EnqueueControllerOf),
})

return impl
}
Expand Down
2 changes: 2 additions & 0 deletions pkg/reconciler/knativeserving/knativeserving.go
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,8 @@ func (r *Reconciler) transform(ctx context.Context, manifest *mf.Manifest, comp
extra := []mf.Transformer{
ksc.CustomCertsTransform(instance, logger),
ksc.AggregationRuleTransform(manifest.Client),
// Ensure all resources have the selector applied so that the controller re-queues applied resources when they change.
common.InjectLabel(SelectorKey, SelectorValue),
}
extra = append(extra, r.extension.Transformers(instance)...)
extra = append(extra, ingress.Transformers(ctx, instance)...)
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions vendor/modules.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1560,8 +1560,9 @@ knative.dev/pkg/client/injection/ducks/duck/v1/addressable
knative.dev/pkg/client/injection/ducks/duck/v1/authstatus
knative.dev/pkg/client/injection/kube/client
knative.dev/pkg/client/injection/kube/client/fake
knative.dev/pkg/client/injection/kube/informers/apps/v1/deployment
knative.dev/pkg/client/injection/kube/informers/factory
knative.dev/pkg/client/injection/kube/informers/apps/v1/deployment/filtered
knative.dev/pkg/client/injection/kube/informers/core/v1/configmap/filtered
knative.dev/pkg/client/injection/kube/informers/factory/filtered
knative.dev/pkg/codegen/cmd/injection-gen
knative.dev/pkg/codegen/cmd/injection-gen/args
knative.dev/pkg/codegen/cmd/injection-gen/generators
Expand Down
Loading