From 718fa2c2e05968c468808ce000722d996a0b908c Mon Sep 17 00:00:00 2001 From: Vladimir Kozhukalov Date: Tue, 26 Mar 2024 17:07:22 -0500 Subject: [PATCH] Add Metallb job Metallb be is a L2/L3 load balancer that we use for exposing the Openstack services outside the cluster. Before that we used to deploy the ingress-nginx contoller in the host network namespace. Change-Id: I9fdb5f1b2f9403ce04f9d34b1792a0f29f55d879 --- tools/deployment/common/ingress.sh | 36 ++++++++++--------- tools/deployment/component/heat/heat.sh | 1 - tools/deployment/component/horizon/horizon.sh | 1 - .../deployment/component/keystone/keystone.sh | 1 - zuul.d/2023.2.yaml | 12 +++++++ zuul.d/project.yaml | 1 + 6 files changed, 33 insertions(+), 19 deletions(-) diff --git a/tools/deployment/common/ingress.sh b/tools/deployment/common/ingress.sh index 7b37b2fd5f..b3a6f14430 100755 --- a/tools/deployment/common/ingress.sh +++ b/tools/deployment/common/ingress.sh @@ -18,28 +18,31 @@ set -xe helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx -#NOTE: Deploy cluster ingress -helm upgrade --install ingress-nginx-cluster ingress-nginx/ingress-nginx \ - --version ${HELM_INGRESS_NGINX_VERSION} \ - --namespace=kube-system \ - --set controller.admissionWebhooks.enabled="false" \ - --set controller.kind=DaemonSet \ - --set controller.service.type=ClusterIP \ - --set controller.scope.enabled="false" \ - --set controller.hostNetwork="true" \ - --set controller.ingressClassResource.name=nginx-cluster \ - --set controller.ingressClassResource.controllerValue="k8s.io/ingress-nginx-cluster" \ - --set controller.ingressClassResource.default="true" \ - --set controller.ingressClass=nginx-cluster \ - --set controller.labels.app=ingress-api +if ! [[ ${FEATURE_GATES//,/ } =~ (^|[[:space:]])metallb($|[[:space:]]) ]]; then + #NOTE: Deploy cluster ingress + helm upgrade --install ingress-nginx-cluster ingress-nginx/ingress-nginx \ + --version ${HELM_INGRESS_NGINX_VERSION} \ + --namespace=kube-system \ + --set controller.admissionWebhooks.enabled="false" \ + --set controller.kind=DaemonSet \ + --set controller.service.type=ClusterIP \ + --set controller.scope.enabled="false" \ + --set controller.hostNetwork="true" \ + --set controller.ingressClassResource.name=nginx-cluster \ + --set controller.ingressClassResource.controllerValue="k8s.io/ingress-nginx-cluster" \ + --set controller.ingressClassResource.default="true" \ + --set controller.ingressClass=nginx-cluster \ + --set controller.labels.app=ingress-api -#NOTE: Wait for deploy -./tools/deployment/common/wait-for-pods.sh kube-system + #NOTE: Wait for deploy + ./tools/deployment/common/wait-for-pods.sh kube-system +fi #NOTE: Deploy namespace ingress helm upgrade --install ingress-nginx-openstack ingress-nginx/ingress-nginx \ --version ${HELM_INGRESS_NGINX_VERSION} \ --namespace=openstack \ + --set controller.kind=DaemonSet \ --set controller.admissionWebhooks.enabled="false" \ --set controller.scope.enabled="true" \ --set controller.service.enabled="false" \ @@ -54,6 +57,7 @@ helm upgrade --install ingress-nginx-openstack ingress-nginx/ingress-nginx \ helm upgrade --install ingress-nginx-ceph ingress-nginx/ingress-nginx \ --version ${HELM_INGRESS_NGINX_VERSION} \ --namespace=ceph \ + --set controller.kind=DaemonSet \ --set controller.admissionWebhooks.enabled="false" \ --set controller.scope.enabled="true" \ --set controller.service.enabled="false" \ diff --git a/tools/deployment/component/heat/heat.sh b/tools/deployment/component/heat/heat.sh index 6ee2995926..bfb024b7c3 100755 --- a/tools/deployment/component/heat/heat.sh +++ b/tools/deployment/component/heat/heat.sh @@ -39,5 +39,4 @@ openstack orchestration service list FEATURE_GATE="tls"; if [[ ${FEATURE_GATES//,/ } =~ (^|[[:space:]])${FEATURE_GATE}($|[[:space:]]) ]]; then curl --cacert /etc/openstack-helm/certs/ca/ca.pem -L https://heat.openstack.svc.cluster.local - curl --cacert /etc/openstack-helm/certs/ca/ca.pem -L https://heat-api.openstack.svc.cluster.local:8004 fi diff --git a/tools/deployment/component/horizon/horizon.sh b/tools/deployment/component/horizon/horizon.sh index 74b63d94d3..42b7d683b2 100755 --- a/tools/deployment/component/horizon/horizon.sh +++ b/tools/deployment/component/horizon/horizon.sh @@ -36,5 +36,4 @@ fi FEATURE_GATE="tls"; if [[ ${FEATURE_GATES//,/ } =~ (^|[[:space:]])${FEATURE_GATE}($|[[:space:]]) ]]; then curl --cacert /etc/openstack-helm/certs/ca/ca.pem -L https://horizon.openstack.svc.cluster.local - curl --cacert /etc/openstack-helm/certs/ca/ca.pem -L https://horizon-int.openstack.svc.cluster.local fi diff --git a/tools/deployment/component/keystone/keystone.sh b/tools/deployment/component/keystone/keystone.sh index d2449a4f13..af8d1ee62d 100755 --- a/tools/deployment/component/keystone/keystone.sh +++ b/tools/deployment/component/keystone/keystone.sh @@ -66,5 +66,4 @@ fi FEATURE_GATE="tls"; if [[ ${FEATURE_GATES//,/ } =~ (^|[[:space:]])${FEATURE_GATE}($|[[:space:]]) ]]; then curl --cacert /etc/openstack-helm/certs/ca/ca.pem -L https://keystone.openstack.svc.cluster.local - curl --cacert /etc/openstack-helm/certs/ca/ca.pem -L https://keystone-api.openstack.svc.cluster.local:5000 fi diff --git a/zuul.d/2023.2.yaml b/zuul.d/2023.2.yaml index ecc8f3992e..ae539a9ded 100644 --- a/zuul.d/2023.2.yaml +++ b/zuul.d/2023.2.yaml @@ -52,6 +52,18 @@ container_distro_name: ubuntu container_distro_version: jammy +- job: + name: openstack-helm-compute-kit-metallb-2023-2-ubuntu_jammy + parent: openstack-helm-compute-kit + nodeset: openstack-helm-1node-2nodes-ubuntu_jammy + vars: + metallb_setup: true + osh_params: + openstack_release: "2023.2" + container_distro_name: ubuntu + container_distro_version: jammy + feature_gates: metallb + - job: name: openstack-helm-compute-kit-ovn-2023-2-ubuntu_jammy parent: openstack-helm-compute-kit-ovn diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index fee132b7a6..588b953777 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -44,6 +44,7 @@ - openstack-helm-keystone-ldap-2023-2-ubuntu_jammy # 1 node - openstack-helm-cinder-2023-2-ubuntu_jammy # 3 nodes rook - openstack-helm-compute-kit-2023-2-ubuntu_jammy # 3 nodes + - openstack-helm-compute-kit-metallb-2023-2-ubuntu_jammy # 1 node + 2 nodes # TODO: uncomment when parted is compatible with Jammy kernel # See https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2049689 # - openstack-helm-tls-2023-2-ubuntu_jammy # 1 node 32GB