Skip to content

Strimzi Gatekeeper plugin system#220

Open
scholzj wants to merge 4 commits into
strimzi:mainfrom
scholzj:141-Strimzi-Gatekeeper-plugin-system
Open

Strimzi Gatekeeper plugin system#220
scholzj wants to merge 4 commits into
strimzi:mainfrom
scholzj:141-Strimzi-Gatekeeper-plugin-system

Conversation

@scholzj
Copy link
Copy Markdown
Member

@scholzj scholzj commented May 3, 2026

Inspired by Kubernetes Admission webhooks and other Kubernetes tools, the Strimzi Gatekeeper plugins suggested by this proposal provide a strong abstraction that should help us to better structure our own code base, remove complexity, split it into separate layers, and improve tests. But it should also be useful for all kinds of external use cases presented by Strimzi users and vendors.

Signed-off-by: Jakub Scholz <www@scholzj.com>
Copy link
Copy Markdown
Contributor

@PaulRMellor PaulRMellor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The motivation and intended benefits are clearly explained, especially around reducing reconciliation complexity and improving extensibility.

I think the implementation details could be expanded further for such a significant change. For example, sequence diagrams or example flows for validating and mutating plugins to show execution order, mutation behaviour, and success/failure handling.

Comment thread 141-Strimzi-Gatekeeper-plugin-system.md Outdated
Comment thread 141-Strimzi-Gatekeeper-plugin-system.md Outdated
Comment thread 141-Strimzi-Gatekeeper-plugin-system.md Outdated
Comment thread 141-Strimzi-Gatekeeper-plugin-system.md Outdated
Comment thread 141-Strimzi-Gatekeeper-plugin-system.md Outdated
Comment thread 141-Strimzi-Gatekeeper-plugin-system.md
Comment thread 141-Strimzi-Gatekeeper-plugin-system.md
Comment thread 141-Strimzi-Gatekeeper-plugin-system.md
Comment thread 141-Strimzi-Gatekeeper-plugin-system.md
Comment thread 141-Strimzi-Gatekeeper-plugin-system.md
scholzj and others added 2 commits May 7, 2026 21:21
Co-authored-by: PaulRMellor <47596553+PaulRMellor@users.noreply.github.com>
Signed-off-by: Jakub Scholz <www@scholzj.com>
Signed-off-by: Jakub Scholz <www@scholzj.com>
@scholzj
Copy link
Copy Markdown
Member Author

scholzj commented May 7, 2026

@PaulRMellor Thanks for the review. I tried to address your comments and also added some more diagrams and examples.

Copy link
Copy Markdown
Member

@im-konge im-konge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the proposal, it LGTM. I have just few questions.

Comment thread 141-Strimzi-Gatekeeper-plugin-system.md
Comment thread 141-Strimzi-Gatekeeper-plugin-system.md
While we currently do not have any specific use case, such a feature might be useful in the future.
* **Access Operator alternative:** A validating Gatekeeper plugin for `Kafka` and `KafkaUser` could be used to copy cluster or user information into different namespaces or clusters.
The plugin would wait for the reconciliation to complete and in the _exit_ method it would distribute the credentials or cluster coordinates to places defined in annotation.
_(Included as an example only - the actual replacement of Access Operator by a Gatekeeper plugin would require a separate proposal.)_
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we start thinking about it now instead giving more effort to Access Operator?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm happy to think about it. But:

  • It would be completely different model (I think that better, but who knows)
  • This proposal has 2 reviews and 0 approvals - so it would be premature to think it replaces anything
  • If we do that, it should likely be a separate proposal -> Different interest groups, different topic, managing the scope, etc.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I know it is premature to think about it and something for different proposal etc., but I just wanted to mention it, as we already discussed to have the Access Operator work a bit differently with different model.
So maybe we should think about this now before we will plan for some more changes in the Access Operator repo - CC @katheris

Comment thread 141-Strimzi-Gatekeeper-plugin-system.md
Copy link
Copy Markdown
Contributor

@PaulRMellor PaulRMellor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for addressing my comments.
The example flow and diagrams are a great help

Comment thread 141-Strimzi-Gatekeeper-plugin-system.md Outdated
Copy link
Copy Markdown
Member

@im-konge im-konge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The proposal LGTM, thanks a lot.

Signed-off-by: Jakub Scholz <www@scholzj.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants