From e865fc7b44fb9fdb3bc2c79abcd0a97b72ee17f1 Mon Sep 17 00:00:00 2001 From: Konstantin Khlebnikov Date: Fri, 19 Dec 2025 09:10:23 +0100 Subject: [PATCH] Update ytsaurus images - use 25.2.2 in samples - drop 23.2 image from tests - set current to 25.2 - set future to 25.3 Signed-off-by: Konstantin Khlebnikov --- Makefile | 3 ++ config/samples/cluster_v1_cri.yaml | 2 +- config/samples/cluster_v1_demo.yaml | 2 +- config/samples/cluster_v1_local.yaml | 2 +- .../samples/cluster_v1_remoteexecnodes.yaml | 2 +- config/samples/cluster_v1_tls.yaml | 2 +- pkg/testutil/spec_builders.go | 38 +++++++++---------- test-env.inc | 32 ++++++++-------- test/e2e/ytsaurus_controller_test.go | 18 +-------- .../Ytsaurus.yaml | 1 - 10 files changed, 44 insertions(+), 58 deletions(-) diff --git a/Makefile b/Makefile index 323f4c3bc..c681f7fc5 100644 --- a/Makefile +++ b/Makefile @@ -430,6 +430,9 @@ helm-chart: manifests ## Generate helm chart. go run ./hack/helm-crds.go $(OPERATOR_CHART_CRDS)/ config/crd/bases/*.yaml $(YQ) '.name="$(OPERATOR_CHART_NAME_RELEASE)" | .version="$(OPERATOR_VERSION)" | .appVersion="$(OPERATOR_VERSION)"' $(OPERATOR_CHART)/Chart.yaml +update-samples-image: + sed "s#$(firstword $(subst :, ,$(YTSAURUS_SAMPLE_IMAGE_CURRENT))):.*#${YTSAURUS_SAMPLE_IMAGE_CURRENT}#" -i config/samples/*.yaml + ##@ Deployment ifndef ignore-not-found diff --git a/config/samples/cluster_v1_cri.yaml b/config/samples/cluster_v1_cri.yaml index 4e618c13a..b4523be43 100644 --- a/config/samples/cluster_v1_cri.yaml +++ b/config/samples/cluster_v1_cri.yaml @@ -14,7 +14,7 @@ metadata: spec: # https://ytsaurus.tech/docs/en/admin-guide/releases#ytsaurus-server # https://github.com/ytsaurus/ytsaurus/pkgs/container/ytsaurus - coreImage: ghcr.io/ytsaurus/ytsaurus:stable-25.1.0-relwithdebinfo + coreImage: ghcr.io/ytsaurus/ytsaurus:stable-25.2.2-relwithdebinfo # Default "docker_image" for jobs jobImage: mirror.gcr.io/library/python:3.12-slim diff --git a/config/samples/cluster_v1_demo.yaml b/config/samples/cluster_v1_demo.yaml index e54927dd6..1820e2b55 100644 --- a/config/samples/cluster_v1_demo.yaml +++ b/config/samples/cluster_v1_demo.yaml @@ -3,7 +3,7 @@ kind: Ytsaurus metadata: name: ytdemo spec: - coreImage: ghcr.io/ytsaurus/ytsaurus:stable-25.2.1-relwithdebinfo + coreImage: ghcr.io/ytsaurus/ytsaurus:stable-25.2.2-relwithdebinfo uiImage: ghcr.io/ytsaurus/ui:stable adminCredentials: diff --git a/config/samples/cluster_v1_local.yaml b/config/samples/cluster_v1_local.yaml index 6bee95244..79fdde892 100644 --- a/config/samples/cluster_v1_local.yaml +++ b/config/samples/cluster_v1_local.yaml @@ -3,7 +3,7 @@ kind: Ytsaurus metadata: name: minisaurus spec: - coreImage: ghcr.io/ytsaurus/ytsaurus:stable-25.2.1-relwithdebinfo + coreImage: ghcr.io/ytsaurus/ytsaurus:stable-25.2.2-relwithdebinfo discovery: instanceCount: 1 diff --git a/config/samples/cluster_v1_remoteexecnodes.yaml b/config/samples/cluster_v1_remoteexecnodes.yaml index 9de36ecbf..96d00c4fa 100644 --- a/config/samples/cluster_v1_remoteexecnodes.yaml +++ b/config/samples/cluster_v1_remoteexecnodes.yaml @@ -7,7 +7,7 @@ spec: name: remote-ytsaurus # FIXME: Move cluster options into RemoteYtsaurus. - coreImage: ghcr.io/ytsaurus/ytsaurus:dev-23.2-relwithdebinfo + coreImage: ghcr.io/ytsaurus/ytsaurus:stable-25.2.2-relwithdebinfo jobImage: mirror.gcr.io/library/python:3.12-slim diff --git a/config/samples/cluster_v1_tls.yaml b/config/samples/cluster_v1_tls.yaml index f399690cc..0bb0d8ca4 100644 --- a/config/samples/cluster_v1_tls.yaml +++ b/config/samples/cluster_v1_tls.yaml @@ -21,7 +21,7 @@ metadata: spec: # https://ytsaurus.tech/docs/en/admin-guide/releases#ytsaurus-server # https://github.com/ytsaurus/ytsaurus/pkgs/container/ytsaurus - coreImage: ghcr.io/ytsaurus/ytsaurus:stable-25.1.0-relwithdebinfo + coreImage: ghcr.io/ytsaurus/ytsaurus:stable-25.2.2-relwithdebinfo # Default "docker_image" for jobs jobImage: mirror.gcr.io/library/python:3.12-slim diff --git a/pkg/testutil/spec_builders.go b/pkg/testutil/spec_builders.go index 5713e54a5..4021775a2 100644 --- a/pkg/testutil/spec_builders.go +++ b/pkg/testutil/spec_builders.go @@ -43,15 +43,16 @@ var ( // NOTE: The same image is used for YTsaurus integration tests. YtsaurusJobImage = GetenvOr("YTSAURUS_JOB_IMAGE", "docker.io/library/python:3.8-slim") - YtsaurusImage23_2 = GetenvOr("YTSAURUS_IMAGE_23_2", "ghcr.io/ytsaurus/ytsaurus:stable-23.2.0") YtsaurusImage24_1 = GetenvOr("YTSAURUS_IMAGE_24_1", "ghcr.io/ytsaurus/ytsaurus:stable-24.1.0") YtsaurusImage24_2 = GetenvOr("YTSAURUS_IMAGE_24_2", "ghcr.io/ytsaurus/ytsaurus:stable-24.2.1") YtsaurusImage25_1 = GetenvOr("YTSAURUS_IMAGE_25_1", "ghcr.io/ytsaurus/ytsaurus:stable-25.1.0") - YtsaurusImage25_2 = GetenvOr("YTSAURUS_IMAGE_25_2", "ghcr.io/ytsaurus/ytsaurus:stable-25.2.0") + YtsaurusImage25_2 = GetenvOr("YTSAURUS_IMAGE_25_2", "ghcr.io/ytsaurus/ytsaurus:stable-25.2.2") + YtsaurusImage25_3 = GetenvOr("YTSAURUS_IMAGE_25_3", "") + YtsaurusImage25_4 = GetenvOr("YTSAURUS_IMAGE_25_4", "") - YtsaurusImagePrevious = GetenvOr("YTSAURUS_IMAGE_PREVIOUS", YtsaurusImage24_1) - YtsaurusImageCurrent = GetenvOr("YTSAURUS_IMAGE_CURRENT", YtsaurusImage24_2) - YtsaurusImageFuture = GetenvOr("YTSAURUS_IMAGE_FUTURE", YtsaurusImage25_2) + YtsaurusImagePrevious = GetenvOr("YTSAURUS_IMAGE_PREVIOUS", YtsaurusImage24_2) + YtsaurusImageCurrent = GetenvOr("YTSAURUS_IMAGE_CURRENT", YtsaurusImage25_2) + YtsaurusImageFuture = GetenvOr("YTSAURUS_IMAGE_FUTURE", YtsaurusImage25_3) YtsaurusImageNightly = GetenvOr("YTSAURUS_IMAGE_NIGHTLY", "") YtsaurusMutualTLSReady = os.Getenv("YTSAURUS_TLS_READY") != "" @@ -124,16 +125,6 @@ var ( StrawberryHandlesRestarts: true, } - YtsaurusImages24_1 = YtsaurusImages{ - Job: YtsaurusJobImage, - Core: YtsaurusImage24_1, - Strawberry: StrawberryImagePrevious, - Chyt: ChytImagePrevious, - QueryTracker: QueryTrackerImagePrevious, - - MutualTLSReady: false, - } - YtsaurusImages24_2 = YtsaurusImages{ Job: YtsaurusJobImage, Core: YtsaurusImage24_2, @@ -164,6 +155,17 @@ var ( MutualTLSReady: YtsaurusMutualTLSReady, StrawberryHandlesRestarts: true, } + + YtsaurusImages25_3 = YtsaurusImages{ + Job: YtsaurusJobImage, + Core: YtsaurusImage25_3, + Strawberry: StrawberryImageFuture, + Chyt: ChytImageFuture, + QueryTracker: QueryTrackerImageFuture, + + MutualTLSReady: true, + StrawberryHandlesRestarts: true, + } ) var ( @@ -492,18 +494,12 @@ func (b *YtsaurusBuilder) WithYqlAgent() { } func (b *YtsaurusBuilder) WithQueueAgent() { - image := b.Images.Core - // Older version doesn't have /usr/bin/ytserver-queue-agent - if image == YtsaurusImage23_2 { - image = YtsaurusImage24_1 - } b.Ytsaurus.Spec.QueueAgents = &ytv1.QueueAgentSpec{ InstanceSpec: ytv1.InstanceSpec{ InstanceCount: 1, MinReadyInstanceCount: b.MinReadyInstanceCount, Resources: *defaultNodeResources.DeepCopy(), Loggers: b.CreateLoggersSpec(), - Image: ptr.To(image), }, } } diff --git a/test-env.inc b/test-env.inc index 0d7b88829..cae58f433 100644 --- a/test-env.inc +++ b/test-env.inc @@ -10,33 +10,36 @@ YTSAURUS_REGISTRY = ghcr.io/ytsaurus # https://github.com/ytsaurus/ytsaurus/pkgs/container/ytsaurus-nightly # skopeo inspect --format '{{range .RepoTags}}{{.}}\n{{end -}}' docker://ghcr.io/ytsaurus/ytsaurus-nightly -export YTSAURUS_IMAGE_23_2 = ${YTSAURUS_REGISTRY}/ytsaurus:stable-23.2.0 -# export YTSAURUS_IMAGE_23_2 = ${YTSAURUS_REGISTRY}/ytsaurus-nightly:dev-23.2-2025-02-19-7dae008dd5171a9c89857f2034746ac3119842db - export YTSAURUS_IMAGE_24_1 = ${YTSAURUS_REGISTRY}/ytsaurus:stable-24.1.0 # export YTSAURUS_IMAGE_24_1 = ${YTSAURUS_REGISTRY}/ytsaurus-nightly:dev-24.1-2025-06-18-dd4bd8bdc4d28993e7185b820930761540b29ae9 export YTSAURUS_IMAGE_24_2 = ${YTSAURUS_REGISTRY}/ytsaurus:stable-24.2.1 -# export YTSAURUS_IMAGE_24_2 = ${YTSAURUS_REGISTRY}/ytsaurus-nightly:dev-24.2-2025-07-28-567fa5b92fd448f708f84f7755dacf4560810ef6 +# export YTSAURUS_IMAGE_24_2 = ${YTSAURUS_REGISTRY}/ytsaurus-nightly:dev-24.2-2025-09-05-522db86a58d4950019121180a35c9b56d0d8af76 export YTSAURUS_IMAGE_25_1 = ${YTSAURUS_REGISTRY}/ytsaurus:stable-25.1.0 -# export YTSAURUS_IMAGE_25_1 = ${YTSAURUS_REGISTRY}/ytsaurus-nightly:dev-25.1-2025-07-28-b75342ada631c8d78b95c29c4de46225c877f1d2 +# export YTSAURUS_IMAGE_25_1 = ${YTSAURUS_REGISTRY}/ytsaurus-nightly:dev-25.1-2025-09-30-da1f6800979c77f5a19f44dc18d970bb5a70ac03 + +export YTSAURUS_IMAGE_25_2 = ${YTSAURUS_REGISTRY}/ytsaurus:stable-25.2.2 +# export YTSAURUS_IMAGE_25_2 = ${YTSAURUS_REGISTRY}/ytsaurus-nightly:dev-25.2-2225-12-09-d1b3fc19add6314e39833c19ebb8487f2f734ff9 + +# export YTSAURUS_IMAGE_25_3 = ${YTSAURUS_REGISTRY}/ytsaurus:stable-25.3.0 +export YTSAURUS_IMAGE_25_3 = ${YTSAURUS_REGISTRY}/ytsaurus-nightly:dev-25.3-2025-12-16-c872e2fcffbfb0396f543c3a70ced006b80df1cd -export YTSAURUS_IMAGE_25_2 = ${YTSAURUS_REGISTRY}/ytsaurus:stable-25.2.1 -# export YTSAURUS_IMAGE_25_2 = ${YTSAURUS_REGISTRY}/ytsaurus-nightly:dev-25.2-2025-09-24-8779082dedb3ca96c30a5cba04dd4d3b9f05fa90 +# export YTSAURUS_IMAGE_25_4 = ${YTSAURUS_REGISTRY}/ytsaurus:stable-25.4.0 +export YTSAURUS_IMAGE_25_4 = ${YTSAURUS_REGISTRY}/ytsaurus-nightly:dev-25.4-2025-12-19-e68c113063a2f442f0ea4f8b58acac31d07d27e1 export YTSAURUS_IMAGE_PREVIOUS = ${YTSAURUS_IMAGE_24_1} export YTSAURUS_IMAGE_CURRENT = ${YTSAURUS_IMAGE_24_2} export YTSAURUS_IMAGE_FUTURE = ${YTSAURUS_IMAGE_25_2} -export YTSAURUS_IMAGE_NIGHTLY = ${YTSAURUS_REGISTRY}/ytsaurus-nightly:dev-2025-11-11-1ea9f902e888db24630cdef436de8348b433ac4f +export YTSAURUS_IMAGE_NIGHTLY = ${YTSAURUS_REGISTRY}/ytsaurus-nightly:dev-2025-12-19-54476101b0d8c7d9dfa4c0173732494b49641334 # https://github.com/ytsaurus/ytsaurus/pkgs/container/query-tracker # https://github.com/ytsaurus/ytsaurus/pkgs/container/query-tracker-nightly # skopeo inspect --format '{{range .RepoTags}}{{.}}\n{{end -}}' docker://ghcr.io/ytsaurus/query-tracker-nightly:dev-2025-07-23-be855609d82ae5c6952a6b5c8c4e1706d1b18232 export QUERY_TRACKER_IMAGE_PREVIOUS = ${YTSAURUS_REGISTRY}/query-tracker:0.0.10 export QUERY_TRACKER_IMAGE_CURRENT = ${YTSAURUS_REGISTRY}/query-tracker:0.0.11 -export QUERY_TRACKER_IMAGE_FUTURE = ${YTSAURUS_REGISTRY}/query-tracker:0.0.11 -export QUERY_TRACKER_IMAGE_NIGHTLY = ${YTSAURUS_REGISTRY}/query-tracker-nightly:dev-2025-11-11-1ea9f902e888db24630cdef436de8348b433ac4f +export QUERY_TRACKER_IMAGE_FUTURE = ${YTSAURUS_REGISTRY}/query-tracker:0.1.1 +export QUERY_TRACKER_IMAGE_NIGHTLY = ${YTSAURUS_REGISTRY}/query-tracker-nightly:dev-2025-12-19-54476101b0d8c7d9dfa4c0173732494b49641334 # https://github.com/ytsaurus/ytsaurus/pkgs/container/strawberry # https://github.com/ytsaurus/ytsaurus/pkgs/container/strawberry-nightly @@ -44,7 +47,7 @@ export QUERY_TRACKER_IMAGE_NIGHTLY = ${YTSAURUS_REGISTRY}/query-tracker-nightly: export STRAWBERRY_IMAGE_PREVIOUS = ${YTSAURUS_REGISTRY}/strawberry:0.0.13 export STRAWBERRY_IMAGE_CURRENT = ${YTSAURUS_REGISTRY}/strawberry:0.0.14 export STRAWBERRY_IMAGE_FUTURE = ${YTSAURUS_REGISTRY}/strawberry:0.0.15 -export STRAWBERRY_IMAGE_NIGHTLY = ${YTSAURUS_REGISTRY}/strawberry-nightly:dev-2025-11-11-1c0bdefd8ef465063372487e8a7c2be8625418e3 +export STRAWBERRY_IMAGE_NIGHTLY = ${YTSAURUS_REGISTRY}/strawberry-nightly:dev-2025-12-19-aad5a97990f371aacb21eb2066cce24c46aa7c57 # https://github.com/ytsaurus/ytsaurus/pkgs/container/chyt # https://github.com/ytsaurus/ytsaurus/pkgs/container/chyt-nightly @@ -52,10 +55,9 @@ export STRAWBERRY_IMAGE_NIGHTLY = ${YTSAURUS_REGISTRY}/strawberry-nightly:dev-20 export CHYT_IMAGE_PREVIOUS = ${YTSAURUS_REGISTRY}/chyt:2.16.0 export CHYT_IMAGE_CURRENT = ${YTSAURUS_REGISTRY}/chyt:2.16.0 export CHYT_IMAGE_FUTURE = ${YTSAURUS_REGISTRY}/chyt:2.17.4 -export CHYT_IMAGE_NIGHTLY = ${YTSAURUS_REGISTRY}/chyt-nightly:dev-2025-11-11-1ea9f902e888db24630cdef436de8348b433ac4f +export CHYT_IMAGE_NIGHTLY = ${YTSAURUS_REGISTRY}/chyt-nightly:dev-2025-12-19-54476101b0d8c7d9dfa4c0173732494b49641334 define LOAD_TEST_IMAGES -${YTSAURUS_IMAGE_23_2} ${YTSAURUS_IMAGE_PREVIOUS} ${YTSAURUS_IMAGE_CURRENT} ${YTSAURUS_IMAGE_FUTURE} @@ -63,8 +65,8 @@ ${QUERY_TRACKER_IMAGE_CURRENT} ${CHYT_IMAGE_CURRENT} endef -YTSAURUS_SAMPLE_IMAGE_24_1 = ${YTSAURUS_REGISTRY}/ytsaurus:stable-24.1.0-relwithdebinfo +YTSAURUS_SAMPLE_IMAGE_CURRENT = ghcr.io/ytsaurus/ytsaurus:stable-25.2.2-relwithdebinfo define LOAD_SAMPLE_IMAGES -${YTSAURUS_SAMPLE_IMAGE_24_1} +${YTSAURUS_SAMPLE_IMAGE_CURRENT} endef diff --git a/test/e2e/ytsaurus_controller_test.go b/test/e2e/ytsaurus_controller_test.go index ce31b99a7..8ba0697ee 100644 --- a/test/e2e/ytsaurus_controller_test.go +++ b/test/e2e/ytsaurus_controller_test.go @@ -715,11 +715,6 @@ var _ = Describe("Basic e2e test for Ytsaurus controller", Label("e2e"), func() By("Setting old core image for testing upgrade") ytsaurus.Spec.CoreImage = oldImage - - if oldImage == testutil.YtsaurusImage23_2 { - By("Disabling master caches in 23.2") - ytsaurus.Spec.MasterCaches = nil - } }) It("Triggers cluster update", func(ctx context.Context) { @@ -749,23 +744,14 @@ var _ = Describe("Basic e2e test for Ytsaurus controller", Label("e2e"), func() CurrentlyObject(ctx, ytsaurus).Should(HaveObservedGeneration()) }) }, - Entry("When update Ytsaurus 23.2 -> 24.1", Label("24.1"), testutil.YtsaurusImage23_2, testutil.YtsaurusImage24_1), Entry("When update Ytsaurus 24.1 -> 24.2", Label("24.2"), testutil.YtsaurusImage24_1, testutil.YtsaurusImage24_2), Entry("When update Ytsaurus 24.2 -> 25.1", Label("25.1"), testutil.YtsaurusImage24_2, testutil.YtsaurusImage25_1), Entry("When update Ytsaurus 25.1 -> 25.2", Label("25.2"), testutil.YtsaurusImage25_1, testutil.YtsaurusImage25_2), + Entry("When update Ytsaurus 25.2 -> 25.3", Label("25.3"), testutil.YtsaurusImage25_2, testutil.YtsaurusImage25_3), ) Context("Test update plan selector", Label("plan", "selector"), func() { - BeforeEach(func() { - By("Setting 24.2+ image for update selector tests") - // This image is used for update selector tests because for earlier images - // there will be migration of imaginary chunks locations which restarts datanodes - // and makes it hard to test updateSelector. - // For 24.2+ image no migration is needed. - ytsaurus.Spec.CoreImage = testutil.YtsaurusImage24_2 - }) - It("Should be updated according to UpdateSelector=Everything", func(ctx context.Context) { By("Run cluster update with selector: class=Nothing") @@ -1555,7 +1541,6 @@ var _ = Describe("Basic e2e test for Ytsaurus controller", Label("e2e"), func() Context("With CRI-O", Label("cri", "crio"), func() { BeforeEach(func() { - ytsaurus.Spec.CoreImage = testutil.YtsaurusImage25_2 requiredImages = append(requiredImages, ytsaurus.Spec.CoreImage) By("Adding exec nodes") @@ -1902,6 +1887,7 @@ exec "$@"` Entry("YTsaurus 24.2", Label("24.2"), testutil.YtsaurusImages24_2), Entry("YTsaurus 25.1", Label("25.1"), testutil.YtsaurusImages25_1), Entry("YTsaurus 25.2", Label("25.2"), testutil.YtsaurusImages25_2), + Entry("YTsaurus 25.3", Label("25.3"), testutil.YtsaurusImages25_3), Entry("YTsaurus twilight", Label("twilight"), testutil.TwilightImages), Entry("YTsaurus nightly", Label("nightly"), testutil.NightlyImages), ) // integration tls diff --git a/test/r8r/canondata/Components reconciler With all components Test/Ytsaurus.yaml b/test/r8r/canondata/Components reconciler With all components Test/Ytsaurus.yaml index d5f609585..eb5611c50 100644 --- a/test/r8r/canondata/Components reconciler With all components Test/Ytsaurus.yaml +++ b/test/r8r/canondata/Components reconciler With all components Test/Ytsaurus.yaml @@ -220,7 +220,6 @@ spec: cpu: "0" memory: "0" queueAgents: - image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 instanceCount: 1 loggers: - minLogLevel: info