diff --git a/cluster/aws/config-default.sh b/cluster/aws/config-default.sh index 6def372c67a..e54886292d0 100644 --- a/cluster/aws/config-default.sh +++ b/cluster/aws/config-default.sh @@ -99,3 +99,9 @@ KUBE_MINION_IMAGE="${KUBE_MINION_IMAGE:-}" COREOS_CHANNEL="${COREOS_CHANNEL:-alpha}" CONTAINER_RUNTIME="${KUBE_CONTAINER_RUNTIME:-docker}" RKT_VERSION="${KUBE_RKT_VERSION:-0.5.5}" + +# OpenContrail networking plugin specific settings +NETWORK_PROVIDER="${NETWORK_PROVIDER:-none}" # opencontrail +OPENCONTRAIL_TAG="${OPENCONTRAIL_TAG:-R2.20}" +OPENCONTRAIL_KUBERNETES_TAG="${OPENCONTRAIL_KUBERNETES_TAG:-master}" +OPENCONTRAIL_PUBLIC_SUBNET="${OPENCONTRAIL_PUBLIC_SUBNET:-10.1.0.0/16}" diff --git a/cluster/aws/templates/create-dynamic-salt-files.sh b/cluster/aws/templates/create-dynamic-salt-files.sh index 594fdf6308a..40ffee2c20a 100644 --- a/cluster/aws/templates/create-dynamic-salt-files.sh +++ b/cluster/aws/templates/create-dynamic-salt-files.sh @@ -36,6 +36,10 @@ dns_replicas: '$(echo "$DNS_REPLICAS" | sed -e "s/'/''/g")' dns_server: '$(echo "$DNS_SERVER_IP" | sed -e "s/'/''/g")' dns_domain: '$(echo "$DNS_DOMAIN" | sed -e "s/'/''/g")' admission_control: '$(echo "$ADMISSION_CONTROL" | sed -e "s/'/''/g")' +network_provider: '$(echo "$NETWORK_PROVIDER")' +opencontrail_tag: '$(echo "$OPENCONTRAIL_TAG")' +opencontrail_kubernetes_tag: '$(echo "$OPENCONTRAIL_KUBERNETES_TAG")' +opencontrail_public_subnet: '$(echo "$OPENCONTRAIL_PUBLIC_SUBNET")' EOF readonly BASIC_AUTH_FILE="/srv/salt-overlay/salt/kube-apiserver/basic_auth.csv" diff --git a/cluster/aws/util.sh b/cluster/aws/util.sh index 213816a19c9..39c39059e21 100644 --- a/cluster/aws/util.sh +++ b/cluster/aws/util.sh @@ -812,6 +812,10 @@ function kube-up { echo "readonly KUBE_PROXY_TOKEN='${KUBE_PROXY_TOKEN}'" echo "readonly DOCKER_STORAGE='${DOCKER_STORAGE:-}'" echo "readonly MASTER_EXTRA_SANS='${MASTER_EXTRA_SANS:-}'" + echo "readonly NETWORK_PROVIDER='${NETWORK_PROVIDER:-}'" + echo "readonly OPENCONTRAIL_TAG='${OPENCONTRAIL_TAG:-}'" + echo "readonly OPENCONTRAIL_KUBERNETES_TAG='${OPENCONTRAIL_KUBERNETES_TAG:-}'" + echo "readonly OPENCONTRAIL_PUBLIC_SUBNET='${OPENCONTRAIL_PUBLIC_SUBNET:-}'" grep -v "^#" "${KUBE_ROOT}/cluster/aws/templates/common.sh" grep -v "^#" "${KUBE_ROOT}/cluster/aws/templates/format-disks.sh" grep -v "^#" "${KUBE_ROOT}/cluster/aws/templates/setup-master-pd.sh" diff --git a/cluster/gce/config-default.sh b/cluster/gce/config-default.sh index a2aa6b4937a..31893164998 100755 --- a/cluster/gce/config-default.sh +++ b/cluster/gce/config-default.sh @@ -114,3 +114,9 @@ ADMISSION_CONTROL=NamespaceLifecycle,LimitRanger,SecurityContextDeny,ServiceAcco # Optional: if set to true kube-up will automatically check for existing resources and clean them up. KUBE_UP_AUTOMATIC_CLEANUP=${KUBE_UP_AUTOMATIC_CLEANUP:-false} + +# OpenContrail networking plugin specific settings +NETWORK_PROVIDER="${NETWORK_PROVIDER:-none}" # opencontrail +OPENCONTRAIL_TAG="${OPENCONTRAIL_TAG:-R2.20}" +OPENCONTRAIL_KUBERNETES_TAG="${OPENCONTRAIL_KUBERNETES_TAG:-master}" +OPENCONTRAIL_PUBLIC_SUBNET="${OPENCONTRAIL_PUBLIC_SUBNET:-10.1.0.0/16}" diff --git a/cluster/gce/config-test.sh b/cluster/gce/config-test.sh index 46696a0f018..78bc780ba88 100755 --- a/cluster/gce/config-test.sh +++ b/cluster/gce/config-test.sh @@ -127,3 +127,9 @@ KUBE_UP_AUTOMATIC_CLEANUP=${KUBE_UP_AUTOMATIC_CLEANUP:-false} # are pre-installed in the image. Note that currently this logic # is only supported in trusty nodes. TEST_CLUSTER="${TEST_CLUSTER:-true}" + +# OpenContrail networking plugin specific settings +NETWORK_PROVIDER="${NETWORK_PROVIDER:-none}" # opencontrail +OPENCONTRAIL_TAG="${OPENCONTRAIL_TAG:-R2.20}" +OPENCONTRAIL_KUBERNETES_TAG="${OPENCONTRAIL_KUBERNETES_TAG:-master}" +OPENCONTRAIL_PUBLIC_SUBNET="${OPENCONTRAIL_PUBLIC_SUBNET:-10.1.0.0/16}" diff --git a/cluster/gce/configure-vm.sh b/cluster/gce/configure-vm.sh index 5894be5fe17..bb13ef026f1 100644 --- a/cluster/gce/configure-vm.sh +++ b/cluster/gce/configure-vm.sh @@ -277,6 +277,10 @@ dns_replicas: '$(echo "$DNS_REPLICAS" | sed -e "s/'/''/g")' dns_server: '$(echo "$DNS_SERVER_IP" | sed -e "s/'/''/g")' dns_domain: '$(echo "$DNS_DOMAIN" | sed -e "s/'/''/g")' admission_control: '$(echo "$ADMISSION_CONTROL" | sed -e "s/'/''/g")' +network_provider: '$(echo "$NETWORK_PROVIDER")' +opencontrail_tag: '$(echo "$OPENCONTRAIL_TAG")' +opencontrail_kubernetes_tag: '$(echo "$OPENCONTRAIL_KUBERNETES_TAG")' +opencontrail_public_subnet: '$(echo "$OPENCONTRAIL_PUBLIC_SUBNET")' EOF if [ -n "${APISERVER_TEST_ARGS:-}" ]; then diff --git a/cluster/gce/debian/helper.sh b/cluster/gce/debian/helper.sh index 06324062ac5..94f6daa08a9 100755 --- a/cluster/gce/debian/helper.sh +++ b/cluster/gce/debian/helper.sh @@ -57,6 +57,10 @@ RUNTIME_CONFIG: $(yaml-quote ${RUNTIME_CONFIG}) CA_CERT: $(yaml-quote ${CA_CERT_BASE64:-}) KUBELET_CERT: $(yaml-quote ${KUBELET_CERT_BASE64:-}) KUBELET_KEY: $(yaml-quote ${KUBELET_KEY_BASE64:-}) +NETWORK_PROVIDER: $(yaml-quote ${NETWORK_PROVIDER:-}) +OPENCONTRAIL_TAG: $(yaml-quote ${OPENCONTRAIL_TAG:-}) +OPENCONTRAIL_KUBERNETES_TAG: $(yaml-quote ${OPENCONTRAIL_KUBERNETES_TAG:-}) +OPENCONTRAIL_PUBLIC_SUBNET: $(yaml-quote ${OPENCONTRAIL_PUBLIC_SUBNET:-}) EOF if [ -n "${KUBE_APISERVER_REQUEST_TIMEOUT:-}" ]; then cat >>$file </srv/salt-overlay/pillar/cluster-params.sls instance_prefix: '$(echo "$INSTANCE_PREFIX" | sed -e "s/'/''/g")' admission_control: '$(echo "$ADMISSION_CONTROL" | sed -e "s/'/''/g")' enable_cpu_cfs_quota: '$(echo "$ENABLE_CPU_CFS_QUOTA" | sed -e "s/'/''/g")' + network_provider: '$(echo "$NETWORK_PROVIDER" | sed -e "s/'/''/g")' + opencontrail_tag: '$(echo "$OPENCONTRAIL_TAG" | sed -e "s/'/''/g")' + opencontrail_kubernetes_tag: '$(echo "$OPENCONTRAIL_KUBERNETES_TAG" | sed -e "s/'/''/g")' + opencontrail_public_subnet: '$(echo "$OPENCONTRAIL_PUBLIC_SUBNET" | sed -e "s/'/''/g")' EOF # Configure the salt-master diff --git a/cluster/vagrant/util.sh b/cluster/vagrant/util.sh index 83c13f9a2ed..1a69cc48a60 100644 --- a/cluster/vagrant/util.sh +++ b/cluster/vagrant/util.sh @@ -166,6 +166,10 @@ function create-provision-scripts { echo "KUBE_PROXY_TOKEN='${KUBE_PROXY_TOKEN:-}'" echo "MASTER_EXTRA_SANS='${MASTER_EXTRA_SANS:-}'" echo "ENABLE_CPU_CFS_QUOTA='${ENABLE_CPU_CFS_QUOTA}'" + echo "NETWORK_PROVIDER='${NETWORK_PROVIDER:-}'" + echo "OPENCONTRAIL_TAG='${OPENCONTRAIL_TAG:-}'" + echo "OPENCONTRAIL_KUBERNETES_TAG='${OPENCONTRAIL_KUBERNETES_TAG:-}'" + echo "OPENCONTRAIL_PUBLIC_SUBNET='${OPENCONTRAIL_PUBLIC_SUBNET:-}'" awk '!/^#/' "${KUBE_ROOT}/cluster/vagrant/provision-network-master.sh" awk '!/^#/' "${KUBE_ROOT}/cluster/vagrant/provision-master.sh" ) > "${KUBE_TEMP}/master-start.sh" diff --git a/hack/verify-flags/exceptions.txt b/hack/verify-flags/exceptions.txt index 7a9e930afda..e07710723ff 100644 --- a/hack/verify-flags/exceptions.txt +++ b/hack/verify-flags/exceptions.txt @@ -44,6 +44,8 @@ cluster/saltbase/salt/kube-proxy/default: {% set api_servers_with_port = api_ cluster/saltbase/salt/kube-proxy/default: {% set api_servers_with_port = api_servers + ":7080" -%} cluster/saltbase/salt/kubelet/default: {% set api_servers_with_port = api_servers + ":6443" -%} cluster/saltbase/salt/kubelet/default: {% set api_servers_with_port = api_servers -%} +cluster/saltbase/salt/opencontrail-networking-master/init.sls: - 'SERVICE_CLUSTER_IP_RANGE': '{{ pillar.get('service_cluster_ip_range') }}' +cluster/saltbase/salt/opencontrail-networking-minion/init.sls: - 'SERVICE_CLUSTER_IP_RANGE': '{{ pillar.get('service_cluster_ip_range') }}' docs/admin/salt.md:`api_servers` | (Optional) The IP address / host name where a kubelet can get read-only access to kube-apiserver docs/admin/salt.md:`etcd_servers` | (Optional) Comma-delimited list of IP addresses the kube-apiserver and kubelet use to reach etcd. Uses the IP of the first machine in the kubernetes_master role, or 127.0.0.1 on GCE. docs/admin/salt.md:`hostname_override` | (Optional) Mapped to the kubelet hostname-override