Compare commits

...

32 Commits

Author SHA1 Message Date
Timofei Larkin
24fa722276 Merge pull request #642 from aenix-io/release-0.25.3
Prepare release v0.25.3
2025-02-22 11:41:53 +04:00
Timofei Larkin
0211c57bed Prepare release v0.25.3 2025-02-22 10:33:32 +03:00
Timofei Larkin
135b0609b4 Merge pull request #638 from klinch0/feature/move-kubeconfig
feature/mv-kubeconfig
2025-02-21 13:57:33 +04:00
Floppy Disk
6c73e3f3ae feature/mv-kubeconfig 2025-02-20 15:23:54 +03:00
Timofei Larkin
bc95159a80 Merge pull request #634 from aenix-io/release/v0.25.2
Prepare release v0.25.2
2025-02-18 21:03:29 +04:00
Timofei Larkin
0f68db6793 Merge pull request #635 from klinch0/feature/update-limits
feature/add-more-resources
2025-02-18 20:01:09 +03:00
Floppy Disk
9a55747885 add more resources 2025-02-18 17:40:54 +03:00
Timofei Larkin
bd90eb267f Prepare release v0.25.2 2025-02-18 17:22:41 +03:00
Timofei Larkin
7d5b22e662 Merge pull request #632 from klinch0/feature/add-white-label
feature/add-wl
2025-02-17 14:03:25 +04:00
Floppy Disk
42f1dabc31 add wl 2025-02-14 17:47:37 +03:00
Timofei Larkin
eefef8b09f Merge pull request #626 from klinch0/feature/add-workloadmonitors-roles
feature/add-workloadmonitors-roles
2025-02-13 17:58:33 +04:00
Timofei Larkin
93c4616115 Merge pull request #630 from aenix-io/release-0.25.1
Prepare release v0.25.1
2025-02-13 17:32:52 +04:00
Andrei Kvapil
1f6ea333b6 Prepare release v0.25.1
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-02-13 16:00:02 +03:00
Floppy Disk
4cc48e6f34 add-workloadmonitors-roles 2025-02-13 13:33:35 +03:00
Timofei Larkin
ecfb02a76f Merge pull request #625 from klinch0/feature/add-kafka-monitoring
feature/add-kafka-monitoring
2025-02-13 14:21:52 +04:00
Floppy Disk
cc0222aa11 fix dashboard 2025-02-13 13:09:34 +03:00
Andrei Kvapil
65036e8145 Upd cozy-proxy to fix reconciliation logic (#629) 2025-02-12 18:41:27 +01:00
Andrei Kvapil
e2e32096a3 Fix VM services selector (#627)
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Chores**
- Updated deployment configurations with the latest application versions
(0.8.1 and 0.5.1) to ensure improved stability and compatibility.
- **Bug Fixes**
- Enhanced service connectivity by refining the criteria used for
routing requests to the correct application endpoints.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-02-12 14:03:10 +01:00
Floppy Disk
84a23947b0 fix 2025-02-12 11:45:16 +03:00
Floppy Disk
d234d58a16 update kafka operator version 2025-02-10 13:29:59 +03:00
Floppy Disk
b75aaf177b add kafka monitoring 2025-02-10 13:29:17 +03:00
klinch0
87328a6ff3 Merge branch 'aenix-io:main' into main 2025-02-10 12:58:03 +03:00
klinch0
a42f98e04c Merge branch 'aenix-io:main' into main 2025-02-06 15:51:19 +03:00
klinch0
f02397aab5 Merge branch 'aenix-io:main' into main 2025-02-06 15:41:38 +03:00
klinch0
f67816e2d3 Merge branch 'aenix-io:main' into main 2025-02-05 15:38:21 +03:00
klinch0
e5e14722b8 Merge branch 'aenix-io:main' into main 2025-01-30 00:27:55 +03:00
klinch0
719cedde02 Merge branch 'aenix-io:main' into main 2025-01-27 15:15:11 +03:00
klinch0
469d1e9801 Merge branch 'aenix-io:main' into main 2025-01-23 17:48:38 +03:00
klinch0
81819661dc Merge branch 'aenix-io:main' into main 2025-01-21 16:31:57 +03:00
klinch0
2f0d0924a7 Merge branch 'aenix-io:main' into main 2025-01-20 12:05:14 +03:00
klinch0
191c8b4061 Merge branch 'aenix-io:main' into main 2025-01-16 15:26:08 +03:00
Floppy Disk
9de782e719 fix 2025-01-16 13:23:56 +03:00
74 changed files with 6369 additions and 1231 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -80,6 +80,7 @@ modules/340-monitoring-kubernetes/monitoring/grafana-dashboards//main/namespace/
modules/340-monitoring-kubernetes/monitoring/grafana-dashboards//main/capacity-planning/capacity-planning.json
modules/340-monitoring-kubernetes/monitoring/grafana-dashboards//flux/flux-control-plane.json
modules/340-monitoring-kubernetes/monitoring/grafana-dashboards//flux/flux-stats.json
modules/340-monitoring-kubernetes/monitoring/grafana-dashboards//kafka/strimzi-kafka.json
EOT

View File

@@ -68,7 +68,7 @@ spec:
serviceAccountName: cozystack
containers:
- name: cozystack
image: "ghcr.io/aenix-io/cozystack/cozystack:v0.25.0"
image: "ghcr.io/aenix-io/cozystack/cozystack:v0.25.3"
env:
- name: KUBERNETES_SERVICE_HOST
value: localhost
@@ -87,7 +87,7 @@ spec:
fieldRef:
fieldPath: metadata.name
- name: assets
image: "ghcr.io/aenix-io/cozystack/cozystack:v0.25.0"
image: "ghcr.io/aenix-io/cozystack/cozystack:v0.25.3"
command:
- /usr/bin/cozystack-assets-server
- "-dir=/cozystack/assets"

View File

@@ -1 +1 @@
ghcr.io/aenix-io/cozystack/postgres-backup:0.8.0@sha256:6a8ec7e7052f2d02ec5457d7cbac6ee52b3ed93a883988a192d1394fc7c88117
ghcr.io/aenix-io/cozystack/postgres-backup:0.8.0@sha256:71cdf8bdab3d6f27edeec0ab33ddd8c7b56675a4f2d7bbf4d3e09b70ecb43375

View File

@@ -1 +1 @@
ghcr.io/aenix-io/cozystack/nginx-cache:0.3.1@sha256:f30e9bd4b8a2a4362b88ac8974b12ed1ded631c4eeea87831bb446bb302b2e29
ghcr.io/aenix-io/cozystack/nginx-cache:0.3.1@sha256:4c79017b6663f894812d8c3d4f9e03ef44e4d4032ad8bb91945c92c7cce6a0b0

View File

@@ -16,7 +16,7 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.3.1
version: 0.3.2
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to

View File

@@ -57,6 +57,12 @@ spec:
class: {{ . }}
{{- end }}
deleteClaim: true
metricsConfig:
type: jmxPrometheusExporter
valueFrom:
configMapKeyRef:
name: {{ .Release.Name }}-metrics
key: kafka-metrics-config.yml
zookeeper:
replicas: {{ .Values.zookeeper.replicas }}
storage:
@@ -68,6 +74,12 @@ spec:
class: {{ . }}
{{- end }}
deleteClaim: false
metricsConfig:
type: jmxPrometheusExporter
valueFrom:
configMapKeyRef:
name: {{ .Release.Name }}-metrics
key: kafka-metrics-config.yml
entityOperator:
topicOperator: {}
userOperator: {}

View File

@@ -0,0 +1,198 @@
kind: ConfigMap
apiVersion: v1
metadata:
name: {{ .Release.Name }}-metrics
data:
kafka-metrics-config.yml: |
# See https://github.com/prometheus/jmx_exporter for more info about JMX Prometheus Exporter metrics
lowercaseOutputName: true
rules:
# Special cases and very specific rules
- pattern: kafka.server<type=(.+), name=(.+), clientId=(.+), topic=(.+), partition=(.*)><>Value
name: kafka_server_$1_$2
type: GAUGE
labels:
clientId: "$3"
topic: "$4"
partition: "$5"
- pattern: kafka.server<type=(.+), name=(.+), clientId=(.+), brokerHost=(.+), brokerPort=(.+)><>Value
name: kafka_server_$1_$2
type: GAUGE
labels:
clientId: "$3"
broker: "$4:$5"
- pattern: kafka.server<type=(.+), cipher=(.+), protocol=(.+), listener=(.+), networkProcessor=(.+)><>connections
name: kafka_server_$1_connections_tls_info
type: GAUGE
labels:
cipher: "$2"
protocol: "$3"
listener: "$4"
networkProcessor: "$5"
- pattern: kafka.server<type=(.+), clientSoftwareName=(.+), clientSoftwareVersion=(.+), listener=(.+), networkProcessor=(.+)><>connections
name: kafka_server_$1_connections_software
type: GAUGE
labels:
clientSoftwareName: "$2"
clientSoftwareVersion: "$3"
listener: "$4"
networkProcessor: "$5"
- pattern: "kafka.server<type=(.+), listener=(.+), networkProcessor=(.+)><>(.+-total):"
name: kafka_server_$1_$4
type: COUNTER
labels:
listener: "$2"
networkProcessor: "$3"
- pattern: "kafka.server<type=(.+), listener=(.+), networkProcessor=(.+)><>(.+):"
name: kafka_server_$1_$4
type: GAUGE
labels:
listener: "$2"
networkProcessor: "$3"
- pattern: kafka.server<type=(.+), listener=(.+), networkProcessor=(.+)><>(.+-total)
name: kafka_server_$1_$4
type: COUNTER
labels:
listener: "$2"
networkProcessor: "$3"
- pattern: kafka.server<type=(.+), listener=(.+), networkProcessor=(.+)><>(.+)
name: kafka_server_$1_$4
type: GAUGE
labels:
listener: "$2"
networkProcessor: "$3"
# Some percent metrics use MeanRate attribute
# Ex) kafka.server<type=(KafkaRequestHandlerPool), name=(RequestHandlerAvgIdlePercent)><>MeanRate
- pattern: kafka.(\w+)<type=(.+), name=(.+)Percent\w*><>MeanRate
name: kafka_$1_$2_$3_percent
type: GAUGE
# Generic gauges for percents
- pattern: kafka.(\w+)<type=(.+), name=(.+)Percent\w*><>Value
name: kafka_$1_$2_$3_percent
type: GAUGE
- pattern: kafka.(\w+)<type=(.+), name=(.+)Percent\w*, (.+)=(.+)><>Value
name: kafka_$1_$2_$3_percent
type: GAUGE
labels:
"$4": "$5"
# Generic per-second counters with 0-2 key/value pairs
- pattern: kafka.(\w+)<type=(.+), name=(.+)PerSec\w*, (.+)=(.+), (.+)=(.+)><>Count
name: kafka_$1_$2_$3_total
type: COUNTER
labels:
"$4": "$5"
"$6": "$7"
- pattern: kafka.(\w+)<type=(.+), name=(.+)PerSec\w*, (.+)=(.+)><>Count
name: kafka_$1_$2_$3_total
type: COUNTER
labels:
"$4": "$5"
- pattern: kafka.(\w+)<type=(.+), name=(.+)PerSec\w*><>Count
name: kafka_$1_$2_$3_total
type: COUNTER
# Generic gauges with 0-2 key/value pairs
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.+), (.+)=(.+)><>Value
name: kafka_$1_$2_$3
type: GAUGE
labels:
"$4": "$5"
"$6": "$7"
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.+)><>Value
name: kafka_$1_$2_$3
type: GAUGE
labels:
"$4": "$5"
- pattern: kafka.(\w+)<type=(.+), name=(.+)><>Value
name: kafka_$1_$2_$3
type: GAUGE
# Emulate Prometheus 'Summary' metrics for the exported 'Histogram's.
# Note that these are missing the '_sum' metric!
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.+), (.+)=(.+)><>Count
name: kafka_$1_$2_$3_count
type: COUNTER
labels:
"$4": "$5"
"$6": "$7"
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.*), (.+)=(.+)><>(\d+)thPercentile
name: kafka_$1_$2_$3
type: GAUGE
labels:
"$4": "$5"
"$6": "$7"
quantile: "0.$8"
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.+)><>Count
name: kafka_$1_$2_$3_count
type: COUNTER
labels:
"$4": "$5"
- pattern: kafka.(\w+)<type=(.+), name=(.+), (.+)=(.*)><>(\d+)thPercentile
name: kafka_$1_$2_$3
type: GAUGE
labels:
"$4": "$5"
quantile: "0.$6"
- pattern: kafka.(\w+)<type=(.+), name=(.+)><>Count
name: kafka_$1_$2_$3_count
type: COUNTER
- pattern: kafka.(\w+)<type=(.+), name=(.+)><>(\d+)thPercentile
name: kafka_$1_$2_$3
type: GAUGE
labels:
quantile: "0.$4"
# KRaft overall related metrics
# distinguish between always increasing COUNTER (total and max) and variable GAUGE (all others) metrics
- pattern: "kafka.server<type=raft-metrics><>(.+-total|.+-max):"
name: kafka_server_raftmetrics_$1
type: COUNTER
- pattern: "kafka.server<type=raft-metrics><>(current-state): (.+)"
name: kafka_server_raftmetrics_$1
value: 1
type: UNTYPED
labels:
$1: "$2"
- pattern: "kafka.server<type=raft-metrics><>(.+):"
name: kafka_server_raftmetrics_$1
type: GAUGE
# KRaft "low level" channels related metrics
# distinguish between always increasing COUNTER (total and max) and variable GAUGE (all others) metrics
- pattern: "kafka.server<type=raft-channel-metrics><>(.+-total|.+-max):"
name: kafka_server_raftchannelmetrics_$1
type: COUNTER
- pattern: "kafka.server<type=raft-channel-metrics><>(.+):"
name: kafka_server_raftchannelmetrics_$1
type: GAUGE
# Broker metrics related to fetching metadata topic records in KRaft mode
- pattern: "kafka.server<type=broker-metadata-metrics><>(.+):"
name: kafka_server_brokermetadatametrics_$1
type: GAUGE
zookeeper-metrics-config.yml: |
# See https://github.com/prometheus/jmx_exporter for more info about JMX Prometheus Exporter metrics
lowercaseOutputName: true
rules:
# replicated Zookeeper
- pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d+)><>(\\w+)"
name: "zookeeper_$2"
type: GAUGE
- pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d+), name1=replica.(\\d+)><>(\\w+)"
name: "zookeeper_$3"
type: GAUGE
labels:
replicaId: "$2"
- pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d+), name1=replica.(\\d+), name2=(\\w+)><>(Packets\\w+)"
name: "zookeeper_$4"
type: COUNTER
labels:
replicaId: "$2"
memberType: "$3"
- pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d+), name1=replica.(\\d+), name2=(\\w+)><>(\\w+)"
name: "zookeeper_$4"
type: GAUGE
labels:
replicaId: "$2"
memberType: "$3"
- pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d+), name1=replica.(\\d+), name2=(\\w+), name3=(\\w+)><>(\\w+)"
name: "zookeeper_$4_$5"
type: GAUGE
labels:
replicaId: "$2"
memberType: "$3"

View File

@@ -0,0 +1,40 @@
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMPodScrape
metadata:
name: {{ .Release.Name }}
spec:
podMetricsEndpoints:
- port: tcp-prometheus
scheme: http
relabelConfigs:
- separator: ;
regex: __meta_kubernetes_pod_label_(strimzi_io_.+)
replacement: $1
action: labelmap
- sourceLabels: [__meta_kubernetes_namespace]
separator: ;
regex: (.*)
targetLabel: namespace
replacement: $1
action: replace
- sourceLabels: [__meta_kubernetes_pod_name]
separator: ;
regex: (.*)
targetLabel: pod
replacement: $1
action: replace
- sourceLabels: [__meta_kubernetes_pod_node_name]
separator: ;
regex: (.*)
targetLabel: node
replacement: $1
action: replace
- sourceLabels: [__meta_kubernetes_pod_host_ip]
separator: ;
regex: (.*)
targetLabel: node_ip
replacement: $1
action: replace
selector:
matchLabels:
app.kubernetes.io/instance: {{ .Release.Name }}

View File

@@ -1 +1 @@
ghcr.io/aenix-io/cozystack/cluster-autoscaler:0.15.0@sha256:73701e37727eedaafdf9efe4baefcf0835f064ee8731219f0c0186c0d0781a5c
ghcr.io/aenix-io/cozystack/cluster-autoscaler:0.15.0@sha256:fa37449761fefd2e04385be505cb669b0f1efcddc2f1ba42c4fcd38af4ea4361

View File

@@ -1 +1 @@
ghcr.io/aenix-io/cozystack/kubevirt-cloud-provider:0.15.0@sha256:5efee8f76d0948936255c4cabad58057523502f77ceb40216ffae7e02841f85b
ghcr.io/aenix-io/cozystack/kubevirt-cloud-provider:0.15.0@sha256:5f1ab06264c09f3dc7bfc43db0b6e68235ac44f83e8a5277dfb74fe6902d6dca

View File

@@ -1 +1 @@
ghcr.io/aenix-io/cozystack/kubevirt-csi-driver:0.15.0@sha256:daac6de8ad25de9d30eb5e928271cebaaa59193889231a54fd4f60e8a1c5f51a
ghcr.io/aenix-io/cozystack/kubevirt-csi-driver:0.15.0@sha256:7b206eb9c1b44cead6e0e4931c569612fa8034f026d845469ebd2d2ef46b85ab

View File

@@ -1 +1 @@
ghcr.io/aenix-io/cozystack/ubuntu-container-disk:v1.30.1@sha256:7bacb7853e656b6149c3a38c5cd925891011eb94358d4d11e154082ab8b3a643
ghcr.io/aenix-io/cozystack/ubuntu-container-disk:v1.30.1@sha256:b882ff398d297824dbf73dee948cfa684cb18006b91bd152e1f03ed22d7190fa

View File

@@ -1 +1 @@
ghcr.io/aenix-io/cozystack/mariadb-backup:0.5.2@sha256:4bbfbb397bd7ecea45507ca47989c51429c4a24f40853ac92583e5b5b352fbea
ghcr.io/aenix-io/cozystack/mariadb-backup:0.5.2@sha256:5994e3f7a57054e3cebc532fa29a90edc9a97befe8993cec011e3e726c83e9bd

View File

@@ -1 +1 @@
ghcr.io/aenix-io/cozystack/postgres-backup:0.8.0@sha256:6a8ec7e7052f2d02ec5457d7cbac6ee52b3ed93a883988a192d1394fc7c88117
ghcr.io/aenix-io/cozystack/postgres-backup:0.8.0@sha256:71cdf8bdab3d6f27edeec0ab33ddd8c7b56675a4f2d7bbf4d3e09b70ecb43375

View File

@@ -4,4 +4,4 @@ description: Separated tenant namespace
icon: /logos/tenant.svg
type: application
version: 1.6.7
version: 1.7.0

View File

@@ -0,0 +1,27 @@
{{- $cozyConfig := lookup "v1" "ConfigMap" "cozy-system" "cozystack" }}
{{- $oidcEnabled := index $cozyConfig.data "oidc-enabled" }}
{{- if $oidcEnabled }}
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: info
namespace: {{ include "tenant.name" . }}
annotations:
helm.sh/resource-policy: keep
labels:
cozystack.io/ui: "true"
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
spec:
chart:
spec:
chart: info
reconcileStrategy: Revision
sourceRef:
kind: HelmRepository
name: cozystack-extra
namespace: cozy-public
version: "*"
interval: 1m0s
timeout: 5m0s
{{- end }}

View File

@@ -34,7 +34,11 @@ rules:
- apiGroups: ["apps.cozystack.io"]
resources: ['*']
verbs: ['*']
- apiGroups:
- cozystack.io
resources:
- workloadmonitors
verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
@@ -103,6 +107,11 @@ rules:
- get
- list
- watch
- apiGroups:
- cozystack.io
resources:
- workloadmonitors
verbs: ["get", "list", "watch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
@@ -175,6 +184,11 @@ rules:
verbs:
- get
- list
- apiGroups:
- cozystack.io
resources:
- workloadmonitors
verbs: ["get", "list", "watch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
@@ -258,6 +272,7 @@ rules:
- virtualmachines
- vmdisks
- vminstances
- infos
verbs:
- get
- list
@@ -266,6 +281,11 @@ rules:
- update
- patch
- delete
- apiGroups:
- cozystack.io
resources:
- workloadmonitors
verbs: ["get", "list", "watch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
@@ -334,6 +354,11 @@ rules:
- '*'
verbs:
- '*'
- apiGroups:
- cozystack.io
resources:
- workloadmonitors
verbs: ["get", "list", "watch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1

View File

@@ -23,7 +23,8 @@ kafka 0.2.1 3ac17018
kafka 0.2.2 d0758692
kafka 0.2.3 5ca8823
kafka 0.3.0 c07c4bbd
kafka 0.3.1 HEAD
kafka 0.3.1 b7375f73
kafka 0.3.2 HEAD
kubernetes 0.1.0 f642698
kubernetes 0.2.0 7cd7de73
kubernetes 0.3.0 7caccec1
@@ -100,7 +101,9 @@ tenant 1.6.3 2057bb96
tenant 1.6.4 3c9e50a4
tenant 1.6.5 f1e11451
tenant 1.6.6 d4634797
tenant 1.6.7 HEAD
tenant 1.6.7 06afcf27
tenant 1.6.8 4cc48e6f
tenant 1.7.0 HEAD
virtual-machine 0.1.4 f2015d6
virtual-machine 0.1.5 7cd7de7
virtual-machine 0.2.0 5ca8823
@@ -110,14 +113,16 @@ virtual-machine 0.5.0 cad9cde
virtual-machine 0.6.0 0e728870
virtual-machine 0.7.0 af58018a
virtual-machine 0.7.1 05857b95
virtual-machine 0.8.0 HEAD
virtual-machine 0.8.0 3fa4dd3
virtual-machine 0.8.1 HEAD
vm-disk 0.1.0 HEAD
vm-instance 0.1.0 ced8e5b9
vm-instance 0.2.0 4f767ee3
vm-instance 0.3.0 0e728870
vm-instance 0.4.0 af58018a
vm-instance 0.4.1 05857b95
vm-instance 0.5.0 HEAD
vm-instance 0.5.0 3fa4dd3
vm-instance 0.5.1 HEAD
vpn 0.1.0 f642698
vpn 0.2.0 7151424
vpn 0.3.0 a2bcf100

View File

@@ -17,10 +17,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.8.0
version: 0.8.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "0.8.0"
appVersion: "0.8.1"

View File

@@ -15,7 +15,7 @@ spec:
externalTrafficPolicy: Local
allocateLoadBalancerNodePorts: false
selector:
{{- include "virtual-machine.labels" . | nindent 4 }}
{{- include "virtual-machine.selectorLabels" . | nindent 4 }}
ports:
{{- if eq .Values.externalMethod "WholeIP" }}
- port: 65535

View File

@@ -17,10 +17,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.5.0
version: 0.5.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "0.5.0"
appVersion: "0.5.1"

View File

@@ -15,7 +15,7 @@ spec:
externalTrafficPolicy: Local
allocateLoadBalancerNodePorts: false
selector:
{{- include "virtual-machine.labels" . | nindent 4 }}
{{- include "virtual-machine.selectorLabels" . | nindent 4 }}
ports:
{{- if eq .Values.externalMethod "WholeIP" }}
- port: 65535

View File

@@ -30,7 +30,7 @@ image-cozystack: run-builder
--provenance false \
--tag $(REGISTRY)/cozystack:$(call settag,$(TAG)) \
--cache-from type=registry,ref=$(REGISTRY)/cozystack:latest \
--platform linux/amd64,linux/arm64 \
--platform linux/amd64 \
--cache-to type=inline \
--metadata-file images/cozystack.json \
--push=$(PUSH) \
@@ -43,7 +43,7 @@ image-talos: run-builder
test -f ../../../_out/assets/installer-amd64.tar || make talos-installer
skopeo copy docker-archive:../../../_out/assets/installer-amd64.tar docker://$(REGISTRY)/talos:$(call settag,$(TALOS_VERSION))
image-matchbox: run-builder
image-matchbox: run-builder
test -f ../../../_out/assets/kernel-amd64 || make talos-kernel
test -f ../../../_out/assets/initramfs-metal-amd64.xz || make talos-initramfs
docker buildx build -f images/matchbox/Dockerfile ../../.. \

View File

@@ -1,2 +1,2 @@
cozystack:
image: ghcr.io/aenix-io/cozystack/cozystack:v0.25.0@sha256:86860fd1ddcd9709cb2a756409bc4983c44cd09b961d3b677469767fc93a7e36
image: ghcr.io/aenix-io/cozystack/cozystack:v0.25.3@sha256:d0d3739f2ffd8edca7a143d48bc4cf7c3e4f84910fb76c340e1e8a43bf303c7c

View File

@@ -232,24 +232,67 @@ releases:
namespace: cozy-dashboard
dependsOn: [cilium,kubeovn,keycloak-configure]
values:
kubeapps:
{{- if .Capabilities.APIVersions.Has "source.toolkit.fluxcd.io/v1" }}
{{- with (lookup "source.toolkit.fluxcd.io/v1" "HelmRepository" "cozy-public" "").items }}
redis:
master:
podAnnotations:
{{- range $index, $repo := . }}
{{- with (($repo.status).artifact).revision }}
repository.cozystack.io/{{ $repo.metadata.name }}: {{ quote . }}
redis:
master:
podAnnotations:
{{- range $index, $repo := . }}
{{- with (($repo.status).artifact).revision }}
repository.cozystack.io/{{ $repo.metadata.name }}: {{ quote . }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
dashboard:
image:
registry: ghcr.io/aenix-io/cozystack
repository: dashboard
tag: v0.25.0
digest: "sha256:81e7b625c667bce5fc339eb97c8e115eafb82f66df4501550b3677ac53f6e234"
{{- $wlConfigmap := lookup "v1" "ConfigMap" "cozy-dashboard" "white-label" }}
{{- $locale := dig "data" "locale" "" $wlConfigmap }}
{{- if $locale }}
customLocale:
"Kubeapps": {{ $locale }}
{{- end }}
customStyle: |
{{- $logoImage := dig "data" "logo" "" $wlConfigmap }}
{{- if $logoImage }}
.kubeapps-logo {
background-image: {{ $logoImage }}
}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- $dashboardKCconfig := lookup "v1" "ConfigMap" "cozy-dashboard" "kubeapps-auth-config" }}
{{- $dashboardKCValues := dig "data" "values.yaml" "" $dashboardKCconfig }}
{{- if $dashboardKCValues }}
{{- $dashboardKCValues | nindent 4 }}
{{- end }}
#serviceaccount-selector {
display: none;
}
.login-moreinfo {
display: none;
}
a[href="#/docs"] {
display: none;
}
.login-group .clr-form-control .clr-control-label {
display: none;
}
.appview-separator div.appview-first-row div.center {
display: none;
}
.appview-separator div.appview-first-row section[aria-labelledby="app-secrets"] {
display: none;
}
.appview-first-row section[aria-labelledby="access-urls-title"] {
width: 100%;
}
{{- $dashboardKCconfig := lookup "v1" "ConfigMap" "cozy-dashboard" "kubeapps-auth-config" }}
{{- $dashboardKCValues := dig "data" "values.yaml" "" $dashboardKCconfig }}
{{- if $dashboardKCValues }}
valuesFrom:
- kind: ConfigMap
name: kubeapps-auth-config
valuesKey: values.yaml
{{- end }}
{{- if eq $oidcEnabled "true" }}
dependsOn: [keycloak-configure]

View File

@@ -155,9 +155,9 @@ releases:
chart: cozy-dashboard
namespace: cozy-dashboard
values:
kubeapps:
{{- if .Capabilities.APIVersions.Has "source.toolkit.fluxcd.io/v1" }}
{{- with (lookup "source.toolkit.fluxcd.io/v1" "HelmRepository" "cozy-public" "").items }}
kubeapps:
redis:
master:
podAnnotations:
@@ -168,12 +168,54 @@ releases:
{{- end }}
{{- end }}
{{- end }}
{{- $dashboardKCconfig := lookup "v1" "ConfigMap" "cozy-dashboard" "kubeapps-auth-config" }}
{{- $dashboardKCValues := dig "data" "values.yaml" "" $dashboardKCconfig }}
{{- if $dashboardKCValues }}
{{- $dashboardKCValues | nindent 4 }}
{{- end }}
dashboard:
image:
registry: ghcr.io/aenix-io/cozystack
repository: dashboard
tag: v0.25.0
digest: "sha256:81e7b625c667bce5fc339eb97c8e115eafb82f66df4501550b3677ac53f6e234"
{{- $wlConfigmap := lookup "v1" "ConfigMap" "cozy-dashboard" "white-label" }}
{{- $locale := dig "data" "locale" "" $wlConfigmap }}
{{- if $locale }}
customLocale:
"Kubeapps": {{ $locale }}
{{- end }}
customStyle: |
{{- $logoImage := dig "data" "logo" "" $wlConfigmap }}
{{- if $logoImage }}
.kubeapps-logo {
background-image: {{ $logoImage }}
}
{{- end }}
#serviceaccount-selector {
display: none;
}
.login-moreinfo {
display: none;
}
a[href="#/docs"] {
display: none;
}
.login-group .clr-form-control .clr-control-label {
display: none;
}
.appview-separator div.appview-first-row div.center {
display: none;
}
.appview-separator div.appview-first-row section[aria-labelledby="app-secrets"] {
display: none;
}
.appview-first-row section[aria-labelledby="access-urls-title"] {
width: 100%;
}
{{- $dashboardKCconfig := lookup "v1" "ConfigMap" "cozy-dashboard" "kubeapps-auth-config" }}
{{- $dashboardKCValues := dig "data" "values.yaml" "" $dashboardKCconfig }}
{{- if $dashboardKCValues }}
valuesFrom:
- kind: ConfigMap
name: kubeapps-auth-config
valuesKey: values.yaml
{{- end }}
{{- if eq $oidcEnabled "true" }}
dependsOn: [keycloak-configure]

View File

@@ -1,2 +1,2 @@
e2e:
image: ghcr.io/aenix-io/cozystack/e2e-sandbox:v0.25.0@sha256:c9165c329fd2536e0342345792586d3e6f4007a6e6bd2cce133f17088fd3e785
image: ghcr.io/aenix-io/cozystack/e2e-sandbox:v0.25.3@sha256:3c505ef20030ee4ff9412553c7ecc2077c01fb2785ff48991c404e09cd0db69f

View File

@@ -1 +1 @@
ghcr.io/aenix-io/cozystack/matchbox:v0.25.0@sha256:ffcfc340f19c7c6bc50f49d75b41c802df9bddc71d9e6fdeb9b9ad7dc242a5d1
ghcr.io/aenix-io/cozystack/matchbox:v0.25.3@sha256:2e5c6e4530f3421f8133485d2bb092374ec10ae198a4b685aef61ff1e7fa9aff

View File

@@ -0,0 +1,2 @@
.helmignore
/logos

View File

@@ -0,0 +1,6 @@
apiVersion: v2
name: info
description: Info
icon: /logos/info.svg
type: application
version: 1.0.0

View File

@@ -0,0 +1,3 @@
NAME=etcd
include ../../../scripts/package.mk

View File

@@ -0,0 +1,18 @@
# Info
### Kubeconfig for tenant
### Kubelogin
For using kubeconfig need install kubelogin.
```bash
# Homebrew (macOS and Linux)
brew install int128/kubelogin/kubelogin
# Krew (macOS, Linux, Windows and ARM)
kubectl krew install oidc-login
# Chocolatey (Windows)
choco install kubelogin
```

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg fill="#000000" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="800px" height="800px" viewBox="0 0 32 32" xml:space="preserve">
<g>
<path d="M17.962,24.725l1.806,0.096v2.531h-7.534v-2.406l1.045-0.094c0.568-0.063,0.916-0.254,0.916-1.014v-8.801
c0-0.699-0.188-0.92-0.791-0.92l-1.106-0.062v-2.626h5.666L17.962,24.725L17.962,24.725z M15.747,4.648
c1.394,0,2.405,1.047,2.405,2.374c0,1.331-1.014,2.313-2.438,2.313c-1.454,0-2.404-0.982-2.404-2.313
C13.31,5.695,14.26,4.648,15.747,4.648z M16,32C7.178,32,0,24.822,0,16S7.178,0,16,0c8.82,0,16,7.178,16,16S24.82,32,16,32z M16,3
C8.832,3,3,8.832,3,16s5.832,13,13,13s13-5.832,13-13S23.168,3,16,3z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 963 B

View File

@@ -1,13 +1,12 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: {{ include "tenant.name" . }}-dashboard-resources
namespace: {{ .Release.namespace }}
name: info-dashboard-resources
rules:
- apiGroups:
- ""
resources:
- secrets
resourceNames:
- kubeconfig-{{ include "tenant.name" . }}
- kubeconfig-{{ .Release.Namespace }}
verbs: ["get", "list", "watch"]

View File

@@ -15,8 +15,7 @@
apiVersion: v1
kind: Secret
metadata:
name: kubeconfig-{{ include "tenant.name" . }}
namespace: tenant-root
name: kubeconfig-{{ .Release.Namespace }}
stringData:
kubeconfig: |
apiVersion: v1
@@ -28,10 +27,10 @@ stringData:
contexts:
- context:
cluster: cluster
namespace: {{ include "tenant.name" . }}
namespace: {{ .Release.Namespace }}
user: keycloak
name: {{ include "tenant.name" . }}
current-context: {{ include "tenant.name" . }}
name: {{ .Release.Namespace }}
current-context: {{ .Release.Namespace }}
users:
- name: keycloak
user:

View File

@@ -0,0 +1 @@
{}

View File

View File

@@ -34,3 +34,4 @@ control-plane/kube-etcd
kubevirt/kubevirt-control-plane
flux/flux-control-plane
flux/flux-stats
kafka/strimzi-kafka

View File

@@ -1 +1 @@
ghcr.io/aenix-io/cozystack/grafana:1.8.0@sha256:0377abd3cb2c6e27b12ac297f1859aa4d550f1aa14989f824f2315d0dfd1a5b2
ghcr.io/aenix-io/cozystack/grafana:1.8.0@sha256:1a484f970903cc38745251f3fbc1d4737065f2d0a8a08c0adccc8972aa25aa59

View File

@@ -7,6 +7,7 @@ etcd 2.2.0 5ca8823
etcd 2.3.0 b908400d
etcd 2.4.0 cb7b8158
etcd 2.5.0 HEAD
info 1.0.0 HEAD
ingress 1.0.0 f642698
ingress 1.1.0 838bee5d
ingress 1.2.0 ced8e5b

View File

@@ -1 +1 @@
ghcr.io/aenix-io/cozystack/s3manager:v0.5.0@sha256:e4a4ab82290e6fc940beb799d5c15c7ed76f9752d3fce21fae6c2596a5da20b0
ghcr.io/aenix-io/cozystack/s3manager:v0.5.0@sha256:e50aecd2158490cb383cef28b8b066aef847782cd826b161fccd91c928fcb500

View File

@@ -14,6 +14,13 @@ metadata:
spec:
# https://github.com/clastix/cluster-api-control-plane-provider-kamaji
version: v0.11.0
deployment:
containers:
- name: manager
resources:
limits:
cpu: 1024m
memory: 1024Mi
---
apiVersion: operator.cluster.x-k8s.io/v1alpha2
kind: BootstrapProvider

View File

@@ -2,5 +2,5 @@ apiVersion: v2
name: cozy-proxy
description: A simple kube-proxy addon for 1:1 NAT services in Kubernetes using an NFT backend
type: application
version: 0.1.0
appVersion: 0.1.0
version: 0.1.2
appVersion: 0.1.2

View File

@@ -1,6 +1,6 @@
image:
repository: ghcr.io/aenix-io/cozystack/cozy-proxy
tag: v0.1.1
tag: v0.1.2
pullPolicy: IfNotPresent
daemonset:

View File

@@ -314,3 +314,17 @@ data:
kind: HelmRepository
name: cozystack-extra
namespace: cozy-public
- application:
kind: Info
plural: infos
singular: info
release:
prefix: ""
labels:
cozystack.io/ui: "true"
chart:
name: info
sourceRef:
kind: HelmRepository
name: cozystack-extra
namespace: cozy-public

View File

@@ -1,2 +1,2 @@
cozystackAPI:
image: ghcr.io/aenix-io/cozystack/cozystack-api:v0.25.0@sha256:513c49f8e2c1e2489faff03aacfcd609324ed5dc31ac594f9dd8a6feec0e7884
image: ghcr.io/aenix-io/cozystack/cozystack-api:v0.25.3@sha256:5a37def468ce2356d933c80efa71e2eb2608b549602be2f5f07c7a63df4c79cd

View File

@@ -1,5 +1,5 @@
cozystackController:
image: ghcr.io/aenix-io/cozystack/cozystack-controller:v0.25.0@sha256:9fe9369a88f7bf317bf84cf05fe733f50879467bf7b2ab58f50d914ff1b253cc
image: ghcr.io/aenix-io/cozystack/cozystack-controller:v0.25.3@sha256:15ef459bac44b5fedadb4bef987b5236a23bfbc3066156e87e5d13b0d7d60063
debug: false
disableTelemetry: false
cozystackVersion: "v0.25.0"
cozystackVersion: "v0.25.3"

View File

@@ -76,7 +76,7 @@ data:
"kubeappsNamespace": {{ .Release.Namespace | quote }},
"helmGlobalNamespace": {{ include "kubeapps.helmGlobalPackagingNamespace" . | quote }},
"carvelGlobalNamespace": {{ .Values.kubeappsapis.pluginConfig.kappController.packages.v1alpha1.globalPackagingNamespace | quote }},
"appVersion": "v0.25.0",
"appVersion": "v0.25.3",
"authProxyEnabled": {{ .Values.authProxy.enabled }},
"oauthLoginURI": {{ .Values.authProxy.oauthLoginURI | quote }},
"oauthLogoutURI": {{ .Values.authProxy.oauthLogoutURI | quote }},

View File

@@ -1,7 +1,7 @@
FROM bitnami/node:20.15.1 AS build
WORKDIR /app
ARG COMMIT_REF=dd02680d796c962b8dcc4e5ea70960a846c1acdc
ARG COMMIT_REF=190ea544aeb0be74bb6d1aa4bb474910559e7ecd
RUN wget -O- https://github.com/aenix-io/kubeapps/archive/${COMMIT_REF}.tar.gz | tar xzf - --strip-components=2 kubeapps-${COMMIT_REF}/dashboard
RUN yarn install --frozen-lockfile

View File

@@ -40,14 +40,14 @@ kubeapps:
image:
registry: ghcr.io/aenix-io/cozystack
repository: dashboard
tag: v0.25.0
digest: "sha256:81e7b625c667bce5fc339eb97c8e115eafb82f66df4501550b3677ac53f6e234"
tag: v0.25.3
digest: "sha256:4a5dab471c358f826920693591d153dacb81ff7d499daa19edd1f74109f12224"
kubeappsapis:
image:
registry: ghcr.io/aenix-io/cozystack
repository: kubeapps-apis
tag: v0.25.0
digest: "sha256:72308ae00344d48e7ed58c5b1383874e84bcd82ac53b76857172b9ef510d53a6"
tag: v0.25.3
digest: "sha256:69e16490aff84e9084748011b7ae212679b8916cb882032436df450202aea37b"
pluginConfig:
flux:
packages:
@@ -361,3 +361,17 @@ kubeapps:
kind: HelmRepository
name: cozystack-extra
namespace: cozy-public
- application:
kind: Info
plural: infos
singular: info
release:
prefix: ""
labels:
cozystack.io/ui: "true"
chart:
name: info
sourceRef:
kind: HelmRepository
name: cozystack-extra
namespace: cozy-public

View File

@@ -1,5 +1,5 @@
apiVersion: v2
appVersion: 0.43.0
appVersion: 0.45.0
description: 'Strimzi: Apache Kafka running on Kubernetes'
home: https://strimzi.io/
icon: https://raw.githubusercontent.com/strimzi/strimzi-kafka-operator/main/documentation/logo/strimzi_logo.png
@@ -24,4 +24,4 @@ maintainers:
name: strimzi-kafka-operator
sources:
- https://github.com/strimzi/strimzi-kafka-operator
version: 0.43.0
version: 0.45.0

View File

@@ -5,12 +5,15 @@ Strimzi provides a way to run an [Apache Kafka®](https://kafka.apache.org) clus
See our [website](https://strimzi.io) for more details about the project.
**!!! IMPORTANT !!!**
Upgrading to Strimzi 0.32 and newer directly from Strimzi 0.22 and earlier is no longer possible.
Please follow the [documentation](https://strimzi.io/docs/operators/latest/full/deploying.html#assembly-upgrade-str) for more details.
**!!! IMPORTANT !!!**
Strimzi 0.43.0 (and any of its patch releases) is the last Strimzi version with support for Kubernetes 1.23 and 1.24.
From Strimzi 0.44.0 on, Strimzi will support only Kubernetes 1.25 and newer.
* **Strimzi 0.45 is the last Strimzi version with support for ZooKeeper-based Apache Kafka clusters and MirrorMaker 1 deployments.**
**Please make sure to [migrate to KRaft](https://strimzi.io/docs/operators/latest/full/deploying.html#assembly-kraft-mode-str) and MirrorMaker 2 before upgrading to Strimzi 0.46 or newer.**
* Strimzi 0.45 is the last Strimzi version to include the [Strimzi EnvVar Configuration Provider](https://github.com/strimzi/kafka-env-var-config-provider) (deprecated in Strimzi 0.38.0) and [Strimzi MirrorMaker 2 Extensions](https://github.com/strimzi/mirror-maker-2-extensions) (deprecated in Strimzi 0.28.0).
Please use the Apache Kafka [EnvVarConfigProvider](https://github.com/strimzi/kafka-env-var-config-provider?tab=readme-ov-file#deprecation-notice) and [Identity Replication Policy](https://github.com/strimzi/mirror-maker-2-extensions?tab=readme-ov-file#identity-replication-policy) instead.
* From Strimzi 0.44.0 on, we support only Kubernetes 1.25 and newer.
Kubernetes 1.23 and 1.24 are not supported anymore.
* Upgrading to Strimzi 0.32 and newer directly from Strimzi 0.22 and earlier is no longer possible.
Please follow the [documentation](https://strimzi.io/docs/operators/latest/full/deploying.html#assembly-upgrade-str) for more details.
## Introduction
@@ -21,14 +24,16 @@ cluster using the [Helm](https://helm.sh) package manager.
### Supported Features
* **Manages the Kafka Cluster** - Deploys and manages all of the components of this complex application, including dependencies like Apache ZooKeeper® that are traditionally hard to administer.
* **KRaft support** - Allows running Apache Kafka clusters in the KRaft mode (without ZooKeeper).
* **KRaft support** - Allows running Apache Kafka clusters in the KRaft mode (without ZooKeeper).
* **Includes Kafka Connect** - Allows for configuration of common data sources and sinks to move data into and out of the Kafka cluster.
* **Topic Management** - Creates and manages Kafka Topics within the cluster.
* **User Management** - Creates and manages Kafka Users within the cluster.
* **Connector Management** - Creates and manages Kafka Connect connectors.
* **Includes Kafka Mirror Maker 1 and 2** - Allows for mirroring data between different Apache Kafka® clusters.
* **Includes Kafka MirrorMaker** - Allows for mirroring data between different Apache Kafka® clusters.
* **Includes HTTP Kafka Bridge** - Allows clients to send and receive messages through an Apache Kafka® cluster via the HTTP protocol.
* **Includes Cruise Control** - Automates the process of balancing partitions across an Apache Kafka® cluster.
* **Auto-rebalancing when scaling** - Automatically rebalance the Kafka cluster after a scale-up or before a scale-down.
* **Tiered storage** - Offloads older, less critical data to a lower-cost, lower-performance storage tier, such as object storage.
* **Prometheus monitoring** - Built-in support for monitoring using Prometheus.
* **Grafana Dashboards** - Built-in support for loading Grafana® dashboards via the grafana_sidecar
@@ -60,7 +65,7 @@ Strimzi is licensed under the [Apache License, Version 2.0](https://github.com/s
## Prerequisites
- Kubernetes 1.23+
- Kubernetes 1.25+
## Installing the Chart
@@ -97,7 +102,7 @@ the documentation for more details.
| `watchAnyNamespace` | Watch the whole Kubernetes cluster (all namespaces) | `false` |
| `defaultImageRegistry` | Default image registry for all the images | `quay.io` |
| `defaultImageRepository` | Default image registry for all the images | `strimzi` |
| `defaultImageTag` | Default image tag for all the images except Kafka Bridge | `0.43.0` |
| `defaultImageTag` | Default image tag for all the images except Kafka Bridge | `0.45.0` |
| `image.registry` | Override default Cluster Operator image registry | `nil` |
| `image.repository` | Override default Cluster Operator image repository | `nil` |
| `image.name` | Cluster Operator image name | `cluster-operator` |
@@ -161,7 +166,7 @@ the documentation for more details.
| `kafkaBridge.image.registry` | Override default Kafka Bridge image registry | `quay.io` |
| `kafkaBridge.image.repository` | Override default Kafka Bridge image repository | `strimzi` |
| `kafkaBridge.image.name` | Kafka Bridge image name | `kafka-bridge` |
| `kafkaBridge.image.tag` | Override default Kafka Bridge image tag | `0.30.0` |
| `kafkaBridge.image.tag` | Override default Kafka Bridge image tag | `0.31.1` |
| `kafkaBridge.image.digest` | Override Kafka Bridge image tag with digest | `nil` |
| `kafkaExporter.image.registry` | Override default Kafka Exporter image registry | `nil` |
| `kafkaExporter.image.repository` | Override default Kafka Exporter image repository | `nil` |

View File

@@ -480,6 +480,18 @@ spec:
publishNotReadyAddresses:
type: boolean
description: Configures whether the service endpoints are considered "ready" even if the Pods themselves are not. Defaults to `false`. This field can not be used with `internal` listeners.
hostTemplate:
type: string
description: "Configures the template for generating the hostnames of the individual brokers. Valid placeholders that you can use in the template are `{nodeId}` and `{nodePodName}`."
advertisedHostTemplate:
type: string
description: "Configures the template for generating the advertised hostnames of the individual brokers. Valid placeholders that you can use in the template are `{nodeId}` and `{nodePodName}`."
allocateLoadBalancerNodePorts:
type: boolean
description: |-
Configures whether to allocate NodePort automatically for the `Service` with type `LoadBalancer`.
This is a one to one with the `spec.allocateLoadBalancerNodePorts` configuration in the `Service` type
For `loadbalancer` listeners only.
description: Additional listener configuration.
networkPolicyPeers:
type: array
@@ -1561,13 +1573,32 @@ spec:
readOnly:
type: boolean
description: PersistentVolumeClaim object to use to populate the volume.
csi:
type: object
properties:
driver:
type: string
fsType:
type: string
nodePublishSecretRef:
type: object
properties:
name:
type: string
readOnly:
type: boolean
volumeAttributes:
additionalProperties:
type: string
type: object
description: CSIVolumeSource object to use to populate the volume.
oneOf:
- properties:
secret: {}
configMap: {}
emptyDir: {}
persistentVolumeClaim: {}
required: []
csi: {}
description: Additional volumes that can be mounted to the pod.
description: Template for Kafka `Pods`.
bootstrapService:
@@ -1798,6 +1829,48 @@ spec:
value:
type: string
description: The environment variable value.
valueFrom:
type: object
properties:
secretKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a secret.
configMapKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a config map.
oneOf:
- properties:
secretKeyRef: {}
required:
- secretKeyRef
- properties:
configMapKeyRef: {}
required:
- configMapKeyRef
description: Reference to the secret or config map property to which the environment variable is set.
oneOf:
- properties:
value: {}
required:
- value
- properties:
valueFrom: {}
required:
- valueFrom
description: Environment variables which should be applied to the container.
securityContext:
type: object
@@ -1899,6 +1972,48 @@ spec:
value:
type: string
description: The environment variable value.
valueFrom:
type: object
properties:
secretKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a secret.
configMapKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a config map.
oneOf:
- properties:
secretKeyRef: {}
required:
- secretKeyRef
- properties:
configMapKeyRef: {}
required:
- configMapKeyRef
description: Reference to the secret or config map property to which the environment variable is set.
oneOf:
- properties:
value: {}
required:
- value
- properties:
valueFrom: {}
required:
- valueFrom
description: Environment variables which should be applied to the container.
securityContext:
type: object
@@ -3012,13 +3127,32 @@ spec:
readOnly:
type: boolean
description: PersistentVolumeClaim object to use to populate the volume.
csi:
type: object
properties:
driver:
type: string
fsType:
type: string
nodePublishSecretRef:
type: object
properties:
name:
type: string
readOnly:
type: boolean
volumeAttributes:
additionalProperties:
type: string
type: object
description: CSIVolumeSource object to use to populate the volume.
oneOf:
- properties:
secret: {}
configMap: {}
emptyDir: {}
persistentVolumeClaim: {}
required: []
csi: {}
description: Additional volumes that can be mounted to the pod.
description: Template for ZooKeeper `Pods`.
clientService:
@@ -3141,6 +3275,48 @@ spec:
value:
type: string
description: The environment variable value.
valueFrom:
type: object
properties:
secretKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a secret.
configMapKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a config map.
oneOf:
- properties:
secretKeyRef: {}
required:
- secretKeyRef
- properties:
configMapKeyRef: {}
required:
- configMapKeyRef
description: Reference to the secret or config map property to which the environment variable is set.
oneOf:
- properties:
value: {}
required:
- value
- properties:
valueFrom: {}
required:
- valueFrom
description: Environment variables which should be applied to the container.
securityContext:
type: object
@@ -4319,13 +4495,32 @@ spec:
readOnly:
type: boolean
description: PersistentVolumeClaim object to use to populate the volume.
csi:
type: object
properties:
driver:
type: string
fsType:
type: string
nodePublishSecretRef:
type: object
properties:
name:
type: string
readOnly:
type: boolean
volumeAttributes:
additionalProperties:
type: string
type: object
description: CSIVolumeSource object to use to populate the volume.
oneOf:
- properties:
secret: {}
configMap: {}
emptyDir: {}
persistentVolumeClaim: {}
required: []
csi: {}
description: Additional volumes that can be mounted to the pod.
description: Template for Entity Operator `Pods`.
topicOperatorContainer:
@@ -4342,6 +4537,48 @@ spec:
value:
type: string
description: The environment variable value.
valueFrom:
type: object
properties:
secretKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a secret.
configMapKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a config map.
oneOf:
- properties:
secretKeyRef: {}
required:
- secretKeyRef
- properties:
configMapKeyRef: {}
required:
- configMapKeyRef
description: Reference to the secret or config map property to which the environment variable is set.
oneOf:
- properties:
value: {}
required:
- value
- properties:
valueFrom: {}
required:
- valueFrom
description: Environment variables which should be applied to the container.
securityContext:
type: object
@@ -4443,6 +4680,48 @@ spec:
value:
type: string
description: The environment variable value.
valueFrom:
type: object
properties:
secretKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a secret.
configMapKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a config map.
oneOf:
- properties:
secretKeyRef: {}
required:
- secretKeyRef
- properties:
configMapKeyRef: {}
required:
- configMapKeyRef
description: Reference to the secret or config map property to which the environment variable is set.
oneOf:
- properties:
value: {}
required:
- value
- properties:
valueFrom: {}
required:
- valueFrom
description: Environment variables which should be applied to the container.
securityContext:
type: object
@@ -4544,6 +4823,48 @@ spec:
value:
type: string
description: The environment variable value.
valueFrom:
type: object
properties:
secretKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a secret.
configMapKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a config map.
oneOf:
- properties:
secretKeyRef: {}
required:
- secretKeyRef
- properties:
configMapKeyRef: {}
required:
- configMapKeyRef
description: Reference to the secret or config map property to which the environment variable is set.
oneOf:
- properties:
value: {}
required:
- value
- properties:
valueFrom: {}
required:
- valueFrom
description: Environment variables which should be applied to the container.
securityContext:
type: object
@@ -5593,13 +5914,32 @@ spec:
readOnly:
type: boolean
description: PersistentVolumeClaim object to use to populate the volume.
csi:
type: object
properties:
driver:
type: string
fsType:
type: string
nodePublishSecretRef:
type: object
properties:
name:
type: string
readOnly:
type: boolean
volumeAttributes:
additionalProperties:
type: string
type: object
description: CSIVolumeSource object to use to populate the volume.
oneOf:
- properties:
secret: {}
configMap: {}
emptyDir: {}
persistentVolumeClaim: {}
required: []
csi: {}
description: Additional volumes that can be mounted to the pod.
description: Template for Cruise Control `Pods`.
apiService:
@@ -5671,6 +6011,48 @@ spec:
value:
type: string
description: The environment variable value.
valueFrom:
type: object
properties:
secretKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a secret.
configMapKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a config map.
oneOf:
- properties:
secretKeyRef: {}
required:
- secretKeyRef
- properties:
configMapKeyRef: {}
required:
- configMapKeyRef
description: Reference to the secret or config map property to which the environment variable is set.
oneOf:
- properties:
value: {}
required:
- value
- properties:
valueFrom: {}
required:
- valueFrom
description: Environment variables which should be applied to the container.
securityContext:
type: object
@@ -5772,6 +6154,48 @@ spec:
value:
type: string
description: The environment variable value.
valueFrom:
type: object
properties:
secretKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a secret.
configMapKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a config map.
oneOf:
- properties:
secretKeyRef: {}
required:
- secretKeyRef
- properties:
configMapKeyRef: {}
required:
- configMapKeyRef
description: Reference to the secret or config map property to which the environment variable is set.
oneOf:
- properties:
value: {}
required:
- value
- properties:
valueFrom: {}
required:
- valueFrom
description: Environment variables which should be applied to the container.
securityContext:
type: object
@@ -5984,6 +6408,27 @@ spec:
- type
- valueFrom
description: Configuration of the Cruise Control REST API users.
autoRebalance:
type: array
minItems: 1
items:
type: object
properties:
mode:
type: string
enum:
- add-brokers
- remove-brokers
description: "Specifies the mode for automatically rebalancing when brokers are added or removed. Supported modes are `add-brokers` and `remove-brokers`. \n"
template:
type: object
properties:
name:
type: string
description: Reference to the KafkaRebalance custom resource to be used as the configuration template for the auto-rebalancing on scaling when running for the corresponding mode.
required:
- mode
description: "Auto-rebalancing on scaling related configuration listing the modes, when brokers are added or removed, with the corresponding rebalance template configurations.If this field is set, at least one mode has to be defined."
description: Configuration for Cruise Control deployment. Deploys a Cruise Control instance when specified.
jmxTrans:
type: object
@@ -6675,13 +7120,32 @@ spec:
readOnly:
type: boolean
description: PersistentVolumeClaim object to use to populate the volume.
csi:
type: object
properties:
driver:
type: string
fsType:
type: string
nodePublishSecretRef:
type: object
properties:
name:
type: string
readOnly:
type: boolean
volumeAttributes:
additionalProperties:
type: string
type: object
description: CSIVolumeSource object to use to populate the volume.
oneOf:
- properties:
secret: {}
configMap: {}
emptyDir: {}
persistentVolumeClaim: {}
required: []
csi: {}
description: Additional volumes that can be mounted to the pod.
description: Template for JmxTrans `Pods`.
container:
@@ -6698,6 +7162,48 @@ spec:
value:
type: string
description: The environment variable value.
valueFrom:
type: object
properties:
secretKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a secret.
configMapKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a config map.
oneOf:
- properties:
secretKeyRef: {}
required:
- secretKeyRef
- properties:
configMapKeyRef: {}
required:
- configMapKeyRef
description: Reference to the secret or config map property to which the environment variable is set.
oneOf:
- properties:
value: {}
required:
- value
- properties:
valueFrom: {}
required:
- valueFrom
description: Environment variables which should be applied to the container.
securityContext:
type: object
@@ -7512,13 +8018,32 @@ spec:
readOnly:
type: boolean
description: PersistentVolumeClaim object to use to populate the volume.
csi:
type: object
properties:
driver:
type: string
fsType:
type: string
nodePublishSecretRef:
type: object
properties:
name:
type: string
readOnly:
type: boolean
volumeAttributes:
additionalProperties:
type: string
type: object
description: CSIVolumeSource object to use to populate the volume.
oneOf:
- properties:
secret: {}
configMap: {}
emptyDir: {}
persistentVolumeClaim: {}
required: []
csi: {}
description: Additional volumes that can be mounted to the pod.
description: Template for Kafka Exporter `Pods`.
service:
@@ -7553,6 +8078,48 @@ spec:
value:
type: string
description: The environment variable value.
valueFrom:
type: object
properties:
secretKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a secret.
configMapKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a config map.
oneOf:
- properties:
secretKeyRef: {}
required:
- secretKeyRef
- properties:
configMapKeyRef: {}
required:
- configMapKeyRef
description: Reference to the secret or config map property to which the environment variable is set.
oneOf:
- properties:
value: {}
required:
- value
- properties:
valueFrom: {}
required:
- valueFrom
description: Environment variables which should be applied to the container.
securityContext:
type: object
@@ -7763,4 +8330,35 @@ spec:
- PreKRaft
- KRaft
description: "Defines where cluster metadata are stored. Possible values are: ZooKeeper if the metadata are stored in ZooKeeper; KRaftMigration if the controllers are connected to ZooKeeper, brokers are being rolled with Zookeeper migration enabled and connection information to controllers, and the metadata migration process is running; KRaftDualWriting if the metadata migration process finished and the cluster is in dual-write mode; KRaftPostMigration if the brokers are fully KRaft-based but controllers being rolled to disconnect from ZooKeeper; PreKRaft if brokers and controller are fully KRaft-based, metadata are stored in KRaft, but ZooKeeper must be deleted; KRaft if the metadata are stored in KRaft."
autoRebalance:
type: object
properties:
state:
type: string
enum:
- Idle
- RebalanceOnScaleDown
- RebalanceOnScaleUp
description: "The current state of an auto-rebalancing operation. Possible values are: \n\n* `Idle` as the initial state when an auto-rebalancing is requested or as final state when it completes or fails.\n* `RebalanceOnScaleDown` if an auto-rebalance related to a scale-down operation is running.\n* `RebalanceOnScaleUp` if an auto-rebalance related to a scale-up operation is running."
lastTransitionTime:
type: string
description: The timestamp of the latest auto-rebalancing state update.
modes:
type: array
items:
type: object
properties:
mode:
type: string
enum:
- add-brokers
- remove-brokers
description: "Mode for which there is an auto-rebalancing operation in progress or queued, when brokers are added or removed. The possible modes are `add-brokers` and `remove-brokers`."
brokers:
type: array
items:
type: integer
description: "List of broker IDs involved in an auto-rebalancing operation related to the current mode. \nThe list contains one of the following: \n\n* Broker IDs for a current auto-rebalance. \n* Broker IDs for a queued auto-rebalance (if a previous auto-rebalance is still in progress). \n"
description: "List of modes where an auto-rebalancing operation is either running or queued. \nEach mode entry (`add-brokers` or `remove-brokers`) includes one of the following: \n\n* Broker IDs for a current auto-rebalance. \n* Broker IDs for a queued auto-rebalance (if a previous rebalance is still in progress)."
description: The status of an auto-rebalancing triggered by a cluster scaling request.
description: "The status of the Kafka and ZooKeeper clusters, and Topic Operator."

View File

@@ -1103,13 +1103,32 @@ spec:
readOnly:
type: boolean
description: PersistentVolumeClaim object to use to populate the volume.
csi:
type: object
properties:
driver:
type: string
fsType:
type: string
nodePublishSecretRef:
type: object
properties:
name:
type: string
readOnly:
type: boolean
volumeAttributes:
additionalProperties:
type: string
type: object
description: CSIVolumeSource object to use to populate the volume.
oneOf:
- properties:
secret: {}
configMap: {}
emptyDir: {}
persistentVolumeClaim: {}
required: []
csi: {}
description: Additional volumes that can be mounted to the pod.
description: Template for Kafka Connect `Pods`.
apiService:
@@ -1192,6 +1211,48 @@ spec:
value:
type: string
description: The environment variable value.
valueFrom:
type: object
properties:
secretKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a secret.
configMapKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a config map.
oneOf:
- properties:
secretKeyRef: {}
required:
- secretKeyRef
- properties:
configMapKeyRef: {}
required:
- configMapKeyRef
description: Reference to the secret or config map property to which the environment variable is set.
oneOf:
- properties:
value: {}
required:
- value
- properties:
valueFrom: {}
required:
- valueFrom
description: Environment variables which should be applied to the container.
securityContext:
type: object
@@ -1293,6 +1354,48 @@ spec:
value:
type: string
description: The environment variable value.
valueFrom:
type: object
properties:
secretKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a secret.
configMapKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a config map.
oneOf:
- properties:
secretKeyRef: {}
required:
- secretKeyRef
- properties:
configMapKeyRef: {}
required:
- configMapKeyRef
description: Reference to the secret or config map property to which the environment variable is set.
oneOf:
- properties:
value: {}
required:
- value
- properties:
valueFrom: {}
required:
- valueFrom
description: Environment variables which should be applied to the container.
securityContext:
type: object
@@ -2013,13 +2116,32 @@ spec:
readOnly:
type: boolean
description: PersistentVolumeClaim object to use to populate the volume.
csi:
type: object
properties:
driver:
type: string
fsType:
type: string
nodePublishSecretRef:
type: object
properties:
name:
type: string
readOnly:
type: boolean
volumeAttributes:
additionalProperties:
type: string
type: object
description: CSIVolumeSource object to use to populate the volume.
oneOf:
- properties:
secret: {}
configMap: {}
emptyDir: {}
persistentVolumeClaim: {}
required: []
csi: {}
description: Additional volumes that can be mounted to the pod.
description: Template for Kafka Connect Build `Pods`. The build pod is used only on Kubernetes.
buildContainer:
@@ -2036,6 +2158,48 @@ spec:
value:
type: string
description: The environment variable value.
valueFrom:
type: object
properties:
secretKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a secret.
configMapKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a config map.
oneOf:
- properties:
secretKeyRef: {}
required:
- secretKeyRef
- properties:
configMapKeyRef: {}
required:
- configMapKeyRef
description: Reference to the secret or config map property to which the environment variable is set.
oneOf:
- properties:
value: {}
required:
- value
- properties:
valueFrom: {}
required:
- valueFrom
description: Environment variables which should be applied to the container.
securityContext:
type: object
@@ -2215,6 +2379,15 @@ spec:
optional:
type: boolean
description: Reference to a key in a ConfigMap.
oneOf:
- properties:
secretKeyRef: {}
required:
- secretKeyRef
- properties:
configMapKeyRef: {}
required:
- configMapKeyRef
description: Value of the environment variable which will be passed to the Kafka Connect pods. It can be passed either as a reference to Secret or ConfigMap field. The field has to specify exactly one Secret or ConfigMap.
required:
- name
@@ -2270,6 +2443,15 @@ spec:
optional:
type: boolean
description: Reference to a key in a ConfigMap. Exactly one Secret or ConfigMap has to be specified.
oneOf:
- properties:
secret: {}
required:
- secret
- properties:
configMap: {}
required:
- configMap
required:
- name
description: Makes data from a Secret or ConfigMap available in the Kafka Connect pods as volumes.
@@ -2284,7 +2466,7 @@ spec:
type: array
items:
type: string
description: "Configures additional options which will be passed to the Kaniko executor when building the new Connect image. Allowed options are: --customPlatform, --insecure, --insecure-pull, --insecure-registry, --log-format, --log-timestamp, --registry-mirror, --reproducible, --single-snapshot, --skip-tls-verify, --skip-tls-verify-pull, --skip-tls-verify-registry, --verbosity, --snapshotMode, --use-new-run. These options will be used only on Kubernetes where the Kaniko executor is used. They will be ignored on OpenShift. The options are described in the link:https://github.com/GoogleContainerTools/kaniko[Kaniko GitHub repository^]. Changing this field does not trigger new build of the Kafka Connect image."
description: "Configures additional options which will be passed to the Kaniko executor when building the new Connect image. Allowed options are: --customPlatform, --custom-platform, --insecure, --insecure-pull, --insecure-registry, --log-format, --log-timestamp, --registry-mirror, --reproducible, --single-snapshot, --skip-tls-verify, --skip-tls-verify-pull, --skip-tls-verify-registry, --verbosity, --snapshotMode, --use-new-run, --registry-certificate, --registry-client-cert. These options will be used only on Kubernetes where the Kaniko executor is used. They will be ignored on OpenShift. The options are described in the link:https://github.com/GoogleContainerTools/kaniko[Kaniko GitHub repository^]. Changing this field does not trigger new build of the Kafka Connect image."
image:
type: string
description: The name of the image which will be built. Required.

View File

@@ -1268,13 +1268,32 @@ spec:
readOnly:
type: boolean
description: PersistentVolumeClaim object to use to populate the volume.
csi:
type: object
properties:
driver:
type: string
fsType:
type: string
nodePublishSecretRef:
type: object
properties:
name:
type: string
readOnly:
type: boolean
volumeAttributes:
additionalProperties:
type: string
type: object
description: CSIVolumeSource object to use to populate the volume.
oneOf:
- properties:
secret: {}
configMap: {}
emptyDir: {}
persistentVolumeClaim: {}
required: []
csi: {}
description: Additional volumes that can be mounted to the pod.
description: Template for Kafka MirrorMaker `Pods`.
podDisruptionBudget:
@@ -1313,6 +1332,48 @@ spec:
value:
type: string
description: The environment variable value.
valueFrom:
type: object
properties:
secretKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a secret.
configMapKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a config map.
oneOf:
- properties:
secretKeyRef: {}
required:
- secretKeyRef
- properties:
configMapKeyRef: {}
required:
- configMapKeyRef
description: Reference to the secret or config map property to which the environment variable is set.
oneOf:
- properties:
value: {}
required:
- value
- properties:
valueFrom: {}
required:
- valueFrom
description: Environment variables which should be applied to the container.
securityContext:
type: object

View File

@@ -1092,13 +1092,32 @@ spec:
readOnly:
type: boolean
description: PersistentVolumeClaim object to use to populate the volume.
csi:
type: object
properties:
driver:
type: string
fsType:
type: string
nodePublishSecretRef:
type: object
properties:
name:
type: string
readOnly:
type: boolean
volumeAttributes:
additionalProperties:
type: string
type: object
description: CSIVolumeSource object to use to populate the volume.
oneOf:
- properties:
secret: {}
configMap: {}
emptyDir: {}
persistentVolumeClaim: {}
required: []
csi: {}
description: Additional volumes that can be mounted to the pod.
description: Template for Kafka Bridge `Pods`.
apiService:
@@ -1170,6 +1189,48 @@ spec:
value:
type: string
description: The environment variable value.
valueFrom:
type: object
properties:
secretKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a secret.
configMapKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a config map.
oneOf:
- properties:
secretKeyRef: {}
required:
- secretKeyRef
- properties:
configMapKeyRef: {}
required:
- configMapKeyRef
description: Reference to the secret or config map property to which the environment variable is set.
oneOf:
- properties:
value: {}
required:
- value
- properties:
valueFrom: {}
required:
- valueFrom
description: Environment variables which should be applied to the container.
securityContext:
type: object
@@ -1307,6 +1368,48 @@ spec:
value:
type: string
description: The environment variable value.
valueFrom:
type: object
properties:
secretKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a secret.
configMapKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a config map.
oneOf:
- properties:
secretKeyRef: {}
required:
- secretKeyRef
- properties:
configMapKeyRef: {}
required:
- configMapKeyRef
description: Reference to the secret or config map property to which the environment variable is set.
oneOf:
- properties:
value: {}
required:
- value
- properties:
valueFrom: {}
required:
- valueFrom
description: Environment variables which should be applied to the container.
securityContext:
type: object

View File

@@ -92,6 +92,30 @@ spec:
- stopped
- running
description: The state the connector should be in. Defaults to running.
listOffsets:
type: object
properties:
toConfigMap:
type: object
properties:
name:
type: string
description: Reference to the ConfigMap where the list of offsets will be written to.
required:
- toConfigMap
description: Configuration for listing offsets.
alterOffsets:
type: object
properties:
fromConfigMap:
type: object
properties:
name:
type: string
description: Reference to the ConfigMap where the new offsets are stored.
required:
- fromConfigMap
description: Configuration for altering offsets.
description: The specification of the Kafka Connector.
status:
type: object

View File

@@ -337,6 +337,30 @@ spec:
type: integer
description: "The maximum number of connector restarts that the operator will try. If the connector remains in a failed state after reaching this limit, it must be restarted manually by the user. Defaults to an unlimited number of restarts."
description: Automatic restart of connector and tasks configuration.
listOffsets:
type: object
properties:
toConfigMap:
type: object
properties:
name:
type: string
description: Reference to the ConfigMap where the list of offsets will be written to.
required:
- toConfigMap
description: Configuration for listing offsets.
alterOffsets:
type: object
properties:
fromConfigMap:
type: object
properties:
name:
type: string
description: Reference to the ConfigMap where the new offsets are stored.
required:
- fromConfigMap
description: Configuration for altering offsets.
description: The specification of the Kafka MirrorMaker 2 source connector.
heartbeatConnector:
type: object
@@ -369,6 +393,30 @@ spec:
type: integer
description: "The maximum number of connector restarts that the operator will try. If the connector remains in a failed state after reaching this limit, it must be restarted manually by the user. Defaults to an unlimited number of restarts."
description: Automatic restart of connector and tasks configuration.
listOffsets:
type: object
properties:
toConfigMap:
type: object
properties:
name:
type: string
description: Reference to the ConfigMap where the list of offsets will be written to.
required:
- toConfigMap
description: Configuration for listing offsets.
alterOffsets:
type: object
properties:
fromConfigMap:
type: object
properties:
name:
type: string
description: Reference to the ConfigMap where the new offsets are stored.
required:
- fromConfigMap
description: Configuration for altering offsets.
description: The specification of the Kafka MirrorMaker 2 heartbeat connector.
checkpointConnector:
type: object
@@ -401,6 +449,30 @@ spec:
type: integer
description: "The maximum number of connector restarts that the operator will try. If the connector remains in a failed state after reaching this limit, it must be restarted manually by the user. Defaults to an unlimited number of restarts."
description: Automatic restart of connector and tasks configuration.
listOffsets:
type: object
properties:
toConfigMap:
type: object
properties:
name:
type: string
description: Reference to the ConfigMap where the list of offsets will be written to.
required:
- toConfigMap
description: Configuration for listing offsets.
alterOffsets:
type: object
properties:
fromConfigMap:
type: object
properties:
name:
type: string
description: Reference to the ConfigMap where the new offsets are stored.
required:
- fromConfigMap
description: Configuration for altering offsets.
description: The specification of the Kafka MirrorMaker 2 checkpoint connector.
topicsPattern:
type: string
@@ -1248,13 +1320,32 @@ spec:
readOnly:
type: boolean
description: PersistentVolumeClaim object to use to populate the volume.
csi:
type: object
properties:
driver:
type: string
fsType:
type: string
nodePublishSecretRef:
type: object
properties:
name:
type: string
readOnly:
type: boolean
volumeAttributes:
additionalProperties:
type: string
type: object
description: CSIVolumeSource object to use to populate the volume.
oneOf:
- properties:
secret: {}
configMap: {}
emptyDir: {}
persistentVolumeClaim: {}
required: []
csi: {}
description: Additional volumes that can be mounted to the pod.
description: Template for Kafka Connect `Pods`.
apiService:
@@ -1337,6 +1428,48 @@ spec:
value:
type: string
description: The environment variable value.
valueFrom:
type: object
properties:
secretKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a secret.
configMapKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a config map.
oneOf:
- properties:
secretKeyRef: {}
required:
- secretKeyRef
- properties:
configMapKeyRef: {}
required:
- configMapKeyRef
description: Reference to the secret or config map property to which the environment variable is set.
oneOf:
- properties:
value: {}
required:
- value
- properties:
valueFrom: {}
required:
- valueFrom
description: Environment variables which should be applied to the container.
securityContext:
type: object
@@ -1438,6 +1571,48 @@ spec:
value:
type: string
description: The environment variable value.
valueFrom:
type: object
properties:
secretKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a secret.
configMapKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a config map.
oneOf:
- properties:
secretKeyRef: {}
required:
- secretKeyRef
- properties:
configMapKeyRef: {}
required:
- configMapKeyRef
description: Reference to the secret or config map property to which the environment variable is set.
oneOf:
- properties:
value: {}
required:
- value
- properties:
valueFrom: {}
required:
- valueFrom
description: Environment variables which should be applied to the container.
securityContext:
type: object
@@ -2158,13 +2333,32 @@ spec:
readOnly:
type: boolean
description: PersistentVolumeClaim object to use to populate the volume.
csi:
type: object
properties:
driver:
type: string
fsType:
type: string
nodePublishSecretRef:
type: object
properties:
name:
type: string
readOnly:
type: boolean
volumeAttributes:
additionalProperties:
type: string
type: object
description: CSIVolumeSource object to use to populate the volume.
oneOf:
- properties:
secret: {}
configMap: {}
emptyDir: {}
persistentVolumeClaim: {}
required: []
csi: {}
description: Additional volumes that can be mounted to the pod.
description: Template for Kafka Connect Build `Pods`. The build pod is used only on Kubernetes.
buildContainer:
@@ -2181,6 +2375,48 @@ spec:
value:
type: string
description: The environment variable value.
valueFrom:
type: object
properties:
secretKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a secret.
configMapKeyRef:
type: object
properties:
key:
type: string
name:
type: string
optional:
type: boolean
description: Reference to a key in a config map.
oneOf:
- properties:
secretKeyRef: {}
required:
- secretKeyRef
- properties:
configMapKeyRef: {}
required:
- configMapKeyRef
description: Reference to the secret or config map property to which the environment variable is set.
oneOf:
- properties:
value: {}
required:
- value
- properties:
valueFrom: {}
required:
- valueFrom
description: Environment variables which should be applied to the container.
securityContext:
type: object
@@ -2360,6 +2596,15 @@ spec:
optional:
type: boolean
description: Reference to a key in a ConfigMap.
oneOf:
- properties:
secretKeyRef: {}
required:
- secretKeyRef
- properties:
configMapKeyRef: {}
required:
- configMapKeyRef
description: Value of the environment variable which will be passed to the Kafka Connect pods. It can be passed either as a reference to Secret or ConfigMap field. The field has to specify exactly one Secret or ConfigMap.
required:
- name
@@ -2415,6 +2660,15 @@ spec:
optional:
type: boolean
description: Reference to a key in a ConfigMap. Exactly one Secret or ConfigMap has to be specified.
oneOf:
- properties:
secret: {}
required:
- secret
- properties:
configMap: {}
required:
- configMap
required:
- name
description: Makes data from a Secret or ConfigMap available in the Kafka Connect pods as volumes.

View File

@@ -31,29 +31,13 @@ spec:
description: The name of the Kafka cluster this resource rebalances
jsonPath: .metadata.labels.strimzi\.io/cluster
type: string
- name: PendingProposal
description: A proposal has been requested from Cruise Control
jsonPath: ".status.conditions[?(@.type==\"PendingProposal\")].status"
- name: Template
description: If this rebalance resource is a template
jsonPath: .metadata.annotations.strimzi\.io/rebalance-template
type: string
- name: ProposalReady
description: A proposal is ready and waiting for approval
jsonPath: ".status.conditions[?(@.type==\"ProposalReady\")].status"
type: string
- name: Rebalancing
description: Cruise Control is doing the rebalance
jsonPath: ".status.conditions[?(@.type==\"Rebalancing\")].status"
type: string
- name: Ready
description: The rebalance is complete
jsonPath: ".status.conditions[?(@.type==\"Ready\")].status"
type: string
- name: NotReady
description: There is an error on the custom resource
jsonPath: ".status.conditions[?(@.type==\"NotReady\")].status"
type: string
- name: Stopped
description: Processing the proposal or running rebalancing was stopped
jsonPath: ".status.conditions[?(@.type==\"Stopped\")].status"
- name: Status
description: Status of the current rebalancing operation
jsonPath: ".status.conditions[*].type"
type: string
schema:
openAPIV3Schema:
@@ -76,7 +60,8 @@ spec:
- full
- add-brokers
- remove-brokers
description: "Mode to run the rebalancing. The supported modes are `full`, `add-brokers`, `remove-brokers`.\nIf not specified, the `full` mode is used by default. \n\n* `full` mode runs the rebalancing across all the brokers in the cluster.\n* `add-brokers` mode can be used after scaling up the cluster to move some replicas to the newly added brokers.\n* `remove-brokers` mode can be used before scaling down the cluster to move replicas out of the brokers to be removed.\n"
- remove-disks
description: "Mode to run the rebalancing. The supported modes are `full`, `add-brokers`, `remove-brokers`.\nIf not specified, the `full` mode is used by default. \n\n* `full` mode runs the rebalancing across all the brokers in the cluster.\n* `add-brokers` mode can be used after scaling up the cluster to move some replicas to the newly added brokers.\n* `remove-brokers` mode can be used before scaling down the cluster to move replicas out of the brokers to be removed.\n* `remove-disks` mode can be used to move data across the volumes within the same broker\n."
brokers:
type: array
items:
@@ -117,6 +102,22 @@ spec:
items:
type: string
description: "A list of strategy class names used to determine the execution order for the replica movements in the generated optimization proposal. By default BaseReplicaMovementStrategy is used, which will execute the replica movements in the order that they were generated."
moveReplicasOffVolumes:
type: array
minItems: 1
items:
type: object
properties:
brokerId:
type: integer
description: ID of the broker that contains the disk from which you want to move the partition replicas.
volumeIds:
type: array
minItems: 1
items:
type: integer
description: IDs of the disks from which the partition replicas need to be moved.
description: List of brokers and their corresponding volumes from which replicas need to be moved.
description: The specification of the Kafka rebalance.
status:
type: object

View File

@@ -1073,6 +1073,89 @@
"title": "Metadata Records Commit Latency",
"type": "timeseries"
},
{
"datasource": "${DS_PROMETHEUS}",
"description": "The role of the node in KRaft",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": null,
"filterable": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 6,
"x": 0,
"y": 23
},
"id": 122,
"options": {
"showHeader": true,
"sortBy": [
{
"desc": false,
"displayName": "Pod Name"
}
]
},
"pluginVersion": "7.4.5",
"targets": [
{
"expr": "max(kafka_server_raftmetrics_current_state) by (kubernetes_pod_name, current_state)",
"format": "table",
"instant": true,
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"timeFrom": null,
"timeShift": null,
"title": "Current Raft State",
"transformations": [
{
"id": "organize",
"options": {
"excludeByName": {
"Time": true,
"Value": true
},
"indexByName": {
"Time": 0,
"Value": 3,
"current_state": 2,
"kubernetes_pod_name": 1
},
"renameByName": {
"current_state": "Current State",
"kubernetes_pod_name": "Pod Name"
}
}
}
],
"type": "table"
},
{
"datasource": "${DS_PROMETHEUS}",
"description": "The current quorum leader's id; -1 indicates unknown",
@@ -1134,8 +1217,8 @@
},
"gridPos": {
"h": 8,
"w": 8,
"x": 0,
"w": 6,
"x": 6,
"y": 23
},
"id": 104,
@@ -1228,8 +1311,8 @@
},
"gridPos": {
"h": 8,
"w": 8,
"x": 8,
"w": 6,
"x": 12,
"y": 23
},
"id": 105,
@@ -1322,8 +1405,8 @@
},
"gridPos": {
"h": 8,
"w": 8,
"x": 16,
"w": 6,
"x": 18,
"y": 23
},
"id": 113,

View File

@@ -1,6 +1,10 @@
{{- if .Values.rbac.create -}}
{{- $root := . -}}
{{- range append .Values.watchNamespaces .Release.Namespace }}
{{- $watchNamespaces := .Values.watchNamespaces -}}
{{- if $root.Values.watchAnyNamespace }}
{{- $watchNamespaces = list -}}
{{- end }}
{{- range append $watchNamespaces .Release.Namespace }}
---
apiVersion: rbac.authorization.k8s.io/v1
{{- if $root.Values.watchAnyNamespace }}

View File

@@ -79,4 +79,11 @@ rules:
- get
- patch
- update
- apiGroups:
- "kafka.strimzi.io"
resources:
# The Cluster Operator needs deletion for KafkaRebalance only (during auto-rebalancing)
- kafkarebalances
verbs:
- delete
{{- end -}}

View File

@@ -1,6 +1,10 @@
{{- if .Values.rbac.create }}
{{- if .Values.rbac.create -}}
{{- $root := . -}}
{{- range append .Values.watchNamespaces .Release.Namespace }}
{{- $watchNamespaces := .Values.watchNamespaces -}}
{{- if $root.Values.watchAnyNamespace }}
{{- $watchNamespaces = list -}}
{{- end }}
{{- range append $watchNamespaces .Release.Namespace }}
---
apiVersion: rbac.authorization.k8s.io/v1
{{- if $root.Values.watchAnyNamespace }}

View File

@@ -1,6 +1,10 @@
{{- if .Values.rbac.create }}
{{- if .Values.rbac.create -}}
{{- $root := . -}}
{{- range append .Values.watchNamespaces .Release.Namespace }}
{{- $watchNamespaces := .Values.watchNamespaces -}}
{{- if $root.Values.watchAnyNamespace }}
{{- $watchNamespaces = list -}}
{{- end }}
{{- range append $watchNamespaces .Release.Namespace }}
---
apiVersion: rbac.authorization.k8s.io/v1
{{- if $root.Values.watchAnyNamespace }}

View File

@@ -140,6 +140,10 @@ spec:
- name: STRIMZI_CONNECT_BUILD_TIMEOUT_MS
value: {{ .Values.connectBuildTimeoutMs | quote }}
{{- end }}
{{- if ne .Values.generatePodDisruptionBudget true}}
- name: STRIMZI_POD_DISRUPTION_BUDGET_GENERATION
value: {{ .Values.generatePodDisruptionBudget | quote }}
{{- end }}
{{- if .Values.extraEnvs }}
{{ toYaml .Values.extraEnvs | indent 12 }}
{{- end }}

View File

@@ -6,27 +6,27 @@
{{/* Generate the kafka image map */}}
{{- define "strimzi.kafka.image.map" }}
- name: STRIMZI_DEFAULT_KAFKA_EXPORTER_IMAGE
value: {{ template "strimzi.image" (merge . (dict "key" "kafkaExporter" "tagSuffix" "-kafka-3.8.0")) }}
value: {{ template "strimzi.image" (merge . (dict "key" "kafkaExporter" "tagSuffix" "-kafka-3.9.0")) }}
- name: STRIMZI_DEFAULT_CRUISE_CONTROL_IMAGE
value: {{ template "strimzi.image" (merge . (dict "key" "cruiseControl" "tagSuffix" "-kafka-3.8.0")) }}
value: {{ template "strimzi.image" (merge . (dict "key" "cruiseControl" "tagSuffix" "-kafka-3.9.0")) }}
- name: STRIMZI_KAFKA_IMAGES
value: |
3.7.0={{ template "strimzi.image" (merge . (dict "key" "kafka" "tagSuffix" "-kafka-3.7.0")) }}
3.7.1={{ template "strimzi.image" (merge . (dict "key" "kafka" "tagSuffix" "-kafka-3.7.1")) }}
3.8.0={{ template "strimzi.image" (merge . (dict "key" "kafka" "tagSuffix" "-kafka-3.8.0")) }}
3.8.1={{ template "strimzi.image" (merge . (dict "key" "kafka" "tagSuffix" "-kafka-3.8.1")) }}
3.9.0={{ template "strimzi.image" (merge . (dict "key" "kafka" "tagSuffix" "-kafka-3.9.0")) }}
- name: STRIMZI_KAFKA_CONNECT_IMAGES
value: |
3.7.0={{ template "strimzi.image" (merge . (dict "key" "kafkaConnect" "tagSuffix" "-kafka-3.7.0")) }}
3.7.1={{ template "strimzi.image" (merge . (dict "key" "kafkaConnect" "tagSuffix" "-kafka-3.7.1")) }}
3.8.0={{ template "strimzi.image" (merge . (dict "key" "kafkaConnect" "tagSuffix" "-kafka-3.8.0")) }}
3.8.1={{ template "strimzi.image" (merge . (dict "key" "kafkaConnect" "tagSuffix" "-kafka-3.8.1")) }}
3.9.0={{ template "strimzi.image" (merge . (dict "key" "kafkaConnect" "tagSuffix" "-kafka-3.9.0")) }}
- name: STRIMZI_KAFKA_MIRROR_MAKER_IMAGES
value: |
3.7.0={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker" "tagSuffix" "-kafka-3.7.0")) }}
3.7.1={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker" "tagSuffix" "-kafka-3.7.1")) }}
3.8.0={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker" "tagSuffix" "-kafka-3.8.0")) }}
3.8.1={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker" "tagSuffix" "-kafka-3.8.1")) }}
3.9.0={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker" "tagSuffix" "-kafka-3.9.0")) }}
- name: STRIMZI_KAFKA_MIRROR_MAKER_2_IMAGES
value: |
3.7.0={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker2" "tagSuffix" "-kafka-3.7.0")) }}
3.7.1={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker2" "tagSuffix" "-kafka-3.7.1")) }}
3.8.0={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker2" "tagSuffix" "-kafka-3.8.0")) }}
3.8.1={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker2" "tagSuffix" "-kafka-3.8.1")) }}
3.9.0={{ template "strimzi.image" (merge . (dict "key" "kafkaMirrorMaker2" "tagSuffix" "-kafka-3.9.0")) }}
{{- end -}}

View File

@@ -10,7 +10,7 @@ watchAnyNamespace: false
defaultImageRegistry: quay.io
defaultImageRepository: strimzi
defaultImageTag: 0.43.0
defaultImageTag: 0.45.0
image:
registry: ""
@@ -126,7 +126,7 @@ kafkaBridge:
registry: ""
repository:
name: kafka-bridge
tag: 0.30.0
tag: 0.31.1
kafkaExporter:
image:
registry: ""
@@ -180,4 +180,6 @@ labelsExclusionPattern: ""
# Controls whether Strimzi generates network policy resources (By default true)
generateNetworkPolicy: true
# Override the value for Connect build timeout
connectBuildTimeoutMs: 300000
connectBuildTimeoutMs: 300000
# Controls whether Strimzi generates pod disruption budget resources (By default true)
generatePodDisruptionBudget: true

View File

@@ -0,0 +1,275 @@
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
labels:
role: alert-rules
app: strimzi
name: prometheus-kafka-rules
spec:
groups:
- name: kafka
rules:
- alert: KafkaRunningOutOfSpace
expr: kubelet_volume_stats_available_bytes{persistentvolumeclaim=~"data(-[0-9]+)?-(.+)-kafka-[0-9]+"} * 100 / kubelet_volume_stats_capacity_bytes{persistentvolumeclaim=~"data(-[0-9]+)?-(.+)-kafka-[0-9]+"} < 15
for: 10s
labels:
severity: warning
annotations:
summary: 'Kafka is running out of free disk space'
description: 'There are only {{ $value }} percent available at {{ $labels.persistentvolumeclaim }} PVC'
- alert: UnderReplicatedPartitions
expr: kafka_server_replicamanager_underreplicatedpartitions > 0
for: 10s
labels:
severity: warning
annotations:
summary: 'Kafka under replicated partitions'
description: 'There are {{ $value }} under replicated partitions on {{ $labels.pod }}'
- alert: AbnormalControllerState
expr: sum(kafka_controller_kafkacontroller_activecontrollercount) by (strimzi_io_name) != 1
for: 10s
labels:
severity: warning
annotations:
summary: 'Kafka abnormal controller state'
description: 'There are {{ $value }} active controllers in the cluster'
- alert: OfflinePartitions
expr: sum(kafka_controller_kafkacontroller_offlinepartitionscount) > 0
for: 10s
labels:
severity: warning
annotations:
summary: 'Kafka offline partitions'
description: 'One or more partitions have no leader'
- alert: UnderMinIsrPartitionCount
expr: kafka_server_replicamanager_underminisrpartitioncount > 0
for: 10s
labels:
severity: warning
annotations:
summary: 'Kafka under min ISR partitions'
description: 'There are {{ $value }} partitions under the min ISR on {{ $labels.pod }}'
- alert: OfflineLogDirectoryCount
expr: kafka_log_logmanager_offlinelogdirectorycount > 0
for: 10s
labels:
severity: warning
annotations:
summary: 'Kafka offline log directories'
description: 'There are {{ $value }} offline log directories on {{ $labels.pod }}'
- alert: ScrapeProblem
expr: up{kubernetes_namespace!~"openshift-.+",pod=~".+-kafka-[0-9]+"} == 0
for: 3m
labels:
severity: major
annotations:
summary: 'Prometheus unable to scrape metrics from {{ $labels.pod }}/{{ $labels.instance }}'
description: 'Prometheus was unable to scrape metrics from {{ $labels.pod }}/{{ $labels.instance }} for more than 3 minutes'
- alert: ClusterOperatorContainerDown
expr: count((container_last_seen{container="strimzi-cluster-operator"} > (time() - 90))) < 1 or absent(container_last_seen{container="strimzi-cluster-operator"})
for: 1m
labels:
severity: major
annotations:
summary: 'Cluster Operator down'
description: 'The Cluster Operator has been down for longer than 90 seconds'
- alert: KafkaBrokerContainersDown
expr: absent(container_last_seen{container="kafka",pod=~".+-kafka-[0-9]+"})
for: 3m
labels:
severity: major
annotations:
summary: 'All `kafka` containers down or in CrashLookBackOff status'
description: 'All `kafka` containers have been down or in CrashLookBackOff status for 3 minutes'
- alert: KafkaContainerRestartedInTheLast5Minutes
expr: count(count_over_time(container_last_seen{container="kafka"}[5m])) > 2 * count(container_last_seen{container="kafka",pod=~".+-kafka-[0-9]+"})
for: 5m
labels:
severity: warning
annotations:
summary: 'One or more Kafka containers restarted too often'
description: 'One or more Kafka containers were restarted too often within the last 5 minutes'
- name: zookeeper
rules:
- alert: AvgRequestLatency
expr: zookeeper_avgrequestlatency > 10
for: 10s
labels:
severity: warning
annotations:
summary: 'Zookeeper average request latency'
description: 'The average request latency is {{ $value }} on {{ $labels.pod }}'
- alert: OutstandingRequests
expr: zookeeper_outstandingrequests > 10
for: 10s
labels:
severity: warning
annotations:
summary: 'Zookeeper outstanding requests'
description: 'There are {{ $value }} outstanding requests on {{ $labels.pod }}'
- alert: ZookeeperRunningOutOfSpace
expr: kubelet_volume_stats_available_bytes{persistentvolumeclaim=~"data-(.+)-zookeeper-[0-9]+"} < 5368709120
for: 10s
labels:
severity: warning
annotations:
summary: 'Zookeeper is running out of free disk space'
description: 'There are only {{ $value }} bytes available at {{ $labels.persistentvolumeclaim }} PVC'
- alert: ZookeeperContainerRestartedInTheLast5Minutes
expr: count(count_over_time(container_last_seen{container="zookeeper"}[5m])) > 2 * count(container_last_seen{container="zookeeper",pod=~".+-zookeeper-[0-9]+"})
for: 5m
labels:
severity: warning
annotations:
summary: 'One or more Zookeeper containers were restarted too often'
description: 'One or more Zookeeper containers were restarted too often within the last 5 minutes. This alert can be ignored when the Zookeeper cluster is scaling up'
- alert: ZookeeperContainersDown
expr: absent(container_last_seen{container="zookeeper",pod=~".+-zookeeper-[0-9]+"})
for: 3m
labels:
severity: major
annotations:
summary: 'All `zookeeper` containers in the Zookeeper pods down or in CrashLookBackOff status'
description: 'All `zookeeper` containers in the Zookeeper pods have been down or in CrashLookBackOff status for 3 minutes'
- name: entityOperator
rules:
- alert: TopicOperatorContainerDown
expr: absent(container_last_seen{container="topic-operator",pod=~".+-entity-operator-.+"})
for: 3m
labels:
severity: major
annotations:
summary: 'Container topic-operator in Entity Operator pod down or in CrashLookBackOff status'
description: 'Container topic-operator in Entity Operator pod has been or in CrashLookBackOff status for 3 minutes'
- alert: UserOperatorContainerDown
expr: absent(container_last_seen{container="user-operator",pod=~".+-entity-operator-.+"})
for: 3m
labels:
severity: major
annotations:
summary: 'Container user-operator in Entity Operator pod down or in CrashLookBackOff status'
description: 'Container user-operator in Entity Operator pod have been down or in CrashLookBackOff status for 3 minutes'
- name: connect
rules:
- alert: ConnectContainersDown
expr: absent(container_last_seen{container=~".+-connect",pod=~".+-connect-.+"})
for: 3m
labels:
severity: major
annotations:
summary: 'All Kafka Connect containers down or in CrashLookBackOff status'
description: 'All Kafka Connect containers have been down or in CrashLookBackOff status for 3 minutes'
- alert: ConnectFailedConnector
expr: sum(kafka_connect_connector_status{status="failed"}) > 0
for: 5m
labels:
severity: major
annotations:
summary: 'Kafka Connect Connector Failure'
description: 'One or more connectors have been in failed state for 5 minutes,'
- alert: ConnectFailedTask
expr: sum(kafka_connect_worker_connector_failed_task_count) > 0
for: 5m
labels:
severity: major
annotations:
summary: 'Kafka Connect Task Failure'
description: 'One or more tasks have been in failed state for 5 minutes.'
- name: bridge
rules:
- alert: BridgeContainersDown
expr: absent(container_last_seen{container=~".+-bridge",pod=~".+-bridge-.+"})
for: 3m
labels:
severity: major
annotations:
summary: 'All Kafka Bridge containers down or in CrashLookBackOff status'
description: 'All Kafka Bridge containers have been down or in CrashLookBackOff status for 3 minutes'
- alert: AvgProducerLatency
expr: strimzi_bridge_kafka_producer_request_latency_avg > 10
for: 10s
labels:
severity: warning
annotations:
summary: 'Kafka Bridge producer average request latency'
description: 'The average producer request latency is {{ $value }} on {{ $labels.clientId }}'
- alert: AvgConsumerFetchLatency
expr: strimzi_bridge_kafka_consumer_fetch_latency_avg > 500
for: 10s
labels:
severity: warning
annotations:
summary: 'Kafka Bridge consumer average fetch latency'
description: 'The average consumer fetch latency is {{ $value }} on {{ $labels.clientId }}'
- alert: AvgConsumerCommitLatency
expr: strimzi_bridge_kafka_consumer_commit_latency_avg > 200
for: 10s
labels:
severity: warning
annotations:
summary: 'Kafka Bridge consumer average commit latency'
description: 'The average consumer commit latency is {{ $value }} on {{ $labels.clientId }}'
- alert: Http4xxErrorRate
expr: strimzi_bridge_http_server_requestCount_total{code=~"^4..$", container=~"^.+-bridge", path !="/favicon.ico"} > 10
for: 1m
labels:
severity: warning
annotations:
summary: 'Kafka Bridge returns code 4xx too often'
description: 'Kafka Bridge returns code 4xx too much ({{ $value }}) for the path {{ $labels.path }}'
- alert: Http5xxErrorRate
expr: strimzi_bridge_http_server_requestCount_total{code=~"^5..$", container=~"^.+-bridge"} > 10
for: 1m
labels:
severity: warning
annotations:
summary: 'Kafka Bridge returns code 5xx too often'
description: 'Kafka Bridge returns code 5xx too much ({{ $value }}) for the path {{ $labels.path }}'
- name: mirrorMaker
rules:
- alert: MirrorMakerContainerDown
expr: absent(container_last_seen{container=~".+-mirror-maker",pod=~".+-mirror-maker-.+"})
for: 3m
labels:
severity: major
annotations:
summary: 'All Kafka Mirror Maker containers down or in CrashLookBackOff status'
description: 'All Kafka Mirror Maker containers have been down or in CrashLookBackOff status for 3 minutes'
- name: kafkaExporter
rules:
- alert: UnderReplicatedPartition
expr: kafka_topic_partition_under_replicated_partition > 0
for: 10s
labels:
severity: warning
annotations:
summary: 'Topic has under-replicated partitions'
description: 'Topic {{ $labels.topic }} has {{ $value }} under-replicated partition {{ $labels.partition }}'
- alert: TooLargeConsumerGroupLag
expr: kafka_consumergroup_lag > 1000
for: 10s
labels:
severity: warning
annotations:
summary: 'Consumer group lag is too big'
description: 'Consumer group {{ $labels.consumergroup}} lag is too big ({{ $value }}) on topic {{ $labels.topic }}/partition {{ $labels.partition }}'
- alert: NoMessageForTooLong
expr: changes(kafka_topic_partition_current_offset[10m]) == 0
for: 10s
labels:
severity: warning
annotations:
summary: 'No message for 10 minutes'
description: 'There is no messages in topic {{ $labels.topic}}/partition {{ $labels.partition }} for 10 minutes'
- name: certificates
interval: 1m0s
rules:
- alert: CertificateExpiration
expr: |
strimzi_certificate_expiration_timestamp_ms/1000 - time() < 30 * 24 * 60 * 60
for: 5m
labels:
severity: warning
annotations:
summary: 'Certificate will expire in less than 30 days'
description: 'Certificate of type {{ $labels.type }} in cluster {{ $labels.cluster }} in namespace {{ $labels.resource_namespace }} will expire in less than 30 days'

View File

@@ -3,7 +3,7 @@ kamaji:
deploy: false
image:
pullPolicy: IfNotPresent
tag: v0.25.0@sha256:948a496a23b4b3158517473afd74a693380bfecb9f5346c214c8beef6deb405a
tag: v0.25.3@sha256:229646a728b58dd0c55dae7abd721ab23e3feecd61f55fa3ad24bb3a614d558f
repository: ghcr.io/aenix-io/cozystack/kamaji
resources:
limits:

View File

@@ -29,6 +29,9 @@
{{- $cookieSecret = randAlphaNum 16 }}
{{- end }}
{{- $wlConfigmap := lookup "v1" "ConfigMap" "cozy-dashboard" "white-label" }}
{{- $locale := index $wlConfigmap.data "locale" }}
---
apiVersion: v1
@@ -83,6 +86,9 @@ metadata:
spec:
realmName: cozy
clusterKeycloakRef: keycloak-cozy
{{- if $locale }}
displayNameHtml: {{ $locale }}
{{- end }}
---

View File

@@ -1,2 +1,8 @@
keycloak-operator:
clusterReconciliationEnabled: true
resources:
limits:
memory: 512Mi
requests:
cpu: 50m
memory: 64Mi

View File

@@ -22,4 +22,4 @@ global:
images:
kubeovn:
repository: kubeovn
tag: v1.13.2@sha256:fccaf6b1f6514378f4ba2e17399af5b0c20ecf13f78142409848486b0992e5fd
tag: v1.13.2@sha256:6c55f8cdd696ca6799f373fc6824f2faa11f7a3185a9f29d7bbd08ff09b6b3e3