This is an automated email from the ASF dual-hosted git repository.
adoroszlai pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ozone-helm-charts.git
The following commit(s) were added to refs/heads/main by this push:
new 0463c8c HDDS-11966. Add Recon support (#16)
0463c8c is described below
commit 0463c8cbb18337a995f384642585727f8bd8481a
Author: Fraochan <[email protected]>
AuthorDate: Thu Dec 18 06:51:19 2025 +0000
HDDS-11966. Add Recon support (#16)
---
charts/ozone/templates/NOTES.txt | 7 ++
charts/ozone/templates/_helpers.tpl | 4 +
charts/ozone/templates/recon/recon-deployment.yaml | 100 +++++++++++++++++++++
charts/ozone/templates/recon/recon-service.yaml | 46 ++++++++++
charts/ozone/values.yaml | 27 ++++++
5 files changed, 184 insertions(+)
diff --git a/charts/ozone/templates/NOTES.txt b/charts/ozone/templates/NOTES.txt
index eb64f5b..6988cd9 100644
--- a/charts/ozone/templates/NOTES.txt
+++ b/charts/ozone/templates/NOTES.txt
@@ -48,3 +48,10 @@ S3 Gateway
To access S3 Gateway from a browser, use the following command and visit
localhost:{{ .Values.s3g.service.web.port }}
$ kubectl port-forward svc/{{ .Release.Name }}-s3g-web {{
.Values.s3g.service.web.port }}:{{ .Values.s3g.service.web.port }}
+
+{{- if .Values.recon.enabled }}
+
+Recon
+ To access Recon from a browser, use the following command and visit
localhost:{{ .Values.recon.service.port }}
+ $ kubectl port-forward svc/{{ .Release.Name }}-recon {{
.Values.recon.service.port }}:{{ .Values.recon.service.port }}
+{{- end }}
diff --git a/charts/ozone/templates/_helpers.tpl
b/charts/ozone/templates/_helpers.tpl
index dcdd72d..71ea063 100644
--- a/charts/ozone/templates/_helpers.tpl
+++ b/charts/ozone/templates/_helpers.tpl
@@ -73,4 +73,8 @@ app.kubernetes.io/instance: {{ .Release.Name }}
value: "1"
- name: OZONE-SITE.XML_dfs.datanode.use.datanode.hostname
value: "true"
+{{- if .Values.recon.enabled }}
+- name: OZONE-SITE.XML_ozone.recon.address
+ value: "{{- printf "%s-recon.%s.svc.cluster.local" $.Release.Name
$.Release.Namespace }}:9891"
+{{- end }}
{{- end }}
diff --git a/charts/ozone/templates/recon/recon-deployment.yaml
b/charts/ozone/templates/recon/recon-deployment.yaml
new file mode 100644
index 0000000..f05caa7
--- /dev/null
+++ b/charts/ozone/templates/recon/recon-deployment.yaml
@@ -0,0 +1,100 @@
+{{/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/}}
+
+{{- if .Values.recon.enabled }}
+{{- $env := concat .Values.env .Values.recon.env }}
+{{- $envFrom := concat .Values.envFrom .Values.recon.envFrom }}
+{{- $nodeSelector := or .Values.recon.nodeSelector .Values.nodeSelector }}
+{{- $affinity := or .Values.recon.affinity .Values.affinity }}
+{{- $tolerations := or .Values.recon.tolerations .Values.tolerations }}
+{{- $securityContext := or .Values.recon.securityContext
.Values.securityContext }}
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: {{ .Release.Name }}-recon
+ labels:
+ {{- include "ozone.labels" . | nindent 4 }}
+ app.kubernetes.io/component: recon
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ {{- include "ozone.selectorLabels" . | nindent 6 }}
+ app.kubernetes.io/component: recon
+ template:
+ metadata:
+ annotations:
+ checksum/config: {{ include (print $.Template.BasePath
"/ozone-configmap.yaml") . | sha256sum }}
+ labels:
+ {{- include "ozone.selectorLabels" . | nindent 8 }}
+ app.kubernetes.io/component: recon
+ spec:
+ containers:
+ - name: recon
+ image: "{{ .Values.image.repository }}:{{ .Values.image.tag |
default .Chart.AppVersion }}"
+ imagePullPolicy: {{ .Values.image.pullPolicy }}
+ {{- with .Values.recon.command }}
+ command: {{- tpl (toYaml .) $ | nindent 12 }}
+ {{- end }}
+ {{- with .Values.recon.args }}
+ args: {{- tpl (toYaml .) $ | nindent 12 }}
+ {{- end }}
+ env:
+ {{- include "ozone.configuration.env" . | nindent 12 }}
+ {{- with $env }}
+ {{- tpl (toYaml .) $ | nindent 12 }}
+ {{- end }}
+ {{- with $envFrom }}
+ envFrom: {{- tpl (toYaml .) $ | nindent 12 }}
+ {{- end }}
+ ports:
+ - name: ui
+ containerPort: {{ .Values.recon.service.port }}
+ livenessProbe:
+ tcpSocket:
+ port: 9891
+ initialDelaySeconds: 30
+ readinessProbe:
+ tcpSocket:
+ port: 9891
+ initialDelaySeconds: 30
+ volumeMounts:
+ - name: config
+ mountPath: {{ .Values.configuration.dir }}
+ {{- with $nodeSelector }}
+ nodeSelector: {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with $affinity }}
+ affinity: {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with $tolerations }}
+ tolerations: {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with $securityContext }}
+ securityContext: {{- toYaml . | nindent 8 }}
+ {{- end }}
+ volumes:
+ - name: config
+ projected:
+ sources:
+ - configMap:
+ name: {{ .Release.Name }}-ozone
+ {{- with .Values.configuration.filesFrom }}
+ {{- tpl (toYaml .) $ | nindent 14 }}
+ {{- end }}
+{{- end }}
\ No newline at end of file
diff --git a/charts/ozone/templates/recon/recon-service.yaml
b/charts/ozone/templates/recon/recon-service.yaml
new file mode 100644
index 0000000..fe21f1e
--- /dev/null
+++ b/charts/ozone/templates/recon/recon-service.yaml
@@ -0,0 +1,46 @@
+{{/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/}}
+
+{{- if .Values.recon.enabled }}
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ .Release.Name }}-recon
+ labels:
+ {{- include "ozone.labels" . | nindent 4 }}
+ app.kubernetes.io/component: recon
+ {{- with .Values.recon.service.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.recon.service.annotations }}
+ annotations: {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ type: {{ .Values.recon.service.type }}
+ ports:
+ - name: ui
+ port: {{ .Values.recon.service.port }}
+ {{- if and (eq .Values.recon.service.type "NodePort")
(.Values.recon.service.nodePort) }}
+ nodePort: {{ .Values.recon.service.nodePort }}
+ {{- end }}
+ - name: tcp
+ port: 9891
+ selector:
+ {{- include "ozone.selectorLabels" . | nindent 4 }}
+ app.kubernetes.io/component: recon
+{{- end }}
\ No newline at end of file
diff --git a/charts/ozone/values.yaml b/charts/ozone/values.yaml
index 8defa29..a06ea87 100644
--- a/charts/ozone/values.yaml
+++ b/charts/ozone/values.yaml
@@ -247,3 +247,30 @@ scm:
size: 10Gi
# The name of a specific storage class name to use
storageClassName: ~
+
+# Recon configuration
+recon:
+ enabled: false
+ # Command to launch Recon (templated)
+ command: ~
+ # Arguments to launch Recon (templated)
+ args: ["ozone", "recon"]
+ # Additional Recon environment variables (templated)
+ env: []
+ # Additional Recon envFrom items to set up environment variables (templated)
+ envFrom: []
+ # Constrain Recon pods to nodes with specific node labels
+ nodeSelector: {}
+ # Constrain Recon pods to nodes by affinity/anti-affinity rules
+ affinity: {}
+ # Allow to schedule Recon pods on nodes with matching taints
+ tolerations: []
+ # Recon security context (overwrites common security context)
+ securityContext: {}
+ # Recon service configuration
+ service:
+ type: ClusterIP
+ port: 9888
+ nodePort: ~
+ labels: {}
+ annotations: {}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]