Hi Joseph, I have updated my 2 patches, both tested on ipv4 and ipv6 setup. https://review.opendev.org/#/c/714034/ https://review.opendev.org/#/c/714038/ But still failed when deploy keystone, glance, cinder later. Common failure causes are found that need to bind host to :: instead of 0.0.0.0. Otherwise, it will only bind port to ipv4 address, which causes db connect failure or pod probe failure. After below changes, it can run until deploying cinder. 1)Change mariadb value.yaml conf: bind adress from 0.0.0.0 to :: 2) Change keystone value.yaml wsgi_keystone: | {{- $portInt := tuple "identity" "internal" "api" $ | include "helm-toolkit.endpoints.endpoint_port_lookup" }} Listen 0.0.0.0:{{ $portInt }} change to Listen :::{{ $portInt }} 3) Change glance value.yaml Conf.Default: add bind_host = "::" I have to check these services deploy one by one. Thanks! Zhipeng From: Liu, ZhipengS Sent: 2020年3月19日 22:00 To: 'Richard, Joseph' <Joseph.Richard@windriver.com> Cc: starlingx-discuss@lists.starlingx.io Subject: RE: [Starlingx-discuss] IPv6 issue when apply OpenStack on IPv6 simplex. Thanks Joseph! I guess it can go further. But keystone-db failed, which is the same as I met in my another ipv4 setup. I will build an EB based on a latest green daily build. The patch will come soon for your review. Thanks! Zhipeng From: Richard, Joseph <Joseph.Richard@windriver.com<mailto:Joseph.Richard@windriver.com>> Sent: 2020年3月19日 21:20 To: Liu, ZhipengS <zhipengs.liu@intel.com<mailto:zhipengs.liu@intel.com>> Cc: starlingx-discuss@lists.starlingx.io<mailto:starlingx-discuss@lists.starlingx.io> Subject: Re: [Starlingx-discuss] IPv6 issue when apply OpenStack on IPv6 simplex. Great! We definitely did support this before openstack-helm and openstack-helm-infra were upversioned around December. You should be able to control this in the rabbitmq helm plugin, so you can modify the behaviour based on ip version. https://github.com/starlingx/config/blob/master/sysinv/sysinv/sysinv/sysinv/... Once you get passed this point, does everything else come up as well? Does the app successfully apply? ________________________________ From: Liu, ZhipengS <zhipengs.liu@intel.com<mailto:zhipengs.liu@intel.com>> Sent: Thursday, March 19, 2020 5:21 AM To: Richard, Joseph <Joseph.Richard@windriver.com<mailto:Joseph.Richard@windriver.com>> Cc: starlingx-discuss@lists.starlingx.io<mailto:starlingx-discuss@lists.starlingx.io> <starlingx-discuss@lists.starlingx.io<mailto:starlingx-discuss@lists.starlingx.io>> Subject: RE: [Starlingx-discuss] IPv6 issue when apply OpenStack on IPv6 simplex. Hi Joseph, I fixed this issue now!! After check port status by sudo ip -all netns exec lsof -I, it shows that Rabbitmq only bind 15672 to ipv4. I add below changes and pass the rabbitmq deployment. conf: rabbitmq: management.listener.port: 15672 management.listener.ip: "::" Next step: I have to think how to submit this patch to support both ipv4 and ipv6 BTW, are you sure we passed this test before using OpenStack- train version? If not change helm chart, how can we pass it? Thanks! Zhipeng From: Liu, ZhipengS Sent: 2020年3月19日 10:07 To: Richard, Joseph <Joseph.Richard@windriver.com<mailto:Joseph.Richard@windriver.com>>; starlingx-discuss@lists.starlingx.io<mailto:starlingx-discuss@lists.starlingx.io> Subject: RE: [Starlingx-discuss] IPv6 issue when apply OpenStack on IPv6 simplex. Hi Joseph, Below is my patch to make rabbitmq pod start in ipv6 setup.(This is not a formal patch)
From 99fc5aff8d70645c3130552789ea51d82cd287b2 Mon Sep 17 00:00:00 2001
From: Zhipeng Liu <zhipengs.liu@intel.com<mailto:zhipengs.liu@intel.com>> Date: Thu, 19 Mar 2020 18:53:07 +0800 Subject: [PATCH] Fix rabbtimq pod not starting issue in IPv6 setup Signed-off-by: Zhipeng Liu <zhipengs.liu@intel.com<mailto:zhipengs.liu@intel.com>> --- rabbitmq/templates/configmap-etc.yaml | 8 +++++++- rabbitmq/templates/job-cluster-wait.yaml | 2 ++ rabbitmq/templates/statefulset.yaml | 8 ++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/rabbitmq/templates/configmap-etc.yaml b/rabbitmq/templates/configmap-etc.yaml index 87f25f5..18e2145 100644 --- a/rabbitmq/templates/configmap-etc.yaml +++ b/rabbitmq/templates/configmap-etc.yaml @@ -21,7 +21,8 @@ limitations under the License. {{- $_ := print "kubernetes.default.svc." $envAll.Values.endpoints.cluster_domain_suffix | set $envAll.Values.conf.rabbitmq.cluster_formation.k8s "host" -}} {{- end -}} -{{- $_ := print "0.0.0.0:" ( tuple "oslo_messaging" "internal" "amqp" . | include "helm-toolkit.endpoints.endpoint_port_lookup") | set $envAll.Values.conf.rabbitmq.listeners.tcp "1" -}} +{{- $_ := print ":::" ( tuple "oslo_messaging" "internal" "amqp" . | include "helm-toolkit.endpoints.endpoint_port_lookup") | set $envAll.Values.conf.rabbitmq.listeners.tcp "1" -}} + --- apiVersion: v1 @@ -33,4 +34,9 @@ data: {{ tuple "etc/_enabled_plugins.tpl" . | include "helm-toolkit.utils.template" | indent 4 }} rabbitmq.conf: | {{ include "rabbitmq.utils.to_rabbit_config" $envAll.Values.conf.rabbitmq | indent 4 }} + rabbitmq-env.conf: | + SERVER_ADDITIONAL_ERL_ARGS="+A 128 -kernel inetrc '/etc/rabbitmq/erl_inetrc' -proto_dist inet6_tcp" + CTL_ERL_ARGS="-proto_dist inet6_tcp" + erl_inetrc: | + {inet6, true}. {{ end }} diff --git a/rabbitmq/templates/job-cluster-wait.yaml b/rabbitmq/templates/job-cluster-wait.yaml index bf8e710..24a30a3 100644 --- a/rabbitmq/templates/job-cluster-wait.yaml +++ b/rabbitmq/templates/job-cluster-wait.yaml @@ -66,6 +66,8 @@ spec: env: - name: RABBITMQ_ADMIN_CONNECTION value: {{ tuple "oslo_messaging" "internal" "user" "http" $envAll | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | quote }} + - name: RABBITMQ_CTL_ERL_ARGS + value: "-proto_dist inet6_tcp" - name: RABBIT_REPLICA_COUNT value: {{ $envAll.Values.pod.replicas.server | quote }} command: diff --git a/rabbitmq/templates/statefulset.yaml b/rabbitmq/templates/statefulset.yaml index 41dc198..64fc1cf 100644 --- a/rabbitmq/templates/statefulset.yaml +++ b/rabbitmq/templates/statefulset.yaml @@ -228,6 +228,14 @@ spec: mountPath: /etc/rabbitmq/rabbitmq.conf subPath: rabbitmq.conf readOnly: true + - name: rabbitmq-etc + mountPath: /etc/rabbitmq/rabbitmq-env.conf + subPath: rabbitmq-env.conf + readOnly: true + - name: rabbitmq-etc + mountPath: /etc/rabbitmq/erl_inetrc + subPath: erl_inetrc + readOnly: true volumes: - name: pod-tmp emptyDir: {} -- 2.7.4