From c2e70a7c35d9dde1bf80bfd72869de625b77637a Mon Sep 17 00:00:00 2001 From: "Madhusudan.C.S" Date: Thu, 23 Jun 2016 16:16:03 -0700 Subject: [PATCH 1/3] Parametrize the kube-dns --federations command line argument in the manifest. This parameter is later substituted with the environment variable during the build process. --- build/common.sh | 3 +++ cluster/saltbase/salt/kube-dns/skydns-rc.yaml.base | 1 + cluster/saltbase/salt/kube-dns/skydns-rc.yaml.in | 1 + cluster/saltbase/salt/kube-dns/skydns-rc.yaml.sed | 1 + cluster/saltbase/salt/kube-dns/transforms2salt.sed | 1 + cluster/saltbase/salt/kube-dns/transforms2sed.sed | 1 + 6 files changed, 8 insertions(+) diff --git a/build/common.sh b/build/common.sh index 67de4aa7eaa..51429a1343e 100755 --- a/build/common.sh +++ b/build/common.sh @@ -949,6 +949,9 @@ function kube::release::package_kube_manifests_tarball() { objects=$(cd "${KUBE_ROOT}/cluster/saltbase/salt/kube-dns" && find . \( -name \*.yaml -or -name \*.yaml.in -or -name \*.json \) | grep -v demo) mkdir -p "${dst_dir}/dns" tar c -C "${KUBE_ROOT}/cluster/saltbase/salt/kube-dns" ${objects} | tar x -C "${dst_dir}/dns" + if [[ "${FEDERATION:-}" == "true" ]]; then + sed -i 's/{{ pillar\['"'"'federations_domain_map'"'"'\] }}/- --federations="'"${FEDERATIONS_DOMAIN_MAP}"'"/g' "${dst_dir}/dns/skydns-rc.yaml.in" + fi # This is for coreos only. ContainerVM, GCI, or Trusty does not use it. cp -r "${KUBE_ROOT}/cluster/gce/coreos/kube-manifests"/* "${release_stage}/" diff --git a/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.base b/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.base index ce5f426de83..74bafd064d9 100644 --- a/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.base +++ b/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.base @@ -75,6 +75,7 @@ spec: # command = "/kube-dns" - --domain=__PILLAR__DNS__DOMAIN__. - --dns-port=10053 + __PILLAR__FEDERATIONS__DOMAIN__MAP__ ports: - containerPort: 10053 name: dns-local diff --git a/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.in b/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.in index 3cc597dc4a8..88d1ff902ae 100644 --- a/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.in +++ b/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.in @@ -75,6 +75,7 @@ spec: # command = "/kube-dns" - --domain={{ pillar['dns_domain'] }}. - --dns-port=10053 + {{ pillar['federations_domain_map'] }} ports: - containerPort: 10053 name: dns-local diff --git a/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.sed b/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.sed index 17df3ebe2a5..0840686a9a4 100644 --- a/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.sed +++ b/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.sed @@ -75,6 +75,7 @@ spec: # command = "/kube-dns" - --domain=$DNS_DOMAIN. - --dns-port=10053 + $FEDERATIONS_DOMAIN_MAP ports: - containerPort: 10053 name: dns-local diff --git a/cluster/saltbase/salt/kube-dns/transforms2salt.sed b/cluster/saltbase/salt/kube-dns/transforms2salt.sed index 051f40a2a4b..4ce2e4988f0 100644 --- a/cluster/saltbase/salt/kube-dns/transforms2salt.sed +++ b/cluster/saltbase/salt/kube-dns/transforms2salt.sed @@ -1,4 +1,5 @@ s/__PILLAR__DNS__SERVER__/{{ pillar['dns_server'] }}/g s/__PILLAR__DNS__REPLICAS__/{{ pillar['dns_replicas'] }}/g s/__PILLAR__DNS__DOMAIN__/{{ pillar['dns_domain'] }}/g +s/__PILLAR__FEDERATIONS__DOMAIN__MAP__/{{ pillar['federations_domain_map'] }}/g s/__MACHINE_GENERATED_WARNING__/Warning: This is a file generated from the base underscore template file: __SOURCE_FILENAME__/g \ No newline at end of file diff --git a/cluster/saltbase/salt/kube-dns/transforms2sed.sed b/cluster/saltbase/salt/kube-dns/transforms2sed.sed index 612e467a958..95a938144bf 100644 --- a/cluster/saltbase/salt/kube-dns/transforms2sed.sed +++ b/cluster/saltbase/salt/kube-dns/transforms2sed.sed @@ -1,4 +1,5 @@ s/__PILLAR__DNS__SERVER__/$DNS_SERVER_IP/g s/__PILLAR__DNS__REPLICAS__/$DNS_REPLICAS/g s/__PILLAR__DNS__DOMAIN__/$DNS_DOMAIN/g +s/__PILLAR__FEDERATIONS__DOMAIN__MAP__/$FEDERATIONS_DOMAIN_MAP/g s/__MACHINE_GENERATED_WARNING__/Warning: This is a file generated from the base underscore template file: __SOURCE_FILENAME__/g \ No newline at end of file From f980aa2ae18c05293715ed3016049fbc82926b5c Mon Sep 17 00:00:00 2001 From: "Madhusudan.C.S" Date: Thu, 23 Jun 2016 16:46:55 -0700 Subject: [PATCH 2/3] Address review comments. --- build/common.sh | 13 ++++++++++++- cluster/saltbase/salt/kube-dns/skydns-rc.yaml.sed | 1 - cluster/saltbase/salt/kube-dns/transforms2sed.sed | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/build/common.sh b/build/common.sh index 51429a1343e..9b6d361d442 100755 --- a/build/common.sh +++ b/build/common.sh @@ -949,8 +949,19 @@ function kube::release::package_kube_manifests_tarball() { objects=$(cd "${KUBE_ROOT}/cluster/saltbase/salt/kube-dns" && find . \( -name \*.yaml -or -name \*.yaml.in -or -name \*.json \) | grep -v demo) mkdir -p "${dst_dir}/dns" tar c -C "${KUBE_ROOT}/cluster/saltbase/salt/kube-dns" ${objects} | tar x -C "${dst_dir}/dns" + + # We leave the `{{ pillar['federations_domain_map'] }}` parameter as is, if + # the right federation environment variables isn't set. This is to allow + # users to provide these pillar values using the regular salt's mechanisms + # during cluster bootstrap. if [[ "${FEDERATION:-}" == "true" ]]; then - sed -i 's/{{ pillar\['"'"'federations_domain_map'"'"'\] }}/- --federations="'"${FEDERATIONS_DOMAIN_MAP}"'"/g' "${dst_dir}/dns/skydns-rc.yaml.in" + FEDERATIONS_DOMAIN_MAP="${FEDERATIONS_DOMAIN_MAP:-}" + if [[ -z "${FEDERATIONS_DOMAIN_MAP}" && -n "${FEDERATION_NAME:-}" && -n "${DNS_ZONE_NAME:-}" ]]; then + FEDERATIONS_DOMAIN_MAP="${FEDERATION_NAME}=${DNS_ZONE_NAME}" + fi + if [[ -n "${FEDERATIONS_DOMAIN_MAP}" ]]; then + sed -i 's/{{ pillar\['"'"'federations_domain_map'"'"'\] }}/- --federations="'"${FEDERATIONS_DOMAIN_MAP}"'"/g' "${dst_dir}/dns/skydns-rc.yaml.in" + fi fi # This is for coreos only. ContainerVM, GCI, or Trusty does not use it. diff --git a/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.sed b/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.sed index 0840686a9a4..17df3ebe2a5 100644 --- a/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.sed +++ b/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.sed @@ -75,7 +75,6 @@ spec: # command = "/kube-dns" - --domain=$DNS_DOMAIN. - --dns-port=10053 - $FEDERATIONS_DOMAIN_MAP ports: - containerPort: 10053 name: dns-local diff --git a/cluster/saltbase/salt/kube-dns/transforms2sed.sed b/cluster/saltbase/salt/kube-dns/transforms2sed.sed index 95a938144bf..2138854dfe7 100644 --- a/cluster/saltbase/salt/kube-dns/transforms2sed.sed +++ b/cluster/saltbase/salt/kube-dns/transforms2sed.sed @@ -1,5 +1,5 @@ s/__PILLAR__DNS__SERVER__/$DNS_SERVER_IP/g s/__PILLAR__DNS__REPLICAS__/$DNS_REPLICAS/g s/__PILLAR__DNS__DOMAIN__/$DNS_DOMAIN/g -s/__PILLAR__FEDERATIONS__DOMAIN__MAP__/$FEDERATIONS_DOMAIN_MAP/g +/__PILLAR__FEDERATIONS__DOMAIN__MAP__/d s/__MACHINE_GENERATED_WARNING__/Warning: This is a file generated from the base underscore template file: __SOURCE_FILENAME__/g \ No newline at end of file From 3ee03a558447a797ff79884feace17fb4d2a634f Mon Sep 17 00:00:00 2001 From: "Madhusudan.C.S" Date: Fri, 24 Jun 2016 09:59:17 -0700 Subject: [PATCH 3/3] Remove federation_domain_map entirely if it isn't set, seems to be not replaced by empty value. --- build/common.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/build/common.sh b/build/common.sh index 9b6d361d442..1d0b17cfd9d 100755 --- a/build/common.sh +++ b/build/common.sh @@ -961,7 +961,11 @@ function kube::release::package_kube_manifests_tarball() { fi if [[ -n "${FEDERATIONS_DOMAIN_MAP}" ]]; then sed -i 's/{{ pillar\['"'"'federations_domain_map'"'"'\] }}/- --federations="'"${FEDERATIONS_DOMAIN_MAP}"'"/g' "${dst_dir}/dns/skydns-rc.yaml.in" + else + sed -i '/{{ pillar\['"'"'federations_domain_map'"'"'\] }}/d' "${dst_dir}/dns/skydns-rc.yaml.in" fi + else + sed -i '/{{ pillar\['"'"'federations_domain_map'"'"'\] }}/d' "${dst_dir}/dns/skydns-rc.yaml.in" fi # This is for coreos only. ContainerVM, GCI, or Trusty does not use it.