Closed jonathansick closed 2 years ago
@afausti Could you take a look at this and see if it makes sense from your perspective? If you could also try it in a test environment with the tickets-DM-35597
image tag that'd be great.
I'm going to see if I can set up minikube or similar to do an integration test of the operator in GitHub Actions.
This is all working well in Minikube in #57 . I've also got more changes stacked up in #59 and #60 . My plan is to merge all these and then create a 0.5.0rc1 release.
This PR attempts to clarify the listener type and name terminology, and indicate to the user that we're interested in listener names for the modern Strimzi usage.
How the Strimzi listener specification has changed
In old versions of Strimzi, three types of listeners were available:
plain
,tls
, andexternal
.strimzi-registry-operator uses the
status.listeners
field on theKafka
resource to resolve the bootstrap server. In older versions of Strimzi, this looked like:Again, all listeners had types in the original
v1beta1
Strimzi API.When the Strimzi
v1beta2
API came out, the listener schema changed significantly. Nowspec.kafka.listeners
became an array type, and you could name a listener, in addition to giving it a type. An example from the Strimzi 0.29.0 docs:So whereas a listeners
type
(tls, plain, or external) was what we expected a StrimziSchemaRegistry operator user to configure in Strimzi v1beta1, in v1beta2 we expect the user to configure the listener'sname
.To make things slightly confusing, in v1beta2,
type
came to be used for a slightly different purpose. Types can beinternal
,route
,loadbalancer
,nodeport
, oringress
. There's no longer aplain
ortls
type because those are authentication details configured separately.Further, in initial versions of Strimzi using the
v1beta2
API, thestatus.listeners
field now listed listeners and only theirtype
, but not theirname
:To deal with this listener information, Strimzi Registry Operator needs to look at
spec.listeners
and find the type associated with the named listener.More recently, Strimzi has started to include the listener name in
status.listeners
, which is ideal: