mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-14 06:15:45 +00:00
AWS: Configure SSL certificate alternate-names
GCE does this in its per-provider scripts; this does the same for AWS and lets other providers do the same; I believe kube2sky requires 10.0.0.1 as a SAN.
This commit is contained in:
parent
974377b306
commit
c676c11189
@ -44,6 +44,12 @@ if [[ -n "${KUBELET_ROOT}" ]]; then
|
|||||||
EOF
|
EOF
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ -n "${MASTER_EXTRA_SANS}" ]]; then
|
||||||
|
cat <<EOF >>/etc/salt/minion.d/grains.conf
|
||||||
|
master_extra_sans: '$(echo "$MASTER_EXTRA_SANS" | sed -e "s/'/''/g")'
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
# Auto accept all keys from minions that try to join
|
# Auto accept all keys from minions that try to join
|
||||||
mkdir -p /etc/salt/master.d
|
mkdir -p /etc/salt/master.d
|
||||||
cat <<EOF >/etc/salt/master.d/auto-accept.conf
|
cat <<EOF >/etc/salt/master.d/auto-accept.conf
|
||||||
|
@ -770,6 +770,13 @@ function kube-up {
|
|||||||
# Get or create master persistent volume
|
# Get or create master persistent volume
|
||||||
ensure-master-pd
|
ensure-master-pd
|
||||||
|
|
||||||
|
# Determine extra certificate names for master
|
||||||
|
octets=($(echo "$SERVICE_CLUSTER_IP_RANGE" | sed -e 's|/.*||' -e 's/\./ /g'))
|
||||||
|
((octets[3]+=1))
|
||||||
|
service_ip=$(echo "${octets[*]}" | sed 's/ /./g')
|
||||||
|
MASTER_EXTRA_SANS="IP:${service_ip},DNS:kubernetes,DNS:kubernetes.default,DNS:kubernetes.default.svc,DNS:kubernetes.default.svc.${DNS_DOMAIN},DNS:${MASTER_NAME}"
|
||||||
|
|
||||||
|
|
||||||
(
|
(
|
||||||
# We pipe this to the ami as a startup script in the user-data field. Requires a compatible ami
|
# We pipe this to the ami as a startup script in the user-data field. Requires a compatible ami
|
||||||
echo "#! /bin/bash"
|
echo "#! /bin/bash"
|
||||||
@ -800,6 +807,7 @@ function kube-up {
|
|||||||
echo "readonly KUBELET_TOKEN='${KUBELET_TOKEN}'"
|
echo "readonly KUBELET_TOKEN='${KUBELET_TOKEN}'"
|
||||||
echo "readonly KUBE_PROXY_TOKEN='${KUBE_PROXY_TOKEN}'"
|
echo "readonly KUBE_PROXY_TOKEN='${KUBE_PROXY_TOKEN}'"
|
||||||
echo "readonly DOCKER_STORAGE='${DOCKER_STORAGE:-}'"
|
echo "readonly DOCKER_STORAGE='${DOCKER_STORAGE:-}'"
|
||||||
|
echo "readonly MASTER_EXTRA_SANS='${MASTER_EXTRA_SANS:-}'"
|
||||||
grep -v "^#" "${KUBE_ROOT}/cluster/aws/templates/common.sh"
|
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/format-disks.sh"
|
||||||
grep -v "^#" "${KUBE_ROOT}/cluster/aws/templates/setup-master-pd.sh"
|
grep -v "^#" "${KUBE_ROOT}/cluster/aws/templates/setup-master-pd.sh"
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
{% set master_extra_sans=grains.get('master_extra_sans', '') %}
|
||||||
{% if grains.cloud is defined %}
|
{% if grains.cloud is defined %}
|
||||||
{% if grains.cloud == 'gce' %}
|
{% if grains.cloud == 'gce' %}
|
||||||
{% set cert_ip='_use_gce_external_ip_' %}
|
{% set cert_ip='_use_gce_external_ip_' %}
|
||||||
@ -35,7 +36,7 @@ kubernetes-cert:
|
|||||||
- unless: test -f /srv/kubernetes/server.cert
|
- unless: test -f /srv/kubernetes/server.cert
|
||||||
- source: salt://generate-cert/{{certgen}}
|
- source: salt://generate-cert/{{certgen}}
|
||||||
{% if cert_ip is defined %}
|
{% if cert_ip is defined %}
|
||||||
- args: {{cert_ip}}
|
- args: {{cert_ip}} {{master_extra_sans}}
|
||||||
- require:
|
- require:
|
||||||
- pkg: curl
|
- pkg: curl
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -19,6 +19,7 @@ set -o nounset
|
|||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
cert_ip=$1
|
cert_ip=$1
|
||||||
|
extra_sans=${2:-}
|
||||||
cert_dir=/srv/kubernetes
|
cert_dir=/srv/kubernetes
|
||||||
cert_group=kube-cert
|
cert_group=kube-cert
|
||||||
|
|
||||||
@ -40,6 +41,11 @@ if [ "$cert_ip" == "_use_azure_dns_name_" ]; then
|
|||||||
use_cn=true
|
use_cn=true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
sans="IP:${cert_ip}"
|
||||||
|
if [[ -n "${extra_sans}" ]]; then
|
||||||
|
sans="${sans},${extra_sans}"
|
||||||
|
fi
|
||||||
|
|
||||||
tmpdir=$(mktemp -d --tmpdir kubernetes_cacert.XXXXXX)
|
tmpdir=$(mktemp -d --tmpdir kubernetes_cacert.XXXXXX)
|
||||||
trap 'rm -rf "${tmpdir}"' EXIT
|
trap 'rm -rf "${tmpdir}"' EXIT
|
||||||
cd "${tmpdir}"
|
cd "${tmpdir}"
|
||||||
@ -67,7 +73,7 @@ if [ $use_cn = "true" ]; then
|
|||||||
cp -p pki/issued/$cert_ip.crt "${cert_dir}/server.cert" > /dev/null 2>&1
|
cp -p pki/issued/$cert_ip.crt "${cert_dir}/server.cert" > /dev/null 2>&1
|
||||||
cp -p pki/private/$cert_ip.key "${cert_dir}/server.key" > /dev/null 2>&1
|
cp -p pki/private/$cert_ip.key "${cert_dir}/server.key" > /dev/null 2>&1
|
||||||
else
|
else
|
||||||
./easyrsa --subject-alt-name=IP:$cert_ip build-server-full kubernetes-master nopass > /dev/null 2>&1
|
./easyrsa --subject-alt-name="${sans}" build-server-full kubernetes-master nopass > /dev/null 2>&1
|
||||||
cp -p pki/issued/kubernetes-master.crt "${cert_dir}/server.cert" > /dev/null 2>&1
|
cp -p pki/issued/kubernetes-master.crt "${cert_dir}/server.cert" > /dev/null 2>&1
|
||||||
cp -p pki/private/kubernetes-master.key "${cert_dir}/server.key" > /dev/null 2>&1
|
cp -p pki/private/kubernetes-master.key "${cert_dir}/server.key" > /dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user