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

remm pushed a commit to branch 10.1.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/10.1.x by this push:
     new d74224d205 Support raw IPv6 for the service host
d74224d205 is described below

commit d74224d205275b1ad9a417d25c9b39f0771ec2a0
Author: remm <[email protected]>
AuthorDate: Fri Mar 6 19:24:46 2026 +0100

    Support raw IPv6 for the service host
    
    BZ69970
---
 .../tribes/membership/cloud/KubernetesMembershipProvider.java  | 10 +++++++++-
 webapps/docs/changelog.xml                                     |  8 ++++++++
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git 
a/java/org/apache/catalina/tribes/membership/cloud/KubernetesMembershipProvider.java
 
b/java/org/apache/catalina/tribes/membership/cloud/KubernetesMembershipProvider.java
index c8fac1d531..1af899d8d2 100644
--- 
a/java/org/apache/catalina/tribes/membership/cloud/KubernetesMembershipProvider.java
+++ 
b/java/org/apache/catalina/tribes/membership/cloud/KubernetesMembershipProvider.java
@@ -46,6 +46,9 @@ import org.apache.tomcat.util.json.JSONParser;
 
 public class KubernetesMembershipProvider extends CloudMembershipProvider {
 
+    private static final String IPV6_URL = 
"%s://[%s]:%s/api/%s/namespaces/%s/pods";
+    private static final String URL = "%s://%s:%s/api/%s/namespaces/%s/pods";
+
     private static final Log log = 
LogFactory.getLog(KubernetesMembershipProvider.class);
 
     private Path saTokenPath;
@@ -122,7 +125,12 @@ public class KubernetesMembershipProvider extends 
CloudMembershipProvider {
         namespace = URLEncoder.encode(namespace, StandardCharsets.UTF_8);
         labels = labels == null ? null : URLEncoder.encode(labels, 
StandardCharsets.UTF_8);
 
-        url = String.format("%s://%s:%s/api/%s/namespaces/%s/pods", protocol, 
masterHost, masterPort, ver, namespace);
+        String urlFormat = URL;
+        if (masterHost != null && masterHost.indexOf(':') != -1) {
+            // [] must be used around raw IPv6
+            urlFormat = IPV6_URL;
+        }
+        url = String.format(urlFormat, protocol, masterHost, masterPort, ver, 
namespace);
         if (labels != null && !labels.isEmpty()) {
             url = url + "?labelSelector=" + labels;
         }
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index ed0fad9c92..3834f9e840 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -189,6 +189,14 @@
       </fix>
     </changelog>
   </subsection>
+  <subsection name="Cluster">
+    <changelog>
+      <fix>
+        <bug>69970</bug>: Support raw IPv6 in Kubernetes membership provider
+        for the service host. (remm)
+      </fix>
+    </changelog>
+  </subsection>
   <subsection name="Web applications">
     <changelog>
       <add>


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

Reply via email to