devstack: Create LB objects only if Octavia is enabled

kuryr-kubernetes used to allow to disable Octavia, but then lbaasv2 was
used instead for creating all LB related objects. Since lbaasv2 support
is dropped, devstack plugin tries to create LB prjects even when Octavia
is disabled.

After this change, devstack plugin does not create any LB objects if
Octavia is disabled.

Change-Id: I0749b0d0388dcbca558434a5abc2a97bc0dcbe35
Closes-Bug: #1812997
This commit is contained in:
Michal Rostecki 2019-01-23 17:03:27 +01:00
parent e1b03e0488
commit 3441a700b1
1 changed files with 25 additions and 12 deletions

View File

@ -773,11 +773,12 @@ function run_k8s_kubelet {
function run_kuryr_kubernetes { function run_kuryr_kubernetes {
local python_bin=$(which python) local python_bin=$(which python)
if is_service_enabled openshift-master; then if is_service_enabled openshift-master; then
wait_for "OpenShift API Server" "$KURYR_K8S_API_LB_URL" \ wait_for "OpenShift API Server" "${KURYR_K8S_API_ROOT}" \
"${OPENSHIFT_DATA_DIR}/master/ca.crt" 1200 "${OPENSHIFT_DATA_DIR}/master/ca.crt" 1200
else else
wait_for_ok_health "Kubernetes API Server" "${KURYR_K8S_API_LB_URL}/healthz" \ wait_for_ok_health "Kubernetes API Server" "${KURYR_K8S_API_ROOT}/healthz" \
"${KURYR_HYPERKUBE_DATA_DIR}/kuryr-ca.crt" \ "${KURYR_HYPERKUBE_DATA_DIR}/kuryr-ca.crt" \
"${KURYR_HYPERKUBE_DATA_DIR}/kuryr.key" \ "${KURYR_HYPERKUBE_DATA_DIR}/kuryr.key" \
"${KURYR_HYPERKUBE_DATA_DIR}/kuryr.crt" \ "${KURYR_HYPERKUBE_DATA_DIR}/kuryr.crt" \
@ -850,9 +851,16 @@ function create_ingress_l7_router {
} }
function configure_overcloud_vm_k8s_svc_sg { function configure_overcloud_vm_k8s_svc_sg {
local dst_port
local project_id local project_id
local security_group local security_group
if is_service_enabled octavia; then
dst_port=${KURYR_K8S_API_LB_PORT}
else
dst_port=${KURYR_K8S_API_PORT}
fi
project_id=$(get_or_create_project \ project_id=$(get_or_create_project \
"$KURYR_NEUTRON_DEFAULT_PROJECT" default) "$KURYR_NEUTRON_DEFAULT_PROJECT" default)
security_group=$(openstack security group list \ security_group=$(openstack security group list \
@ -860,7 +868,7 @@ function configure_overcloud_vm_k8s_svc_sg {
awk '{if ($2=="default") print $1}') awk '{if ($2=="default") print $1}')
openstack --os-cloud devstack-admin --os-region "$REGION_NAME" \ openstack --os-cloud devstack-admin --os-region "$REGION_NAME" \
security group rule create --project "$project_id" \ security group rule create --project "$project_id" \
--dst-port "$KURYR_K8S_API_LB_PORT" "$security_group" --dst-port "$dst_port" "$security_group"
openstack port set "$KURYR_OVERCLOUD_VM_PORT" --security-group service_pod_access openstack port set "$KURYR_OVERCLOUD_VM_PORT" --security-group service_pod_access
} }
@ -932,10 +940,13 @@ if [[ "$1" == "stack" && "$2" == "extra" ]]; then
subnet show "$KURYR_NEUTRON_DEFAULT_SERVICE_SUBNET" \ subnet show "$KURYR_NEUTRON_DEFAULT_SERVICE_SUBNET" \
-c cidr -f value) -c cidr -f value)
k8s_api_clusterip=$(_cidr_range "$service_cidr" | cut -f1) k8s_api_clusterip=$(_cidr_range "$service_cidr" | cut -f1)
# NOTE(dulek): KURYR_K8S_API_LB_URL will be a global to be used by next # NOTE(mrostecki): KURYR_K8S_API_ROOT will be a global to be used by next
# deployment phases. # deployment phases.
KURYR_K8S_API_LB_URL="https://${k8s_api_clusterip}:${KURYR_K8S_API_LB_PORT}" KURYR_K8S_API_ROOT=${KURYR_K8S_API_URL}
iniset "$KURYR_CONFIG" kubernetes api_root ${KURYR_K8S_API_LB_URL} if is_service_enabled octavia; then
KURYR_K8S_API_ROOT="https://${k8s_api_clusterip}:${KURYR_K8S_API_LB_PORT}"
fi
iniset "$KURYR_CONFIG" kubernetes api_root ${KURYR_K8S_API_ROOT}
else else
iniset "$KURYR_CONFIG" kubernetes api_root '""' iniset "$KURYR_CONFIG" kubernetes api_root '""'
fi fi
@ -1052,12 +1063,14 @@ if [[ "$1" == "stack" && "$2" == "extra" ]]; then
elif [[ "$1" == "stack" && "$2" == "test-config" ]]; then elif [[ "$1" == "stack" && "$2" == "test-config" ]]; then
if is_service_enabled kuryr-kubernetes; then if is_service_enabled kuryr-kubernetes; then
create_k8s_api_service if is_service_enabled octavia; then
#create Ingress L7 router if required create_k8s_api_service
enable_ingress=$(trueorfalse False KURYR_ENABLE_INGRESS) #create Ingress L7 router if required
enable_ingress=$(trueorfalse False KURYR_ENABLE_INGRESS)
if [ "$enable_ingress" == "True" ]; then if [ "$enable_ingress" == "True" ]; then
create_ingress_l7_router create_ingress_l7_router
fi
fi fi
# FIXME(dulek): This is a very late phase to start Kuryr services. # FIXME(dulek): This is a very late phase to start Kuryr services.