Add glide.yaml and vendor deps
This commit is contained in:
parent
db918f12ad
commit
5b3d5e81bd
18880 changed files with 5166045 additions and 1 deletions
283
vendor/k8s.io/kubernetes/cluster/openstack-heat/util.sh
generated
vendored
Normal file
283
vendor/k8s.io/kubernetes/cluster/openstack-heat/util.sh
generated
vendored
Normal file
|
|
@ -0,0 +1,283 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Copyright 2015 The Kubernetes Authors.
|
||||
#
|
||||
# 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.
|
||||
|
||||
# A library of helper functions that each provider hosting Kubernetes must implement to use cluster/kube-*.sh scripts.
|
||||
|
||||
# exit on any error
|
||||
set -e
|
||||
|
||||
# Use the config file specified in $KUBE_CONFIG_FILE, or default to
|
||||
# config-default.sh.
|
||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../..
|
||||
readonly ROOT=$(dirname "${BASH_SOURCE}")
|
||||
source "${ROOT}/${KUBE_CONFIG_FILE:-"config-default.sh"}"
|
||||
source "${KUBE_ROOT}/cluster/common.sh"
|
||||
if [ $CREATE_IMAGE = true ]; then
|
||||
source "${ROOT}/config-image.sh"
|
||||
fi
|
||||
|
||||
# Verify prereqs on host machine
|
||||
function verify-prereqs() {
|
||||
# Check the OpenStack command-line clients
|
||||
for client in swift glance nova heat openstack;
|
||||
do
|
||||
if which $client >/dev/null 2>&1; then
|
||||
echo "${client} client installed"
|
||||
else
|
||||
echo "${client} client does not exist"
|
||||
echo "Please install ${client} client, and retry."
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Instantiate a kubernetes cluster
|
||||
#
|
||||
# Assumed vars:
|
||||
# KUBERNETES_PROVIDER
|
||||
function kube-up() {
|
||||
echo "kube-up for provider ${KUBERNETES_PROVIDER}"
|
||||
create-stack
|
||||
}
|
||||
|
||||
# Periodically checks if cluster is created
|
||||
#
|
||||
# Assumed vars:
|
||||
# STACK_CREATE_TIMEOUT
|
||||
# STACK_NAME
|
||||
function validate-cluster() {
|
||||
|
||||
while (( --$STACK_CREATE_TIMEOUT >= 0)) ;do
|
||||
local status=$(openstack stack show "${STACK_NAME}" | awk '$2=="stack_status" {print $4}')
|
||||
if [[ $status ]]; then
|
||||
echo "Cluster status ${status}"
|
||||
if [ $status = "CREATE_COMPLETE" ]; then
|
||||
configure-kubectl
|
||||
break
|
||||
elif [ $status = "CREATE_FAILED" ]; then
|
||||
echo "Cluster not created. Please check stack logs to find the problem"
|
||||
break
|
||||
fi
|
||||
else
|
||||
echo "Cluster not created. Please verify if process started correctly"
|
||||
break
|
||||
fi
|
||||
sleep 60
|
||||
done
|
||||
}
|
||||
|
||||
# Create stack
|
||||
#
|
||||
# Assumed vars:
|
||||
# OPENSTACK
|
||||
# OPENSTACK_TEMP
|
||||
# DNS_SERVER
|
||||
# OPENSTACK_IP
|
||||
# OPENRC_FILE
|
||||
function create-stack() {
|
||||
echo "[INFO] Execute commands to create Kubernetes cluster"
|
||||
# It is required for some cloud provider like CityCloud where swift client has different credentials
|
||||
source "${ROOT}/openrc-swift.sh"
|
||||
upload-resources
|
||||
source "${ROOT}/openrc-default.sh"
|
||||
|
||||
create-glance-image
|
||||
|
||||
add-keypair
|
||||
run-heat-script
|
||||
}
|
||||
|
||||
# Upload kubernetes release tars and heat templates.
|
||||
#
|
||||
# Assumed vars:
|
||||
# ROOT
|
||||
# KUBERNETES_RELEASE_TAR
|
||||
function upload-resources() {
|
||||
swift post kubernetes --read-acl '.r:*,.rlistings'
|
||||
|
||||
locations=(
|
||||
"${ROOT}/../../_output/release-tars/${KUBERNETES_RELEASE_TAR}"
|
||||
"${ROOT}/../../server/${KUBERNETES_RELEASE_TAR}"
|
||||
)
|
||||
|
||||
RELEASE_TAR_LOCATION=$( (ls -t "${locations[@]}" 2>/dev/null || true) | head -1 )
|
||||
RELEASE_TAR_PATH=$(dirname ${RELEASE_TAR_LOCATION})
|
||||
|
||||
echo "[INFO] Uploading ${KUBERNETES_RELEASE_TAR}"
|
||||
swift upload kubernetes ${RELEASE_TAR_PATH}/${KUBERNETES_RELEASE_TAR} \
|
||||
--object-name kubernetes-server.tar.gz
|
||||
|
||||
echo "[INFO] Uploading kubernetes-salt.tar.gz"
|
||||
swift upload kubernetes ${RELEASE_TAR_PATH}/kubernetes-salt.tar.gz \
|
||||
--object-name kubernetes-salt.tar.gz
|
||||
}
|
||||
|
||||
# Create a new key pair for use with servers.
|
||||
#
|
||||
# Assumed vars:
|
||||
# KUBERNETES_KEYPAIR_NAME
|
||||
# CLIENT_PUBLIC_KEY_PATH
|
||||
function add-keypair() {
|
||||
local status=$(nova keypair-show ${KUBERNETES_KEYPAIR_NAME})
|
||||
if [[ ! $status ]]; then
|
||||
nova keypair-add ${KUBERNETES_KEYPAIR_NAME} --pub-key ${CLIENT_PUBLIC_KEY_PATH}
|
||||
echo "[INFO] Key pair created"
|
||||
else
|
||||
echo "[INFO] Key pair already exists"
|
||||
fi
|
||||
}
|
||||
|
||||
# Create a new glance image.
|
||||
#
|
||||
# Assumed vars:
|
||||
# IMAGE_FILE
|
||||
# IMAGE_PATH
|
||||
# OPENSTACK_IMAGE_NAME
|
||||
function create-glance-image() {
|
||||
if [[ ${CREATE_IMAGE} == "true" ]]; then
|
||||
local image_status=$(openstack image show ${OPENSTACK_IMAGE_NAME} | awk '$2=="id" {print $4}')
|
||||
|
||||
if [[ ! $image_status ]]; then
|
||||
if [[ "${DOWNLOAD_IMAGE}" == "true" ]]; then
|
||||
mkdir -p ${IMAGE_PATH}
|
||||
curl -L ${IMAGE_URL_PATH}/${IMAGE_FILE} -o ${IMAGE_PATH}/${IMAGE_FILE} -z ${IMAGE_PATH}/${IMAGE_FILE}
|
||||
fi
|
||||
echo "[INFO] Create image ${OPENSTACK_IMAGE_NAME}"
|
||||
glance image-create --name ${OPENSTACK_IMAGE_NAME} --disk-format ${IMAGE_FORMAT} \
|
||||
--container-format ${CONTAINER_FORMAT} --file ${IMAGE_PATH}/${IMAGE_FILE}
|
||||
else
|
||||
echo "[INFO] Image ${OPENSTACK_IMAGE_NAME} already exists"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Create a new kubernetes stack.
|
||||
#
|
||||
# Assumed vars:
|
||||
# STACK_NAME
|
||||
# KUBERNETES_KEYPAIR_NAME
|
||||
# DNS_SERVER
|
||||
# SWIFT_SERVER_URL
|
||||
# OPENSTACK_IMAGE_NAME
|
||||
# EXTERNAL_NETWORK
|
||||
# IMAGE_ID
|
||||
# MASTER_FLAVOR
|
||||
# MINION_FLAVOR
|
||||
# NUMBER_OF_MINIONS
|
||||
# MAX_NUMBER_OF_MINIONS
|
||||
# DNS_SERVER
|
||||
# STACK_NAME
|
||||
function run-heat-script() {
|
||||
|
||||
local stack_status=$(openstack stack show ${STACK_NAME})
|
||||
|
||||
# Automatically detect swift url if it wasn't specified
|
||||
if [[ -z $SWIFT_SERVER_URL ]]; then
|
||||
SWIFT_SERVER_URL=$(openstack catalog show object-store --format value | egrep -o "publicURL: (.+)$" | cut -d" " -f2)
|
||||
fi
|
||||
local swift_repo_url="${SWIFT_SERVER_URL}/kubernetes"
|
||||
|
||||
if [ $CREATE_IMAGE = true ]; then
|
||||
echo "[INFO] Retrieve new image ID"
|
||||
IMAGE_ID=$(openstack image show ${OPENSTACK_IMAGE_NAME} | awk '$2=="id" {print $4}')
|
||||
echo "[INFO] Image Id ${IMAGE_ID}"
|
||||
fi
|
||||
|
||||
if [[ ! $stack_status ]]; then
|
||||
echo "[INFO] Create stack ${STACK_NAME}"
|
||||
(
|
||||
cd ${ROOT}/kubernetes-heat
|
||||
openstack stack create --timeout 60 \
|
||||
--parameter external_network=${EXTERNAL_NETWORK} \
|
||||
--parameter lbaas_version=${LBAAS_VERSION} \
|
||||
--parameter fixed_network_cidr=${FIXED_NETWORK_CIDR} \
|
||||
--parameter ssh_key_name=${KUBERNETES_KEYPAIR_NAME} \
|
||||
--parameter server_image=${IMAGE_ID} \
|
||||
--parameter master_flavor=${MASTER_FLAVOR} \
|
||||
--parameter minion_flavor=${MINION_FLAVOR} \
|
||||
--parameter number_of_minions=${NUMBER_OF_MINIONS} \
|
||||
--parameter max_number_of_minions=${MAX_NUMBER_OF_MINIONS} \
|
||||
--parameter dns_nameserver=${DNS_SERVER} \
|
||||
--parameter kubernetes_salt_url=${swift_repo_url}/kubernetes-salt.tar.gz \
|
||||
--parameter kubernetes_server_url=${swift_repo_url}/kubernetes-server.tar.gz \
|
||||
--parameter os_auth_url=${OS_AUTH_URL} \
|
||||
--parameter os_username=${OS_USERNAME} \
|
||||
--parameter os_password=${OS_PASSWORD} \
|
||||
--parameter os_region_name=${OS_REGION_NAME} \
|
||||
--parameter os_tenant_id=${OS_TENANT_ID} \
|
||||
--parameter enable_proxy=${ENABLE_PROXY} \
|
||||
--parameter ftp_proxy="${FTP_PROXY}" \
|
||||
--parameter http_proxy="${HTTP_PROXY}" \
|
||||
--parameter https_proxy="${HTTPS_PROXY}" \
|
||||
--parameter socks_proxy="${SOCKS_PROXY}" \
|
||||
--parameter no_proxy="${NO_PROXY}" \
|
||||
--template kubecluster.yaml \
|
||||
${STACK_NAME}
|
||||
)
|
||||
else
|
||||
echo "[INFO] Stack ${STACK_NAME} already exists"
|
||||
openstack stack show ${STACK_NAME}
|
||||
fi
|
||||
}
|
||||
|
||||
# Configure kubectl.
|
||||
#
|
||||
# Assumed vars:
|
||||
# STACK_NAME
|
||||
function configure-kubectl() {
|
||||
|
||||
export KUBE_MASTER_IP=$(nova show "${STACK_NAME}"-master | awk '$3=="network" {print $6}')
|
||||
export CONTEXT="openstack-${STACK_NAME}"
|
||||
export KUBE_BEARER_TOKEN="TokenKubelet"
|
||||
|
||||
if [[ "${ENABLE_PROXY:-}" == "true" ]]; then
|
||||
echo 'export NO_PROXY=$NO_PROXY,'"${KUBE_MASTER_IP}" > /tmp/kube-proxy-env
|
||||
echo 'export no_proxy=$NO_PROXY,'"${KUBE_MASTER_IP}" >> /tmp/kube-proxy-env
|
||||
. /tmp/kube-proxy-env
|
||||
fi
|
||||
|
||||
create-kubeconfig
|
||||
}
|
||||
|
||||
|
||||
# Delete a kubernetes cluster
|
||||
#
|
||||
# Assumed vars:
|
||||
# STACK_NAME
|
||||
function kube-down {
|
||||
source "${ROOT}/openrc-default.sh"
|
||||
openstack stack delete ${STACK_NAME}
|
||||
}
|
||||
|
||||
# Perform preparations required to run e2e tests
|
||||
function prepare-e2e {
|
||||
echo "TODO: prepare-e2e" 1>&2
|
||||
}
|
||||
|
||||
function test-build-release {
|
||||
echo "test-build-release() " 1>&2
|
||||
}
|
||||
|
||||
# Must ensure that the following ENV vars are set
|
||||
function detect-master {
|
||||
|
||||
source "${ROOT}/${KUBE_CONFIG_FILE:-"config-default.sh"}"
|
||||
source "${ROOT}/openrc-default.sh"
|
||||
|
||||
export KUBE_MASTER_IP=$(nova show "${STACK_NAME}"-master | awk '$3=="network" {print $6}')
|
||||
|
||||
echo "KUBE_MASTER_IP: ${KUBE_MASTER_IP}" 1>&2
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue