Files
tacker/devstack/lib/kubernetes_vim
Cong Phuoc Hoang be9e41e11f Add supporting Kubernetes to devstack
This patch describes the way to install Kubernetes VIM via Devstack and
register Kubernetes VIM in Tacker.

Tacker reuses the efforts from Kuryr-Kubernetes project to create
Kubernetes cluster. This patch also sets up native Neutron-based networking
between Kubernetes and OpenStack VIMs to connect VM based and container based
VNFs together, that bring hybrid deployment SFC in the future.

Partially Implements: blueprint kubernetes-as-vim

Change-Id: Idf04f012c6daf93a33ad89a5a7c737f3668eb405
2017-11-11 00:52:00 +09:00

42 lines
2.1 KiB
Bash

#!/bin/bash
#
# lib/kubernetes_vim
# functions - functions specific to kubernetes_vim
function configure_k8s_vim {
iniset "/$Q_PLUGIN_CONF_FILE" ml2_type_flat flat_networks $PUBLIC_PHYSICAL_NETWORK,$MGMT_PHYS_NET,$K8S_PHYS_NET
iniset "/$Q_PLUGIN_CONF_FILE" ovs bridge_mappings $PUBLIC_PHYSICAL_NETWORK:$PUBLIC_BRIDGE,$MGMT_PHYS_NET:$BR_MGMT,$K8S_PHYS_NET:$BR_K8S
echo "Creating Kubernetes bridge"
sudo ovs-vsctl --may-exist add-br ${BR_K8S}
iniset $TACKER_CONF k8s_vim use_barbican True
}
function tacker_create_initial_k8s_network {
SUBNETPOOL_V4_ID=$(openstack subnet pool create ${SUBNETPOOL_NAME_V4} --default-prefix-length ${SUBNETPOOL_SIZE_V4} --pool-prefix ${FIXED_RANGE_K8S} --share --default -f value -c id)
NET_K8S_ID=$(openstack network create --provider-network-type flat --provider-physical-network ${K8S_PHYS_NET} --share ${NET_K8S} | awk '/ id /{print $4}')
SUBNET_K8S_ID=$(openstack subnet create ${SUBNET_K8S} --ip-version 4 --gateway ${NETWORK_GATEWAY_K8S} --network ${NET_K8S_ID} --subnet-pool ${SUBNETPOOL_V4_ID} | awk '/ id /{print $4}')
SUBNET_K8S_CIDR=$(openstack subnet show ${SUBNET_K8S_ID} -c cidr -f value)
echo "Assign ip address to ${BR_K8S}"
sudo ip link set ${BR_K8S} up
sudo ip -4 address flush dev ${BR_K8S}
sudo ip address add ${NETWORK_GATEWAY_K8S_IP} dev ${BR_K8S}
echo "Create router to connect VM, Pod and Service networks"
openstack router create ${Q_ROUTER_NAME} | grep ' id ' | get_field 2
ROUTER_K8S_PORT_IP=$(_cidr_range "${SUBNET_K8S_CIDR}" | cut -f2)
ROUTER_K8S_PORT_ID=$(openstack port create --network ${NET_K8S_ID} --fixed-ip subnet=${SUBNET_K8S_ID},ip-address=${ROUTER_K8S_PORT_IP} port-router -f value -c id)
openstack router add port ${Q_ROUTER_NAME} ${ROUTER_K8S_PORT_ID}
openstack subnet set --host-route destination=${FIXED_RANGE_K8S},gateway=${ROUTER_K8S_PORT_IP} ${SUBNET_K8S_ID}
}
function _cidr_range {
python - <<EOF "$1"
import sys
from netaddr import IPAddress, IPNetwork
n = IPNetwork(sys.argv[1])
print("%s\\t%s" % (IPAddress(n.first + 1), IPAddress(n.last - 1)))
EOF
}