#!/bin/bash # Copyright 2014 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. # This script will source the default skeleton helper functions, then sources # cluster/${KUBERNETES_PROVIDER}/util.sh where KUBERNETES_PROVIDER, if unset, # will use its default value (gce). setglobal KUBE_ROOT = "$[dirname $(BASH_SOURCE)]/.." source "$(KUBE_ROOT)/cluster/skeleton/util.sh" if [[ -n "${KUBERNETES_CONFORMANCE_TEST:-}" ]] { setglobal KUBERNETES_PROVIDER = ''"" } else { setglobal KUBERNETES_PROVIDER = $(KUBERNETES_PROVIDER:-gce) } # PROVIDER_VARS is a list of cloud provider specific variables. Note: # this is a list of the _names_ of the variables, not the value of the # variables. Providers can add variables to be appended to kube-env. # (see `build-kube-env`). setglobal PROVIDER_VARS = ''"" setglobal PROVIDER_UTILS = ""$(KUBE_ROOT)/cluster/$(KUBERNETES_PROVIDER)/util.sh"" if test -f $(PROVIDER_UTILS) { source $(PROVIDER_UTILS) } # Federation utils # Sets the kubeconfig context value for the current cluster. # Args: # $1: zone (required) # # Vars set: # CLUSTER_CONTEXT proc kubeconfig-federation-context { if [[ -z "${1:-}" ]] { echo "zone parameter is required" exit 1 } setglobal CLUSTER_CONTEXT = ""federation-e2e-$(KUBERNETES_PROVIDER)-$(1)"" } # Should NOT be called within the global scope, unless setting the desired global zone vars # This function is currently NOT USED in the global scope proc set-federation-zone-vars { setglobal zone = $1 kubeconfig-federation-context $(zone) export OVERRIDE_CONTEXT="$(CLUSTER_CONTEXT)" echo "Setting zone vars to: $OVERRIDE_CONTEXT" if [[ "$KUBERNETES_PROVIDER" == "gce" ]]{ # This needs a revamp, but for now e2e zone name is used as the unique # cluster identifier in our e2e tests and we will continue to use that # pattern. export CLUSTER_NAME="$(zone)" export KUBE_GCE_ZONE="$(zone)" # gcloud has a 61 character limit, and for firewall rules this # prefix gets appended to itself, with some extra information # need tot keep it short export KUBE_GCE_INSTANCE_PREFIX="$(USER)-$(zone)" } elif [[ "$KUBERNETES_PROVIDER" == "gke" ]]{ export CLUSTER_NAME="$(USER)-$(zone)" } elif [[ "$KUBERNETES_PROVIDER" == "aws" ]]{ export KUBE_AWS_ZONE="$zone" export KUBE_AWS_INSTANCE_PREFIX="$(USER)-$(zone)" # WARNING: This is hack # After KUBE_AWS_INSTANCE_PREFIX is changed, # we need to make sure the config-xxx.sh file is # re-sourced so the change propogates to dependent computed values # (eg: MASTER_SG_NAME, NODE_SG_NAME, etc) source "$(KUBE_ROOT)/cluster/aws/util.sh" } else { echo "Provider \"$(KUBERNETES_PROVIDER)\" is not supported" exit 1 } }