![Vladimir Kozhukalov](/assets/img/avatar_default.png)
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
71 lines
2.8 KiB
Bash
Executable File
71 lines
2.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
set -xe
|
|
|
|
: ${HELM_INGRESS_NGINX_VERSION:="4.8.3"}
|
|
|
|
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
|
|
|
|
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
|
|
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" \
|
|
--set controller.ingressClassResource.name=nginx \
|
|
--set controller.ingressClassResource.controllerValue="k8s.io/ingress-nginx-openstack" \
|
|
--set controller.ingressClass=nginx \
|
|
--set controller.labels.app=ingress-api
|
|
|
|
#NOTE: Wait for deploy
|
|
./tools/deployment/common/wait-for-pods.sh openstack
|
|
|
|
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" \
|
|
--set controller.ingressClassResource.name=nginx-ceph \
|
|
--set controller.ingressClassResource.controllerValue="k8s.io/ingress-nginx-ceph" \
|
|
--set controller.ingressClass=nginx-ceph \
|
|
--set controller.labels.app=ingress-api
|
|
|
|
#NOTE: Wait for deploy
|
|
./tools/deployment/common/wait-for-pods.sh ceph
|