From 500a1d46851356b797c215ba0487592535ad5b9b Mon Sep 17 00:00:00 2001 From: Calum Murray Date: Mon, 28 Aug 2023 10:31:01 -0400 Subject: [PATCH] Fix channel finalizer logic (#3295) Signed-off-by: Calum Murray --- control-plane/pkg/reconciler/channel/channel.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/control-plane/pkg/reconciler/channel/channel.go b/control-plane/pkg/reconciler/channel/channel.go index fd09240de8..01417e5383 100644 --- a/control-plane/pkg/reconciler/channel/channel.go +++ b/control-plane/pkg/reconciler/channel/channel.go @@ -68,6 +68,9 @@ const ( NewChannelIngressServiceName = "kafka-channel-ingress" kafkaChannelTLSSecretName = "kafka-channel-ingress-server-tls" //nolint:gosec // This is not a hardcoded credential caCertsSecretKey = "ca.crt" + // TopicPrefix is the old Kafka Channel topic prefix - we keep this constant so that deleting channels shortly after upgrading + // does not have issues. See https://github.com/knative-extensions/eventing-kafka-broker/issues/3289 for more info + TopicPrefix = "knative-messaging-kafka" ) type Reconciler struct { @@ -494,7 +497,7 @@ func (r *Reconciler) finalizeKind(ctx context.Context, channel *messagingv1beta1 topicName, ok := channel.Status.Annotations[kafka.TopicAnnotation] if !ok { - return fmt.Errorf("no topic annotated on channel") + topicName = kafka.ChannelTopic(TopicPrefix, channel) } topic, err := kafka.DeleteTopic(kafkaClusterAdminClient, topicName) if err != nil {