From 5f81887ba1f198e873771672b052f2bb256d06e6 Mon Sep 17 00:00:00 2001 From: slinkydeveloper Date: Wed, 3 Feb 2021 09:54:05 +0100 Subject: [PATCH 1/8] Moved the internal subscriptions delivery configuration to a config map Signed-off-by: Francesco Guardiani --- .../300-config-mtbroker-delivery.yaml | 26 ++++++++ .../mtbroker/{config.go => channel_config.go} | 3 +- ...{config_test.go => channel_config_test.go} | 0 pkg/reconciler/mtbroker/delivery_config.go | 59 +++++++++++++++++++ .../mtbroker/delivery_config_test.go | 48 +++++++++++++++ .../testdata/config-mtbroker-delivery.yaml | 24 ++++++++ pkg/reconciler/mtbroker/trigger/controller.go | 4 ++ .../mtbroker/trigger/controller_test.go | 14 ++++- pkg/reconciler/mtbroker/trigger/trigger.go | 23 +++++--- .../mtbroker/trigger/trigger_test.go | 42 +++++++++++-- 10 files changed, 227 insertions(+), 16 deletions(-) create mode 100644 config/brokers/mt-channel-broker/300-config-mtbroker-delivery.yaml rename pkg/reconciler/mtbroker/{config.go => channel_config.go} (99%) rename pkg/reconciler/mtbroker/{config_test.go => channel_config_test.go} (100%) create mode 100644 pkg/reconciler/mtbroker/delivery_config.go create mode 100644 pkg/reconciler/mtbroker/delivery_config_test.go create mode 100644 pkg/reconciler/mtbroker/testdata/config-mtbroker-delivery.yaml diff --git a/config/brokers/mt-channel-broker/300-config-mtbroker-delivery.yaml b/config/brokers/mt-channel-broker/300-config-mtbroker-delivery.yaml new file mode 100644 index 00000000000..ac765ee9d14 --- /dev/null +++ b/config/brokers/mt-channel-broker/300-config-mtbroker-delivery.yaml @@ -0,0 +1,26 @@ +# Copyright 2020 The Knative Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: v1 +kind: ConfigMap +metadata: + name: mt-broker-internal-delivery + namespace: knative-eventing + labels: + eventing.knative.dev/release: devel +data: + _example: | + # Configure the internal channels subscription delivery spec + delivery: | + retry: 10 \ No newline at end of file diff --git a/pkg/reconciler/mtbroker/config.go b/pkg/reconciler/mtbroker/channel_config.go similarity index 99% rename from pkg/reconciler/mtbroker/config.go rename to pkg/reconciler/mtbroker/channel_config.go index d2d0d036bb3..d16cfa73efa 100644 --- a/pkg/reconciler/mtbroker/config.go +++ b/pkg/reconciler/mtbroker/channel_config.go @@ -26,8 +26,9 @@ import ( "sigs.k8s.io/yaml" corev1 "k8s.io/api/core/v1" - messagingv1 "knative.dev/eventing/pkg/apis/messaging/v1" "knative.dev/pkg/logging" + + messagingv1 "knative.dev/eventing/pkg/apis/messaging/v1" ) type Config struct { diff --git a/pkg/reconciler/mtbroker/config_test.go b/pkg/reconciler/mtbroker/channel_config_test.go similarity index 100% rename from pkg/reconciler/mtbroker/config_test.go rename to pkg/reconciler/mtbroker/channel_config_test.go diff --git a/pkg/reconciler/mtbroker/delivery_config.go b/pkg/reconciler/mtbroker/delivery_config.go new file mode 100644 index 00000000000..17f62251173 --- /dev/null +++ b/pkg/reconciler/mtbroker/delivery_config.go @@ -0,0 +1,59 @@ +package mtbroker + +import ( + corev1 "k8s.io/api/core/v1" + "knative.dev/pkg/configmap" + "sigs.k8s.io/yaml" + + eventingduck "knative.dev/eventing/pkg/apis/duck/v1" +) + +const ( + InternalDeliveryConfigMapName = "mt-broker-internal-delivery" + internalDeliveryConfigMapDeliveryKey = "delivery" +) + +// NewInternalDeliveryConfigFromConfigMap parses the config map into a DeliverySpec +func NewInternalDeliveryConfigFromConfigMap(cm *corev1.ConfigMap) (*eventingduck.DeliverySpec, error) { + if cm == nil || len(cm.Data) == 0 { + return nil, nil + } + d, ok := cm.Data[internalDeliveryConfigMapDeliveryKey] + if !ok { + return nil, nil + } + + var delivery eventingduck.DeliverySpec + err := yaml.Unmarshal([]byte(d), &delivery) + if err != nil { + return nil, err + } + return &delivery, nil +} + +// InternalDeliveryConfigStore is a typed wrapper around configmap.Untyped store to handle our configmaps. +// +k8s:deepcopy-gen=false +type InternalDeliveryConfigStore struct { + *configmap.UntypedStore +} + +// NewInternalDeliveryConfigStore creates a new store of Configs and optionally calls functions when ConfigMaps are updated. +func NewInternalDeliveryConfigStore(logger configmap.Logger, onAfterStore ...func(name string, value interface{})) *InternalDeliveryConfigStore { + store := &InternalDeliveryConfigStore{ + UntypedStore: configmap.NewUntypedStore( + "channeldefaults", + logger, + configmap.Constructors{ + InternalDeliveryConfigMapName: NewInternalDeliveryConfigFromConfigMap, + }, + onAfterStore..., + ), + } + + return store +} + +// Load creates a InternalDeliveryConfigStore from the current config state of the InternalDeliveryConfigStore. +func (s *InternalDeliveryConfigStore) Load() *eventingduck.DeliverySpec { + return s.UntypedLoad(InternalDeliveryConfigMapName).(*eventingduck.DeliverySpec) +} diff --git a/pkg/reconciler/mtbroker/delivery_config_test.go b/pkg/reconciler/mtbroker/delivery_config_test.go new file mode 100644 index 00000000000..ceb3a4297e4 --- /dev/null +++ b/pkg/reconciler/mtbroker/delivery_config_test.go @@ -0,0 +1,48 @@ +package mtbroker + +import ( + "testing" + + "github.com/stretchr/testify/require" + corev1 "k8s.io/api/core/v1" + "k8s.io/utils/pointer" + + eventingduck "knative.dev/eventing/pkg/apis/duck/v1" + + . "knative.dev/pkg/configmap/testing" +) + +func TestMtBrokerInternalConfig(t *testing.T) { + _, example := ConfigMapsFromTestFile(t, "config-mtbroker-delivery") + + for _, tt := range []struct { + name string + fail bool + want *eventingduck.DeliverySpec + data *corev1.ConfigMap + }{{ + name: "Nil config", + fail: false, + want: nil, + data: nil, + }, { + name: "Empty config", + fail: false, + want: nil, + data: &corev1.ConfigMap{}, + }, { + name: "With values", + fail: false, + want: &eventingduck.DeliverySpec{Retry: pointer.Int32Ptr(10)}, + data: example, + }} { + t.Run(tt.name, func(t *testing.T) { + testConfig, err := NewInternalDeliveryConfigFromConfigMap(tt.data) + if tt.fail != (err != nil) { + t.Fatal("Unexpected error value:", err) + } + + require.Equal(t, tt.want, testConfig) + }) + } +} diff --git a/pkg/reconciler/mtbroker/testdata/config-mtbroker-delivery.yaml b/pkg/reconciler/mtbroker/testdata/config-mtbroker-delivery.yaml new file mode 100644 index 00000000000..920eabecf5a --- /dev/null +++ b/pkg/reconciler/mtbroker/testdata/config-mtbroker-delivery.yaml @@ -0,0 +1,24 @@ +# Copyright 2020 The Knative Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: v1 +kind: ConfigMap +metadata: + name: mt-broker-internal-delivery + namespace: default + +data: + _example: | + delivery: | + retry: 10 \ No newline at end of file diff --git a/pkg/reconciler/mtbroker/trigger/controller.go b/pkg/reconciler/mtbroker/trigger/controller.go index 0fcc4d6465d..0c6823729de 100644 --- a/pkg/reconciler/mtbroker/trigger/controller.go +++ b/pkg/reconciler/mtbroker/trigger/controller.go @@ -31,6 +31,8 @@ import ( brokerreconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/broker" triggerreconciler "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/trigger" "knative.dev/eventing/pkg/duck" + "knative.dev/eventing/pkg/reconciler/mtbroker" + "knative.dev/pkg/client/injection/ducks/duck/v1/source" configmapinformer "knative.dev/pkg/client/injection/kube/informers/core/v1/configmap" "knative.dev/pkg/configmap" @@ -68,6 +70,8 @@ func NewController( r.sourceTracker = duck.NewListableTracker(ctx, source.Get, impl.EnqueueKey, controller.GetTrackerLease(ctx)) r.uriResolver = resolver.NewURIResolver(ctx, impl.EnqueueKey) + r.internalDeliveryConfigStore = mtbroker.NewInternalDeliveryConfigStore(logger) + r.internalDeliveryConfigStore.WatchConfigs(cmw) triggerInformer.Informer().AddEventHandler(controller.HandleAll(impl.Enqueue)) diff --git a/pkg/reconciler/mtbroker/trigger/controller_test.go b/pkg/reconciler/mtbroker/trigger/controller_test.go index 816424cd096..54b64f7b215 100644 --- a/pkg/reconciler/mtbroker/trigger/controller_test.go +++ b/pkg/reconciler/mtbroker/trigger/controller_test.go @@ -19,13 +19,18 @@ package mttrigger import ( "testing" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "knative.dev/pkg/configmap" . "knative.dev/pkg/reconciler/testing" + "knative.dev/pkg/system" // Fake injection informers _ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1/broker/fake" _ "knative.dev/eventing/pkg/client/injection/informers/eventing/v1/trigger/fake" _ "knative.dev/eventing/pkg/client/injection/informers/messaging/v1/subscription/fake" + "knative.dev/eventing/pkg/reconciler/mtbroker" + _ "knative.dev/pkg/client/injection/ducks/duck/v1/source/fake" _ "knative.dev/pkg/client/injection/kube/informers/core/v1/configmap/fake" ) @@ -33,7 +38,14 @@ import ( func TestNew(t *testing.T) { ctx, _ := SetupFakeContext(t) - c := NewController(ctx, configmap.NewStaticWatcher()) + cmw := configmap.NewStaticWatcher(&corev1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: mtbroker.InternalDeliveryConfigMapName, + Namespace: system.Namespace(), + }, + }) + + c := NewController(ctx, cmw) if c == nil { t.Fatal("Expected NewController to return a non-nil value") diff --git a/pkg/reconciler/mtbroker/trigger/trigger.go b/pkg/reconciler/mtbroker/trigger/trigger.go index 7d196a30a09..4dbca8f0588 100644 --- a/pkg/reconciler/mtbroker/trigger/trigger.go +++ b/pkg/reconciler/mtbroker/trigger/trigger.go @@ -29,6 +29,15 @@ import ( "k8s.io/client-go/dynamic" corev1listers "k8s.io/client-go/listers/core/v1" + "knative.dev/pkg/apis" + duckv1 "knative.dev/pkg/apis/duck/v1" + "knative.dev/pkg/controller" + "knative.dev/pkg/logging" + "knative.dev/pkg/network" + pkgreconciler "knative.dev/pkg/reconciler" + "knative.dev/pkg/resolver" + "knative.dev/pkg/system" + "knative.dev/eventing/pkg/apis/eventing" eventingv1 "knative.dev/eventing/pkg/apis/eventing/v1" messagingv1 "knative.dev/eventing/pkg/apis/messaging/v1" @@ -36,16 +45,9 @@ import ( eventinglisters "knative.dev/eventing/pkg/client/listers/eventing/v1" messaginglisters "knative.dev/eventing/pkg/client/listers/messaging/v1" "knative.dev/eventing/pkg/duck" + "knative.dev/eventing/pkg/reconciler/mtbroker" "knative.dev/eventing/pkg/reconciler/mtbroker/resources" "knative.dev/eventing/pkg/reconciler/sugar/trigger/path" - "knative.dev/pkg/apis" - duckv1 "knative.dev/pkg/apis/duck/v1" - "knative.dev/pkg/controller" - "knative.dev/pkg/logging" - "knative.dev/pkg/network" - pkgreconciler "knative.dev/pkg/reconciler" - "knative.dev/pkg/resolver" - "knative.dev/pkg/system" ) var brokerGVK = eventingv1.SchemeGroupVersion.WithKind("Broker") @@ -67,6 +69,9 @@ type Reconciler struct { triggerLister eventinglisters.TriggerLister configmapLister corev1listers.ConfigMapLister + // Internal Delivery store + internalDeliveryConfigStore *mtbroker.InternalDeliveryConfigStore + // Dynamic tracker to track Sources. In particular, it tracks the dependency between Triggers and Sources. sourceTracker duck.ListableTracker @@ -163,7 +168,7 @@ func (r *Reconciler) subscribeToBrokerChannel(ctx context.Context, b *eventingv1 Name: b.Name, Namespace: b.Namespace, } - expected := resources.NewSubscription(t, brokerTrigger, brokerObjRef, uri, b.Spec.Delivery) + expected := resources.NewSubscription(t, brokerTrigger, brokerObjRef, uri, r.internalDeliveryConfigStore.Load()) sub, err := r.subscriptionLister.Subscriptions(t.Namespace).Get(expected.Name) // If the resource doesn't exist, we'll create it. diff --git a/pkg/reconciler/mtbroker/trigger/trigger_test.go b/pkg/reconciler/mtbroker/trigger/trigger_test.go index edc49e3bc1c..08b1124c054 100644 --- a/pkg/reconciler/mtbroker/trigger/trigger_test.go +++ b/pkg/reconciler/mtbroker/trigger/trigger_test.go @@ -41,6 +41,7 @@ import ( "knative.dev/eventing/pkg/client/injection/ducks/duck/v1/channelable" "knative.dev/eventing/pkg/client/injection/reconciler/eventing/v1/trigger" "knative.dev/eventing/pkg/duck" + "knative.dev/eventing/pkg/reconciler/mtbroker" "knative.dev/eventing/pkg/reconciler/mtbroker/resources" "knative.dev/pkg/apis" duckv1 "knative.dev/pkg/apis/duck/v1" @@ -151,22 +152,26 @@ func TestReconcile(t *testing.T) { { Name: "bad workqueue key", // Make sure Reconcile handles bad keys. - Key: "too/many/parts", + Key: "too/many/parts", + Objects: []runtime.Object{internalDeliveryConfigMap()}, }, { Name: "key not found", // Make sure Reconcile handles good keys that don't exist. - Key: "foo/not-found", + Key: "foo/not-found", + Objects: []runtime.Object{internalDeliveryConfigMap()}, }, { - Name: "Trigger not found", - Key: testKey, + Name: "Trigger not found", + Key: testKey, + Objects: []runtime.Object{internalDeliveryConfigMap()}, }, { Name: "Trigger is being deleted", Key: testKey, - Objects: []runtime.Object{NewTrigger(triggerName, testNS, brokerName, WithTriggerDeleted)}, + Objects: []runtime.Object{NewTrigger(triggerName, testNS, brokerName, WithTriggerDeleted), internalDeliveryConfigMap()}, }, { Name: "Broker does not exist", Key: testKey, Objects: []runtime.Object{ + internalDeliveryConfigMap(), NewTrigger(triggerName, testNS, brokerName, WithInitTriggerConditions, WithTriggerSubscriberURI(subscriberURI)), @@ -181,6 +186,7 @@ func TestReconcile(t *testing.T) { Name: "Not my broker class - no status updates", Key: testKey, Objects: []runtime.Object{ + internalDeliveryConfigMap(), NewBroker(brokerName, testNS, WithBrokerClass("not-my-broker"), WithBrokerConfig(config()), @@ -193,6 +199,7 @@ func TestReconcile(t *testing.T) { Name: "Broker not reconciled yet", Key: testKey, Objects: []runtime.Object{ + internalDeliveryConfigMap(), NewBroker(brokerName, testNS, WithBrokerClass(eventing.MTChannelBrokerClassValue), WithBrokerConfig(config())), @@ -205,6 +212,7 @@ func TestReconcile(t *testing.T) { Name: "Broker not ready yet", Key: testKey, Objects: []runtime.Object{ + internalDeliveryConfigMap(), NewBroker(brokerName, testNS, WithBrokerClass(eventing.MTChannelBrokerClassValue), WithBrokerConfig(config()), @@ -219,6 +227,7 @@ func TestReconcile(t *testing.T) { Name: "Creates subscription", Key: testKey, Objects: []runtime.Object{ + internalDeliveryConfigMap(), NewBroker(brokerName, testNS, WithBrokerClass(eventing.MTChannelBrokerClassValue), WithBrokerConfig(config()), @@ -249,6 +258,7 @@ func TestReconcile(t *testing.T) { Name: "Subscription Create fails", Key: testKey, Objects: []runtime.Object{ + internalDeliveryConfigMap(), ReadyBroker(), NewTrigger(triggerName, testNS, brokerName, WithTriggerUID(triggerUID), @@ -282,6 +292,7 @@ func TestReconcile(t *testing.T) { Name: "Trigger subscription create fails, update status fails", Key: testKey, Objects: []runtime.Object{ + internalDeliveryConfigMap(), ReadyBroker(), NewTrigger(triggerName, testNS, brokerName, WithTriggerUID(triggerUID), @@ -313,6 +324,7 @@ func TestReconcile(t *testing.T) { Name: "Trigger subscription not owned by Trigger", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ + internalDeliveryConfigMap(), NewTrigger(triggerName, testNS, brokerName, WithTriggerUID(triggerUID), WithTriggerSubscriberURI(subscriberURI)), @@ -335,6 +347,7 @@ func TestReconcile(t *testing.T) { Name: "Trigger subscription update works", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ + internalDeliveryConfigMap(), NewTrigger(triggerName, testNS, brokerName, WithTriggerUID(triggerUID), WithTriggerSubscriberURI(subscriberURI)), @@ -367,6 +380,7 @@ func TestReconcile(t *testing.T) { Name: "Trigger has subscriber ref exists", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ + internalDeliveryConfigMap(), makeSubscriberAddressableAsUnstructured(), NewTrigger(triggerName, testNS, brokerName, WithTriggerUID(triggerUID), @@ -393,6 +407,7 @@ func TestReconcile(t *testing.T) { Name: "Trigger has subscriber ref exists and URI", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ + internalDeliveryConfigMap(), makeSubscriberAddressableAsUnstructured(), NewTrigger(triggerName, testNS, brokerName, WithTriggerUID(triggerUID), @@ -420,6 +435,7 @@ func TestReconcile(t *testing.T) { Name: "Trigger has subscriber ref exists kubernetes Service", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ + internalDeliveryConfigMap(), makeSubscriberKubernetesServiceAsUnstructured(), NewTrigger(triggerName, testNS, brokerName, WithTriggerUID(triggerUID), @@ -447,6 +463,7 @@ func TestReconcile(t *testing.T) { Name: "Trigger has subscriber ref doesn't exist", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ + internalDeliveryConfigMap(), NewTrigger(triggerName, testNS, brokerName, WithTriggerUID(triggerUID), WithTriggerSubscriberRef(subscriberGVK, subscriberName, testNS), @@ -470,6 +487,7 @@ func TestReconcile(t *testing.T) { Name: "Subscription not ready, trigger marked not ready", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ + internalDeliveryConfigMap(), makeFalseStatusSubscription(), NewTrigger(triggerName, testNS, brokerName, WithTriggerUID(triggerUID), @@ -494,6 +512,7 @@ func TestReconcile(t *testing.T) { Name: "Subscription ready, trigger marked ready", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ + internalDeliveryConfigMap(), makeReadySubscription(), NewTrigger(triggerName, testNS, brokerName, WithTriggerUID(triggerUID), @@ -518,6 +537,7 @@ func TestReconcile(t *testing.T) { Name: "Dependency doesn't exist", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ + internalDeliveryConfigMap(), makeReadySubscription(), NewTrigger(triggerName, testNS, brokerName, WithTriggerUID(triggerUID), @@ -547,6 +567,7 @@ func TestReconcile(t *testing.T) { Name: "The status of Dependency is False", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ + internalDeliveryConfigMap(), makeReadySubscription(), makeFalseStatusPingSource(), NewTrigger(triggerName, testNS, brokerName, @@ -574,6 +595,7 @@ func TestReconcile(t *testing.T) { Name: "The status of Dependency is Unknown", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ + internalDeliveryConfigMap(), makeReadySubscription(), makeUnknownStatusCronJobSource(), NewTrigger(triggerName, testNS, brokerName, @@ -602,6 +624,7 @@ func TestReconcile(t *testing.T) { Name: "Dependency generation not equal", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ + internalDeliveryConfigMap(), makeReadySubscription(), makeGenerationNotEqualPingSource(), NewTrigger(triggerName, testNS, brokerName, @@ -629,6 +652,7 @@ func TestReconcile(t *testing.T) { Name: "Dependency ready", Key: testKey, Objects: allBrokerObjectsReadyPlus([]runtime.Object{ + internalDeliveryConfigMap(), makeReadySubscription(), makeReadyPingSource(), NewTrigger(triggerName, testNS, brokerName, @@ -673,6 +697,10 @@ func TestReconcile(t *testing.T) { sourceTracker: duck.NewListableTracker(ctx, source.Get, func(types.NamespacedName) {}, 0), uriResolver: resolver.NewURIResolver(ctx, func(types.NamespacedName) {}), } + + r.internalDeliveryConfigStore = mtbroker.NewInternalDeliveryConfigStore(logger) + r.internalDeliveryConfigStore.WatchConfigs(cmw) + return trigger.NewReconciler(ctx, logger, fakeeventingclient.Get(ctx), listers.GetTriggerLister(), controller.GetEventRecorder(ctx), @@ -698,6 +726,10 @@ func imcConfigMap() *corev1.ConfigMap { WithConfigMapData(map[string]string{"channelTemplateSpec": imcSpec})) } +func internalDeliveryConfigMap() *corev1.ConfigMap { + return NewConfigMap(mtbroker.InternalDeliveryConfigMapName, testNS) +} + func createChannel(namespace string, ready bool) *unstructured.Unstructured { name := fmt.Sprintf("%s-kne-trigger", brokerName) labels := map[string]interface{}{ From d0faeb3e9635a2741d4e4b4db809b2a04b2c9c3b Mon Sep 17 00:00:00 2001 From: slinkydeveloper Date: Wed, 3 Feb 2021 10:00:07 +0100 Subject: [PATCH 2/8] Copyright Signed-off-by: Francesco Guardiani --- pkg/reconciler/mtbroker/delivery_config.go | 15 +++++++++++++++ pkg/reconciler/mtbroker/delivery_config_test.go | 15 +++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/pkg/reconciler/mtbroker/delivery_config.go b/pkg/reconciler/mtbroker/delivery_config.go index 17f62251173..0c56159fa94 100644 --- a/pkg/reconciler/mtbroker/delivery_config.go +++ b/pkg/reconciler/mtbroker/delivery_config.go @@ -1,3 +1,18 @@ +/* +Copyright 2021 The Knative Authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package mtbroker import ( diff --git a/pkg/reconciler/mtbroker/delivery_config_test.go b/pkg/reconciler/mtbroker/delivery_config_test.go index ceb3a4297e4..24376dcca5e 100644 --- a/pkg/reconciler/mtbroker/delivery_config_test.go +++ b/pkg/reconciler/mtbroker/delivery_config_test.go @@ -1,3 +1,18 @@ +/* +Copyright 2021 The Knative Authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package mtbroker import ( From 100a8e4a15114cddeaa7c372a70868a9ce8e987e Mon Sep 17 00:00:00 2001 From: slinkydeveloper Date: Wed, 3 Feb 2021 10:02:26 +0100 Subject: [PATCH 3/8] Newline Signed-off-by: Francesco Guardiani --- pkg/reconciler/mtbroker/delivery_config.go | 1 + pkg/reconciler/mtbroker/delivery_config_test.go | 1 + 2 files changed, 2 insertions(+) diff --git a/pkg/reconciler/mtbroker/delivery_config.go b/pkg/reconciler/mtbroker/delivery_config.go index 0c56159fa94..a49d4366ec6 100644 --- a/pkg/reconciler/mtbroker/delivery_config.go +++ b/pkg/reconciler/mtbroker/delivery_config.go @@ -13,6 +13,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ + package mtbroker import ( diff --git a/pkg/reconciler/mtbroker/delivery_config_test.go b/pkg/reconciler/mtbroker/delivery_config_test.go index 24376dcca5e..ac905a24429 100644 --- a/pkg/reconciler/mtbroker/delivery_config_test.go +++ b/pkg/reconciler/mtbroker/delivery_config_test.go @@ -13,6 +13,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ + package mtbroker import ( From ff3a2b2496f97031ada268907d0206bdd2a66566 Mon Sep 17 00:00:00 2001 From: slinkydeveloper Date: Wed, 3 Feb 2021 13:59:47 +0100 Subject: [PATCH 4/8] Copyright Signed-off-by: Francesco Guardiani --- .../brokers/mt-channel-broker/300-config-mtbroker-delivery.yaml | 2 +- pkg/reconciler/mtbroker/testdata/config-mtbroker-delivery.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/brokers/mt-channel-broker/300-config-mtbroker-delivery.yaml b/config/brokers/mt-channel-broker/300-config-mtbroker-delivery.yaml index ac765ee9d14..926e8e18865 100644 --- a/config/brokers/mt-channel-broker/300-config-mtbroker-delivery.yaml +++ b/config/brokers/mt-channel-broker/300-config-mtbroker-delivery.yaml @@ -1,4 +1,4 @@ -# Copyright 2020 The Knative Authors +# Copyright 2021 The Knative Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/pkg/reconciler/mtbroker/testdata/config-mtbroker-delivery.yaml b/pkg/reconciler/mtbroker/testdata/config-mtbroker-delivery.yaml index 920eabecf5a..60392e65e9a 100644 --- a/pkg/reconciler/mtbroker/testdata/config-mtbroker-delivery.yaml +++ b/pkg/reconciler/mtbroker/testdata/config-mtbroker-delivery.yaml @@ -1,4 +1,4 @@ -# Copyright 2020 The Knative Authors +# Copyright 2021 The Knative Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. From c08416be0c6085af1e36f17373fb8bacbf9ca195 Mon Sep 17 00:00:00 2001 From: slinkydeveloper Date: Thu, 11 Feb 2021 14:19:57 +0100 Subject: [PATCH 5/8] Sort imports Signed-off-by: Francesco Guardiani --- pkg/reconciler/mtbroker/channel_config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/reconciler/mtbroker/channel_config.go b/pkg/reconciler/mtbroker/channel_config.go index d16cfa73efa..98b906e4396 100644 --- a/pkg/reconciler/mtbroker/channel_config.go +++ b/pkg/reconciler/mtbroker/channel_config.go @@ -23,9 +23,9 @@ import ( "fmt" "go.uber.org/zap" + corev1 "k8s.io/api/core/v1" "sigs.k8s.io/yaml" - corev1 "k8s.io/api/core/v1" "knative.dev/pkg/logging" messagingv1 "knative.dev/eventing/pkg/apis/messaging/v1" From e330be3ee40d6c142e23a6e9b3b6936a5bf62ba2 Mon Sep 17 00:00:00 2001 From: slinkydeveloper Date: Thu, 11 Feb 2021 14:37:55 +0100 Subject: [PATCH 6/8] Fix newline Signed-off-by: Francesco Guardiani --- pkg/reconciler/mtbroker/testdata/config-mtbroker-delivery.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/reconciler/mtbroker/testdata/config-mtbroker-delivery.yaml b/pkg/reconciler/mtbroker/testdata/config-mtbroker-delivery.yaml index 60392e65e9a..ab85797985a 100644 --- a/pkg/reconciler/mtbroker/testdata/config-mtbroker-delivery.yaml +++ b/pkg/reconciler/mtbroker/testdata/config-mtbroker-delivery.yaml @@ -21,4 +21,4 @@ metadata: data: _example: | delivery: | - retry: 10 \ No newline at end of file + retry: 10 From 933c048418d7d6fe43286b459148762c8861bc15 Mon Sep 17 00:00:00 2001 From: slinkydeveloper Date: Thu, 11 Feb 2021 14:39:18 +0100 Subject: [PATCH 7/8] Fix newline Signed-off-by: Francesco Guardiani --- .../brokers/mt-channel-broker/300-config-mtbroker-delivery.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/brokers/mt-channel-broker/300-config-mtbroker-delivery.yaml b/config/brokers/mt-channel-broker/300-config-mtbroker-delivery.yaml index 926e8e18865..b0639406647 100644 --- a/config/brokers/mt-channel-broker/300-config-mtbroker-delivery.yaml +++ b/config/brokers/mt-channel-broker/300-config-mtbroker-delivery.yaml @@ -23,4 +23,4 @@ data: _example: | # Configure the internal channels subscription delivery spec delivery: | - retry: 10 \ No newline at end of file + retry: 10 From 9d6583ad41c8632f585df3a51c6d83ae9f493516 Mon Sep 17 00:00:00 2001 From: slinkydeveloper Date: Thu, 11 Feb 2021 14:58:27 +0100 Subject: [PATCH 8/8] Skipping test because it requires another impl Signed-off-by: Francesco Guardiani --- test/e2e/broker_redelivery_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/test/e2e/broker_redelivery_test.go b/test/e2e/broker_redelivery_test.go index b923a9e808c..1ed433680e0 100644 --- a/test/e2e/broker_redelivery_test.go +++ b/test/e2e/broker_redelivery_test.go @@ -61,6 +61,7 @@ func ChannelBasedBrokerCreator(channel metav1.TypeMeta, brokerClass string) help } func TestBrokerRedelivery(t *testing.T) { + t.Skip("Waiting for https://github.com/knative/eventing/issues/4873") channelTestRunner.RunTests(t, testlib.FeatureRedelivery, func(t *testing.T, component metav1.TypeMeta) {