This is an automated email from the ASF dual-hosted git repository.

ssulav pushed a commit to branch HDDS-14676
in repository https://gitbox.apache.org/repos/asf/ozone-installer.git


The following commit(s) were added to refs/heads/HDDS-14676 by this push:
     new 1d61f1d  HDDS-14676. Add configurable port for all ozone process
1d61f1d is described below

commit 1d61f1d31a37aea18a3e5894b0bce0434445dcb0
Author: Soumitra Sulav <[email protected]>
AuthorDate: Sun Mar 1 03:01:27 2026 +0530

    HDDS-14676. Add configurable port for all ozone process
---
 roles/ozone_config/defaults/main.yml               |  30 +++-
 roles/ozone_config/templates/core-site.xml.j2      |   2 +-
 roles/ozone_config/templates/ozone-site.xml.j2     | 165 +++++++++++++++++----
 roles/ozone_smoke_s3g/defaults/main.yml            |   1 +
 roles/ozone_smoke_s3g/tasks/main.yml               |   2 +-
 roles/{ozone_config => ozone_ui}/defaults/main.yml |  15 +-
 roles/ozone_ui/tasks/main.yml                      |  12 +-
 7 files changed, 180 insertions(+), 47 deletions(-)

diff --git a/roles/ozone_config/defaults/main.yml 
b/roles/ozone_config/defaults/main.yml
index a527b6b..3a10c45 100644
--- a/roles/ozone_config/defaults/main.yml
+++ b/roles/ozone_config/defaults/main.yml
@@ -19,4 +19,32 @@ install_base: "/opt/ozone"
 data_base: "/data/ozone"
 CONFIG_DIR: ""   # if provided, can be used to feed additional properties via 
vars
 
-
+# Service ports — Ozone upstream defaults.
+# Override any of these in inventories/dev/group_vars/all.yml to resolve port 
conflicts.
+# ---
+# SCM
+port_scm_client: 19860              # ozone.scm.client.port
+port_scm_datanode: 19861            # ozone.scm.datanode.port
+port_scm_block_client: 19863        # ozone.scm.block.client.port
+port_scm_http: 19876                # ozone.scm.http-address
+port_scm_ratis: 19894               # ozone.scm.ratis.port
+port_scm_grpc: 19895                # ozone.scm.grpc.port
+# OM
+port_om_rpc: 19862             # ozone.om.port (binds to hostname, not 0.0.0.0)
+port_om_http: 19874            # ozone.om.http-address
+port_om_ratis: 19872           # ozone.om.ratis.port
+port_om_grpc: 18981            # ozone.om.grpc.port
+# Recon
+port_recon_http: 19888         # ozone.recon.http-address
+port_recon_datanode: 19891     # ozone.recon.datanode.port & 
ozone.recon.address
+# S3G
+port_s3g_http: 19878           # ozone.s3g.http-address
+port_s3g_admin: 29878          # ozone.s3g.webadmin.http-address
+# Datanode
+port_datanode_http: 19882             # hdds.datanode.http-address
+port_datanode_replication: 19886      # hdds.datanode.replication.port
+port_datanode_ratis_ipc: 19858        # hdds.container.ratis.ipc.port & 
hdds.datanode.ipc
+port_datanode_client: 19859           # hdds.container.ipc.port 
(XceiverServerGrpc bind)
+                                      # DatanodeDetails.clientPort is 
populated from this automatically
+port_datanode_ratis_server: 19856     # dfs.container.ratis.datanode.port & 
hdds.container.ratis.server.port
+port_datanode_ratis_admin: 19857      # dfs.container.ratis.admin.port
diff --git a/roles/ozone_config/templates/core-site.xml.j2 
b/roles/ozone_config/templates/core-site.xml.j2
index d842ec0..eb0e9eb 100644
--- a/roles/ozone_config/templates/core-site.xml.j2
+++ b/roles/ozone_config/templates/core-site.xml.j2
@@ -24,7 +24,7 @@
 {% else %}
   <property>
     <name>fs.defaultFS</name>
-    <value>ofs://{{ om_hosts[0] }}:9862</value>
+    <value>ofs://{{ om_hosts[0] }}:{{ port_om_rpc }}</value>
   </property>
 {% endif %}
 </configuration>
diff --git a/roles/ozone_config/templates/ozone-site.xml.j2 
b/roles/ozone_config/templates/ozone-site.xml.j2
index 3b8b967..436fb59 100644
--- a/roles/ozone_config/templates/ozone-site.xml.j2
+++ b/roles/ozone_config/templates/ozone-site.xml.j2
@@ -27,21 +27,91 @@
 {% set om_hosts = (_om_all[:1] if not (ha_enabled | default(false)) else 
_om_all) %}
 {% set scm_hosts = (_scm_all[:1] if not (ha_enabled | default(false)) else 
_scm_all) %}
 
+  <property>
+    <name>ozone.metadata.dirs</name>
+    <value>{{ _first_metadata }}/meta</value>
+  </property>
+  <property>
+    <name>hdds.datanode.dir</name>
+    <value>{% for d in _data_bases %}{{ d }}/dn{% if not loop.last %},{% endif 
%}{% endfor %}</value>
+  </property>
+  <property>
+    <name>dfs.container.ratis.datanode.storage.dir</name>
+    <value>{{ _first_metadata }}/meta/dn</value>
+  </property>
+  <property>
+    <name>ozone.om.db.dirs</name>
+    <value>{{ _first_metadata }}/data/om</value>
+  </property>
+  <property>
+    <name>ozone.om.ratis.snapshot.dir</name>
+    <value>{{ _first_metadata }}/meta/om</value>
+  </property>
+  <property>
+    <name>ozone.scm.db.dirs</name>
+    <value>{{ _first_metadata }}/data/scm</value>
+  </property>
+  <property>
+    <name>ozone.scm.datanode.id.dir</name>
+    <value>{{ _first_metadata }}/meta/scm</value>
+  </property>
+  <property>
+    <name>ozone.scm.skip.bootstrap.validation</name>
+    <value>true</value>
+  </property>
+  <property>
+    <name>ozone.replication</name>
+{% if _all_dn_count < 3 %}
+    <value>ONE</value>
+{% else %}
+    <value>THREE</value>
+{% endif %}
+  </property>
 {% if scm_hosts|length > 0 %}
+  <!-- SCM ports -->
   <property>
     <name>ozone.scm.names</name>
     <value>{{ scm_hosts | join(',') }}</value>
   </property>
   <property>
     <name>ozone.scm.client.address</name>
-    <value>{{ scm_hosts | join(':9860,') }}:9860</value>
+    <value>{{ scm_hosts | map('regex_replace', '$', ':' ~ port_scm_client) | 
join(',') }}</value>
   </property>
   <property>
     <name>ozone.scm.datanode.address</name>
-    <value>{{ scm_hosts | join(':9861,') }}:9861</value>
+    <value>{{ scm_hosts | map('regex_replace', '$', ':' ~ port_scm_datanode) | 
join(',') }}</value>
+  </property>
+  <property>
+    <name>ozone.scm.block.client.address</name>
+    <value>{{ scm_hosts | map('regex_replace', '$', ':' ~ 
port_scm_block_client) | join(',') }}</value>
+  </property>
+  <property>
+    <name>ozone.scm.client.port</name>
+    <value>{{ port_scm_client }}</value>
+  </property>
+  <property>
+    <name>ozone.scm.datanode.port</name>
+    <value>{{ port_scm_datanode }}</value>
+  </property>
+  <property>
+    <name>ozone.scm.block.client.port</name>
+    <value>{{ port_scm_block_client }}</value>
+  </property>
+  <property>
+    <name>ozone.scm.http-address</name>
+    <value>0.0.0.0:{{ port_scm_http }}</value>
+  </property>
+  <property>
+    <name>ozone.scm.ratis.port</name>
+    <value>{{ port_scm_ratis }}</value>
+  </property>
+  <property>
+    <name>ozone.scm.grpc.port</name>
+    <value>{{ port_scm_grpc }}</value>
   </property>
 {% endif %}
 {% if scm_hosts|length > 1 %}
+  <!-- SCM ports -->
   <property>
     <name>ozone.scm.primordial.node.id</name>
     <value>{{ scm_hosts[0] }}</value>
@@ -62,11 +132,13 @@
 {% endfor %}
 {% endif %}
 {% if om_hosts|length == 1 %}
+  <!-- OM ports -->
   <property>
     <name>ozone.om.address</name>
-    <value>{{ om_hosts[0] }}:9862</value>
+    <value>{{ om_hosts[0] }}:{{ port_om_rpc }}</value>
   </property>
 {% elif om_hosts|length > 1 %}
+  <!-- OM ports -->
   <property>
     <name>ozone.om.service.ids</name>
     <value>omservice</value>
@@ -78,69 +150,98 @@
 {% for h in om_hosts %}
   <property>
     <name>ozone.om.address.omservice.om{{ loop.index }}</name>
-    <value>{{ h }}:9862</value>
+    <value>{{ h }}:{{ port_om_rpc }}</value>
+  </property>
+  <property>
+    <name>ozone.om.ratis.port.omservice.om{{ loop.index }}</name>
+    <value>{{ port_om_ratis }}</value>
+  </property>
+  <property>
+    <name>ozone.om.http-address.omservice.om{{ loop.index }}</name>
+    <value>{{ h }}:{{ port_om_http }}</value>
   </property>
 {% endfor %}
 {% endif %}
+{% if om_hosts|length > 0 %}
+  <property>
+    <name>ozone.om.port</name>
+    <value>{{ port_om_rpc }}</value>
+  </property>
+  <property>
+    <name>ozone.om.ratis.port</name>
+    <value>{{ port_om_ratis }}</value>
+  </property>
+  <property>
+    <name>ozone.om.http-address</name>
+    <value>0.0.0.0:{{ port_om_http }}</value>
+  </property>
+  <property>
+    <name>ozone.om.grpc.port</name>
+    <value>{{ port_om_grpc }}</value>
+  </property>
+{% endif %}
 {% if recon_hosts|length > 0 %}
+  <!-- Recon ports -->
   <property>
     <name>ozone.recon.http-address</name>
-    <value>{{ recon_hosts[0] }}:9888</value>
+    <value>{{ recon_hosts[0] }}:{{ port_recon_http }}</value>
   </property>
   <property>
     <name>ozone.recon.address</name>
-    <value>{{ recon_hosts[0] }}:9891</value>
+    <value>{{ recon_hosts[0] }}:{{ port_recon_datanode }}</value>
+  </property>
+  <property>
+    <name>ozone.recon.datanode.address</name>
+    <value>0.0.0.0:{{ port_recon_datanode }}</value>
+  </property>
+  <property>
+    <name>ozone.recon.datanode.port</name>
+    <value>{{ port_recon_datanode }}</value>
   </property>
 {% endif %}
 {% if s3g_hosts|length > 0 %}
+  <!-- S3G ports -->
   <property>
     <name>ozone.s3g.http-address</name>
-    <value>{{ s3g_hosts[0] }}:9878</value>
+    <value>{{ s3g_hosts[0] }}:{{ port_s3g_http }}</value>
   </property>
   <property>
     <name>ozone.s3g.webadmin.http-address</name>
-    <value>{{ s3g_hosts[0] }}:19878</value>
+    <value>{{ s3g_hosts[0] }}:{{ port_s3g_admin }}</value>
   </property>
 {% endif %}
+  <!-- Datanode ports -->
   <property>
-    <name>ozone.metadata.dirs</name>
-    <value>{{ _first_metadata }}/meta</value>
+    <name>hdds.datanode.http-address</name>
+    <value>0.0.0.0:{{ port_datanode_http }}</value>
   </property>
   <property>
-    <name>hdds.datanode.dir</name>
-    <value>{% for d in _data_bases %}{{ d }}/dn{% if not loop.last %},{% endif 
%}{% endfor %}</value>
+    <name>hdds.datanode.ipc</name>
+    <value>0.0.0.0:{{ port_datanode_ratis_ipc }}</value>
   </property>
   <property>
-    <name>dfs.container.ratis.datanode.storage.dir</name>
-    <value>{{ _first_metadata }}/meta/dn</value>
+    <name>dfs.container.ratis.datanode.port</name>
+    <value>{{ port_datanode_ratis_server }}</value>
   </property>
   <property>
-    <name>ozone.om.db.dirs</name>
-    <value>{{ _first_metadata }}/data/om</value>
+    <name>dfs.container.ratis.admin.port</name>
+    <value>{{ port_datanode_ratis_admin }}</value>
   </property>
   <property>
-    <name>ozone.om.ratis.snapshot.dir</name>
-    <value>{{ _first_metadata }}/meta/om</value>
+    <name>hdds.container.ipc.port</name>
+    <value>{{ port_datanode_client }}</value>
   </property>
   <property>
-    <name>ozone.scm.db.dirs</name>
-    <value>{{ _first_metadata }}/data/scm</value>
+    <name>hdds.container.ratis.server.port</name>
+    <value>{{ port_datanode_ratis_server }}</value>
   </property>
   <property>
-    <name>ozone.scm.datanode.id.dir</name>
-    <value>{{ _first_metadata }}/meta/scm</value>
-  </property>
-  <property>
-    <name>ozone.scm.skip.bootstrap.validation</name>
-    <value>true</value>
+    <name>hdds.container.ratis.ipc.port</name>
+    <value>{{ port_datanode_ratis_ipc }}</value>
   </property>
   <property>
-    <name>ozone.replication</name>
-{% if _all_dn_count < 3 %}
-    <value>ONE</value>
-{% else %}
-    <value>THREE</value>
-{% endif %}
+    <name>hdds.datanode.replication.port</name>
+    <value>{{ port_datanode_replication }}</value>
   </property>
 </configuration>
 
diff --git a/roles/ozone_smoke_s3g/defaults/main.yml 
b/roles/ozone_smoke_s3g/defaults/main.yml
index 1d4b836..3cf2328 100644
--- a/roles/ozone_smoke_s3g/defaults/main.yml
+++ b/roles/ozone_smoke_s3g/defaults/main.yml
@@ -15,3 +15,4 @@
 #
 s3g_bucket: demos3gbuck
 s3g_key: demos3gkey
+port_s3g_http: 19878
diff --git a/roles/ozone_smoke_s3g/tasks/main.yml 
b/roles/ozone_smoke_s3g/tasks/main.yml
index 02851e4..9344a18 100644
--- a/roles/ozone_smoke_s3g/tasks/main.yml
+++ b/roles/ozone_smoke_s3g/tasks/main.yml
@@ -16,7 +16,7 @@
 ---
 - name: "Set S3G endpoint argument"
   set_fact:
-    s3g_endpoint_arg: '--endpoint-url "http://{{ inventory_hostname }}:9878"'
+    s3g_endpoint_arg: '--endpoint-url "http://{{ inventory_hostname }}:{{ 
port_s3g_http }}"'
 
 - name: "Install awscli on S3G host"
   package:
diff --git a/roles/ozone_config/defaults/main.yml 
b/roles/ozone_ui/defaults/main.yml
similarity index 71%
copy from roles/ozone_config/defaults/main.yml
copy to roles/ozone_ui/defaults/main.yml
index a527b6b..827ae0a 100644
--- a/roles/ozone_config/defaults/main.yml
+++ b/roles/ozone_ui/defaults/main.yml
@@ -14,9 +14,12 @@
 # limitations under the License.
 
 ---
-install_base: "/opt/ozone"
-# data_base: single path or comma-separated paths (e.g. /data/ozone or 
/data/ozone1,/data/ozone2)
-data_base: "/data/ozone"
-CONFIG_DIR: ""   # if provided, can be used to feed additional properties via 
vars
-
-
+# UI endpoint ports — must mirror ozone_config/defaults/main.yml.
+# These are needed because ozone_ui runs in a separate play and does not
+# inherit role defaults from ozone_config.
+port_om_http: 19874
+port_scm_http: 19876
+port_recon_http: 19888
+port_s3g_http: 19878
+port_s3g_admin: 29878
+port_datanode_http: 19882
diff --git a/roles/ozone_ui/tasks/main.yml b/roles/ozone_ui/tasks/main.yml
index bf7167b..c28b93f 100644
--- a/roles/ozone_ui/tasks/main.yml
+++ b/roles/ozone_ui/tasks/main.yml
@@ -25,12 +25,12 @@
 - name: "Compute service UI URLs"
   set_fact:
     endpoint_urls:
-      om: "{{ _om_hosts_ui | map('regex_replace','^(.*)$','http://\\1:9874') | 
list }}"
-      scm: "{{ _scm_hosts_ui | map('regex_replace','^(.*)$','http://\\1:9876') 
| list }}"
-      recon: "{{ (_recon_hosts_ui | length > 0) | ternary(['http://' + 
_recon_hosts_ui[0] + ':9888'], []) }}"
-      s3g_http: "{{ _s3g_hosts_ui | 
map('regex_replace','^(.*)$','http://\\1:9878') | list }}"
-      s3g_admin: "{{ _s3g_hosts_ui | 
map('regex_replace','^(.*)$','http://\\1:19878') | list }}"
-      datanode: "{{ (_datanodes_ui | length > 0) | ternary(['http://' + 
_datanodes_ui[0] + ':9882'], []) }}"
+      om: "{{ _om_hosts_ui | map('regex_replace', '^(.*)$', 'http://\\1:' ~ 
port_om_http) | list }}"
+      scm: "{{ _scm_hosts_ui | map('regex_replace', '^(.*)$', 'http://\\1:' ~ 
port_scm_http) | list }}"
+      recon: "{{ (_recon_hosts_ui | length > 0) | ternary(['http://' + 
_recon_hosts_ui[0] + ':' + (port_recon_http | string)], []) }}"
+      s3g_http: "{{ _s3g_hosts_ui | map('regex_replace', '^(.*)$', 
'http://\\1:' ~ port_s3g_http) | list }}"
+      s3g_admin: "{{ _s3g_hosts_ui | map('regex_replace', '^(.*)$', 
'http://\\1:' ~ port_s3g_admin) | list }}"
+      datanode: "{{ (_datanodes_ui | length > 0) | ternary(['http://' + 
_datanodes_ui[0] + ':' + (port_datanode_http | string)], []) }}"
 
 - name: "Export UI endpoints to controller logs directory"
   copy:


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to