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
319 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
319 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.

https://github.com/starlingx/config/blob/master/sysinv/sysinv/sysinv/sysinv/helm/rabbitmq.py

 

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
319 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