Sitelet https://github.com/kubernetes/kops/pull/18688/files
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
41 changes: 2 additions & 39 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,6 @@ export GITSHA

# We lock the versions of our controllers also
# We need to keep in sync with:
# pkg/model/components/etcdmanager/model.go
KOPS_UTILS_CP_TAG=$(IMAGE_TAG)
# upup/models/cloudup/resources/addons/dns-controller/
DNS_CONTROLLER_TAG=$(IMAGE_TAG)
# upup/models/cloudup/resources/addons/kops-controller.addons.k8s.io/
Expand Down Expand Up @@ -113,7 +111,7 @@ nodeup-install: nodeup
all-install: all kops-install nodeup-install

.PHONY: all
all: kops nodeup ko-kops-controller-export ko-kops-channels-export ko-dns-controller-export ko-kops-utils-cp-export ko-kube-apiserver-healthcheck-export ko-discovery-server-export
all: kops nodeup ko-kops-controller-export ko-kops-channels-export ko-dns-controller-export ko-kube-apiserver-healthcheck-export ko-discovery-server-export

include tests/e2e/e2e.mk

Expand Down Expand Up @@ -288,13 +286,6 @@ dns-controller-push: ko-dns-controller-push
ko-dns-controller-push:
KO_DOCKER_REPO="${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}dns-controller" GOFLAGS="-tags=peer_name_alternative,peer_name_hash" ${KO} build --tags ${DNS_CONTROLLER_TAG} --platform=linux/amd64,linux/arm64 --bare ./dns-controller/cmd/dns-controller/

.PHONY: kops-utils-cp-push
kops-utils-cp-push: ko-kops-utils-cp-push

.PHONY: ko-kops-utils-cp-push
ko-kops-utils-cp-push:
KO_DOCKER_REPO="${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}kops-utils-cp" ${KO} build --tags ${KOPS_UTILS_CP_TAG} --platform=linux/amd64,linux/arm64 --bare ./cmd/kops-utils-cp/

# --------------------------------------------------
# development targets

Expand Down Expand Up @@ -547,17 +538,6 @@ ko-dns-controller-export-linux-amd64 ko-dns-controller-export-linux-arm64: ko-dn
ko-dns-controller-export: ko-dns-controller-export-linux-amd64 ko-dns-controller-export-linux-arm64
echo "Done exporting dns-controller images"

.PHONY: ko-kops-utils-cp-export-linux-amd64 ko-kops-utils-cp-export-linux-arm64
ko-kops-utils-cp-export-linux-amd64 ko-kops-utils-cp-export-linux-arm64: ko-kops-utils-cp-export-linux-%:
mkdir -p ${IMAGES}
KO_DOCKER_REPO="registry.k8s.io/kops" ${KO} build --tags ${KOPS_UTILS_CP_TAG} --platform=linux/$* -B --push=false --tarball=${IMAGES}/kops-utils-cp-$*.tar ./cmd/kops-utils-cp/
gzip -f ${IMAGES}/kops-utils-cp-$*.tar
tools/sha256 ${IMAGES}/kops-utils-cp-$*.tar.gz ${IMAGES}/kops-utils-cp-$*.tar.gz.sha256

.PHONY: ko-kops-utils-cp-export
ko-kops-utils-cp-export: ko-kops-utils-cp-export-linux-amd64 ko-kops-utils-cp-export-linux-arm64
echo "Done exporting kops-utils-cp images"

.PHONY: ko-discovery-server-export-linux-amd64 ko-discovery-server-export-linux-arm64
ko-discovery-server-export-linux-amd64 ko-discovery-server-export-linux-arm64: ko-discovery-server-export-linux-%:
mkdir -p ${IMAGES}
Expand Down Expand Up @@ -707,23 +687,6 @@ dev-upload-dns-controller: version-dist-dns-controller
dev-upload-dns-controller-amd64 dev-upload-dns-controller-arm64: dev-upload-dns-controller-%: version-dist-dns-controller-%
${UPLOAD_CMD} ${UPLOAD}/ ${UPLOAD_DEST}

# dev-upload-kops-utils-cp uploads kops-utils-cp
.PHONY: version-dist-kops-utils-cp version-dist-kops-utils-cp-amd64 version-dist-kops-utils-cp-arm64
version-dist-kops-utils-cp: version-dist-kops-utils-cp-amd64 version-dist-kops-utils-cp-arm64

version-dist-kops-utils-cp-amd64 version-dist-kops-utils-cp-arm64: version-dist-kops-utils-cp-%: ko-kops-utils-cp-export-linux-%
mkdir -p ${UPLOAD}/kops/${VERSION}/images/
cp -fp ${IMAGES}/kops-utils-cp-$*.tar.gz ${UPLOAD}/kops/${VERSION}/images/kops-utils-cp-$*.tar.gz
cp -fp ${IMAGES}/kops-utils-cp-$*.tar.gz.sha256 ${UPLOAD}/kops/${VERSION}/images/kops-utils-cp-$*.tar.gz.sha256

.PHONY: dev-upload-kops-utils-cp
dev-upload-kops-utils-cp: version-dist-kops-utils-cp
${UPLOAD_CMD} ${UPLOAD}/ ${UPLOAD_DEST}

.PHONY: dev-upload-kops-utils-cp-amd64 dev-upload-kops-utils-cp-arm64
dev-upload-kops-utils-cp-amd64 dev-upload-kops-utils-cp-arm64: dev-upload-kops-utils-cp-%: version-dist-kops-utils-cp-%
${UPLOAD_CMD} ${UPLOAD}/ ${UPLOAD_DEST}

# dev-upload-discovery-server uploads discovery-server
.PHONY: version-dist-discovery-server version-dist-discovery-server-amd64 version-dist-discovery-server-arm64
version-dist-discovery-server: version-dist-discovery-server-amd64 version-dist-discovery-server-arm64
Expand All @@ -745,7 +708,7 @@ dev-upload-discovery-server-amd64 dev-upload-discovery-server-arm64: dev-upload-
.PHONY: dev-version-dist dev-version-dist-amd64 dev-version-dist-arm64
dev-version-dist: dev-version-dist-amd64 dev-version-dist-arm64

dev-version-dist-amd64 dev-version-dist-arm64: dev-version-dist-%: version-dist-nodeup-% version-dist-kops-controller-% version-dist-kops-channels-% version-dist-kube-apiserver-healthcheck-% version-dist-dns-controller-% version-dist-kops-utils-cp-% version-dist-discovery-server-%
dev-version-dist-amd64 dev-version-dist-arm64: dev-version-dist-%: version-dist-nodeup-% version-dist-kops-controller-% version-dist-kops-channels-% version-dist-kube-apiserver-healthcheck-% version-dist-dns-controller-% version-dist-discovery-server-%

.PHONY: dev-upload-linux-amd64 dev-upload-linux-arm64
dev-upload-linux-amd64 dev-upload-linux-arm64: dev-upload-linux-%: dev-version-dist-%
Expand Down
1 change: 0 additions & 1 deletion cloudbuild.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ steps:
- DOCKER_REGISTRY=$_DOCKER_REGISTRY
- DOCKER_IMAGE_PREFIX=$_DOCKER_IMAGE_PREFIX
args:
- kops-utils-cp-push
- kops-controller-push
- kops-channels-push
- dns-controller-push
Expand Down
147 changes: 0 additions & 147 deletions cmd/kops-utils-cp/main.go

This file was deleted.

2 changes: 2 additions & 0 deletions docs/releases/1.37-NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ As part of this removal, the `protokube` component, whose only remaining respons

* The CoreDNS `PodDisruptionBudget` now defaults to `maxUnavailable: 33%` instead of `50%`, so that voluntary disruptions (node drains, rolling updates) always leave at least two DNS pods running when three or more replicas are deployed. The budget also sets `unhealthyPodEvictionPolicy: AlwaysAllow`, allowing CoreDNS pods that are running but not ready to be evicted during node drains instead of blocking them.

* etcd-manager now mounts the bundled etcd release images as image volumes on all supported Kubernetes versions. On Kubernetes versions older than 1.36, this is enabled by force-enabling the `ImageVolume` kubelet feature gate on control-plane nodes, now including Kubernetes 1.32. The `kops-utils-cp` utility image, previously used to copy etcd binaries into the etcd-manager pod, is no longer built or published.

# Breaking changes

* Support for AWS Classic Load Balancer (CLB) for the API has been removed. Clusters with `spec.api.loadBalancer.class: Classic` (or with no explicit `class`, which previously defaulted to Classic) fail validation, and the long-deprecated `kops create cluster --api-loadbalancer-class` flag has been removed. Existing clusters using a CLB must migrate to a Network Load Balancer (NLB) using kOps 1.36 or earlier before upgrading to kOps 1.37, following the [CLB to NLB migration guide](https://github.com/kubernetes/kops/blob/master/permalinks/acm_nlb.md). Attaching instance groups to externally-managed Classic Load Balancers via `spec.externalLoadBalancers[].loadBalancerName` remains supported.
Expand Down
1 change: 0 additions & 1 deletion hack/set-version
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ git grep -l "version..v${KOPS_RELEASE_VERSION}" upup/models/cloudup/resources/ad
git grep -l registry.k8s.io/kops/kops-controller | xargs -I {} sed -i.bak -e "s@kops-controller:${KOPS_RELEASE_VERSION}@kops-controller:${NEW_RELEASE_VERSION}@g" {}
git grep -l "version..v${KOPS_RELEASE_VERSION}" upup/models/cloudup/resources/addons/kops-controller.addons.k8s.io/ | xargs -I {} sed -i.bak -e "s@version: v${KOPS_RELEASE_VERSION}@version: v${NEW_RELEASE_VERSION}@g" {}

git grep -l registry.k8s.io/kops/kops-utils-cp | xargs -I {} sed -i.bak -e "s@kops-utils-cp:${KOPS_RELEASE_VERSION}@kops-utils-cp:${NEW_RELEASE_VERSION}@g" {}
git grep -l registry.k8s.io/kops/kube-apiserver-healthcheck | xargs -I {} sed -i.bak -e "s@kube-apiserver-healthcheck:${KOPS_RELEASE_VERSION}@kube-apiserver-healthcheck:${NEW_RELEASE_VERSION}@g" {}

git grep -l "version..${KOPS_RELEASE_VERSION}" upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/ | xargs -I {} sed -i.bak -e "s@version: ${KOPS_RELEASE_VERSION}@version: ${NEW_RELEASE_VERSION}@g" {}
Expand Down
23 changes: 5 additions & 18 deletions pkg/apis/kops/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ package kops
import (
"fmt"

"github.com/blang/semver/v4"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
Expand Down Expand Up @@ -988,24 +987,12 @@ func (c *Cluster) InstallCNIAssets() bool {
func (c *Cluster) HasImageVolumesSupport() bool {
// Image Volumes was added to Kubernetes v1.31
// https://kubernetes.io/blog/2024/08/16/kubernetes-1-31-image-volume-source/
// Image Volumes graduated to beta in Kubernetes v1.33
// https://kubernetes.io/blog/2025/04/29/kubernetes-v1-33-image-volume-beta/
if c.IsKubernetesLT("1.33.0") {
return false
}
if c.Spec.Containerd == nil || c.Spec.Containerd.Version == nil {
return false
}
sv, err := semver.ParseTolerant(*c.Spec.Containerd.Version)
if err != nil {
return false
}
// Image Volumes was released in Containerd v2.1.0
// The kubelet implementation used by kOps (whole-image mounts, no subPath)
// is complete as of v1.32, the oldest Kubernetes version supported by kOps.
// The runtime side requires containerd v2.1.0, which validation guarantees
// for all clusters.
// https://github.com/containerd/containerd/releases/tag/v2.1.0
if sv.LT(semver.MustParse("2.1.0")) {
return false
}
return true
return !c.IsKubernetesLT("1.32.0")

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should this just unconditionally return true if 1.32.0 is the oldest supported k8s version?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There might be some race during upgrades, I wouldn't worry too much about it.

}

func (c *Cluster) APIInternalName() string {
Expand Down
Loading
Loading