Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
f6b72d6
Run Koperator on Kind Cluster Locally
Mar 10, 2026
67c8acd
[CORE-149726] - Local Debug support
Apr 8, 2026
7e7daea
[CORE-149726] - Local Debug support
Apr 8, 2026
856d5df
Merge branch 'master' into CORE-149726
dvaseekara Apr 8, 2026
3f9066b
[CORE-149726] - Local Debug support
Apr 8, 2026
c7ba004
Clean up Lint
Apr 8, 2026
9e149d1
Merge branch 'master' into CORE-149726
dobrerazvan Apr 9, 2026
f4bdeea
Merge branch 'master' into CORE-149726
dobrerazvan Apr 9, 2026
d3813cd
Add Scaleops to Local Env
Apr 24, 2026
e6a9e84
[CORE-149726] - Scaleops Update - Ignore Resource Request Differences…
Apr 24, 2026
cc65cdb
updating run-local script to use kubectl instead of k
May 5, 2026
25792bd
adding checks to make run more resilient while also commenting out ma…
May 5, 2026
07cce20
Merge branch 'master' into CORE-149029
cawright-rh May 6, 2026
221a175
Adding Pod Affinity Sync
May 27, 2026
b289d03
Merge branch 'CORE-149029' of https://github.com/adobe/koperator into…
May 27, 2026
390e0df
Local Run Improvements
Jun 1, 2026
d968110
Local Run Improvements
Jun 1, 2026
1174455
Added test case for LoadBalancer Service
Jun 2, 2026
5b932a0
NIT: NEW LINES
Jun 2, 2026
34ef3dd
Add kube-context and cloud-provider-kind checks
Jun 3, 2026
46f8a45
Clean up imports
Jun 3, 2026
3556b78
Clean up documentation
Jun 5, 2026
deabef1
Merge branch 'master' into CORE-149726
dvaseekara Jun 5, 2026
3f7c22d
Merge CORE-149726
Jun 5, 2026
9bb9017
Clean up Test Case
Jun 8, 2026
3b66b38
Update to run-local script
Jun 9, 2026
f60328e
Add Affinity Syncing with Scaleops
Jun 12, 2026
e813891
Address review comments: add cleanup, run cpk in background
Jun 12, 2026
1961403
Address review comments: rename debugEnagled to localDebugEnabled
Jun 12, 2026
68b680b
Address review comments: Cleanup cloud-provider-kind
Jun 12, 2026
2630a45
Merge
Jun 16, 2026
d911f81
Cleanup
Jun 16, 2026
f7452fc
Move to Util
Jun 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
bin
charts/**/charts
charts/koperator/requirements.lock

charts/kafka-operator/ingress
# Test binary, build with `go test -c`
*.test

Expand Down
Empty file added __debug_bin
Empty file.
19 changes: 16 additions & 3 deletions api/v1beta1/kafkacluster_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -157,9 +157,22 @@ type KafkaClusterSpec struct {
// This is default to be true; if set to false, the Kafka cluster is in ZooKeeper mode.
// +kubebuilder:default=false
// +optional
KRaftMode bool `json:"kRaft"`
HeadlessServiceEnabled bool `json:"headlessServiceEnabled"`
ListenersConfig ListenersConfig `json:"listenersConfig"`
KRaftMode bool `json:"kRaft"`
HeadlessServiceEnabled bool `json:"headlessServiceEnabled"`
// localDebugEnabled is used to decide whether to create a separate loadbalancer services for the
// Kafka and Cruise Control Pods. These services will expose the internal listener ports of the Kafka
// cluster with LoadBalancer type, which can be used for running Koperator on a local machine against
// a kafkaCluster instance on a Kind Cluster.
// +kubebuilder:default=false
// +optional
LocalDebugEnabled bool `json:"localDebugEnabled"`
// Allows ScaleOps to manage Memory and CPU Resource Requests for Kafka Broker Pods.
// This Disables CPU and Memory request reconciliation from the desired state defined in
// the KafkaCluster to the current state in the Kubernetes Cluster
// +kubebuilder:default=false
// +optional
ScaleOpsEnabled bool `json:"scaleOpsEnabled"`
ListenersConfig ListenersConfig `json:"listenersConfig"`
// Custom ports to expose in the container. Example use case: a custom kafka distribution, that includes an integrated metrics api endpoint
AdditionalPorts []corev1.ContainerPort `json:"additionalPorts,omitempty"`
// ZKAddresses specifies the ZooKeeper connection string
Expand Down
15 changes: 15 additions & 0 deletions charts/kafka-operator/crds/kafkaclusters.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23670,6 +23670,14 @@ spec:
required:
- internalListeners
type: object
localDebugEnabled:
default: false
description: |-
localDebugEnabled is used to decide whether to create a separate loadbalancer services for the
Kafka and Cruise Control Pods. These services will expose the internal listener ports of the Kafka
cluster with LoadBalancer type, which can be used for running Koperator on a local machine against
a kafkaCluster instance on a Kind Cluster.
type: boolean
monitoringConfig:
description: MonitoringConfig defines the config for monitoring Kafka
and Cruise Control
Expand Down Expand Up @@ -23735,6 +23743,13 @@ spec:
required:
- failureThreshold
type: object
scaleOpsEnabled:
default: false
description: |-
Allows ScaleOps to manage Memory and CPU Resource Requests for Kafka Broker Pods.
This Disables CPU and Memory request reconciliation from the desired state defined in
the KafkaCluster to the current state in the Kubernetes Cluster
type: boolean
taintedBrokersSelector:
description: Selector for broker pods that need to be recycled/reconciled
properties:
Expand Down
97 changes: 97 additions & 0 deletions comparenodes.txt

Large diffs are not rendered by default.

15 changes: 15 additions & 0 deletions config/base/crds/kafka.banzaicloud.io_kafkaclusters.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23670,6 +23670,14 @@ spec:
required:
- internalListeners
type: object
localDebugEnabled:
default: false
description: |-
localDebugEnabled is used to decide whether to create a separate loadbalancer services for the
Kafka and Cruise Control Pods. These services will expose the internal listener ports of the Kafka
cluster with LoadBalancer type, which can be used for running Koperator on a local machine against
a kafkaCluster instance on a Kind Cluster.
type: boolean
monitoringConfig:
description: MonitoringConfig defines the config for monitoring Kafka
and Cruise Control
Expand Down Expand Up @@ -23735,6 +23743,13 @@ spec:
required:
- failureThreshold
type: object
scaleOpsEnabled:
default: false
description: |-
Allows ScaleOps to manage Memory and CPU Resource Requests for Kafka Broker Pods.
This Disables CPU and Memory request reconciliation from the desired state defined in
the KafkaCluster to the current state in the Kubernetes Cluster
type: boolean
taintedBrokersSelector:
description: Selector for broker pods that need to be recycled/reconciled
properties:
Expand Down
10 changes: 10 additions & 0 deletions config/samples/simpleZookeeper.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: zookeeper.pravega.io/v1beta1
kind: ZookeeperCluster
metadata:
name: zookeeper-server
namespace: zookeeper
spec:
replicas: 3
persistence:
reclaimPolicy: Delete

3 changes: 2 additions & 1 deletion config/samples/simplekafkacluster.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@ metadata:
controller-tools.k8s.io: "1.0"
name: kafka
spec:
localDebugEnabled: true
kRaft: false
monitoringConfig:
jmxImage: "ghcr.io/adobe/koperator/jmx-javaagent:1.4.0"
headlessServiceEnabled: true
headlessServiceEnabled: false
zkAddresses:
- "zookeeper-server-client.zookeeper:2181"
propagateLabels: false
Expand Down
22 changes: 22 additions & 0 deletions config/scaleops/CustomOwnerGrouping.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

kind: CustomOwnerGrouping
apiVersion: analysis.scaleops.sh/v1alpha1
metadata:
name: kafkabroker
namespace: scaleops-system
spec:
groupBy:
positiveRegexMatch: false
groupBys:
- labels:
- 'isBrokerNode: true'
positiveRegexMatch: false
topOwnerController:
apiVersion: kafka.banzaicloud.io/v1beta1
kind: KafkaCluster
displayOptions:
hideGeneratedSuffix: true
fields:
- ownerName
defaultPolicy: kafka-brokers
enabled: true
Loading
Loading