From f302e2a97d4339ca2aeec153f0072558a1e48f54 Mon Sep 17 00:00:00 2001 From: Kevin Fox Date: Thu, 26 Jan 2017 10:49:47 -0800 Subject: [PATCH] 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 --- helm/all_values.yaml | 1 + .../templates/keystone-create-endpoints.yaml | 14 +++++--- tests/bin/ceph_workflow.sh | 33 ++++++++++------- tests/bin/ceph_workflow_service.sh | 35 ++++++++++++------- tests/bin/common_workflow_config.sh | 15 ++++++++ tests/bin/gate_capture_logs.sh | 2 ++ tests/bin/iscsi_workflow.sh | 34 ++++++++++-------- 7 files changed, 90 insertions(+), 44 deletions(-) create mode 100644 tests/bin/common_workflow_config.sh diff --git a/helm/all_values.yaml b/helm/all_values.yaml index 870edcfad..739f6878c 100755 --- a/helm/all_values.yaml +++ b/helm/all_values.yaml @@ -102,6 +102,7 @@ keystone-create-endpoints-job: all: port: 5000 admin_port: 35357 + admin_port_external: false keystone-api-deployment: global: diff --git a/helm/microservice/keystone-create-endpoints-job/templates/keystone-create-endpoints.yaml b/helm/microservice/keystone-create-endpoints-job/templates/keystone-create-endpoints.yaml index 5606d6aed..ce0fd0ba0 100644 --- a/helm/microservice/keystone-create-endpoints-job/templates/keystone-create-endpoints.yaml +++ b/helm/microservice/keystone-create-endpoints-job/templates/keystone-create-endpoints.yaml @@ -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 }} diff --git a/tests/bin/ceph_workflow.sh b/tests/bin/ceph_workflow.sh index cffca9465..f19aea6f6 100755 --- a/tests/bin/ceph_workflow.sh +++ b/tests/bin/ceph_workflow.sh @@ -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 diff --git a/tests/bin/ceph_workflow_service.sh b/tests/bin/ceph_workflow_service.sh index 239c2436e..1ae98db4e 100755 --- a/tests/bin/ceph_workflow_service.sh +++ b/tests/bin/ceph_workflow_service.sh @@ -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 diff --git a/tests/bin/common_workflow_config.sh b/tests/bin/common_workflow_config.sh new file mode 100644 index 000000000..2ac4d9097 --- /dev/null +++ b/tests/bin/common_workflow_config.sh @@ -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" +} diff --git a/tests/bin/gate_capture_logs.sh b/tests/bin/gate_capture_logs.sh index ccd98eabc..69cc7afdf 100755 --- a/tests/bin/gate_capture_logs.sh +++ b/tests/bin/gate_capture_logs.sh @@ -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}') diff --git a/tests/bin/iscsi_workflow.sh b/tests/bin/iscsi_workflow.sh index a892af0c8..74116aa63 100755 --- a/tests/bin/iscsi_workflow.sh +++ b/tests/bin/iscsi_workflow.sh @@ -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