2e8c3167a5
Although these errors are not important, they affect the code specification. Change-Id: I6656db7afbb1dab4b966c62d3765905965ba9142
175 lines
6.1 KiB
Bash
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
|