Keystone-admin external support

This PS makes it possible to export the keystone-admin service
external to kolla-kubernetes.

It starts up the network earlier so that keystone-admin will work
with the other creation jobs and cleans up the workflow scripts a
little bit.

Change-Id: I42c181348fc36546ae38091108d1379af6dfa181
This commit is contained in:
Kevin Fox 2017-01-26 10:49:47 -08:00
parent 0a01a372e3
commit f302e2a97d
7 changed files with 90 additions and 44 deletions

View File

@ -102,6 +102,7 @@ keystone-create-endpoints-job:
all:
port: 5000
admin_port: 35357
admin_port_external: false
keystone-api-deployment:
global:

View File

@ -4,6 +4,7 @@
{{- $selectorValue := include "kolla_val_get_str" (dict "key" "selector_value" "searchPath" $searchPath "Values" .Values ) }}
{{- $port := include "kolla_val_get_str" (dict "key" "port" "searchPath" $searchPath "Values" .Values ) }}
{{- $adminPort := include "kolla_val_get_str" (dict "key" "admin_port" "searchPath" $searchPath "Values" .Values ) }}
{{- $adminPortExternal := include "kolla_val_get_str" (dict "key" "admin_port_external" "searchPath" $searchPath "Values" .Values ) }}
{{- $region := include "kolla_val_get_str" (dict "key" "region" "searchPath" $searchPath "Values" .Values ) }}
{{- $c := dict "searchPath" $searchPath "Values" .Values }}
{{- $_ := set $c "contName" "keystone" }}
@ -13,9 +14,10 @@
{{- $resourceName := "keystone" }}
{{- $netHostTrue := false }}
{{- $podTypeBootstrap := true }}
{{- $elementName := .Values.element_name | default $resourceName }}
{{- $defaultPublicHost := printf "%s-public" $elementName }}
{{- $publicHost := .Values.public_host | default $defaultPublicHost }}
{{- $elementName := include "kolla_val_get_str" (dict "key" "element_name" "searchPath" $searchPath "Values" .Values ) | default $resourceName }}
{{- $defaultDnsName := printf "%s-public" $elementName }}
{{- $userDnsName := include "kolla_val_get_str" (dict "key" "dns_name" "searchPath" $searchPath "Values" .Values ) }}
{{- $dnsName := $userDnsName | default $defaultDnsName }}
{{- with $env := dict "netHostTrue" $netHostTrue "podTypeBootstrap" $podTypeBootstrap "resourceName" $resourceName "Values" .Values "Release" .Release "searchPath" $searchPath }}
apiVersion: batch/v1
kind: Job
@ -38,9 +40,13 @@ spec:
$KEYSTONE_ADMIN_PASSWORD
admin
admin
{{- if $adminPortExternal }}
http://{{ $dnsName }}:{{ $adminPort }}/v3
{{- else }}
http://{{ $elementName }}-admin:{{ $adminPort }}/v3
{{- end }}
http://{{ $elementName }}-internal:{{ $port }}/v3
http://{{ $publicHost }}:{{ $port }}/v3
http://{{ $dnsName }}:{{ $port }}/v3
{{ $region }}"]
volumeMounts:
{{- include "common_volume_mounts" $env | indent 12 }}

View File

@ -5,7 +5,7 @@ VERSION=0.4.0-1
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../.." && pwd )"
IP=172.18.0.1
. "$DIR/tests/bin/setup_helm_entrypint_config.sh"
. "$DIR/tests/bin/common_workflow_config.sh"
function ceph_values {
echo "global:"
@ -30,6 +30,10 @@ fi
base_distro="$2"
function general_config {
common_workflow_config $IP $base_distro $tunnel_interface
}
common_vars="kube_logger=false,base_distro=$base_distro"
kollakube res create configmap \
@ -69,7 +73,7 @@ helm install kolla/rabbitmq-svc --version $VERSION \
helm install kolla/keystone-admin-svc --version $VERSION \
--namespace kolla --name keystone-admin-svc \
--set "element_name=keystone-admin"
--set "admin_port_external=true,external_vip=$IP"
helm install kolla/keystone-public-svc --version $VERSION \
--namespace kolla --name keystone-public-svc \
@ -79,6 +83,19 @@ helm install kolla/keystone-internal-svc --version $VERSION \
--namespace kolla --name keystone-internal-svc \
--set "element_name=keystone-internal"
[ "x$1" != "xexternal-ovs" ] &&
helm install kolla/openvswitch-ovsdb-daemonset --version $VERSION \
--set "$common_vars,type=network,selector_key=kolla_controller" \
--namespace kolla --name openvswitch-ovsdb-network &&
helm install kolla/openvswitch-vswitchd-daemonset --version $VERSION \
--set $common_vars,type=network,selector_key=kolla_controller \
--namespace kolla --name openvswitch-vswitchd-network
kollakube res create bootstrap openvswitch-set-external-ip
$DIR/tools/pull_containers.sh kolla
$DIR/tools/wait_for_pods.sh kolla
#FIXME temporary until enough service packages are around. then
#they will get their own test file.
if [ "x$1" != "xhelm-entrypoint" ]; then
@ -177,7 +194,7 @@ kollakube template bootstrap keystone-endpoints
helm install --debug kolla/keystone-create-endpoints-job --version $VERSION \
--namespace kolla \
--set $common_vars,element_name=keystone,public_host=$IP \
--set $common_vars,dns_name=$IP \
--name keystone-create-endpoints-job
$DIR/tools/pull_containers.sh kolla
@ -402,14 +419,6 @@ helm install kolla/neutron-openvswitch-agent-daemonset --version $VERSION \
--set "$common_vars,type=network,tunnel_interface=$tunnel_interface" \
--namespace kolla --name neutron-openvswitch-agent-network
[ "x$1" != "xexternal-ovs" ] &&
helm install kolla/openvswitch-ovsdb-daemonset --version $VERSION \
--set "$common_vars,type=network,selector_key=kolla_controller" \
--namespace kolla --name openvswitch-ovsdb-network &&
helm install kolla/openvswitch-vswitchd-daemonset --version $VERSION \
--set $common_vars,type=network,selector_key=kolla_controller \
--namespace kolla --name openvswitch-vswitchd-network
[ "x$1" == "xceph-multi" ] &&
helm install kolla/openvswitch-ovsdb-daemonset --version $VERSION \
--set "$common_vars,type=compute,selector_key=kolla_compute" \
@ -421,8 +430,6 @@ helm install kolla/neutron-openvswitch-agent-daemonset --version $VERSION \
--set $common_vars,type=compute,selector_key=kolla_compute \
--namespace kolla --name openvswitch-vswitchd-compute
kollakube res create bootstrap openvswitch-set-external-ip
helm install kolla/nova-libvirt-daemonset --version $VERSION \
--set "$common_vars,ceph_backend=true,element_name=nova-libvirt" \
--namespace kolla --name nova-libvirt-daemonset

View File

@ -5,7 +5,11 @@ VERSION=0.4.0-1
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../.." && pwd )"
IP=172.18.0.1
. "$DIR/tests/bin/setup_helm_entrypint_config.sh"
. "$DIR/tests/bin/common_workflow_config.sh"
function general_config {
common_workflow_config $IP $base_distro $tunnel_interface
}
function ceph_values {
echo "global:"
@ -41,6 +45,10 @@ function helm_entrypoint_general {
echo " pool: kollavolumes"
echo " secret_name: ceph-kolla"
echo " user: kolla"
echo " keystone:"
echo " all:"
echo " admin_port_external: true"
echo " dns_name: $IP"
}
tunnel_interface=docker0
@ -90,6 +98,18 @@ helm install kolla/keystone --version $VERSION \
$DIR/tools/pull_containers.sh kolla
$DIR/tools/wait_for_pods.sh kolla
helm install kolla/openvswitch --version $VERSION \
--namespace kolla --name openvswitch --values <(helm_entrypoint_general $1)
$DIR/tools/pull_containers.sh kolla
$DIR/tools/wait_for_pods.sh kolla
kollakube res create bootstrap openvswitch-set-external-ip
$DIR/tools/pull_containers.sh kolla
$DIR/tools/wait_for_pods.sh kolla
$DIR/tools/build_local_admin_keystonerc.sh
. ~/keystonerc_admin
@ -114,19 +134,8 @@ helm install kolla/glance --version $VERSION \
--namespace kolla --name glance --set "$common_vars,element_name=glance" \
--values <(helm_entrypoint_general $1)
helm install kolla/openvswitch --version $VERSION \
--namespace kolla --name openvswitch --values <(helm_entrypoint_general $1)
$DIR/tools/pull_containers.sh kolla
$DIR/tools/wait_for_pods.sh kolla
kollakube res create bootstrap openvswitch-set-external-ip
$DIR/tools/pull_containers.sh kolla
$DIR/tools/wait_for_pods.sh kolla
helm install kolla/neutron --version $VERSION \
--namespace kolla --name neutron --values <(helm_entrypoint_general)
--namespace kolla --name neutron --values <(helm_entrypoint_general $1)
$DIR/tools/pull_containers.sh kolla
$DIR/tools/wait_for_pods.sh kolla

View File

@ -0,0 +1,15 @@
function common_workflow_config {
$IP="$1"
$base_distro="$2"
$tunnel_interface="$3"
echo "global:"
echo " kolla:"
echo " all:"
echo " kube_logger: false"
echo " external_vip: $IP"
echo " base_distro: $base_distro"
echo " tunnel_interface: $tunnel_interface"
echo " keystone:"
echo " all:"
echo " admin_port_external: true"
}

View File

@ -25,6 +25,8 @@ kubectl get deployments --all-namespaces -o yaml > \
$WORKSPACE/logs/deployments.yaml
kubectl describe node $(hostname -s) > $WORKSPACE/logs/node.txt
kubectl get pods -a --all-namespaces -o yaml > $WORKSPACE/logs/pods.yaml
kubectl get configmaps -a --all-namespaces -o yaml > $WORKSPACE/logs/configmaps.yaml
sudo docker images > $WORKSPACE/logs/docker_images.txt
kubectl get pods -a --all-namespaces -o json | jq -r \
'.items[].metadata | .namespace + " " + .name' | while read line; do
NAMESPACE=$(echo $line | awk '{print $1}')

View File

@ -10,13 +10,17 @@ function lvmbackend_values {
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../.." && pwd )"
IP=172.18.0.1
. "$DIR/tests/bin/setup_helm_entrypint_config.sh"
. "$DIR/tests/bin/common_workflow_config.sh"
tunnel_interface=docker0
base_distro="$2"
common_vars="ceph_backend=false,kube_logger=false,base_distro=$base_distro"
function general_config {
common_workflow_config $IP $base_distro $tunnel_interface
}
common_vars="ceph_backend=false,kube_logger=false,base_distro=$base_distro,global.kolla.keystone.all.admin_port_external=true"
kollakube res create configmap \
mariadb keystone horizon rabbitmq memcached nova-api nova-conductor \
@ -48,7 +52,7 @@ helm install kolla/rabbitmq-svc --version $VERSION \
helm install kolla/keystone-admin-svc --version $VERSION \
--namespace kolla --name keystone-admin-svc \
--set "element_name=keystone-admin"
--set "admin_port_external=true,external_vip=$IP"
helm install kolla/keystone-public-svc --version $VERSION \
--namespace kolla --name keystone-public-svc \
@ -140,7 +144,7 @@ kollakube template bootstrap keystone-endpoints
helm install --debug kolla/keystone-create-endpoints-job --version $VERSION \
--namespace kolla \
--set $common_vars,element_name=keystone,public_host=$IP \
--set $common_vars,dns_name=$IP \
--name keystone-create-endpoints-job
$DIR/tools/pull_containers.sh kolla
@ -156,6 +160,18 @@ $DIR/tools/wait_for_pods.sh kolla
$DIR/tools/build_local_admin_keystonerc.sh
. ~/keystonerc_admin
helm install kolla/openvswitch-ovsdb-daemonset --version $VERSION \
--set "$common_vars,type=network,selector_key=kolla_controller" \
--namespace kolla --name openvswitch-ovsdb-network
helm install kolla/openvswitch-vswitchd-daemonset --version $VERSION \
--set $common_vars,type=network,selector_key=kolla_controller \
--namespace kolla --name openvswitch-vswitchd-network
kollakube res create bootstrap openvswitch-set-external-ip
$DIR/tools/wait_for_pods.sh kolla
helm install kolla/neutron-create-keystone-service-job --version $VERSION \
--namespace kolla --name neutron-create-keystone-service --set "$common_vars"
@ -353,16 +369,6 @@ helm install kolla/neutron-openvswitch-agent-daemonset --version $VERSION \
--set "$common_vars,type=network,tunnel_interface=$tunnel_interface" \
--namespace kolla --name neutron-openvswitch-agent-network
helm install kolla/openvswitch-ovsdb-daemonset --version $VERSION \
--set "$common_vars,type=network,selector_key=kolla_controller" \
--namespace kolla --name openvswitch-ovsdb-network
helm install kolla/openvswitch-vswitchd-daemonset --version $VERSION \
--set $common_vars,type=network,selector_key=kolla_controller \
--namespace kolla --name openvswitch-vswitchd-network
kollakube res create bootstrap openvswitch-set-external-ip
helm install kolla/nova-libvirt-daemonset --version $VERSION \
--set "$common_vars,element_name=nova-libvirt,libvirt_ceph=false" \
--namespace kolla --name nova-libvirt-daemonset