diff --git a/Dockerfile b/Dockerfile index 0be902b9a..7bb4c722a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG GOLANG_BASE_IMG=golang:1.26.5 +ARG GOLANG_BASE_IMG=golang:1.26.7 ARG OPERATOR_CONTROLLER_BASE_IMAGE=registry.access.redhat.com/ubi9/ubi-minimal:9.8 # Build the manager binary diff --git a/Dockerfile.build b/Dockerfile.build index 721d4f62a..1dc958cae 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -50,9 +50,9 @@ RUN apt-get update -y && \ RUN localedef -i en_US -f UTF-8 en_US.UTF-8 # Install Go -RUN wget https://go.dev/dl/go1.26.5.linux-amd64.tar.gz && \ - tar -C /usr/local -xzf go1.26.5.linux-amd64.tar.gz && \ - rm go1.26.5.linux-amd64.tar.gz +RUN wget https://go.dev/dl/go1.26.7.linux-amd64.tar.gz && \ + tar -C /usr/local -xzf go1.26.7.linux-amd64.tar.gz && \ + rm go1.26.7.linux-amd64.tar.gz ENV PATH="/usr/local/go/bin:${PATH}" diff --git a/Makefile b/Makefile index f20451d5d..1823f97fa 100644 --- a/Makefile +++ b/Makefile @@ -128,7 +128,8 @@ CONTAINER_DOCKER_SOCKET ?= /var/run/docker.sock DOCKER_GID := $(shell stat -c '%g' $(HOST_DOCKER_SOCKET)) USER_UID := $(shell id -u) USER_GID := $(shell id -g) -DOCKER_BUILDER_TAG := v1.7 +# Sourced from dev.env (single source of truth); fallback here if dev.env absent. +DOCKER_BUILDER_TAG ?= v1.8 DOCKER_BUILDER_IMAGE := $(DOCKER_REGISTRY)/gpu-operator-build:$(DOCKER_BUILDER_TAG) CONTAINER_WORKDIR := /gpu-operator # In CI environments (e.g. GitHub Actions) there is no TTY, so omit -it flags. @@ -136,7 +137,7 @@ DOCKER_IT_FLAGS := $(if $(CI),,-it) BUILD_BASE_IMG ?= ubuntu:22.04 DOCKER_CACHE_FROM ?= DOCKER_CACHE_TO ?= -GOLANG_BASE_IMG ?= golang:1.26.5 +GOLANG_BASE_IMG ?= golang:1.26.7 OPERATOR_CONTROLLER_BASE_IMAGE ?= registry.access.redhat.com/ubi9/ubi-minimal:9.8 # Helm binary installed into the build-shell image (Dockerfile.build). Pin the # version and its published sha256 together; bump both when upgrading. diff --git a/go.mod b/go.mod index 678a78063..839612476 100644 --- a/go.mod +++ b/go.mod @@ -1,9 +1,9 @@ module github.com/ROCm/gpu-operator -go 1.26.5 +go 1.26.7 require ( - github.com/argoproj/argo-workflows/v4 v4.0.5 + github.com/argoproj/argo-workflows/v4 v4.0.6 github.com/go-logr/logr v1.4.3 github.com/onsi/ginkgo/v2 v2.28.1 github.com/onsi/gomega v1.39.1 @@ -15,7 +15,7 @@ require ( github.com/stern/stern v1.32.0 github.com/stretchr/testify v1.11.1 go.uber.org/mock v0.5.2 - golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93 + golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c gopkg.in/yaml.v3 v3.0.1 k8s.io/api v0.36.2 diff --git a/go.sum b/go.sum index 042dbaf64..1ff5f072b 100644 --- a/go.sum +++ b/go.sum @@ -14,8 +14,8 @@ github.com/a8m/envsubst v1.4.2/go.mod h1:MVUTQNGQ3tsjOOtKCNd+fl8RzhsXcDvvAEzkhGt github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI= github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g= -github.com/argoproj/argo-workflows/v4 v4.0.5 h1:/1lru5oXUd+k6KEDUps6rLX5OKfi1jTfabgXTly/VFU= -github.com/argoproj/argo-workflows/v4 v4.0.5/go.mod h1:HOJR/2WJqj0mDD8Y5NLFDVRu/1qTUTm90ZaJ1l3hB+s= +github.com/argoproj/argo-workflows/v4 v4.0.6 h1:RN0Yxw6czTtRXskcHNJiM13W/Wwn733UhiD0ycDUhKo= +github.com/argoproj/argo-workflows/v4 v4.0.6/go.mod h1:s9mAxolx4BgKUMR+/Zs8AtrVkqVveqgiZbakJolj6U0= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= @@ -241,8 +241,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93 h1:fQsdNF2N+/YewlRZiricy4P1iimyPKZ/xwniHj8Q2a0= -golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93/go.mod h1:EPRbTFwzwjXj9NpYyyrvenVh9Y+GFeEvMNh7Xuz7xgU= +golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f h1:W3F4c+6OLc6H2lb//N1q4WpJkhzJCK5J6kUi1NTVXfM= +golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f/go.mod h1:J1xhfL/vlindoeF/aINzNzt2Bket5bjo9sdOYzOsU80= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= diff --git a/vendor/github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1/cron_workflow_types.go b/vendor/github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1/cron_workflow_types.go index 836a38406..65ca6756f 100644 --- a/vendor/github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1/cron_workflow_types.go +++ b/vendor/github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1/cron_workflow_types.go @@ -65,7 +65,7 @@ type CronWorkflowSpec struct { StopStrategy *StopStrategy `json:"stopStrategy,omitempty" protobuf:"bytes,10,opt,name=stopStrategy"` // v3.6 and after: Schedules is a list of schedules to run the Workflow in Cron format // +kubebuilder:validation:MinItems=1 - // +kubebuilder:validation:items:Pattern=`^(@(yearly|annually|monthly|weekly|daily|midnight|hourly)|@every\s+([0-9]+(ns|us|µs|ms|s|m|h))+|([0-9*,/?-]+\s+){4}[0-9*,/?-]+)$` + // +kubebuilder:validation:items:Pattern=`^(@(yearly|annually|monthly|weekly|daily|midnight|hourly)|@every\s+([0-9]+(ns|us|µs|ms|s|m|h))+|([A-Za-z0-9*,/?-]+\s+){4}[A-Za-z0-9*,/?-]+)$` Schedules []string `json:"schedules" protobuf:"bytes,11,opt,name=schedules"` // v3.6 and after: When is an expression that determines if a run should be scheduled. When string `json:"when,omitempty" protobuf:"bytes,12,opt,name=when"` diff --git a/vendor/github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1/generated.proto b/vendor/github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1/generated.proto index d2ba7df06..b650843d1 100644 --- a/vendor/github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1/generated.proto +++ b/vendor/github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1/generated.proto @@ -79,7 +79,7 @@ message Artifact { optional ArtifactLocation artifactLocation = 5; // GlobalName exports an output artifact to the global scope, making it available as - // '{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts + // workflow.outputs.artifacts.XXXX and in workflow.status.outputs.artifacts optional string globalName = 6; // Archive controls how the artifact will be saved to the artifact repository. @@ -522,7 +522,7 @@ message CronWorkflowSpec { // v3.6 and after: Schedules is a list of schedules to run the Workflow in Cron format // +kubebuilder:validation:MinItems=1 - // +kubebuilder:validation:items:Pattern=`^(@(yearly|annually|monthly|weekly|daily|midnight|hourly)|@every\s+([0-9]+(ns|us|µs|ms|s|m|h))+|([0-9*,/?-]+\s+){4}[0-9*,/?-]+)$` + // +kubebuilder:validation:items:Pattern=`^(@(yearly|annually|monthly|weekly|daily|midnight|hourly)|@every\s+([0-9]+(ns|us|µs|ms|s|m|h))+|([A-Za-z0-9*,/?-]+\s+){4}[A-Za-z0-9*,/?-]+)$` repeated string schedules = 11; // v3.6 and after: When is an expression that determines if a run should be scheduled. @@ -1319,7 +1319,7 @@ message Parameter { optional ValueFrom valueFrom = 4; // GlobalName exports an output parameter to the global scope, making it available as - // '{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters + // workflow.outputs.parameters.XXXX and in workflow.status.outputs.parameters optional string globalName = 5; // Enum holds a list of string values to choose from, for the actual value of the parameter @@ -1908,7 +1908,7 @@ message ValueFrom { optional string event = 7; // Parameter reference to a step or dag task in which to retrieve an output parameter value from - // (e.g. '{{steps.mystep.outputs.myparam}}') + // (e.g. steps.mystep.outputs.myparam) optional string parameter = 4; // Supplied value to be filled in directly, either through the CLI, API, etc. @@ -2058,7 +2058,7 @@ message WorkflowSpec { // Arguments contain the parameters and artifacts sent to the workflow entrypoint // Parameters are referencable globally using the 'workflow' variable prefix. - // e.g. {{workflow.parameters.myparam}} + // e.g. workflow.parameters.myparam optional Arguments arguments = 3; // ServiceAccountName is the name of the ServiceAccount to run all pods of the workflow as. diff --git a/vendor/github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1/openapi_generated.go b/vendor/github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1/openapi_generated.go index bfafb3e90..a6d0bb88e 100644 --- a/vendor/github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1/openapi_generated.go +++ b/vendor/github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1/openapi_generated.go @@ -425,7 +425,7 @@ func schema_pkg_apis_workflow_v1alpha1_Artifact(ref common.ReferenceCallback) co }, "globalName": { SchemaProps: spec.SchemaProps{ - Description: "GlobalName exports an output artifact to the global scope, making it available as '{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts", + Description: "GlobalName exports an output artifact to the global scope, making it available as workflow.outputs.artifacts.XXXX and in workflow.status.outputs.artifacts", Type: []string{"string"}, Format: "", }, @@ -804,7 +804,7 @@ func schema_pkg_apis_workflow_v1alpha1_ArtifactPaths(ref common.ReferenceCallbac }, "globalName": { SchemaProps: spec.SchemaProps{ - Description: "GlobalName exports an output artifact to the global scope, making it available as '{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts", + Description: "GlobalName exports an output artifact to the global scope, making it available as workflow.outputs.artifacts.XXXX and in workflow.status.outputs.artifacts", Type: []string{"string"}, Format: "", }, @@ -4911,7 +4911,7 @@ func schema_pkg_apis_workflow_v1alpha1_Parameter(ref common.ReferenceCallback) c }, "globalName": { SchemaProps: spec.SchemaProps{ - Description: "GlobalName exports an output parameter to the global scope, making it available as '{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters", + Description: "GlobalName exports an output parameter to the global scope, making it available as workflow.outputs.parameters.XXXX and in workflow.status.outputs.parameters", Type: []string{"string"}, Format: "", }, @@ -7215,7 +7215,7 @@ func schema_pkg_apis_workflow_v1alpha1_ValueFrom(ref common.ReferenceCallback) c }, "parameter": { SchemaProps: spec.SchemaProps{ - Description: "Parameter reference to a step or dag task in which to retrieve an output parameter value from (e.g. '{{steps.mystep.outputs.myparam}}')", + Description: "Parameter reference to a step or dag task in which to retrieve an output parameter value from (e.g. steps.mystep.outputs.myparam)", Type: []string{"string"}, Format: "", }, @@ -7799,7 +7799,7 @@ func schema_pkg_apis_workflow_v1alpha1_WorkflowSpec(ref common.ReferenceCallback }, "arguments": { SchemaProps: spec.SchemaProps{ - Description: "Arguments contain the parameters and artifacts sent to the workflow entrypoint Parameters are referencable globally using the 'workflow' variable prefix. e.g. {{workflow.parameters.myparam}}", + Description: "Arguments contain the parameters and artifacts sent to the workflow entrypoint Parameters are referencable globally using the 'workflow' variable prefix. e.g. workflow.parameters.myparam", Default: map[string]interface{}{}, Ref: ref("github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1.Arguments"), }, diff --git a/vendor/github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1/workflow_types.go b/vendor/github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1/workflow_types.go index 8eac00dbd..37e139b5f 100644 --- a/vendor/github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1/workflow_types.go +++ b/vendor/github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1/workflow_types.go @@ -311,7 +311,7 @@ type WorkflowSpec struct { // Arguments contain the parameters and artifacts sent to the workflow entrypoint // Parameters are referencable globally using the 'workflow' variable prefix. - // e.g. {{workflow.parameters.myparam}} + // e.g. workflow.parameters.myparam Arguments Arguments `json:"arguments,omitempty" protobuf:"bytes,3,opt,name=arguments"` // ServiceAccountName is the name of the ServiceAccount to run all pods of the workflow as. @@ -1013,7 +1013,7 @@ type Parameter struct { ValueFrom *ValueFrom `json:"valueFrom,omitempty" protobuf:"bytes,4,opt,name=valueFrom"` // GlobalName exports an output parameter to the global scope, making it available as - // '{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters + // workflow.outputs.parameters.XXXX and in workflow.status.outputs.parameters GlobalName string `json:"globalName,omitempty" protobuf:"bytes,5,opt,name=globalName"` // Enum holds a list of string values to choose from, for the actual value of the parameter @@ -1039,7 +1039,7 @@ type ValueFrom struct { Event string `json:"event,omitempty" protobuf:"bytes,7,opt,name=event"` // Parameter reference to a step or dag task in which to retrieve an output parameter value from - // (e.g. '{{steps.mystep.outputs.myparam}}') + // (e.g. steps.mystep.outputs.myparam) Parameter string `json:"parameter,omitempty" protobuf:"bytes,4,opt,name=parameter"` // Supplied value to be filled in directly, either through the CLI, API, etc. @@ -1095,7 +1095,7 @@ type Artifact struct { ArtifactLocation `json:",inline" protobuf:"bytes,5,opt,name=artifactLocation"` // GlobalName exports an output artifact to the global scope, making it available as - // '{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts + // workflow.outputs.artifacts.XXXX and in workflow.status.outputs.artifacts GlobalName string `json:"globalName,omitempty" protobuf:"bytes,6,opt,name=globalName"` // Archive controls how the artifact will be saved to the artifact repository. diff --git a/vendor/modules.txt b/vendor/modules.txt index af87877f8..33d084e66 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -11,7 +11,7 @@ github.com/Masterminds/semver/v3 # github.com/a8m/envsubst v1.4.2 ## explicit; go 1.17 github.com/a8m/envsubst/parse -# github.com/argoproj/argo-workflows/v4 v4.0.5 +# github.com/argoproj/argo-workflows/v4 v4.0.6 ## explicit; go 1.25.7 github.com/argoproj/argo-workflows/v4/errors github.com/argoproj/argo-workflows/v4/pkg/apis/workflow @@ -299,8 +299,8 @@ go.yaml.in/yaml/v2 # go.yaml.in/yaml/v3 v3.0.4 ## explicit; go 1.16 go.yaml.in/yaml/v3 -# golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93 -## explicit; go 1.24.0 +# golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f +## explicit; go 1.25.0 golang.org/x/exp/maps # golang.org/x/mod v0.38.0 ## explicit; go 1.25.0