diff --git a/.github/workflows/PR.yaml b/.github/workflows/PR.yaml index e369945f4..4ef48a2e4 100644 --- a/.github/workflows/PR.yaml +++ b/.github/workflows/PR.yaml @@ -143,7 +143,7 @@ jobs: - name: Install Argo CLI run: | - ARGO_VERSION=$(grep "github.com/argoproj/argo-workflows/v3" go.mod | awk '{ print $2 }') + ARGO_VERSION=$(grep "github.com/argoproj/argo-workflows/v4" go.mod | awk '{ print $2 }') curl -sLO "https://github.com/argoproj/argo-workflows/releases/download/${ARGO_VERSION}/argo-linux-amd64.gz" gunzip argo-linux-amd64.gz chmod +x argo-linux-amd64 diff --git a/chart/infra-server/Chart.yaml b/chart/infra-server/Chart.yaml index d64bf6a2f..53c0fc640 100644 --- a/chart/infra-server/Chart.yaml +++ b/chart/infra-server/Chart.yaml @@ -12,7 +12,7 @@ annotations: ocpCredentialsMode: Passthrough dependencies: - name: argo-workflows - version: "0.45.9" + version: "1.0.4" repository: "https://argoproj.github.io/argo-helm" - name: kube-prometheus version: 11.3.10 diff --git a/chart/infra-server/requirements.lock b/chart/infra-server/requirements.lock index 3207070e3..1b9e95f6d 100644 --- a/chart/infra-server/requirements.lock +++ b/chart/infra-server/requirements.lock @@ -1,9 +1,9 @@ dependencies: - name: argo-workflows repository: https://argoproj.github.io/argo-helm - version: 0.45.9 + version: 1.0.4 - name: kube-prometheus repository: https://charts.bitnami.com/bitnami version: 11.3.10 -digest: sha256:59c5c412a14a5ce69cdc7745be5d37603ee0e7748608a586a2b812da4457e60a -generated: "2025-10-01T13:00:11.143106+02:00" +digest: sha256:8bd8d054f0dd6ceadad7052e86248b26f797fde52cb5bacaf15b8aee52f67e09 +generated: "2026-03-19T12:05:14.754127+01:00" diff --git a/go.mod b/go.mod index 8735becd7..5b6a5f170 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.26.0 require ( cloud.google.com/go/bigquery v1.73.1 cloud.google.com/go/storage v1.59.0 - github.com/argoproj/argo-workflows/v3 v3.7.11 + github.com/argoproj/argo-workflows/v4 v4.0.2 github.com/buger/jsonparser v1.1.1 github.com/coreos/go-oidc/v3 v3.17.0 github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32 @@ -155,7 +155,7 @@ require ( go.yaml.in/yaml/v2 v2.4.3 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/crypto v0.49.0 // indirect - golang.org/x/exp v0.0.0-20260112195511-716be5621a96 // indirect + golang.org/x/exp v0.0.0-20260218203240-3dfff04db8fa // indirect golang.org/x/mod v0.33.0 // indirect golang.org/x/sync v0.20.0 // indirect golang.org/x/sys v0.42.0 // indirect @@ -172,7 +172,7 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 // indirect - k8s.io/utils v0.0.0-20260108192941-914a6e750570 // indirect + k8s.io/utils v0.0.0-20260210185600-b8788abfbbc2 // indirect modernc.org/libc v1.65.8 // indirect modernc.org/mathutil v1.7.1 // indirect modernc.org/memory v1.11.0 // indirect diff --git a/go.sum b/go.sum index 37f675112..96b66ff97 100644 --- a/go.sum +++ b/go.sum @@ -47,12 +47,14 @@ github.com/Masterminds/semver/v3 v3.3.1/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lpr github.com/Masterminds/sprig/v3 v3.3.0 h1:mQh0Yrg1XPo6vjYXgtf5OtijNAKJRNcTdOOGZe3tPhs= github.com/Masterminds/sprig/v3 v3.3.0/go.mod h1:Zy1iXRYNqNLUolqCpL4uhk6SHUMAOSCzdgBfDb35Lz0= 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/apache/arrow/go/v15 v15.0.2 h1:60IliRbiyTWCWjERBCkO1W4Qun9svcYoZrSLcyOsMLE= github.com/apache/arrow/go/v15 v15.0.2/go.mod h1:DGXsR3ajT524njufqf95822i+KTh+yea1jass9YXgjA= github.com/argoproj/argo-events v1.9.6 h1:tQTyUmMt0/4UI+9fbXrmK1/h9oalV7KBCC3YgPI7qz0= github.com/argoproj/argo-events v1.9.6/go.mod h1:MkJI9UXTLnLOFX6LKo0rC1tnvWfLFzKkGigsdfu58SA= -github.com/argoproj/argo-workflows/v3 v3.7.11 h1:BJcDlhubri/cPXzFBRsk9m56HkMBY9dyJnEWse//0nU= -github.com/argoproj/argo-workflows/v3 v3.7.11/go.mod h1:/keNJHeSETINZ+6BxmwAUgdFUZS9SSpRXZxosObLmQ0= +github.com/argoproj/argo-workflows/v4 v4.0.2 h1:tmg7iIjnPF9EMtaGi6K6+Sm28J9WyyLUrJ1vdKkNmgc= +github.com/argoproj/argo-workflows/v4 v4.0.2/go.mod h1:rGIADguyqmoD7k9ONXbR+LGSExJmpz+13uiw2sKFphY= github.com/argoproj/pkg v0.13.7-0.20250123033407-65f2d4777bfd h1:lGvauSky5XrqNhzzL078KqR/I+65/KNP5IcXqTEIZ5c= github.com/argoproj/pkg v0.13.7-0.20250123033407-65f2d4777bfd/go.mod h1:UzNnTJT+8Fv5oc1LB2pcgXiUF+n9n+tulbaON2EBgJo= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= @@ -60,6 +62,8 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkY github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= 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= +github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs= github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/cenkalti/backoff/v5 v5.0.2 h1:rIfFVxEf1QsI7E1ZHfp/B4DF/6QBAUhmgkxc0H7Zss8= @@ -151,6 +155,8 @@ github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/cel-go v0.23.2 h1:UdEe3CvQh3Nv+E/j9r1Y//WO0K0cSyD7/y0bzyLIMI4= +github.com/google/cel-go v0.23.2/go.mod h1:52Pb6QsDbC5kvgxvZhiL9QX1oZEkcUF/ZqaPx1J5Wwo= github.com/google/flatbuffers v23.5.26+incompatible h1:M9dgRyhJemaM4Sw8+66GHBu8ioaQmyPLg1b8VwK5WJg= github.com/google/flatbuffers v23.5.26+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/gnostic-models v0.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo= @@ -388,6 +394,8 @@ github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spiffe/go-spiffe/v2 v2.6.0 h1:l+DolpxNWYgruGQVV0xsfeya3CsC7m8iBzDnMpsbLuo= github.com/spiffe/go-spiffe/v2 v2.6.0/go.mod h1:gm2SeUoMZEtpnzPNs2Csc0D/gX33k1xIx7lEzqblHEs= +github.com/stoewer/go-strcase v1.3.0 h1:g0eASXYtp+yvN9fK8sH94oCIk0fau9uV1/ZdJ0AVEzs= +github.com/stoewer/go-strcase v1.3.0/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8wodgtPmh1xo= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -492,8 +500,8 @@ golang.org/x/crypto v0.20.0/go.mod h1:Xwo95rrVNIoSMx9wa1JroENMToLWn3RNVrTBpLHgZP golang.org/x/crypto v0.49.0 h1:+Ng2ULVvLHnJ/ZFEq4KdcDd/cfjrrjjNSXNzxg0Y4U4= golang.org/x/crypto v0.49.0/go.mod h1:ErX4dUh2UM+CFYiXZRTcMpEcN8b/1gxEuv3nODoYtCA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20260112195511-716be5621a96 h1:Z/6YuSHTLOHfNFdb8zVZomZr7cqNgTJvA8+Qz75D8gU= -golang.org/x/exp v0.0.0-20260112195511-716be5621a96/go.mod h1:nzimsREAkjBCIEFtHiYkrJyT+2uy9YZJB7H1k68CXZU= +golang.org/x/exp v0.0.0-20260218203240-3dfff04db8fa h1:Zt3DZoOFFYkKhDT3v7Lm9FDMEV06GpzjG2jrqW+QTE0= +golang.org/x/exp v0.0.0-20260218203240-3dfff04db8fa/go.mod h1:K79w1Vqn7PoiZn+TkNpx3BUWUQksGO3JcVX6qIjytmA= 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= @@ -665,16 +673,22 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= k8s.io/api v0.34.3 h1:D12sTP257/jSH2vHV2EDYrb16bS7ULlHpdNdNhEw2S4= k8s.io/api v0.34.3/go.mod h1:PyVQBF886Q5RSQZOim7DybQjAbVs8g7gwJNhGtY5MBk= +k8s.io/apiextensions-apiserver v0.33.1 h1:N7ccbSlRN6I2QBcXevB73PixX2dQNIW0ZRuguEE91zI= +k8s.io/apiextensions-apiserver v0.33.1/go.mod h1:uNQ52z1A1Gu75QSa+pFK5bcXc4hq7lpOXbweZgi4dqA= k8s.io/apimachinery v0.35.2 h1:NqsM/mmZA7sHW02JZ9RTtk3wInRgbVxL8MPfzSANAK8= k8s.io/apimachinery v0.35.2/go.mod h1:jQCgFZFR1F4Ik7hvr2g84RTJSZegBc8yHgFWKn//hns= +k8s.io/apiserver v0.33.1 h1:yLgLUPDVC6tHbNcw5uE9mo1T6ELhJj7B0geifra3Qdo= +k8s.io/apiserver v0.33.1/go.mod h1:VMbE4ArWYLO01omz+k8hFjAdYfc3GVAYPrhP2tTKccs= k8s.io/client-go v0.34.3 h1:wtYtpzy/OPNYf7WyNBTj3iUA0XaBHVqhv4Iv3tbrF5A= k8s.io/client-go v0.34.3/go.mod h1:OxxeYagaP9Kdf78UrKLa3YZixMCfP6bgPwPwNBQBzpM= +k8s.io/component-base v0.33.1 h1:EoJ0xA+wr77T+G8p6T3l4efT2oNwbqBVKR71E0tBIaI= +k8s.io/component-base v0.33.1/go.mod h1:guT/w/6piyPfTgq7gfvgetyXMIh10zuXA6cRRm3rDuY= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 h1:Y3gxNAuB0OBLImH611+UDZcmKS3g6CthxToOb37KgwE= k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ= -k8s.io/utils v0.0.0-20260108192941-914a6e750570 h1:JT4W8lsdrGENg9W+YwwdLJxklIuKWdRm+BC+xt33FOY= -k8s.io/utils v0.0.0-20260108192941-914a6e750570/go.mod h1:xDxuJ0whA3d0I4mf/C4ppKHxXynQ+fxnkmQH0vTHnuk= +k8s.io/utils v0.0.0-20260210185600-b8788abfbbc2 h1:AZYQSJemyQB5eRxqcPky+/7EdBj0xi3g0ZcxxJ7vbWU= +k8s.io/utils v0.0.0-20260210185600-b8788abfbbc2/go.mod h1:xDxuJ0whA3d0I4mf/C4ppKHxXynQ+fxnkmQH0vTHnuk= modernc.org/cc/v4 v4.26.1 h1:+X5NtzVBn0KgsBCBe+xkDC7twLb/jNVj9FPgiwSQO3s= modernc.org/cc/v4 v4.26.1/go.mod h1:uVtb5OGqUKpoLWhqwNQo/8LwvoiEBLvZXIQ/SmO6mL0= modernc.org/ccgo/v4 v4.28.0 h1:rjznn6WWehKq7dG4JtLRKxb52Ecv8OUGah8+Z/SfpNU= diff --git a/pkg/flavor/registry.go b/pkg/flavor/registry.go index b16763500..c357fd70c 100644 --- a/pkg/flavor/registry.go +++ b/pkg/flavor/registry.go @@ -8,7 +8,7 @@ import ( "os" "sort" - "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1" + "github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1" "github.com/ghodss/yaml" "github.com/golang/protobuf/ptypes/empty" "github.com/pkg/errors" diff --git a/pkg/kube/kube.go b/pkg/kube/kube.go index f9aca7598..e386f8a9d 100644 --- a/pkg/kube/kube.go +++ b/pkg/kube/kube.go @@ -5,8 +5,8 @@ import ( "os" "path/filepath" - "github.com/argoproj/argo-workflows/v3/pkg/client/clientset/versioned" - workflowv1 "github.com/argoproj/argo-workflows/v3/pkg/client/clientset/versioned/typed/workflow/v1alpha1" + "github.com/argoproj/argo-workflows/v4/pkg/client/clientset/versioned" + workflowv1 "github.com/argoproj/argo-workflows/v4/pkg/client/clientset/versioned/typed/workflow/v1alpha1" "k8s.io/client-go/kubernetes" k8sv1 "k8s.io/client-go/kubernetes/typed/core/v1" diff --git a/pkg/service/cluster/cluster.go b/pkg/service/cluster/cluster.go index ecfeda4a8..bd73b6caa 100644 --- a/pkg/service/cluster/cluster.go +++ b/pkg/service/cluster/cluster.go @@ -12,11 +12,11 @@ import ( "sync" "time" - argov3client "github.com/argoproj/argo-workflows/v3/cmd/argo/commands/client" - "github.com/argoproj/argo-workflows/v3/pkg/apiclient" - workflowpkg "github.com/argoproj/argo-workflows/v3/pkg/apiclient/workflow" - "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1" - workflowv1 "github.com/argoproj/argo-workflows/v3/pkg/client/clientset/versioned/typed/workflow/v1alpha1" + argov4client "github.com/argoproj/argo-workflows/v4/cmd/argo/commands/client" + "github.com/argoproj/argo-workflows/v4/pkg/apiclient" + workflowpkg "github.com/argoproj/argo-workflows/v4/pkg/apiclient/workflow" + "github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1" + workflowv1 "github.com/argoproj/argo-workflows/v4/pkg/client/clientset/versioned/typed/workflow/v1alpha1" "github.com/golang/protobuf/ptypes/duration" "github.com/golang/protobuf/ptypes/empty" "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" @@ -104,11 +104,11 @@ func NewClusterService(registry *flavor.Registry, signer *signer.Signer, slackCl return nil, err } - ctx, argoClient, err := argov3client.NewAPIClient(context.Background()) + ctx, argoClient, err := argov4client.NewAPIClient(context.Background()) if err != nil { return nil, err } - argoWorkflowsClient := argoClient.NewWorkflowServiceClient() + argoWorkflowsClient := argoClient.NewWorkflowServiceClient(ctx) if os.Getenv("TEST_MODE") == "true" { log.Log(logging.INFO, "server is running in test mode") diff --git a/pkg/service/cluster/helpers.go b/pkg/service/cluster/helpers.go index d85bc6c30..755252449 100644 --- a/pkg/service/cluster/helpers.go +++ b/pkg/service/cluster/helpers.go @@ -7,7 +7,7 @@ import ( "strings" "time" - "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1" + "github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1" v1 "github.com/stackrox/infra/generated/api/v1" "github.com/stackrox/infra/pkg/logging" "github.com/stackrox/infra/pkg/slack" @@ -206,7 +206,7 @@ func handleArtifactMigration(workflow v1alpha1.Workflow, artifact v1alpha1.Artif } func workflowStatus(workflowStatus v1alpha1.WorkflowStatus) v1.Status { - // https://godoc.org/github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1#WorkflowStatus + // https://godoc.org/github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1#WorkflowStatus switch workflowStatus.Phase { case v1alpha1.WorkflowFailed, v1alpha1.WorkflowError: return v1.Status_FAILED @@ -218,9 +218,9 @@ func workflowStatus(workflowStatus v1alpha1.WorkflowStatus) v1.Status { return v1.Status_CREATING case v1alpha1.WorkflowRunning: - // https://godoc.org/github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1#Nodes + // https://godoc.org/github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1#Nodes for _, node := range workflowStatus.Nodes { - // https://godoc.org/github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1#NodeType + // https://godoc.org/github.com/argoproj/argo-workflows/v4/pkg/apis/workflow/v1alpha1#NodeType switch nodeType := node.Type; nodeType { case v1alpha1.NodeTypePod: if strings.Contains(node.Message, "ImagePullBackOff") {