Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
c908ad2
Update CHANGELOG/CHANGELOG-1.31.md for v1.31.13
k8s-release-robot Sep 9, 2025
c2bc373
Fix ClusterIP load balancer disappearing when InternalTrafficPolicy: …
princepereira Sep 8, 2025
09ac87d
Merge pull request #134034 from princepereira/automated-cherry-pick-o…
k8s-ci-robot Sep 26, 2025
7367763
kubeadm preflight checks: fix host URL construction
BenTheElder Oct 8, 2025
9bd285d
Remove invalid SAN certificate construction
liggitt Oct 9, 2025
cb0660c
Add integration test for invalid SAN certificate handling
liggitt Oct 14, 2025
fdd91e5
Merge pull request #134592 from liggitt/automated-cherry-pick-of-#134…
k8s-ci-robot Oct 14, 2025
0269ff3
Bump hack/tools to github.com/golangci/golangci-lint 1.64.5 for go 1.24
liggitt Feb 25, 2025
62e7288
golangci-lint: temporarily suppress known issues in the code base
pohly Feb 26, 2025
48954b9
golangci-lint: temporarily suppress stylistic testifylint issues in t…
liggitt Oct 14, 2025
bca592f
Merge pull request #134594 from liggitt/129688-lint-1.31
k8s-ci-robot Oct 14, 2025
e217986
Bump dependencies, images and versions used to Go 1.24.9 and distrole…
cpanato Oct 15, 2025
0a10906
update setcap and debian-base to bookworm-v1.0.6
cpanato Oct 15, 2025
01b323f
Merge pull request #134618 from cpanato/update-go-rel-131
k8s-ci-robot Oct 17, 2025
7855880
gce: fix etcd manifest
joshjms Sep 26, 2025
19051ed
Merge pull request #134679 from hakman/automated-cherry-pick-of-#1342…
k8s-ci-robot Oct 31, 2025
a9ea4da
etcd: bump etcd to v3.5.24 for k8s v1.31, v1.32, v1.33
joshjms Oct 24, 2025
a052340
Fix tests
hakman Nov 1, 2025
a8fab7e
Merge pull request #135020 from hakman/automated-cherry-pick-of-#1348…
k8s-ci-robot Nov 3, 2025
5e00b99
Release commit for Kubernetes v1.31.14
k8s-release-robot Nov 11, 2025
7868054
Merge tag 'v1.31.14' into bump-1.31.14
atiratree Nov 17, 2025
b10f2cc
UPSTREAM: <drop>: hack/update-vendor.sh, make update and update image
atiratree Nov 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .go-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.23.12
1.24.9
301 changes: 205 additions & 96 deletions CHANGELOG/CHANGELOG-1.31.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion build/build-image/cross/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v1.31.0-go1.23.12-bullseye.0
v1.31.0-go1.24.9-bullseye.0
6 changes: 3 additions & 3 deletions build/common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -97,9 +97,9 @@ readonly KUBE_RSYNC_PORT="${KUBE_RSYNC_PORT:-}"
readonly KUBE_CONTAINER_RSYNC_PORT=8730

# These are the default versions (image tags) for their respective base images.
readonly __default_distroless_iptables_version=v0.6.13
readonly __default_go_runner_version=v2.4.0-go1.23.12-bookworm.0
readonly __default_setcap_version=bookworm-v1.0.3
readonly __default_distroless_iptables_version=v0.7.11
readonly __default_go_runner_version=v2.4.0-go1.24.9-bookworm.0
readonly __default_setcap_version=bookworm-v1.0.6

# These are the base images for the Docker-wrapped binaries.
readonly KUBE_GORUNNER_IMAGE="${KUBE_GORUNNER_IMAGE:-$KUBE_BASE_IMAGE_REGISTRY/go-runner:$__default_go_runner_version}"
Expand Down
20 changes: 8 additions & 12 deletions build/dependencies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ dependencies:

# etcd
- name: "etcd"
version: 3.5.15
version: 3.5.24
refPaths:
- path: cluster/gce/manifests/etcd.manifest
match: etcd_docker_tag|etcd_version
Expand All @@ -74,10 +74,6 @@ dependencies:
match: DefaultEtcdVersion =
- path: hack/lib/etcd.sh
match: ETCD_VERSION=
- path: staging/src/k8s.io/sample-apiserver/artifacts/example/deployment.yaml
match: gcr.io/etcd-development/etcd
- path: test/utils/image/manifest.go
match: configs\[Etcd\] = Config{list\.GcEtcdRegistry, "etcd", "\d+\.\d+.\d+(-(alpha|beta|rc).\d+)?(-\d+)?"}

- name: "etcd-image"
version: 3.5.15
Expand Down Expand Up @@ -116,7 +112,7 @@ dependencies:

# Golang
- name: "golang: upstream version"
version: 1.23.12
version: 1.24.9
refPaths:
- path: .go-version
- path: build/build-image/cross/VERSION
Expand All @@ -131,21 +127,21 @@ dependencies:
# This entry is a stub of the major version to allow dependency checks to
# pass when building Kubernetes using a pre-release of Golang.
- name: "golang: 1.<major>"
version: 1.23
version: 1.24
refPaths:
- path: build/build-image/cross/VERSION
# Disabled since incrementing from the original go minor for this release branch
# - path: hack/lib/golang.sh
# match: minimum_go_version=go([0-9]+\.[0-9]+)

- name: "registry.k8s.io/kube-cross: dependents"
version: v1.31.0-go1.23.12-bullseye.0
version: v1.31.0-go1.24.9-bullseye.0
refPaths:
- path: build/build-image/cross/VERSION

# Base images
- name: "registry.k8s.io/debian-base: dependents"
version: bookworm-v1.0.3
version: bookworm-v1.0.6
refPaths:
- path: cluster/images/etcd/Makefile
match: BASEIMAGE\?\=registry\.k8s\.io\/build-image\/debian-base:[a-zA-Z]+\-v((([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)
Expand Down Expand Up @@ -177,15 +173,15 @@ dependencies:
match: registry\.k8s\.io\/build-image\/debian-base:[a-zA-Z]+\-v((([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)

- name: "registry.k8s.io/distroless-iptables: dependents"
version: v0.6.13
version: v0.7.11
refPaths:
- path: build/common.sh
match: __default_distroless_iptables_version=
- path: test/utils/image/manifest.go
match: configs\[DistrolessIptables\] = Config{list\.BuildImageRegistry, "distroless-iptables", "v([0-9]+)\.([0-9]+)\.([0-9]+)"}

- name: "registry.k8s.io/go-runner: dependents"
version: v2.4.0-go1.23.12-bookworm.0
version: v2.4.0-go1.24.9-bookworm.0
refPaths:
- path: build/common.sh
match: __default_go_runner_version=
Expand Down Expand Up @@ -245,7 +241,7 @@ dependencies:
match: configs\[Pause\] = Config{list\.GcRegistry, "pause", "\d+\.\d+(.\d+)?"}

- name: "registry.k8s.io/build-image/setcap: dependents"
version: bookworm-v1.0.3
version: bookworm-v1.0.6
refPaths:
- path: build/common.sh
match: __default_setcap_version=
Expand Down
4 changes: 2 additions & 2 deletions cluster/common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -481,13 +481,13 @@ EOF
;;
server)
echo "Generate server certificates..."
echo '{"CN":"'"${member_ip}"'","hosts":[""],"key":{"algo":"ecdsa","size":256}}' \
echo '{"CN":"'"${member_ip}"'","hosts":[],"key":{"algo":"ecdsa","size":256}}' \
| ${CFSSL_BIN} gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=server -hostname="${member_ip},127.0.0.1" - \
| ${CFSSLJSON_BIN} -bare "${prefix}"
;;
peer)
echo "Generate peer certificates..."
echo '{"CN":"'"${member_ip}"'","hosts":[""],"key":{"algo":"ecdsa","size":256}}' \
echo '{"CN":"'"${member_ip}"'","hosts":[],"key":{"algo":"ecdsa","size":256}}' \
| ${CFSSL_BIN} gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=peer -hostname="${member_ip},127.0.0.1" - \
| ${CFSSLJSON_BIN} -bare "${prefix}"
;;
Expand Down
13 changes: 9 additions & 4 deletions cluster/gce/gci/configure-helper.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1955,10 +1955,14 @@ def resolve(host):
fi
sed -i -e "s@{{ *etcd_protocol *}}@$etcd_protocol@g" "${temp_file}"
sed -i -e "s@{{ *etcd_apiserver_protocol *}}@$etcd_apiserver_protocol@g" "${temp_file}"
sed -i -e "s@{{ *etcd_creds *}}@$etcd_creds@g" "${temp_file}"

etcd_creds_and_extra_args="${etcd_creds} ${etcd_apiserver_creds} ${etcd_extra_args}"
etcd_creds_and_extra_args=$(echo "$etcd_creds_and_extra_args" | awk '{for (i=1;i<=NF;i++) printf "\"%s\"%s", $i, (i<NF?", ":"") }')
etcdctl_certs=$(echo "$etcdctl_certs" | awk '{for (i=1; i<=NF; i++) printf "\"%s\",", $i }')

sed -i -e "s@{{ *etcd_creds_and_extra_args *}}@$etcd_creds_and_extra_args@g" "${temp_file}"

sed -i -e "s@{{ *etcdctl_certs *}}@$etcdctl_certs@g" "${temp_file}"
sed -i -e "s@{{ *etcd_apiserver_creds *}}@$etcd_apiserver_creds@g" "${temp_file}"
sed -i -e "s@{{ *etcd_extra_args *}}@$etcd_extra_args@g" "${temp_file}"
if [[ -n "${ETCD_VERSION:-}" ]]; then
sed -i -e "s@{{ *pillar\.get('etcd_version', '\(.*\)') *}}@${ETCD_VERSION}@g" "${temp_file}"
else
Expand All @@ -1972,6 +1976,7 @@ def resolve(host):
container_security_context="\"securityContext\": {\"runAsUser\": ${ETCD_RUNASUSER}, \"runAsGroup\": ${ETCD_RUNASGROUP}, \"allowPrivilegeEscalation\": false, \"capabilities\": {\"drop\": [\"all\"]}},"
fi
sed -i -e "s@{{security_context}}@${container_security_context}@g" "${temp_file}"

mv "${temp_file}" /etc/kubernetes/manifests
}

Expand Down Expand Up @@ -3214,7 +3219,7 @@ spec:
- name: vol
containers:
- name: pv-recycler
image: registry.k8s.io/build-image/debian-base:bookworm-v1.0.3
image: registry.k8s.io/build-image/debian-base:bookworm-v1.0.6
command:
- /bin/sh
args:
Expand Down
36 changes: 21 additions & 15 deletions cluster/gce/manifests/etcd.manifest
Original file line number Diff line number Diff line change
Expand Up @@ -18,23 +18,32 @@
{
"name": "etcd-container",
{{security_context}}
"image": "{{ pillar.get('etcd_docker_repository', 'registry.k8s.io/etcd') }}:{{ pillar.get('etcd_docker_tag', '3.5.15-0') }}",
"image": "{{ pillar.get('etcd_docker_repository', 'registry.k8s.io/etcd') }}:{{ pillar.get('etcd_docker_tag', '3.5.24-0') }}",
"resources": {
"requests": {
"cpu": {{ cpulimit }}
}
},
"command": [
"/bin/sh",
"-c",
"if [ -e /usr/local/bin/migrate-if-needed.sh ]; then /usr/local/bin/migrate-if-needed.sh 1>>/var/log/etcd{{ suffix }}.log 2>&1; fi; exec /usr/local/bin/etcd --name etcd-{{ hostname }} --listen-peer-urls {{ etcd_protocol }}://{{ host_ip }}:{{ server_port }} --initial-advertise-peer-urls {{ etcd_protocol }}://{{ hostname }}:{{ server_port }} --advertise-client-urls {{ etcd_apiserver_protocol }}://127.0.0.1:{{ port }} --listen-client-urls {{ etcd_apiserver_protocol }}://{{ listen_client_ip }}:{{ port }} {{ quota_bytes }} --data-dir /var/etcd/data{{ suffix }} --initial-cluster-state {{ cluster_state }} --initial-cluster {{ etcd_cluster }} {{ etcd_creds }} {{ etcd_apiserver_creds }} {{ etcd_extra_args }} 1>>/var/log/etcd{{ suffix }}.log 2>&1"
],
"/usr/local/bin/etcd",
"--name=etcd-{{ hostname }}",
"--listen-peer-urls={{ etcd_protocol }}://{{ host_ip }}:{{ server_port }}",
"--initial-advertise-peer-urls={{ etcd_protocol }}://{{ hostname }}:{{ server_port }}",
"--advertise-client-urls={{ etcd_apiserver_protocol }}://127.0.0.1:{{ port }}",
"--listen-client-urls={{ etcd_apiserver_protocol }}://{{ listen_client_ip }}:{{ port }}",
"{{ quota_bytes }}",
"--data-dir=/var/etcd/data{{ suffix }}",
"--initial-cluster-state={{ cluster_state }}",
"--initial-cluster={{ etcd_cluster }}",
"--log-outputs=/var/log/etcd{{ suffix }}.log",
{{ etcd_creds_and_extra_args }}
],
"env": [
{ "name": "TARGET_STORAGE",
"value": "{{ pillar.get('storage_backend', 'etcd3') }}"
},
{ "name": "TARGET_VERSION",
"value": "{{ pillar.get('etcd_version', '3.5.15') }}"
"value": "{{ pillar.get('etcd_version', '3.5.24') }}"
},
{
"name": "DO_NOT_MOVE_BINARIES",
Expand All @@ -52,12 +61,6 @@
{ "name": "INITIAL_ADVERTISE_PEER_URLS",
"value": "{{ etcd_protocol }}://{{ hostname }}:{{ server_port }}"
},
{ "name": "ETCD_CREDS",
"value": "{{ etcd_creds }}"
},
{ "name": "ETCD_APISERVER_CREDS",
"value": "{{ etcd_apiserver_creds }}"
},
{ "name": "ETCD_SNAPSHOT_COUNT",
"value": "10000"
},
Expand All @@ -72,9 +75,12 @@
"livenessProbe": {
"exec": {
"command": [
"/bin/sh",
"-c",
"set -x; exec /usr/local/bin/etcdctl --endpoints=127.0.0.1:{{ port }} {{ etcdctl_certs }} --command-timeout=15s endpoint health"
"/usr/local/bin/etcdctl",
"--endpoints=127.0.0.1:{{ port }}",
"--command-timeout=15s",
{{ etcdctl_certs }}
"endpoint",
"health"
]
},
"initialDelaySeconds": {{ liveness_probe_initial_delay }},
Expand Down
4 changes: 2 additions & 2 deletions cluster/gce/upgrade-aliases.sh
Original file line number Diff line number Diff line change
Expand Up @@ -170,8 +170,8 @@ export KUBE_GCE_ENABLE_IP_ALIASES=true
export SECONDARY_RANGE_NAME="pods-default"
export STORAGE_BACKEND="etcd3"
export STORAGE_MEDIA_TYPE="application/vnd.kubernetes.protobuf"
export ETCD_IMAGE=3.5.15-0
export ETCD_VERSION=3.5.15
export ETCD_IMAGE=3.5.24-0
export ETCD_VERSION=3.5.24

# Upgrade master with updated kube envs
"${KUBE_ROOT}/cluster/gce/upgrade.sh" -M -l
Expand Down
12 changes: 6 additions & 6 deletions cluster/gce/util.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1838,7 +1838,7 @@ function generate-certs {
# make the config for the signer
echo '{"signing":{"default":{"expiry":"43800h","usages":["signing","key encipherment","client auth"]}}}' > "ca-config.json"
# create the kubelet client cert with the correct groups
echo '{"CN":"kubelet","names":[{"O":"system:nodes"}],"hosts":[""],"key":{"algo":"rsa","size":2048}}' | "${CFSSL_BIN}" gencert -ca=pki/ca.crt -ca-key=pki/private/ca.key -config=ca-config.json - | "${CFSSLJSON_BIN}" -bare kubelet
echo '{"CN":"kubelet","names":[{"O":"system:nodes"}],"hosts":[],"key":{"algo":"rsa","size":2048}}' | "${CFSSL_BIN}" gencert -ca=pki/ca.crt -ca-key=pki/private/ca.key -config=ca-config.json - | "${CFSSLJSON_BIN}" -bare kubelet
mv "kubelet-key.pem" "pki/private/kubelet.key"
mv "kubelet.pem" "pki/issued/kubelet.crt"
rm -f "kubelet.csr"
Expand Down Expand Up @@ -1903,7 +1903,7 @@ function generate-aggregator-certs {
# make the config for the signer
echo '{"signing":{"default":{"expiry":"43800h","usages":["signing","key encipherment","client auth"]}}}' > "ca-config.json"
# create the aggregator client cert with the correct groups
echo '{"CN":"aggregator","hosts":[""],"key":{"algo":"rsa","size":2048}}' | "${CFSSL_BIN}" gencert -ca=pki/ca.crt -ca-key=pki/private/ca.key -config=ca-config.json - | "${CFSSLJSON_BIN}" -bare proxy-client
echo '{"CN":"aggregator","hosts":[],"key":{"algo":"rsa","size":2048}}' | "${CFSSL_BIN}" gencert -ca=pki/ca.crt -ca-key=pki/private/ca.key -config=ca-config.json - | "${CFSSLJSON_BIN}" -bare proxy-client
mv "proxy-client-key.pem" "pki/private/proxy-client.key"
mv "proxy-client.pem" "pki/issued/proxy-client.crt"
rm -f "proxy-client.csr"
Expand Down Expand Up @@ -1964,7 +1964,7 @@ function generate-konnectivity-server-certs {
# make the config for the signer
echo '{"signing":{"default":{"expiry":"43800h","usages":["signing","key encipherment","client auth"]}}}' > "ca-config.json"
# create the konnectivity server cert with the correct groups
echo '{"CN":"konnectivity-server","hosts":[""],"key":{"algo":"rsa","size":2048}}' | "${CFSSL_BIN}" gencert -ca=pki/ca.crt -ca-key=pki/private/ca.key -config=ca-config.json - | "${CFSSLJSON_BIN}" -bare konnectivity-server
echo '{"CN":"konnectivity-server","hosts":[],"key":{"algo":"rsa","size":2048}}' | "${CFSSL_BIN}" gencert -ca=pki/ca.crt -ca-key=pki/private/ca.key -config=ca-config.json - | "${CFSSLJSON_BIN}" -bare konnectivity-server
rm -f "konnectivity-server.csr"

# Make the agent <-> konnectivity server side certificates.
Expand All @@ -1980,7 +1980,7 @@ function generate-konnectivity-server-certs {
# make the config for the signer
echo '{"signing":{"default":{"expiry":"43800h","usages":["signing","key encipherment","agent auth"]}}}' > "ca-config.json"
# create the konnectivity server cert with the correct groups
echo '{"CN":"koonectivity-server","hosts":[""],"key":{"algo":"rsa","size":2048}}' | "${CFSSL_BIN}" gencert -ca=pki/ca.crt -ca-key=pki/private/ca.key -config=ca-config.json - | "${CFSSLJSON_BIN}" -bare konnectivity-agent
echo '{"CN":"koonectivity-server","hosts":[],"key":{"algo":"rsa","size":2048}}' | "${CFSSL_BIN}" gencert -ca=pki/ca.crt -ca-key=pki/private/ca.key -config=ca-config.json - | "${CFSSLJSON_BIN}" -bare konnectivity-agent
rm -f "konnectivity-agent.csr"

echo "completed main certificate section") &>"${cert_create_debug_output}" || true
Expand Down Expand Up @@ -2042,7 +2042,7 @@ function generate-cloud-pvl-admission-certs {
# make the config for the signer
echo '{"signing":{"default":{"expiry":"43800h","usages":["signing","key encipherment","client auth"]}}}' > "ca-config.json"
# create the cloud-pvl-admission cert with the correct groups
echo '{"CN":"cloud-pvl-admission","hosts":[""],"key":{"algo":"rsa","size":2048}}' | "${CFSSL_BIN}" gencert -ca=pki/ca.crt -ca-key=pki/private/ca.key -config=ca-config.json - | "${CFSSLJSON_BIN}" -bare cloud-pvl-admission
echo '{"CN":"cloud-pvl-admission","hosts":[],"key":{"algo":"rsa","size":2048}}' | "${CFSSL_BIN}" gencert -ca=pki/ca.crt -ca-key=pki/private/ca.key -config=ca-config.json - | "${CFSSLJSON_BIN}" -bare cloud-pvl-admission
rm -f "cloud-pvl-admission.csr"

# Make the cloud-pvl-admission server side certificates.
Expand All @@ -2058,7 +2058,7 @@ function generate-cloud-pvl-admission-certs {
# make the config for the signer
echo '{"signing":{"default":{"expiry":"43800h","usages":["signing","key encipherment","agent auth"]}}}' > "ca-config.json"
# create the cloud-pvl-admission server cert with the correct groups
echo '{"CN":"cloud-pvl-admission","hosts":[""],"key":{"algo":"rsa","size":2048}}' | "${CFSSL_BIN}" gencert -ca=pki/ca.crt -ca-key=pki/private/ca.key -config=ca-config.json - | "${CFSSLJSON_BIN}" -bare konnectivity-agent
echo '{"CN":"cloud-pvl-admission","hosts":[],"key":{"algo":"rsa","size":2048}}' | "${CFSSL_BIN}" gencert -ca=pki/ca.crt -ca-key=pki/private/ca.key -config=ca-config.json - | "${CFSSLJSON_BIN}" -bare konnectivity-agent
rm -f "konnectivity-agent.csr"

echo "completed main certificate section") &>"${cert_create_debug_output}" || true
Expand Down
10 changes: 5 additions & 5 deletions cluster/images/etcd/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -92,19 +92,19 @@ DOCKERFILE.windows = Dockerfile.windows
DOCKERFILE := ${DOCKERFILE.${OS}}

ifeq ($(ARCH),amd64)
BASEIMAGE?=registry.k8s.io/build-image/debian-base:bookworm-v1.0.3
BASEIMAGE?=registry.k8s.io/build-image/debian-base:bookworm-v1.0.6
endif
ifeq ($(ARCH),arm)
BASEIMAGE?=registry.k8s.io/build-image/debian-base-arm:bookworm-v1.0.3
BASEIMAGE?=registry.k8s.io/build-image/debian-base-arm:bookworm-v1.0.6
endif
ifeq ($(ARCH),arm64)
BASEIMAGE?=registry.k8s.io/build-image/debian-base-arm64:bookworm-v1.0.3
BASEIMAGE?=registry.k8s.io/build-image/debian-base-arm64:bookworm-v1.0.6
endif
ifeq ($(ARCH),ppc64le)
BASEIMAGE?=registry.k8s.io/build-image/debian-base-ppc64le:bookworm-v1.0.3
BASEIMAGE?=registry.k8s.io/build-image/debian-base-ppc64le:bookworm-v1.0.6
endif
ifeq ($(ARCH),s390x)
BASEIMAGE?=registry.k8s.io/build-image/debian-base-s390x:bookworm-v1.0.3
BASEIMAGE?=registry.k8s.io/build-image/debian-base-s390x:bookworm-v1.0.6
endif

BASE.windows = mcr.microsoft.com/windows/nanoserver
Expand Down
10 changes: 5 additions & 5 deletions cmd/kubeadm/app/constants/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -319,10 +319,10 @@ const (
KubeletHealthzPort = 10248

// MinExternalEtcdVersion indicates minimum external etcd version which kubeadm supports
MinExternalEtcdVersion = "3.5.11-0"
MinExternalEtcdVersion = "3.5.24-0"

// DefaultEtcdVersion indicates the default etcd version that kubeadm uses
DefaultEtcdVersion = "3.5.15-0"
DefaultEtcdVersion = "3.5.24-0"

// Etcd defines variable used internally when referring to etcd component
Etcd = "etcd"
Expand Down Expand Up @@ -481,9 +481,9 @@ var (

// SupportedEtcdVersion lists officially supported etcd versions with corresponding Kubernetes releases
SupportedEtcdVersion = map[uint8]string{
29: "3.5.15-0",
30: "3.5.15-0",
31: "3.5.15-0",
29: "3.5.24-0",
30: "3.5.24-0",
31: "3.5.24-0",
}

// KubeadmCertsClusterRoleName sets the name for the ClusterRole that allows
Expand Down
7 changes: 2 additions & 5 deletions cmd/kubeadm/app/preflight/checks.go
Original file line number Diff line number Diff line change
Expand Up @@ -479,11 +479,8 @@ func (subnet HTTPProxyCIDRCheck) Check() (warnings, errorList []error) {
return nil, []error{errors.Wrapf(err, "unable to get first IP address from the given CIDR (%s)", cidr.String())}
}

testIPstring := testIP.String()
if len(testIP) == net.IPv6len {
testIPstring = fmt.Sprintf("[%s]:1234", testIP)
}
url := fmt.Sprintf("%s://%s/", subnet.Proto, testIPstring)
testHostString := net.JoinHostPort(testIP.String(), "1234")
url := fmt.Sprintf("%s://%s/", subnet.Proto, testHostString)

req, err := http.NewRequest("GET", url, nil)
if err != nil {
Expand Down
Loading