2a898322f1
- 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
76 lines
3.0 KiB
Bash
Executable File
76 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
|
set -ex
|
|
set -o pipefail
|
|
|
|
: ${OSH_HELM_REPO:="../openstack-helm"}
|
|
|
|
# This test case aims to prove that updating a subhcart's configuration for
|
|
# the OpenStack Umbrella Helm chart results in no other subcharts' components
|
|
# being updated.
|
|
|
|
# This test case is proven by:
|
|
# 1. getting the list of DaemonSets, Deployment, StatefulSets after an installation
|
|
# 2. performing a helm upgrade with modifying a config specific to one subchart
|
|
# 3. getting the list of DaemonSets, Deployment, StatefulSets after the upgrade
|
|
# 4. Verifying the expected subchart application changes
|
|
# 5. Verifying no other applications are changed
|
|
|
|
validate_only_expected_application_changes () {
|
|
local app_name="$1"
|
|
local config_change="$2"
|
|
|
|
before_apps_list="$(mktemp)"
|
|
after_apps_list="$(mktemp)"
|
|
|
|
kubectl get daemonsets,deployments,statefulsets \
|
|
--namespace openstack \
|
|
--no-headers \
|
|
--output custom-columns=Kind:.kind,Name:.metadata.name,Generation:.status.observedGeneration \
|
|
> "$before_apps_list"
|
|
|
|
kubectl delete jobs \
|
|
--namespace openstack \
|
|
-l "application=$app_name" \
|
|
--wait
|
|
|
|
helm upgrade openstack ${OSH_HELM_REPO}/openstack \
|
|
--namespace openstack \
|
|
--reuse-values \
|
|
${config_change} \
|
|
--timeout=600s \
|
|
--wait
|
|
|
|
helm osh wait-for-pods openstack
|
|
|
|
kubectl get daemonsets,deployments,statefulsets \
|
|
--namespace openstack \
|
|
--no-headers \
|
|
--output custom-columns=Kind:.kind,Name:.metadata.name,Generation:.status.observedGeneration \
|
|
> "$after_apps_list"
|
|
|
|
# get list of apps that exist in after list, but not in before list
|
|
changed_apps="$(comm -13 "$before_apps_list" "$after_apps_list")"
|
|
|
|
if ! echo "$changed_apps" | grep "$app_name" ; then
|
|
echo "Expected $app_name application to update"
|
|
exit 1
|
|
fi
|
|
|
|
# use awk to find applications not matching app_name and pretty format as Kind/Name
|
|
unexpected_changed_apps="$(echo "$changed_apps" | awk -v appname="$app_name" '$0 !~ appname { print $1 "/" $2 }')"
|
|
if [ "x$unexpected_changed_apps" != "x" ]; then
|
|
echo "Applications changed unexpectedly: $unexpected_changed_apps"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
validate_only_expected_application_changes "glance" "--set glance.conf.logging.logger_glance.level=WARN"
|
|
validate_only_expected_application_changes "heat" "--set heat.conf.logging.logger_heat.level=WARN"
|
|
validate_only_expected_application_changes "keystone" "--set keystone.conf.logging.logger_keystone.level=WARN"
|
|
validate_only_expected_application_changes "libvirt" "--set libvirt.conf.libvirt.log_level=2"
|
|
validate_only_expected_application_changes "memcached" "--set memcached.conf.memcached.stats_cachedump.enabled=false"
|
|
validate_only_expected_application_changes "neutron" "--set neutron.conf.logging.logger_neutron.level=WARN"
|
|
validate_only_expected_application_changes "nova" "--set nova.conf.logging.logger_nova.level=WARN"
|
|
validate_only_expected_application_changes "openvswitch" "--set openvswitch.pod.user.nova.uid=42425"
|
|
validate_only_expected_application_changes "placement" "--set placement.conf.logging.logger_placement.level=WARN"
|