Merge "Support hyperkube_prefix label"

This commit is contained in:
Zuul 2021-04-07 19:09:49 +00:00 committed by Gerrit Code Review
commit c07628bca6
17 changed files with 77 additions and 16 deletions

View File

@ -357,6 +357,8 @@ the table are linked to more details elsewhere in the user guide.
+---------------------------------------+--------------------+---------------+ +---------------------------------------+--------------------+---------------+
| `grafana_admin_passwd`_ | (any string) | "admin" | | `grafana_admin_passwd`_ | (any string) | "admin" |
+---------------------------------------+--------------------+---------------+ +---------------------------------------+--------------------+---------------+
| `hyperkube_prefix`_ | see below | see below |
+---------------------------------------+--------------------+---------------+
| `kube_tag`_ | see below | see below | | `kube_tag`_ | see below | see below |
+---------------------------------------+--------------------+---------------+ +---------------------------------------+--------------------+---------------+
| `cloud_provider_tag`_ | see below | see below | | `cloud_provider_tag`_ | see below | see below |
@ -1279,6 +1281,15 @@ _`container_infra_prefix`
* quay.io/k8scsi/csi-resizer:v0.3.0 * quay.io/k8scsi/csi-resizer:v0.3.0
* quay.io/k8scsi/csi-node-driver-registrar:v1.1.0 * quay.io/k8scsi/csi-node-driver-registrar:v1.1.0
_`hyperkube_prefix`
This label allows users to specify a custom prefix for Hyperkube container
source since official Hyperkube images have been discontinued for `kube_tag`
greater than 1.18.x. If you wish you use 1.19.x onwards, you may want to use
unofficial sources like `docker.io/rancher/`, `ghcr.io/openstackmagnum/` or
your own container registry. If `container_infra_prefix` label is defined, it
still takes precedence over this label.
Default: k8s.gcr.io/
_`kube_tag` _`kube_tag`
This label allows users to select a specific Kubernetes release based on its This label allows users to select a specific Kubernetes release based on its
container tag for `Fedora CoreOS image container tag for `Fedora CoreOS image
@ -1289,6 +1300,7 @@ _`kube_tag`
Stein default: v1.11.6 Stein default: v1.11.6
Train default: v1.15.7 Train default: v1.15.7
Ussuri default: v1.18.2 Ussuri default: v1.18.2
Victoria default: v1.18.16
_`heapster_enabled` _`heapster_enabled`
heapster_enabled is used to enable disable the installation of heapster. heapster_enabled is used to enable disable the installation of heapster.

View File

@ -92,7 +92,7 @@ ExecStart=/bin/bash -c '/usr/bin/podman run --name kube-apiserver \\
--volume /etc/ssl/certs:/etc/ssl/certs:ro \\ --volume /etc/ssl/certs:/etc/ssl/certs:ro \\
--volume /run:/run \\ --volume /run:/run \\
--volume /etc/pki/tls/certs:/usr/share/ca-certificates:ro \\ --volume /etc/pki/tls/certs:/usr/share/ca-certificates:ro \\
\${CONTAINER_INFRA_PREFIX:-k8s.gcr.io/}hyperkube:\${KUBE_TAG} \\ \${CONTAINER_INFRA_PREFIX:-\${HYPERKUBE_PREFIX}}hyperkube:\${KUBE_TAG} \\
kube-apiserver \\ kube-apiserver \\
\$KUBE_LOGTOSTDERR \$KUBE_LOG_LEVEL \$KUBE_ETCD_SERVERS \$KUBE_API_ADDRESS \$KUBELET_PORT \$KUBE_SERVICE_ADDRESSES \$KUBE_ADMISSION_CONTROL \$KUBE_API_ARGS' \$KUBE_LOGTOSTDERR \$KUBE_LOG_LEVEL \$KUBE_ETCD_SERVERS \$KUBE_API_ADDRESS \$KUBELET_PORT \$KUBE_SERVICE_ADDRESSES \$KUBE_ADMISSION_CONTROL \$KUBE_API_ARGS'
ExecStop=-/usr/bin/podman stop kube-apiserver ExecStop=-/usr/bin/podman stop kube-apiserver
@ -121,7 +121,7 @@ ExecStart=/bin/bash -c '/usr/bin/podman run --name kube-controller-manager \\
--volume /etc/ssl/certs:/etc/ssl/certs:ro \\ --volume /etc/ssl/certs:/etc/ssl/certs:ro \\
--volume /run:/run \\ --volume /run:/run \\
--volume /etc/pki/tls/certs:/usr/share/ca-certificates:ro \\ --volume /etc/pki/tls/certs:/usr/share/ca-certificates:ro \\
\${CONTAINER_INFRA_PREFIX:-k8s.gcr.io/}hyperkube:\${KUBE_TAG} \\ \${CONTAINER_INFRA_PREFIX:-\${HYPERKUBE_PREFIX}}hyperkube:\${KUBE_TAG} \\
kube-controller-manager \\ kube-controller-manager \\
--secure-port=0 \\ --secure-port=0 \\
\$KUBE_LOGTOSTDERR \$KUBE_LOG_LEVEL \$KUBE_MASTER \$KUBE_CONTROLLER_MANAGER_ARGS' \$KUBE_LOGTOSTDERR \$KUBE_LOG_LEVEL \$KUBE_MASTER \$KUBE_CONTROLLER_MANAGER_ARGS'
@ -151,7 +151,7 @@ ExecStart=/bin/bash -c '/usr/bin/podman run --name kube-scheduler \\
--volume /etc/ssl/certs:/etc/ssl/certs:ro \\ --volume /etc/ssl/certs:/etc/ssl/certs:ro \\
--volume /run:/run \\ --volume /run:/run \\
--volume /etc/pki/tls/certs:/usr/share/ca-certificates:ro \\ --volume /etc/pki/tls/certs:/usr/share/ca-certificates:ro \\
\${CONTAINER_INFRA_PREFIX:-k8s.gcr.io/}hyperkube:\${KUBE_TAG} \\ \${CONTAINER_INFRA_PREFIX:-\${HYPERKUBE_PREFIX}}hyperkube:\${KUBE_TAG} \\
kube-scheduler \\ kube-scheduler \\
\$KUBE_LOGTOSTDERR \$KUBE_LOG_LEVEL \$KUBE_MASTER \$KUBE_SCHEDULER_ARGS' \$KUBE_LOGTOSTDERR \$KUBE_LOG_LEVEL \$KUBE_MASTER \$KUBE_SCHEDULER_ARGS'
ExecStop=-/usr/bin/podman stop kube-scheduler ExecStop=-/usr/bin/podman stop kube-scheduler
@ -207,7 +207,7 @@ ExecStart=/bin/bash -c '/usr/bin/podman run --name kubelet \\
--volume /var/run/lock:/var/run/lock:z \\ --volume /var/run/lock:/var/run/lock:z \\
--volume /opt/cni/bin:/opt/cni/bin:z \\ --volume /opt/cni/bin:/opt/cni/bin:z \\
--volume /etc/machine-id:/etc/machine-id \\ --volume /etc/machine-id:/etc/machine-id \\
\${CONTAINER_INFRA_PREFIX:-k8s.gcr.io/}hyperkube:\${KUBE_TAG} \\ \${CONTAINER_INFRA_PREFIX:-\${HYPERKUBE_PREFIX}}hyperkube:\${KUBE_TAG} \\
kubelet \\ kubelet \\
\$KUBE_LOGTOSTDERR \$KUBE_LOG_LEVEL \$KUBELET_API_SERVER \$KUBELET_ADDRESS \$KUBELET_PORT \$KUBELET_HOSTNAME \$KUBELET_ARGS' \$KUBE_LOGTOSTDERR \$KUBE_LOG_LEVEL \$KUBELET_API_SERVER \$KUBELET_ADDRESS \$KUBELET_PORT \$KUBELET_HOSTNAME \$KUBELET_ARGS'
ExecStop=-/usr/bin/podman stop kubelet ExecStop=-/usr/bin/podman stop kubelet
@ -240,7 +240,7 @@ ExecStart=/bin/bash -c '/usr/bin/podman run --name kube-proxy \\
--volume /sys/fs/cgroup/systemd:/sys/fs/cgroup/systemd \\ --volume /sys/fs/cgroup/systemd:/sys/fs/cgroup/systemd \\
--volume /lib/modules:/lib/modules:ro \\ --volume /lib/modules:/lib/modules:ro \\
--volume /etc/pki/tls/certs:/usr/share/ca-certificates:ro \\ --volume /etc/pki/tls/certs:/usr/share/ca-certificates:ro \\
\${CONTAINER_INFRA_PREFIX:-k8s.gcr.io/}hyperkube:\${KUBE_TAG} \\ \${CONTAINER_INFRA_PREFIX:-\${HYPERKUBE_PREFIX}}hyperkube:\${KUBE_TAG} \\
kube-proxy \\ kube-proxy \\
\$KUBE_LOGTOSTDERR \$KUBE_LOG_LEVEL \$KUBE_MASTER \$KUBE_PROXY_ARGS' \$KUBE_LOGTOSTDERR \$KUBE_LOG_LEVEL \$KUBE_MASTER \$KUBE_PROXY_ARGS'
ExecStop=-/usr/bin/podman stop kube-proxy ExecStop=-/usr/bin/podman stop kube-proxy

View File

@ -105,7 +105,7 @@ ExecStart=/bin/bash -c '/usr/bin/podman run --name kubelet \\
--volume /var/run/lock:/var/run/lock:z \\ --volume /var/run/lock:/var/run/lock:z \\
--volume /opt/cni/bin:/opt/cni/bin:z \\ --volume /opt/cni/bin:/opt/cni/bin:z \\
--volume /etc/machine-id:/etc/machine-id \\ --volume /etc/machine-id:/etc/machine-id \\
\${CONTAINER_INFRA_PREFIX:-k8s.gcr.io/}hyperkube:\${KUBE_TAG} \\ \${CONTAINER_INFRA_PREFIX:-\${HYPERKUBE_PREFIX}}hyperkube:\${KUBE_TAG} \\
kubelet \\ kubelet \\
\$KUBE_LOGTOSTDERR \$KUBE_LOG_LEVEL \$KUBELET_API_SERVER \$KUBELET_ADDRESS \$KUBELET_PORT \$KUBELET_HOSTNAME \$KUBELET_ARGS' \$KUBE_LOGTOSTDERR \$KUBE_LOG_LEVEL \$KUBELET_API_SERVER \$KUBELET_ADDRESS \$KUBELET_PORT \$KUBELET_HOSTNAME \$KUBELET_ARGS'
ExecStop=-/usr/bin/podman stop kubelet ExecStop=-/usr/bin/podman stop kubelet
@ -138,7 +138,7 @@ ExecStart=/bin/bash -c '/usr/bin/podman run --name kube-proxy \\
--volume /sys/fs/cgroup/systemd:/sys/fs/cgroup/systemd \\ --volume /sys/fs/cgroup/systemd:/sys/fs/cgroup/systemd \\
--volume /lib/modules:/lib/modules:ro \\ --volume /lib/modules:/lib/modules:ro \\
--volume /etc/pki/tls/certs:/usr/share/ca-certificates:ro \\ --volume /etc/pki/tls/certs:/usr/share/ca-certificates:ro \\
\${CONTAINER_INFRA_PREFIX:-k8s.gcr.io/}hyperkube:\${KUBE_TAG} \\ \${CONTAINER_INFRA_PREFIX:-\${HYPERKUBE_PREFIX}}hyperkube:\${KUBE_TAG} \\
kube-proxy \\ kube-proxy \\
\$KUBE_LOGTOSTDERR \$KUBE_LOG_LEVEL \$KUBE_MASTER \$KUBE_PROXY_ARGS' \$KUBE_LOGTOSTDERR \$KUBE_LOG_LEVEL \$KUBE_MASTER \$KUBE_PROXY_ARGS'
ExecStop=-/usr/bin/podman stop kube-proxy ExecStop=-/usr/bin/podman stop kube-proxy

View File

@ -36,7 +36,7 @@ do
done done
if [ "$(echo $USE_PODMAN | tr '[:upper:]' '[:lower:]')" == "true" ]; then if [ "$(echo $USE_PODMAN | tr '[:upper:]' '[:lower:]')" == "true" ]; then
KUBE_DIGEST=$($ssh_cmd podman image inspect ${CONTAINER_INFRA_PREFIX:-k8s.gcr.io/}hyperkube:${KUBE_TAG} --format "{{.Digest}}") KUBE_DIGEST=$($ssh_cmd podman image inspect ${CONTAINER_INFRA_PREFIX:-${HYPERKUBE_PREFIX}}hyperkube:${KUBE_TAG} --format "{{.Digest}}")
if [ -n "${KUBE_IMAGE_DIGEST}" ] && [ "${KUBE_IMAGE_DIGEST}" != "${KUBE_DIGEST}" ]; then if [ -n "${KUBE_IMAGE_DIGEST}" ] && [ "${KUBE_IMAGE_DIGEST}" != "${KUBE_DIGEST}" ]; then
printf "The sha256 ${KUBE_DIGEST} of current hyperkube image cannot match the given one: ${KUBE_IMAGE_DIGEST}." printf "The sha256 ${KUBE_DIGEST} of current hyperkube image cannot match the given one: ${KUBE_IMAGE_DIGEST}."
exit 1 exit 1

View File

@ -6,7 +6,7 @@ set +x
. /etc/sysconfig/heat-params . /etc/sysconfig/heat-params
set -x set -x
hyperkube_image="${CONTAINER_INFRA_PREFIX:-"k8s.gcr.io/"}hyperkube:${KUBE_TAG}" hyperkube_image="${CONTAINER_INFRA_PREFIX:-${HYPERKUBE_PREFIX}}hyperkube:${KUBE_TAG}"
ssh_cmd="ssh -F /srv/magnum/.ssh/config root@localhost" ssh_cmd="ssh -F /srv/magnum/.ssh/config root@localhost"
mkdir -p /srv/magnum/bin/ mkdir -p /srv/magnum/bin/
i=0 i=0

View File

@ -37,7 +37,7 @@ if [ "${new_kube_tag}" != "${KUBE_TAG}" ]; then
${ssh_cmd} podman rm ${service} ${ssh_cmd} podman rm ${service}
done done
${ssh_cmd} podman rmi ${CONTAINER_INFRA_PREFIX:-k8s.gcr.io/}hyperkube:${KUBE_TAG} ${ssh_cmd} podman rmi ${CONTAINER_INFRA_PREFIX:-${HYPERKUBE_PREFIX}}hyperkube:${KUBE_TAG}
echo "KUBE_TAG=$new_kube_tag" >> /etc/sysconfig/heat-params echo "KUBE_TAG=$new_kube_tag" >> /etc/sysconfig/heat-params
for service in ${SERVICE_LIST}; do for service in ${SERVICE_LIST}; do
@ -45,7 +45,7 @@ if [ "${new_kube_tag}" != "${KUBE_TAG}" ]; then
done done
i=0 i=0
until [ "`${ssh_cmd} podman image exists ${CONTAINER_INFRA_PREFIX:-k8s.gcr.io/}hyperkube:${new_kube_tag} && echo $?`" = 0 ] until [ "`${ssh_cmd} podman image exists ${CONTAINER_INFRA_PREFIX:-${HYPERKUBE_PREFIX}}hyperkube:${new_kube_tag} && echo $?`" = 0 ]
do do
i=$((i+1)) i=$((i+1))
[ $i -lt 30 ] || break; [ $i -lt 30 ] || break;
@ -53,7 +53,7 @@ if [ "${new_kube_tag}" != "${KUBE_TAG}" ]; then
sleep 5s sleep 5s
done done
KUBE_DIGEST=$($ssh_cmd podman image inspect ${CONTAINER_INFRA_PREFIX:-k8s.gcr.io/}hyperkube:${new_kube_tag} --format "{{.Digest}}") KUBE_DIGEST=$($ssh_cmd podman image inspect ${CONTAINER_INFRA_PREFIX:-${HYPERKUBE_PREFIX}}hyperkube:${new_kube_tag} --format "{{.Digest}}")
if [ -n "${new_kube_image_digest}" ] && [ "${new_kube_image_digest}" != "${KUBE_DIGEST}" ]; then if [ -n "${new_kube_image_digest}" ] && [ "${new_kube_image_digest}" != "${KUBE_DIGEST}" ]; then
printf "The sha256 ${KUBE_DIGEST} of current hyperkube image cannot match the given one: ${new_kube_image_digest}." printf "The sha256 ${KUBE_DIGEST} of current hyperkube image cannot match the given one: ${new_kube_image_digest}."
exit 1 exit 1

View File

@ -75,6 +75,7 @@ REGION_NAME="$REGION_NAME"
HTTP_PROXY="$HTTP_PROXY" HTTP_PROXY="$HTTP_PROXY"
HTTPS_PROXY="$HTTPS_PROXY" HTTPS_PROXY="$HTTPS_PROXY"
NO_PROXY="$NO_PROXY" NO_PROXY="$NO_PROXY"
HYPERKUBE_PREFIX="$HYPERKUBE_PREFIX"
KUBE_TAG="$KUBE_TAG" KUBE_TAG="$KUBE_TAG"
CLOUD_PROVIDER_TAG="$CLOUD_PROVIDER_TAG" CLOUD_PROVIDER_TAG="$CLOUD_PROVIDER_TAG"
CLOUD_PROVIDER_ENABLED="$CLOUD_PROVIDER_ENABLED" CLOUD_PROVIDER_ENABLED="$CLOUD_PROVIDER_ENABLED"

View File

@ -56,6 +56,7 @@ HTTP_PROXY="$HTTP_PROXY"
HTTPS_PROXY="$HTTPS_PROXY" HTTPS_PROXY="$HTTPS_PROXY"
NO_PROXY="$NO_PROXY" NO_PROXY="$NO_PROXY"
WAIT_CURL="$WAIT_CURL" WAIT_CURL="$WAIT_CURL"
HYPERKUBE_PREFIX="$HYPERKUBE_PREFIX"
KUBE_TAG="$KUBE_TAG" KUBE_TAG="$KUBE_TAG"
FLANNEL_NETWORK_CIDR="$FLANNEL_NETWORK_CIDR" FLANNEL_NETWORK_CIDR="$FLANNEL_NETWORK_CIDR"
PODS_NETWORK_CIDR="$PODS_NETWORK_CIDR" PODS_NETWORK_CIDR="$PODS_NETWORK_CIDR"

View File

@ -75,6 +75,7 @@ class K8sFedoraTemplateDefinition(k8s_template_def.K8sTemplateDefinition):
extra_params['cloud_provider_enabled'] = cloud_provider_enabled extra_params['cloud_provider_enabled'] = cloud_provider_enabled
label_list = ['coredns_tag', label_list = ['coredns_tag',
'hyperkube_prefix',
'kube_tag', 'container_infra_prefix', 'kube_tag', 'container_infra_prefix',
'availability_zone', 'availability_zone',
'cgroup_driver', 'cgroup_driver',

View File

@ -444,6 +444,11 @@ parameters:
type: string type: string
description: url for keystone description: url for keystone
hyperkube_prefix:
type: string
description: prefix to use for hyperkube images
default: k8s.gcr.io/
kube_tag: kube_tag:
type: string type: string
description: tag of the k8s containers used to provision the kubernetes cluster description: tag of the k8s containers used to provision the kubernetes cluster
@ -1222,6 +1227,7 @@ resources:
http_proxy: {get_param: http_proxy} http_proxy: {get_param: http_proxy}
https_proxy: {get_param: https_proxy} https_proxy: {get_param: https_proxy}
no_proxy: {get_param: no_proxy} no_proxy: {get_param: no_proxy}
hyperkube_prefix: {get_param: hyperkube_prefix}
kube_tag: {get_param: master_kube_tag} kube_tag: {get_param: master_kube_tag}
cloud_provider_tag: {get_param: cloud_provider_tag} cloud_provider_tag: {get_param: cloud_provider_tag}
cloud_provider_enabled: {get_param: cloud_provider_enabled} cloud_provider_enabled: {get_param: cloud_provider_enabled}
@ -1457,6 +1463,7 @@ resources:
http_proxy: {get_param: http_proxy} http_proxy: {get_param: http_proxy}
https_proxy: {get_param: https_proxy} https_proxy: {get_param: https_proxy}
no_proxy: {get_param: no_proxy} no_proxy: {get_param: no_proxy}
hyperkube_prefix: {get_param: hyperkube_prefix}
kube_tag: {get_param: minion_kube_tag} kube_tag: {get_param: minion_kube_tag}
kube_version: {get_param: kube_version} kube_version: {get_param: kube_version}
trustee_user_id: {get_param: trustee_user_id} trustee_user_id: {get_param: trustee_user_id}

View File

@ -255,6 +255,10 @@ parameters:
type: string type: string
description: no proxies for docker description: no proxies for docker
hyperkube_prefix:
type: string
description: prefix to use for hyperkube images
kube_tag: kube_tag:
type: string type: string
description: tag of the k8s containers used to provision the kubernetes cluster description: tag of the k8s containers used to provision the kubernetes cluster
@ -787,6 +791,7 @@ resources:
"$HTTP_PROXY": {get_param: http_proxy} "$HTTP_PROXY": {get_param: http_proxy}
"$HTTPS_PROXY": {get_param: https_proxy} "$HTTPS_PROXY": {get_param: https_proxy}
"$NO_PROXY": {get_param: no_proxy} "$NO_PROXY": {get_param: no_proxy}
"$HYPERKUBE_PREFIX": {get_param: hyperkube_prefix}
"$KUBE_TAG": {get_param: kube_tag} "$KUBE_TAG": {get_param: kube_tag}
"$CLOUD_PROVIDER_TAG": {get_param: cloud_provider_tag} "$CLOUD_PROVIDER_TAG": {get_param: cloud_provider_tag}
"$CLOUD_PROVIDER_ENABLED": {get_param: cloud_provider_enabled} "$CLOUD_PROVIDER_ENABLED": {get_param: cloud_provider_enabled}

View File

@ -196,6 +196,10 @@ parameters:
type: string type: string
description: no proxies for docker description: no proxies for docker
hyperkube_prefix:
type: string
description: prefix to use for hyperkube images
kube_tag: kube_tag:
type: string type: string
description: tag of the k8s containers used to provision the kubernetes cluster description: tag of the k8s containers used to provision the kubernetes cluster
@ -434,6 +438,7 @@ resources:
$HTTP_PROXY: {get_param: http_proxy} $HTTP_PROXY: {get_param: http_proxy}
$HTTPS_PROXY: {get_param: https_proxy} $HTTPS_PROXY: {get_param: https_proxy}
$NO_PROXY: {get_param: no_proxy} $NO_PROXY: {get_param: no_proxy}
$HYPERKUBE_PREFIX: {get_param: hyperkube_prefix}
$KUBE_TAG: {get_param: kube_tag} $KUBE_TAG: {get_param: kube_tag}
$FLANNEL_NETWORK_CIDR: {get_param: flannel_network_cidr} $FLANNEL_NETWORK_CIDR: {get_param: flannel_network_cidr}
$PODS_NETWORK_CIDR: {get_param: pods_network_cidr} $PODS_NETWORK_CIDR: {get_param: pods_network_cidr}

View File

@ -446,26 +446,31 @@ parameters:
type: string type: string
description: url for keystone description: url for keystone
hyperkube_prefix:
type: string
description: prefix to use for hyperkube images
default: k8s.gcr.io/
kube_tag: kube_tag:
type: string type: string
description: description:
tag of the k8s containers used to provision the kubernetes cluster tag of the k8s containers used to provision the kubernetes cluster
https://github.com/kubernetes/kubernetes/releases https://github.com/kubernetes/kubernetes/releases
default: v1.18.2 default: v1.18.16
master_kube_tag: master_kube_tag:
type: string type: string
description: description:
tag of the k8s containers used to provision the kubernetes cluster tag of the k8s containers used to provision the kubernetes cluster
https://github.com/kubernetes/kubernetes/releases https://github.com/kubernetes/kubernetes/releases
default: v1.18.2 default: v1.18.16
minion_kube_tag: minion_kube_tag:
type: string type: string
description: description:
tag of the k8s containers used to provision the kubernetes cluster tag of the k8s containers used to provision the kubernetes cluster
https://github.com/kubernetes/kubernetes/releases https://github.com/kubernetes/kubernetes/releases
default: v1.18.2 default: v1.18.16
cloud_provider_tag: cloud_provider_tag:
type: string type: string
@ -501,7 +506,7 @@ parameters:
kube_version: kube_version:
type: string type: string
description: version of kubernetes used for kubernetes cluster description: version of kubernetes used for kubernetes cluster
default: v1.18.2 default: v1.18.16
kube_dashboard_version: kube_dashboard_version:
type: string type: string
@ -1250,6 +1255,7 @@ resources:
http_proxy: {get_param: http_proxy} http_proxy: {get_param: http_proxy}
https_proxy: {get_param: https_proxy} https_proxy: {get_param: https_proxy}
no_proxy: {get_param: no_proxy} no_proxy: {get_param: no_proxy}
hyperkube_prefix: {get_param: hyperkube_prefix}
kube_tag: {get_param: master_kube_tag} kube_tag: {get_param: master_kube_tag}
cloud_provider_tag: {get_param: cloud_provider_tag} cloud_provider_tag: {get_param: cloud_provider_tag}
cloud_provider_enabled: {get_param: cloud_provider_enabled} cloud_provider_enabled: {get_param: cloud_provider_enabled}
@ -1488,6 +1494,7 @@ resources:
http_proxy: {get_param: http_proxy} http_proxy: {get_param: http_proxy}
https_proxy: {get_param: https_proxy} https_proxy: {get_param: https_proxy}
no_proxy: {get_param: no_proxy} no_proxy: {get_param: no_proxy}
hyperkube_prefix: {get_param: hyperkube_prefix}
kube_tag: {get_param: minion_kube_tag} kube_tag: {get_param: minion_kube_tag}
kube_version: {get_param: kube_version} kube_version: {get_param: kube_version}
trustee_user_id: {get_param: trustee_user_id} trustee_user_id: {get_param: trustee_user_id}

View File

@ -259,6 +259,10 @@ parameters:
type: string type: string
description: no proxies for docker description: no proxies for docker
hyperkube_prefix:
type: string
description: prefix to use for hyperkube images
kube_tag: kube_tag:
type: string type: string
description: tag of the k8s containers used to provision the kubernetes cluster description: tag of the k8s containers used to provision the kubernetes cluster
@ -806,6 +810,7 @@ resources:
"$HTTP_PROXY": {get_param: http_proxy} "$HTTP_PROXY": {get_param: http_proxy}
"$HTTPS_PROXY": {get_param: https_proxy} "$HTTPS_PROXY": {get_param: https_proxy}
"$NO_PROXY": {get_param: no_proxy} "$NO_PROXY": {get_param: no_proxy}
"$HYPERKUBE_PREFIX": {get_param: hyperkube_prefix}
"$KUBE_TAG": {get_param: kube_tag} "$KUBE_TAG": {get_param: kube_tag}
"$CLOUD_PROVIDER_TAG": {get_param: cloud_provider_tag} "$CLOUD_PROVIDER_TAG": {get_param: cloud_provider_tag}
"$CLOUD_PROVIDER_ENABLED": {get_param: cloud_provider_enabled} "$CLOUD_PROVIDER_ENABLED": {get_param: cloud_provider_enabled}

View File

@ -200,6 +200,10 @@ parameters:
type: string type: string
description: no proxies for docker description: no proxies for docker
hyperkube_prefix:
type: string
description: prefix to use for hyperkube images
kube_tag: kube_tag:
type: string type: string
description: tag of the k8s containers used to provision the kubernetes cluster description: tag of the k8s containers used to provision the kubernetes cluster
@ -459,6 +463,7 @@ resources:
$HTTP_PROXY: {get_param: http_proxy} $HTTP_PROXY: {get_param: http_proxy}
$HTTPS_PROXY: {get_param: https_proxy} $HTTPS_PROXY: {get_param: https_proxy}
$NO_PROXY: {get_param: no_proxy} $NO_PROXY: {get_param: no_proxy}
$HYPERKUBE_PREFIX: {get_param: hyperkube_prefix}
$KUBE_TAG: {get_param: kube_tag} $KUBE_TAG: {get_param: kube_tag}
$FLANNEL_NETWORK_CIDR: {get_param: flannel_network_cidr} $FLANNEL_NETWORK_CIDR: {get_param: flannel_network_cidr}
$PODS_NETWORK_CIDR: {get_param: pods_network_cidr} $PODS_NETWORK_CIDR: {get_param: pods_network_cidr}

View File

@ -477,6 +477,7 @@ class AtomicK8sTemplateDefinitionTestCase(BaseK8sTemplateDefinitionTestCase):
'boot_volume_size') 'boot_volume_size')
etcd_volume_size = mock_cluster.labels.get( etcd_volume_size = mock_cluster.labels.get(
'etcd_volume_size') 'etcd_volume_size')
hyperkube_prefix = mock_cluster.labels.get('hyperkube_prefix')
kube_tag = mock_cluster.labels.get('kube_tag') kube_tag = mock_cluster.labels.get('kube_tag')
etcd_tag = mock_cluster.labels.get('etcd_tag') etcd_tag = mock_cluster.labels.get('etcd_tag')
coredns_tag = mock_cluster.labels.get('coredns_tag') coredns_tag = mock_cluster.labels.get('coredns_tag')
@ -655,6 +656,7 @@ class AtomicK8sTemplateDefinitionTestCase(BaseK8sTemplateDefinitionTestCase):
'username': 'fake_user', 'username': 'fake_user',
'magnum_url': mock_osc.magnum_url.return_value, 'magnum_url': mock_osc.magnum_url.return_value,
'region_name': mock_osc.cinder_region_name.return_value, 'region_name': mock_osc.cinder_region_name.return_value,
'hyperkube_prefix': hyperkube_prefix,
'kube_tag': kube_tag, 'kube_tag': kube_tag,
'etcd_tag': etcd_tag, 'etcd_tag': etcd_tag,
'coredns_tag': coredns_tag, 'coredns_tag': coredns_tag,
@ -1029,6 +1031,7 @@ class AtomicK8sTemplateDefinitionTestCase(BaseK8sTemplateDefinitionTestCase):
'boot_volume_size') 'boot_volume_size')
etcd_volume_size = mock_cluster.labels.get( etcd_volume_size = mock_cluster.labels.get(
'etcd_volume_size') 'etcd_volume_size')
hyperkube_prefix = mock_cluster.labels.get('hyperkube_prefix')
kube_tag = mock_cluster.labels.get('kube_tag') kube_tag = mock_cluster.labels.get('kube_tag')
etcd_tag = mock_cluster.labels.get('etcd_tag') etcd_tag = mock_cluster.labels.get('etcd_tag')
coredns_tag = mock_cluster.labels.get('coredns_tag') coredns_tag = mock_cluster.labels.get('coredns_tag')
@ -1212,6 +1215,7 @@ class AtomicK8sTemplateDefinitionTestCase(BaseK8sTemplateDefinitionTestCase):
'region_name': mock_osc.cinder_region_name.return_value, 'region_name': mock_osc.cinder_region_name.return_value,
'loadbalancing_protocol': 'HTTP', 'loadbalancing_protocol': 'HTTP',
'kubernetes_port': 8080, 'kubernetes_port': 8080,
'hyperkube_prefix': hyperkube_prefix,
'kube_tag': kube_tag, 'kube_tag': kube_tag,
'etcd_tag': etcd_tag, 'etcd_tag': etcd_tag,
'coredns_tag': coredns_tag, 'coredns_tag': coredns_tag,

View File

@ -0,0 +1,8 @@
---
features:
- |
Support `hyperkube_prefix` label which defaults to k8s.gcr.io/. Users now
have the option to define alternative hyperkube image source since the
default source has discontinued publication of hyperkube images for
`kube_tag` greater than 1.18.x. Note that if `container_infra_prefix` label
is define, it still takes precedence over this label.