Skip to content

extend the EntityOperator, CruiseControl and KafkaExporter to support PDB#11699

Merged
katheris merged 11 commits intostrimzi:mainfrom
KyriosGN0:crd-pdb
Aug 21, 2025
Merged

extend the EntityOperator, CruiseControl and KafkaExporter to support PDB#11699
katheris merged 11 commits intostrimzi:mainfrom
KyriosGN0:crd-pdb

Conversation

@KyriosGN0
Copy link
Copy Markdown
Contributor

@KyriosGN0 KyriosGN0 commented Jul 26, 2025

Type of change

Select the type of your PR

  • Enhancement / new feature

Description

This PR adds PDB for EntityOperator, CruiseControl and KafkaExporter deployment
fixes #11402

Checklist

Please go through this checklist and make sure all applicable tasks have been done

  • Write tests
  • Make sure all tests pass
  • Update documentation
  • Check RBAC rights for Kubernetes / OpenShift roles
  • Try your changes from Pod inside your Kubernetes and OpenShift cluster, not just locally
  • Reference relevant issue(s) and close them after merging
  • Update CHANGELOG.md
  • Supply screenshots for visual changes, such as Grafana dashboards

@KyriosGN0 KyriosGN0 marked this pull request as ready for review July 26, 2025 21:56
@KyriosGN0
Copy link
Copy Markdown
Contributor Author

i tested locally and all of the tests did pass, also i deployed it locally to a kind cluster and saw that a PDB was created for each with allowedDisturption=1

@scholzj scholzj added this to the 0.48.0 milestone Jul 27, 2025
Copy link
Copy Markdown
Member

@scholzj scholzj 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 PR. I left some comments, but it looks mostly good. 👍

Comment thread CHANGELOG.md
Comment thread CHANGELOG.md Outdated
@scholzj scholzj requested a review from katheris July 27, 2025 09:30
@scholzj
Copy link
Copy Markdown
Member

scholzj commented Jul 27, 2025

/azp run regression

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@KyriosGN0 KyriosGN0 changed the title extend the EntityOperator and KafkaExporter to support PDB extend the EntityOperator, CruiseControl and KafkaExporter to support PDB Jul 30, 2025
@KyriosGN0
Copy link
Copy Markdown
Contributor Author

@scholzj updated the PR to support CC as well,
about the whitespace in Changelog, its my vscode that has this config, if its really problematic i will go and change the changelog file manually to revert the whitespace changes, Let me know.

Copy link
Copy Markdown
Member

@scholzj scholzj left a comment

Choose a reason for hiding this comment

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

Few more nits. But LGTM otherwise. Thanks.

Comment thread CHANGELOG.md Outdated
@scholzj
Copy link
Copy Markdown
Member

scholzj commented Jul 30, 2025

/azp run regression

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@KyriosGN0 KyriosGN0 requested a review from scholzj August 1, 2025 08:44
Copy link
Copy Markdown
Member

@scholzj scholzj left a comment

Choose a reason for hiding this comment

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

Great, thanks a lot.

@scholzj
Copy link
Copy Markdown
Member

scholzj commented Aug 13, 2025

@katheris Any chance you can have a look at this please?

Copy link
Copy Markdown
Member

@katheris katheris 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 PR @KyriosGN0. I found a couple of JavaDoc nits, but also it looks like the step to create the Pod Disruption Budget is in the wrong place for Cruise Control reconciler.

Finally I wanted to confirm my understanding of the change with regards to Cruise Control. The Cruise Control template already supports Pod Disruption Budget, so is that just being ignored in the main branch today?

result.templateService = template.getApiService();
result.templateServiceAccount = template.getServiceAccount();
result.templateContainer = template.getCruiseControlContainer();
result.templatePodDisruptionBudget = template.getPodDisruptionBudget();
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.

The getPodDisruptionBudget() method is already present in Cruise Control, so is the current state that Cruise Control had it as part of the template, but we were ignoring it? @kyguy can you confirm whether PodDisruptionBudget is already supported for Cruise Control?

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.

The getPodDisruptionBudget() method is already present in Cruise Control, so is the current state that Cruise Control had it as part of the template, but we were ignoring it?

Yes, we were ignoring it. It looks like I added the template years ago but never added the spec or reconciliation bits.

can you confirm whether PodDisruptionBudget is already supported for Cruise Control?

I can confirm it is not currently supported for Cruise Control.

Comment thread CHANGELOG.md Outdated
The `strimzi.io/node-pools` and `strimzi.io/kraft` annotations are not required anymore and will be ignored if set.
* Make properties `broker.session.timeout.ms`, `broker.heartbeat.interval.ms` and `controller.socket.timeout.ms` configurable
* Add monitoring of custom resources using [kubernetes-state-metrics (KSM)](https://github.com/kubernetes/kube-state-metrics) (see [Strimzi proposal 087](https://github.com/strimzi/proposals/blob/main/087-monitoring-of-custom-resources.md))
* Extend the EntityOperator, Cruise Control and KafkaExporter deployment to support PDB.
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.

I think this could be a little clearer, e.g. Extend the EntityOperator, Cruise Control and KafkaExporter deployment to support PDB via the template section in the CR spec.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done

Signed-off-by: AvivGuiser <avivguiser@gmail.com>
Signed-off-by: AvivGuiser <avivguiser@gmail.com>
Signed-off-by: AvivGuiser <avivguiser@gmail.com>
Signed-off-by: AvivGuiser <avivguiser@gmail.com>
Signed-off-by: AvivGuiser <avivguiser@gmail.com>
Signed-off-by: AvivGuiser <avivguiser@gmail.com>
Signed-off-by: AvivGuiser <avivguiser@gmail.com>
Signed-off-by: AvivGuiser <avivguiser@gmail.com>
Signed-off-by: AvivGuiser <avivguiser@gmail.com>
Signed-off-by: AvivGuiser <avivguiser@gmail.com>
@KyriosGN0
Copy link
Copy Markdown
Contributor Author

@katheris Thanks for the review, i addressed your comments, and yes, i think that up until now the PDB of CC was in the CRD but it was ignored, but i never tried it so i cannot confirm 100%

Signed-off-by: AvivGuiser <avivguiser@gmail.com>
Copy link
Copy Markdown
Member

@katheris katheris left a comment

Choose a reason for hiding this comment

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

Thanks @KyriosGN0 I'm happy with these changes. I've asked @kyguy to take a look at the Cruise Control parts so will hold off merging until he's reviewed

Copy link
Copy Markdown
Member

@kyguy kyguy left a comment

Choose a reason for hiding this comment

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

@katheris The Cruise Control parts look good! Nice work @KyriosGN0

result.templateService = template.getApiService();
result.templateServiceAccount = template.getServiceAccount();
result.templateContainer = template.getCruiseControlContainer();
result.templatePodDisruptionBudget = template.getPodDisruptionBudget();
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.

The getPodDisruptionBudget() method is already present in Cruise Control, so is the current state that Cruise Control had it as part of the template, but we were ignoring it?

Yes, we were ignoring it. It looks like I added the template years ago but never added the spec or reconciliation bits.

can you confirm whether PodDisruptionBudget is already supported for Cruise Control?

I can confirm it is not currently supported for Cruise Control.

@katheris katheris merged commit 7cd6fc5 into strimzi:main Aug 21, 2025
13 checks passed
@katheris
Copy link
Copy Markdown
Member

Thanks for the PR @KyriosGN0

@KyriosGN0 KyriosGN0 deleted the crd-pdb branch August 21, 2025 09:59
@scholzj scholzj added this to Roadmap Aug 23, 2025
@scholzj scholzj moved this to 0.48.0 (Work in Progress) in Roadmap Aug 23, 2025
see-quick pushed a commit to see-quick/strimzi-kafka-operator that referenced this pull request Sep 4, 2025
… PDB (strimzi#11699)

Signed-off-by: AvivGuiser <avivguiser@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 0.48.0

Development

Successfully merging this pull request may close these issues.

[Enhancement]: podDisruptionBudget for KafkaExporterSpec and EntityOperatorSpec

4 participants