Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
99a0fc2
feat: support hadoop and hbase addons on KubeBlocks 1.1
baojun-zhang Jul 7, 2026
41ec2c6
fix(hadoop,hbase): fix hbase topology/serviceRef and parameterize run…
baojun-zhang Jul 7, 2026
785d107
fix(hbase): avoid rendering POD_FQDN in config template by injecting …
baojun-zhang Jul 7, 2026
31b6788
feat(hbase): change pid dir into /tmp
baojun-zhang Jul 7, 2026
f125b41
feat(hadoop): make namenode init container images explicit and config…
baojun-zhang Jul 7, 2026
5ad1311
feat(hadoop): make namenode init container images explicit and config…
baojun-zhang Jul 7, 2026
4a6ed57
feat(hadoop): make namenode init container images explicit and config…
baojun-zhang Jul 7, 2026
0ab9b0b
feat(hadoop): mount hadoop logs for namenode init containers
baojun-zhang Jul 7, 2026
f40bf58
feat(hadoop): move namenode bootstrapStandby to runtime startup
baojun-zhang Jul 7, 2026
ad83316
- refactor(hadoop)!: remove hadoop-core component and rename shared c…
baojun-zhang Jul 7, 2026
11ba0ef
feat(hbase): stop overriding JAVA_HOME from the image
baojun-zhang Jul 7, 2026
2b69f70
feat(hadoop): make ha namenode ids configurable for runtime hdfs config
baojun-zhang Jul 7, 2026
434189d
fix(hbase): remove unsupported wal codec from cluster config
baojun-zhang Jul 8, 2026
9629628
feat(hbase&hadoop): expose first batch of hbase/hdfs config overrides…
baojun-zhang Jul 8, 2026
f502c23
fix(hbase): load MultiRowMutationEndpoint as region coprocessor only
baojun-zhang Jul 8, 2026
d9c5e6c
fix(hadoop): mount dfs include files in namenode init containers
baojun-zhang Jul 8, 2026
44b83b6
feat(obs): remove obsolete hadoop metrics2 config templates
baojun-zhang Jul 8, 2026
31edb49
feat(hbase): use bundled java lz4 codec for compression sanity check
baojun-zhang Jul 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions addons-cluster/hadoop/.helmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
25 changes: 25 additions & 0 deletions addons-cluster/hadoop/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
annotations:
category: BigData
kubeblocks.io/min-version: "1.1.0"
apiVersion: v2
name: hadoop
type: application
version: 1.1.0-alpha.0
description: A Hadoop HDFS cluster Helm chart for KubeBlocks.
dependencies:
- name: kblib
version: 0.1.2
repository: file://../kblib
alias: extra
appVersion: "3.3.4"
keywords:
- hadoop
- hdfs
- bigdata
home: https://github.com/apecloud/kubeblocks/tree/main/deploy/hadoop
icon: https://kubeblocks.io/img/logo.png
maintainers:
- name: ApeCloud
url: https://kubeblocks.io/
sources:
- https://github.com/apecloud/kubeblocks/
7 changes: 7 additions & 0 deletions addons-cluster/hadoop/releases_notes.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
releases:
- version: 1.1.0-alpha.0
notes:
en: >
Minimum supported KubeBlocks version is 1.1.0.
zh: >
最低支持的 KubeBlocks 版本为 1.1.0。
10 changes: 10 additions & 0 deletions addons-cluster/hadoop/templates/_helpers.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{{- define "hadoop-cluster.clusterCommon" }}
apiVersion: apps.kubeblocks.io/v1
kind: Cluster
metadata:
name: {{ include "kblib.clusterName" . }}
namespace: {{ .Release.Namespace }}
labels: {{ include "kblib.clusterLabels" . | nindent 4 }}
spec:
terminationPolicy: {{ .Values.extra.terminationPolicy }}
{{- end }}
261 changes: 261 additions & 0 deletions addons-cluster/hadoop/templates/cluster.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,261 @@
{{- $isCluster := eq .Values.topology "cluster" }}
{{- $isStandalone := eq .Values.topology "standalone" }}
{{- $haNameNodeIds := splitList "," .Values.hdfs.ha.nameNodeIds }}
{{- if not (or $isCluster $isStandalone) }}
{{- fail "topology must be either 'cluster' or 'standalone'" }}
{{- end }}
{{- if and $isCluster (ne (.Values.replicas.namenode | int) 2) }}
{{- fail "cluster topology requires replicas.namenode = 2; this addon currently supports only active/standby NameNode HA" }}
{{- end }}
{{- if and $isCluster (ne (len $haNameNodeIds) 2) }}
{{- fail "cluster topology requires exactly 2 hdfs.ha.nameNodeIds entries while active/standby NameNode HA is enforced" }}
{{- end }}
{{- include "hadoop-cluster.clusterCommon" . }}
clusterDef: hadoop
topology: {{ .Values.topology }}
componentSpecs:
{{- if $isCluster }}
- name: journalnode
componentDef: hdfs-journalnode
configs:
- name: hdfs-common-config
variables:
HDFS_TRASH_INTERVAL: {{ .Values.hdfs.trash.interval | quote }}
HDFS_HADOOP_TMP_DIR: {{ .Values.hdfs.core.hadoopTmpDir | quote }}
HDFS_SECURITY_AUTHENTICATION: {{ .Values.hdfs.security.authentication | quote }}
HDFS_SECURITY_AUTHORIZATION: {{ .Values.hdfs.security.authorization | quote }}
HDFS_HA_ZOOKEEPER_PARENT_ZNODE: {{ .Values.hdfs.ha.zookeeper.parentZnodePrefix | quote }}
HDFS_JMX_PORT: {{ .Values.hdfs.ports.journalnode.jmx | quote }}
HDFS_NAMENODE_JMX_PORT: {{ .Values.hdfs.ports.namenode.jmx | quote }}
HDFS_DATANODE_JMX_PORT: {{ .Values.hdfs.ports.datanode.jmx | quote }}
HDFS_JOURNALNODE_JMX_PORT: {{ .Values.hdfs.ports.journalnode.jmx | quote }}
HDFS_ZKFC_JMX_PORT: {{ .Values.hdfs.ports.zkfc.jmx | quote }}
HDFS_NAMENODE_HEAP: {{ .Values.hdfs.jvm.namenodeHeapSize | quote }}
HDFS_DATANODE_HEAP: {{ .Values.hdfs.jvm.datanodeHeapSize | quote }}
HDFS_JOURNALNODE_HEAP: {{ .Values.hdfs.jvm.journalnodeHeapSize | quote }}
HDFS_ZKFC_HEAP: {{ .Values.hdfs.jvm.zkfcHeapSize | quote }}
HDFS_HA_ZOOKEEPER_SESSION_TIMEOUT_MS: {{ .Values.hdfs.ha.zookeeper.sessionTimeoutMs | quote }}
HDFS_IPC_CLIENT_CONNECTION_MAX_IDLE_TIME_MS: {{ .Values.hdfs.ipc.clientConnectionMaxIdleTimeMs | quote }}
HDFS_IPC_CLIENT_CONNECT_TIMEOUT_MS: {{ .Values.hdfs.ipc.clientConnectTimeoutMs | quote }}
HDFS_IPC_CLIENT_CONNECTION_POOL_SIZE: {{ .Values.hdfs.ipc.clientConnectionPoolSize | quote }}
HDFS_IPC_CLIENT_CONNECT_RETRY_INTERVAL_MS: {{ .Values.hdfs.ipc.clientConnectRetryIntervalMs | quote }}
HDFS_IPC_CLIENT_PING: {{ .Values.hdfs.ipc.clientPing | quote }}
HDFS_IPC_PING_INTERVAL_MS: {{ .Values.hdfs.ipc.pingIntervalMs | quote }}
HDFS_HA_NAMENODE_IDS: {{ .Values.hdfs.ha.nameNodeIds | quote }}
- name: journalnode-config
variables:
HDFS_JOURNALNODE_EDITS_DIR: {{ .Values.hdfs.paths.journalnodeEditsDir | quote }}
HDFS_JOURNALNODE_RPC_PORT: {{ .Values.hdfs.ports.journalnode.rpc | quote }}
HDFS_JOURNALNODE_HTTP_PORT: {{ .Values.hdfs.ports.journalnode.http | quote }}
HDFS_JOURNALNODE_ENABLE_SYNC: {{ .Values.hdfs.journalnode.enableSync | quote }}
HDFS_JOURNALNODE_EDIT_CACHE_SIZE_BYTES: {{ .Values.hdfs.journalnode.editCacheSizeBytes | quote }}
HDFS_JOURNALNODE_SYNC_INTERVAL_MS: {{ .Values.hdfs.journalnode.syncIntervalMs | quote }}
replicas: {{ .Values.replicas.journalnode }}
resources:
requests:
cpu: {{ .Values.resources.journalnode.requests.cpu | quote }}
memory: {{ .Values.resources.journalnode.requests.memory }}
limits:
cpu: {{ .Values.resources.journalnode.limits.cpu | quote }}
memory: {{ .Values.resources.journalnode.limits.memory }}
schedulingPolicy:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
apps.kubeblocks.io/component-name: journalnode
volumeClaimTemplates:
- name: edits-dir
spec:
accessModes:
{{ toYaml .Values.storage.journalnode.accessModes | indent 14 }}
resources:
requests:
storage: {{ .Values.storage.journalnode.size }}
{{- if .Values.storage.journalnode.storageClassName }}
storageClassName: {{ .Values.storage.journalnode.storageClassName }}
{{- end }}
{{- end }}
- name: namenode
componentDef: {{ ternary "hdfs-namenode" "hdfs-namenode-standalone" $isCluster }}
{{- if $isCluster }}
serviceRefs:
- name: hadoopZookeeper
namespace: {{ .Values.serviceRefs.hadoopZookeeper.namespace }}
clusterServiceSelector:
cluster: {{ .Values.serviceRefs.hadoopZookeeper.clusterServiceSelector.cluster }}
service:
component: {{ .Values.serviceRefs.hadoopZookeeper.clusterServiceSelector.service.component }}
service: {{ .Values.serviceRefs.hadoopZookeeper.clusterServiceSelector.service.service }}
port: {{ .Values.serviceRefs.hadoopZookeeper.clusterServiceSelector.service.port }}
{{- end }}
configs:
- name: hdfs-common-config
variables:
HDFS_TRASH_INTERVAL: {{ .Values.hdfs.trash.interval | quote }}
HDFS_HADOOP_TMP_DIR: {{ .Values.hdfs.core.hadoopTmpDir | quote }}
HDFS_SECURITY_AUTHENTICATION: {{ .Values.hdfs.security.authentication | quote }}
HDFS_SECURITY_AUTHORIZATION: {{ .Values.hdfs.security.authorization | quote }}
HDFS_HA_ZOOKEEPER_PARENT_ZNODE: {{ .Values.hdfs.ha.zookeeper.parentZnodePrefix | quote }}
HDFS_JMX_PORT: {{ .Values.hdfs.ports.namenode.jmx | quote }}
HDFS_NAMENODE_JMX_PORT: {{ .Values.hdfs.ports.namenode.jmx | quote }}
HDFS_DATANODE_JMX_PORT: {{ .Values.hdfs.ports.datanode.jmx | quote }}
HDFS_JOURNALNODE_JMX_PORT: {{ .Values.hdfs.ports.journalnode.jmx | quote }}
HDFS_ZKFC_JMX_PORT: {{ .Values.hdfs.ports.zkfc.jmx | quote }}
HDFS_NAMENODE_HEAP: {{ .Values.hdfs.jvm.namenodeHeapSize | quote }}
HDFS_DATANODE_HEAP: {{ .Values.hdfs.jvm.datanodeHeapSize | quote }}
HDFS_JOURNALNODE_HEAP: {{ .Values.hdfs.jvm.journalnodeHeapSize | quote }}
HDFS_ZKFC_HEAP: {{ .Values.hdfs.jvm.zkfcHeapSize | quote }}
HDFS_IPC_CLIENT_CONNECTION_MAX_IDLE_TIME_MS: {{ .Values.hdfs.ipc.clientConnectionMaxIdleTimeMs | quote }}
HDFS_IPC_CLIENT_CONNECT_TIMEOUT_MS: {{ .Values.hdfs.ipc.clientConnectTimeoutMs | quote }}
HDFS_IPC_CLIENT_CONNECTION_POOL_SIZE: {{ .Values.hdfs.ipc.clientConnectionPoolSize | quote }}
HDFS_IPC_CLIENT_CONNECT_RETRY_INTERVAL_MS: {{ .Values.hdfs.ipc.clientConnectRetryIntervalMs | quote }}
HDFS_IPC_CLIENT_PING: {{ .Values.hdfs.ipc.clientPing | quote }}
HDFS_IPC_PING_INTERVAL_MS: {{ .Values.hdfs.ipc.pingIntervalMs | quote }}
HDFS_HA_NAMENODE_IDS: {{ .Values.hdfs.ha.nameNodeIds | quote }}
{{- if $isCluster }}
HDFS_HA_ZOOKEEPER_SESSION_TIMEOUT_MS: {{ .Values.hdfs.ha.zookeeper.sessionTimeoutMs | quote }}
{{- else }}
HDFS_NAMENODE_RPC_PORT: {{ .Values.hdfs.ports.namenode.rpc | quote }}
{{- end }}
- name: namenode-config
variables:
HDFS_NAMENODE_NAME_DIR: {{ .Values.hdfs.paths.namenodeMetadataDir | quote }}
HDFS_NAMENODE_RPC_PORT: {{ .Values.hdfs.ports.namenode.rpc | quote }}
HDFS_NAMENODE_HTTP_PORT: {{ .Values.hdfs.ports.namenode.http | quote }}
HDFS_NAMENODE_HANDLER_COUNT: {{ .Values.hdfs.namenode.handlerCount | quote }}
HDFS_PERMISSIONS_ENABLED: {{ .Values.hdfs.permissions.enabled | quote }}
HDFS_PERMISSIONS_SUPERUSERGROUP: {{ .Values.hdfs.permissions.superusergroup | quote }}
HDFS_REGISTRATION_IP_HOSTNAME_CHECK: {{ .Values.hdfs.registration.ipHostnameCheck | quote }}
HDFS_NAMENODE_WEBHDFS_ENABLED: {{ .Values.hdfs.namenode.webhdfsEnabled | quote }}
HDFS_NAMENODE_RESOURCE_DU_RESERVED: {{ .Values.hdfs.namenode.resourceDuReserved | quote }}
HDFS_CLIENT_RETRY_POLICY_ENABLED: {{ .Values.hdfs.client.retryPolicyEnabled | quote }}
HDFS_CLIENT_RETRY_POLICY_SPEC: {{ .Values.hdfs.client.retryPolicySpec | quote }}
{{- if $isCluster }}
HDFS_REPLICATION: {{ .Values.hdfs.replication | quote }}
HDFS_REPLICATION_MAX: {{ .Values.hdfs.replicationMax | quote }}
HDFS_CLIENT_REPLACE_DATANODE_ON_FAILURE_POLICY: {{ .Values.hdfs.client.replaceDatanodeOnFailurePolicy | quote }}
HDFS_JOURNALNODE_RPC_PORT: {{ .Values.hdfs.ports.journalnode.rpc | quote }}
HDFS_HA_AUTOMATIC_FAILOVER_ENABLED: {{ .Values.hdfs.ha.automaticFailoverEnabled | quote }}
HDFS_HA_FENCING_METHODS: {{ .Values.hdfs.ha.fencingMethods | quote }}
HDFS_HA_FENCING_SSH_CONNECT_TIMEOUT_MS: {{ .Values.hdfs.ha.fencingSshConnectTimeoutMs | quote }}
HDFS_HA_ZOOKEEPER_SESSION_TIMEOUT_MS: {{ .Values.hdfs.ha.zookeeper.sessionTimeoutMs | quote }}
HDFS_HA_ZOOKEEPER_OPERATION_RETRIES: {{ .Values.hdfs.ha.zookeeper.operationRetries | quote }}
HDFS_HA_NAMENODE_IDS: {{ .Values.hdfs.ha.nameNodeIds | quote }}
HDFS_HA_LOG_ROLL_PERIOD: {{ .Values.hdfs.namenode.haLogRollPeriod | quote }}
HDFS_HA_TAIL_EDITS_PERIOD: {{ .Values.hdfs.namenode.haTailEditsPeriod | quote }}
{{- else }}
HDFS_REPLICATION: "1"
HDFS_REPLICATION_MAX: "1"
HDFS_CLIENT_REPLACE_DATANODE_ON_FAILURE_POLICY: "NEVER"
{{- end }}
replicas: {{ ternary (.Values.replicas.namenode | int) 1 $isCluster }}
resources:
requests:
cpu: {{ .Values.resources.namenode.requests.cpu | quote }}
memory: {{ .Values.resources.namenode.requests.memory }}
limits:
cpu: {{ .Values.resources.namenode.limits.cpu | quote }}
memory: {{ .Values.resources.namenode.limits.memory }}
{{- if $isCluster }}
schedulingPolicy:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
apps.kubeblocks.io/component-name: namenode
{{- end }}
volumeClaimTemplates:
- name: metadata-dir
spec:
accessModes:
{{ toYaml .Values.storage.namenode.accessModes | indent 14 }}
resources:
requests:
storage: {{ .Values.storage.namenode.size }}
{{- if .Values.storage.namenode.storageClassName }}
storageClassName: {{ .Values.storage.namenode.storageClassName }}
{{- end }}
- name: datanode
componentDef: {{ ternary "hdfs-datanode" "hdfs-datanode-standalone" $isCluster }}
configs:
- name: hdfs-common-config
variables:
HDFS_TRASH_INTERVAL: {{ .Values.hdfs.trash.interval | quote }}
HDFS_HADOOP_TMP_DIR: {{ .Values.hdfs.core.hadoopTmpDir | quote }}
HDFS_SECURITY_AUTHENTICATION: {{ .Values.hdfs.security.authentication | quote }}
HDFS_SECURITY_AUTHORIZATION: {{ .Values.hdfs.security.authorization | quote }}
HDFS_HA_ZOOKEEPER_PARENT_ZNODE: {{ .Values.hdfs.ha.zookeeper.parentZnodePrefix | quote }}
HDFS_JMX_PORT: {{ .Values.hdfs.ports.datanode.jmx | quote }}
HDFS_NAMENODE_JMX_PORT: {{ .Values.hdfs.ports.namenode.jmx | quote }}
HDFS_DATANODE_JMX_PORT: {{ .Values.hdfs.ports.datanode.jmx | quote }}
HDFS_JOURNALNODE_JMX_PORT: {{ .Values.hdfs.ports.journalnode.jmx | quote }}
HDFS_ZKFC_JMX_PORT: {{ .Values.hdfs.ports.zkfc.jmx | quote }}
HDFS_NAMENODE_HEAP: {{ .Values.hdfs.jvm.namenodeHeapSize | quote }}
HDFS_DATANODE_HEAP: {{ .Values.hdfs.jvm.datanodeHeapSize | quote }}
HDFS_JOURNALNODE_HEAP: {{ .Values.hdfs.jvm.journalnodeHeapSize | quote }}
HDFS_ZKFC_HEAP: {{ .Values.hdfs.jvm.zkfcHeapSize | quote }}
HDFS_IPC_CLIENT_CONNECTION_MAX_IDLE_TIME_MS: {{ .Values.hdfs.ipc.clientConnectionMaxIdleTimeMs | quote }}
HDFS_IPC_CLIENT_CONNECT_TIMEOUT_MS: {{ .Values.hdfs.ipc.clientConnectTimeoutMs | quote }}
HDFS_IPC_CLIENT_CONNECTION_POOL_SIZE: {{ .Values.hdfs.ipc.clientConnectionPoolSize | quote }}
HDFS_IPC_CLIENT_CONNECT_RETRY_INTERVAL_MS: {{ .Values.hdfs.ipc.clientConnectRetryIntervalMs | quote }}
HDFS_IPC_CLIENT_PING: {{ .Values.hdfs.ipc.clientPing | quote }}
HDFS_IPC_PING_INTERVAL_MS: {{ .Values.hdfs.ipc.pingIntervalMs | quote }}
HDFS_HA_NAMENODE_IDS: {{ .Values.hdfs.ha.nameNodeIds | quote }}
{{- if not $isCluster }}
HDFS_NAMENODE_RPC_PORT: {{ .Values.hdfs.ports.namenode.rpc | quote }}
{{- end }}
- name: datanode-config
variables:
HDFS_DATANODE_DATA_DIR: {{ .Values.hdfs.paths.datanodeDataDir | quote }}
HDFS_NAMENODE_RPC_PORT: {{ .Values.hdfs.ports.namenode.rpc | quote }}
HDFS_NAMENODE_HTTP_PORT: {{ .Values.hdfs.ports.namenode.http | quote }}
HDFS_DATANODE_HANDLER_COUNT: {{ .Values.hdfs.datanode.handlerCount | quote }}
HDFS_DATANODE_FAILED_VOLUMES_TOLERATED: {{ .Values.hdfs.datanode.failedVolumesTolerated | quote }}
HDFS_DATANODE_DU_RESERVED: {{ .Values.hdfs.datanode.duReserved | quote }}
HDFS_PERMISSIONS_ENABLED: {{ .Values.hdfs.permissions.enabled | quote }}
HDFS_HA_NAMENODE_IDS: {{ .Values.hdfs.ha.nameNodeIds | quote }}
HDFS_CLIENT_RETRY_POLICY_ENABLED: {{ .Values.hdfs.client.retryPolicyEnabled | quote }}
HDFS_CLIENT_RETRY_POLICY_SPEC: {{ .Values.hdfs.client.retryPolicySpec | quote }}
{{- if $isCluster }}
HDFS_REPLICATION: {{ .Values.hdfs.replication | quote }}
HDFS_REPLICATION_MAX: {{ .Values.hdfs.replicationMax | quote }}
HDFS_CLIENT_REPLACE_DATANODE_ON_FAILURE_POLICY: {{ .Values.hdfs.client.replaceDatanodeOnFailurePolicy | quote }}
{{- else }}
HDFS_REPLICATION: "1"
HDFS_REPLICATION_MAX: "1"
HDFS_CLIENT_REPLACE_DATANODE_ON_FAILURE_POLICY: "NEVER"
{{- end }}
replicas: {{ ternary (.Values.replicas.datanode | int) 1 $isCluster }}
resources:
requests:
cpu: {{ .Values.resources.datanode.requests.cpu | quote }}
memory: {{ .Values.resources.datanode.requests.memory }}
limits:
cpu: {{ .Values.resources.datanode.limits.cpu | quote }}
memory: {{ .Values.resources.datanode.limits.memory }}
{{- if $isCluster }}
schedulingPolicy:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
apps.kubeblocks.io/component-name: datanode
{{- end }}
volumeClaimTemplates:
- name: hdfs-data-0
spec:
accessModes:
{{ toYaml .Values.storage.datanode.accessModes | indent 14 }}
resources:
requests:
storage: {{ .Values.storage.datanode.size }}
{{- if .Values.storage.datanode.storageClassName }}
storageClassName: {{ .Values.storage.datanode.storageClassName }}
{{- end }}
20 changes: 20 additions & 0 deletions addons-cluster/hadoop/templates/prometheus/monitor.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1/PodMonitor") .Values.prometheus.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: {{ include "kblib.clusterName" . }}-metrics-monitor
namespace: {{ .Release.Namespace }}
labels:
{{- include "kblib.clusterLabels" . | nindent 4 }}
spec:
podMetricsEndpoints:
- path: /metrics
port: http-metrics
scheme: http
namespaceSelector:
matchNames:
- {{ .Release.Namespace }}
selector:
matchLabels:
app.kubernetes.io/instance: {{ include "kblib.clusterName" . | quote }}
{{- end }}
Loading
Loading