Skip to content

[Enhancement]: Allow customisation of CRD API groups #12396

@neeraj-laad

Description

@neeraj-laad

Related problem

Strimzi recommends running only a single Cluster Operator per Kubernetes cluster to avoid conflicts that can arise with multiple Strimzi installations, as described in the documentation: https://strimzi.io/docs/operators/latest/deploying#avoiding_deployment_conflicts

While this is manageable on smaller clusters, it becomes much harder on large, multi‑tenant clusters where each namespace is owned by a different line of business or application team. In such environments, coordinating which team installs which CRDs – and which versions – is challenging, and accidental changes by one team can impact others.

Strimzi is a popular project and multiple vendors also ship Strimzi‑based distributions and CRDs (see https://github.com/strimzi/strimzi-kafka-operator/blob/main/ADOPTERS.md#vendors). This further increases the potential for CRD API group conflicts and version incompatibilities between upstream Strimzi and vendor distributions deployed to the same cluster.

Today, the default API group is defined as a Java constant here:

public static final String RESOURCE_GROUP_NAME = "kafka.strimzi.io";

The CRDs are generated by running the CRD generator as part of the Maven build:

<argument>io.strimzi.crdgenerator.CrdGenerator</argument>

Suggested solution

It would be very helpful to have a build‑time configuration option (maven property or similar) to customise the CRD API group. This would allow vendors (and advanced users) to easily change the default Strimzi API group (‎strimzi.io) to a custom group, so that their CRDs are isolated from the upstream Strimzi CRDs and from other vendor distributions on the same cluster.

I appreciate that this is unlikely to be that trivial, but I wanted to start a discussion with the maintainers to understand whether this is something that could be supported and, if so, what constraints or preferred approaches you would have before exploring further.

Alternatives

Continue to manage the potential risks of conflicting resources and versions on a cluster.

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions