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>
Sent: 2020年3月19日
21:20
To: Liu, ZhipengS <zhipengs.liu@intel.com>
Cc: 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.
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>
Sent: Thursday, March 19, 2020 5:21 AM
To: Richard, Joseph <Joseph.Richard@windriver.com>
Cc: starlingx-discuss@lists.starlingx.io <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>;
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>
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>
---
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