openstack-helm/tools/deployment/component/common/openstack.sh
Vladimir Kozhukalov 2a898322f1 Simplify umbrella job to make it more stable
- Do not deploy Ceph. It is time and resoureces consuming.
  We test Ceph deployment in other jobs.
- Deploy Mariadb and Rabbitmq with local volumes
- Do not test upgrades for Mariadb and Rabbitmq
- Use ephemeral backend for Glance

Change-Id: I43a09d6938c5cfb30c78a54675e3db17d24285bf
2024-08-13 12:51:46 -05:00

146 lines
5.9 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
#NOTE: Define variables
: ${OSH_HELM_REPO:="../openstack-helm"}
: ${OSH_PATH:="../openstack-helm"}
export OS_CLOUD=openstack_helm
: "${RUN_HELM_TESTS:="no"}"
: "${CEPH_ENABLED:="false"}"
: "${OSH_EXTRA_HELM_ARGS:=""}"
release=openstack
namespace=$release
: ${GLANCE_BACKEND:="pvc"}
#NOTE: Deploy neutron
tee /tmp/neutron.yaml << EOF
neutron:
release_group: neutron
enabled: true
network:
interface:
tunnel: null
conf:
neutron:
DEFAULT:
l3_ha: False
max_l3_agents_per_router: 1
l3_ha_network_type: vxlan
dhcp_agents_per_network: 1
# provider1 is a tap interface used by default in the test env
# we create this interface while setting up the test env
auto_bridge_add:
br-ex: provider1
plugins:
ml2_conf:
ml2_type_flat:
flat_networks: public
openvswitch_agent:
agent:
tunnel_types: vxlan
ovs:
bridge_mappings: public:br-ex
linuxbridge_agent:
linux_bridge:
bridge_mappings: public:br-ex
labels:
agent:
l3:
node_selector_key: l3-agent
node_selector_value: enabled
EOF
## includes second argument 'subchart' to indicate a different path
: ${OSH_EXTRA_HELM_ARGS_MARIADB:="$(helm osh get-values-overrides ${DOWNLOAD_OVERRIDES:-} -p ${OSH_PATH} -c openstack -s mariadb ${FEATURES})"}
: ${OSH_EXTRA_HELM_ARGS_RABBITMQ:="$(helm osh get-values-overrides ${DOWNLOAD_OVERRIDES:-} -p ${OSH_PATH} -c openstack -s rabbitmq ${FEATURES})"}
: ${OSH_EXTRA_HELM_ARGS_MEMCACHED:="$(helm osh get-values-overrides ${DOWNLOAD_OVERRIDES:-} -p ${OSH_PATH} -c openstack -s memcached ${FEATURES})"}
: ${OSH_EXTRA_HELM_ARGS_KEYSTONE:="$(helm osh get-values-overrides ${DOWNLOAD_OVERRIDES:-} -p ${OSH_PATH} -c openstack -s keystone ${FEATURES})"}
: ${OSH_EXTRA_HELM_ARGS_HEAT:="$(helm osh get-values-overrides ${DOWNLOAD_OVERRIDES:-} -p ${OSH_PATH} -c openstack -s heat ${FEATURES})"}
: ${OSH_EXTRA_HELM_ARGS_GLANCE:="$(helm osh get-values-overrides ${DOWNLOAD_OVERRIDES:-} -p ${OSH_PATH} -c openstack -s glance ${FEATURES})"}
: ${OSH_EXTRA_HELM_ARGS_OPENVSWITCH:="$(helm osh get-values-overrides ${DOWNLOAD_OVERRIDES:-} -p ${OSH_PATH} -c openstack -s openvswitch ${FEATURES})"}
: ${OSH_EXTRA_HELM_ARGS_LIBVIRT:="$(helm osh get-values-overrides ${DOWNLOAD_OVERRIDES:-} -p ${OSH_PATH} -c openstack -s libvirt ${FEATURES})"}
: ${OSH_EXTRA_HELM_ARGS_NOVA:="$(helm osh get-values-overrides ${DOWNLOAD_OVERRIDES:-} -p ${OSH_PATH} -c openstack -s nova ${FEATURES})"}
: ${OSH_EXTRA_HELM_ARGS_PLACEMENT:="$(helm osh get-values-overrides ${DOWNLOAD_OVERRIDES:-} -p ${OSH_PATH} -c openstack -s placement ${FEATURES})"}
: ${OSH_EXTRA_HELM_ARGS_NEUTRON:="$(helm osh get-values-overrides ${DOWNLOAD_OVERRIDES:-} -p ${OSH_PATH} -c openstack -s neutron ${FEATURES})"}
: ${OSH_EXTRA_HELM_ARGS_HORIZON:="$(helm osh get-values-overrides ${DOWNLOAD_OVERRIDES:-} -p ${OSH_PATH} -c openstack -s horizon ${FEATURES})"}
if [ "x$(systemd-detect-virt)" != "xnone" ]; then
echo 'OSH is being deployed in virtualized environment, using qemu for nova'
OSH_EXTRA_HELM_VIRT_ARGS=( "--set nova.conf.nova.libvirt.virt_type=qemu" \
"--set nova.conf.nova.libvirt.cpu_mode=none" )
fi
# Check if Hugepages is enabled
hgpgs_available="$(awk '/HugePages_Total/{print $2}' /proc/meminfo)"
if [ "x$hgpgs_available" != "x0" ]; then
OSH_EXTRA_HELM_ARGS_LIBVIRT_CGROUP="--set libvirt.conf.kubernetes.cgroup=."
fi
helm dependency update openstack
echo "helm installing openstack..."
helm upgrade --install $release ${OSH_HELM_REPO}/openstack \
${OSH_EXTRA_HELM_ARGS_MARIADB} \
${OSH_EXTRA_HELM_ARGS_RABBITMQ} \
${OSH_EXTRA_HELM_ARGS_MEMCACHED} \
${OSH_EXTRA_HELM_ARGS_KEYSTONE} \
${OSH_EXTRA_HELM_ARGS_HEAT} \
${OSH_EXTRA_HELM_ARGS_HORIZON} \
${OSH_EXTRA_HELM_ARGS_GLANCE} \
${OSH_EXTRA_HELM_ARGS_OPENVSWITCH} \
${OSH_EXTRA_HELM_ARGS_LIBVIRT} \
${OSH_EXTRA_HELM_ARGS_NOVA} \
${OSH_EXTRA_HELM_ARGS_PLACEMENT} \
${OSH_EXTRA_HELM_ARGS_NEUTRON} \
${OSH_EXTRA_HELM_ARGS_LIBVIRT_CGROUP} \
${OSH_EXTRA_HELM_VIRT_ARGS} \
${OSH_EXTRA_HELM_ARGS} \
--set glance.conf.glance.keystone_authtoken.memcache_secret_key="$(openssl rand -hex 64)" \
--set glance.storage=${GLANCE_BACKEND} \
--set nova.bootstrap.wait_for_computes.enabled=true \
--set libvirt.conf.ceph.enabled=${CEPH_ENABLED} \
--set nova.conf.ceph.enabled=${CEPH_ENABLED} \
--values=/tmp/neutron.yaml \
--set mariadb.pod.replicas.server=1 \
--set mariadb.volume.enabled=false \
--set mariadb.volume.use_local_path_for_single_pod_cluster.enabled=true \
--set rabbitmq.pod.replicas.server=1 \
--set rabbitmq.volume.enabled=false \
--set rabbitmq.volume.use_local_path.enabled=true \
--namespace=$namespace \
--timeout=1200s
#NOTE: Wait for deploy
helm osh wait-for-pods $namespace 1800
# list pods and services
echo "------------------ List kube-system pods and servics ------------"
kubectl -n kube-system get pods
kubectl -n kube-system get services
echo
echo "----------------- List openstack pods and services ---------------"
kubectl -n openstack get pods
kubectl -n openstack get services
#NOTE: Validate Deployment info
openstack service list
sleep 30 #NOTE(portdirect): Wait for ingress controller to update rules and restart Nginx
openstack compute service list
openstack network agent list
openstack hypervisor list