diff --git a/build/common.sh b/build/common.sh index 67de4aa7eaa..1d0b17cfd9d 100755 --- a/build/common.sh +++ b/build/common.sh @@ -950,6 +950,24 @@ function kube::release::package_kube_manifests_tarball() { 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 + 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" + 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. 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 59b9debc189..fb1903e723e 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 5411979b94d..0931c862889 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/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..2138854dfe7 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 +/__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