From 2595fda3e37372df4061d78b52a85071e28ebfe1 Mon Sep 17 00:00:00 2001 From: Jonathan Rosser Date: Sat, 16 Feb 2019 18:50:13 +0000 Subject: [PATCH] Ensure http proxy environment is available during 'atomic install' for k8s The scripts run by cloud-init for the master and minion nodes currently write proxy environment variables into /bin/bashrc when they are defined. These variables will only be introduced into the running environment when a new bash shell is started. The /bin/sh used by the fragment scripts will ignore /etc/bashrc, so the new shells invoked per fragment will not have the http proxy variables present. This means that the master/minion node deployment fails when behind an http proxy. This patch adds explicit exports for HTTP_PROXY and HTTPS_PROXY when those variables are defined, and not empty. Task: 29863 Change-Id: Id05c90d5bf99d720ae6002b38d3291e364e1e0c4 --- .../templates/kubernetes/fragments/configure-etcd.sh | 12 ++++++++++++ .../fragments/configure-kubernetes-master.sh | 12 ++++++++++++ .../fragments/configure-kubernetes-minion.sh | 12 ++++++++++++ .../kubernetes/fragments/start-container-agent.sh | 12 ++++++++++++ 4 files changed, 48 insertions(+) diff --git a/magnum/drivers/common/templates/kubernetes/fragments/configure-etcd.sh b/magnum/drivers/common/templates/kubernetes/fragments/configure-etcd.sh index 00a81403aa..ca485cab48 100644 --- a/magnum/drivers/common/templates/kubernetes/fragments/configure-etcd.sh +++ b/magnum/drivers/common/templates/kubernetes/fragments/configure-etcd.sh @@ -4,6 +4,18 @@ set -x +if [ ! -z "$HTTP_PROXY" ]; then + export HTTP_PROXY +fi + +if [ ! -z "$HTTPS_PROXY" ]; then + export HTTPS_PROXY +fi + +if [ ! -z "$NO_PROXY" ]; then + export NO_PROXY +fi + if [ -n "$ETCD_VOLUME_SIZE" ] && [ "$ETCD_VOLUME_SIZE" -gt 0 ]; then attempts=60 diff --git a/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-master.sh b/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-master.sh index f2d686321c..e105f57a58 100644 --- a/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-master.sh +++ b/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-master.sh @@ -4,6 +4,18 @@ echo "configuring kubernetes (master)" +if [ ! -z "$HTTP_PROXY" ]; then + export HTTP_PROXY +fi + +if [ ! -z "$HTTPS_PROXY" ]; then + export HTTPS_PROXY +fi + +if [ ! -z "$NO_PROXY" ]; then + export NO_PROXY +fi + _prefix=${CONTAINER_INFRA_PREFIX:-docker.io/openstackmagnum/} mkdir -p /opt/cni diff --git a/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-minion.sh b/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-minion.sh index 951f954d39..cbcfec50ae 100644 --- a/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-minion.sh +++ b/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-minion.sh @@ -4,6 +4,18 @@ echo "configuring kubernetes (minion)" +if [ ! -z "$HTTP_PROXY" ]; then + export HTTP_PROXY +fi + +if [ ! -z "$HTTPS_PROXY" ]; then + export HTTPS_PROXY +fi + +if [ ! -z "$NO_PROXY" ]; then + export NO_PROXY +fi + _prefix=${CONTAINER_INFRA_PREFIX:-docker.io/openstackmagnum/} _addtl_mounts='' diff --git a/magnum/drivers/common/templates/kubernetes/fragments/start-container-agent.sh b/magnum/drivers/common/templates/kubernetes/fragments/start-container-agent.sh index bb37dc0442..5598305823 100644 --- a/magnum/drivers/common/templates/kubernetes/fragments/start-container-agent.sh +++ b/magnum/drivers/common/templates/kubernetes/fragments/start-container-agent.sh @@ -4,6 +4,18 @@ set -uxe +if [ ! -z "$HTTP_PROXY" ]; then + export HTTP_PROXY +fi + +if [ ! -z "$HTTPS_PROXY" ]; then + export HTTPS_PROXY +fi + +if [ ! -z "$NO_PROXY" ]; then + export NO_PROXY +fi + # Create a keypair for the heat-container-agent to # access the node over ssh. It is useful to operate # in host mount namespace and apply configuration.