kuryr-kubernetes/devstack/plugin.sh
jayonlau 2e8c3167a5 Clean up extra spaces
Although these errors are not important, they affect the code specification.

Change-Id: I6656db7afbb1dab4b966c62d3765905965ba9142
2021-10-09 02:16:48 +00:00

175 lines
6.1 KiB
Bash

#!/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.
# Save trace setting
XTRACE=$(set +o | grep xtrace)
set -o xtrace
KURYR_CONT=$(trueorfalse False KURYR_K8S_CONTAINERIZED_DEPLOYMENT)
KURYR_OVS_BM=$(trueorfalse True KURYR_CONFIGURE_BAREMETAL_KUBELET_IFACE)
source $DEST/kuryr-kubernetes/devstack/lib/kuryr_kubernetes
source $DEST/kuryr-kubernetes/devstack/lib/kubernetes
if is_service_enabled kuryr-kubernetes kuryr-daemon \
kuryr-kubernetes-worker; then
# There are four services provided by this plugin.
#
# Those two are needed for non-containerized deployment, otherwise,
# run_process will not create systemd units thus run the service. For
# containerized one, kuryr-daemon can be omitted, but you'll still need
# kuryr-kubernetes to be able to install and run kuryr/k8s bits.
#
# * kuryr-kubernetes (no change from former version)
# * kuryr-daemon (no change from former version)
#
# Those are new one, and differentiate between kubernetes master node and
# worker node:
#
# * kubernetes-master (former: kubernetes-api, kubernetes-scheduler,
# kubernetes-controller-manager, kubelet)
# * kubernetes-worker (former: kubelet)
#
# There were openshift-* services removed, since they are not working
# anymore.
if [[ "$1" == "stack" && "$2" == "pre-install" ]]; then
echo_summary "Installing dependecies for Kuryr-Kubernetes"
if is_service_enabled kubernetes-master kubernetes-worker; then
kubeadm_install
fi
elif [[ "$1" == "stack" && "$2" == "install" ]]; then
echo_summary "Installing kuryr CNI and Controller"
setup_develop "$KURYR_HOME"
if [[ "${KURYR_CONT}" == "False" ]]; then
# Build CNI only for non-containerized deployment. For
# containerized CNI will be built within the images build.
build_install_kuryr_cni
fi
elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then
echo_summary "Configure kuryr bits"
if is_service_enabled kuryr-daemon; then
create_kuryr_account
configure_kuryr
fi
elif [[ "$1" == "stack" && "$2" == "extra" ]]; then
echo_summary "Installing kubernetes and kuryr"
# Initialize and start the template service
if is_service_enabled kuryr-kubernetes; then
configure_neutron_defaults
fi
if is_service_enabled kubernetes-master kubernetes-worker; then
prepare_kubelet
fi
if is_service_enabled kubernetes-master; then
wait_for "etcd" "http://${SERVICE_HOST}:${ETCD_PORT}/v2/machines"
kubeadm_init
copy_kuryr_certs
elif is_service_enabled kubernetes-worker; then
kubeadm_join
fi
if [ "${KURYR_CONT}" == "True" ]; then
if is_service_enabled kubernetes-master; then
build_kuryr_container_image "controller"
build_kuryr_container_image "cni"
else
build_kuryr_container_image "cni"
fi
fi
if is_service_enabled kubernetes-master; then
# don't alter kubernetes config
# prepare_kubeconfig
prepare_kubernetes_files
fi
if is_service_enabled kubernetes-master kubernetes-worker; then
if [[ "${KURYR_OVS_BM}" == "True" ]]; then
ovs_bind_for_kubelet "$KURYR_NEUTRON_DEFAULT_PROJECT" 6443
else
configure_overcloud_vm_k8s_svc_sg
fi
fi
if is_service_enabled tempest; then
copy_tempest_kubeconfig
configure_k8s_pod_sg_rules
fi
if is_service_enabled kuryr-kubernetes; then
kubectl apply -f ${KURYR_HOME}/kubernetes_crds/kuryr_crds/
if [[ "${KURYR_CONT}" == "True" ]]; then
_generate_containerized_kuryr_resources
fi
if [ "$KURYR_MULTI_VIF_DRIVER" == "npwg_multiple_interfaces" ]; then
kubectl apply -f ${KURYR_HOME}/kubernetes_crds/network_attachment_definition_crd.yaml
fi
fi
elif [[ "$1" == "stack" && "$2" == "test-config" ]]; then
echo_summary "Run kuryr-kubernetes"
if is_service_enabled kuryr-kubernetes; then
if is_service_enabled octavia; then
create_lb_for_services
fi
# FIXME(dulek): This is a very late phase to start Kuryr services.
# We're doing it here because we need K8s API LB to be created in
# order to run kuryr services. Thing is Octavia is unable to
# create LB until test-config phase. We can revisit this once
# Octavia's DevStack plugin will get improved.
if [ "${KURYR_CONT}" == "True" ]; then
run_containerized_kuryr_resources
else
run_kuryr_kubernetes
run_kuryr_daemon
fi
fi
if is_service_enabled tempest; then
update_tempest_conf_file
fi
fi
if [[ "$1" == "unstack" ]]; then
# Shut down kuryr and kubernetes services
if is_service_enabled kuryr-kubernetes; then
if [ "${KURYR_CONT}" == "False" ]; then
stop_process kuryr-kubernetes
stop_process kuryr-daemon
fi
kubeadm_reset
fi
cleanup_kuryr_devstack_iptables
fi
if [[ "$1" == "clean" ]]; then
# Uninstall kubernetes pkgs, remove config files and kuryr cni
kubeadm_uninstall
uninstall_kuryr_cni
rm_kuryr_conf
fi
fi
# Restore xtrace
$XTRACE