Skip to content
Open
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
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/verify-changes.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ jobs:
run: ./.github/scripts/build-packages.sh

- name: Golangci Lint
uses: golangci/golangci-lint-action@55c2c1448f86e01eaae002a5a3a9624417608d84 # v6.5.2
uses: golangci/golangci-lint-action@4afd733a84b1f43292c63897423277bb7f4313a9 # v8
with:
# Patch version isn't needed; https://github.com/golangci/golangci-lint-action?tab=readme-ov-file#internals
version: v1.64.6
version: v2.5.0

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is this change intentional and why is it updated?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yes, intentional. The pkg/apis bump pulls in transitive deps (aks-operator, eks-operator, gke-operator, fleet, lasso, norman) that all require Go 1.25. The previously pinned golangci-lint v1.64.6 was built with Go 1.24 and can't parse Go 1.25 modules
CI was failing with the Go language version (go1.24) used to build golangci-lint is lower than the targeted Go version (1.25.0). v1.x has no Go 1.25 release (the project moved to v2 series). v2.5.0 is built with Go 1.25.1.

@caliskanugur caliskanugur Apr 30, 2026

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.

We want parity between shepherd and rancher/rancher, this PR already covers that parity, could you take a look at it? #536

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Thanks for flagging #536

A few things to consider:
#560 is a focused 5-file bump intentionally kept small to unblock the OIDC PR (#547), which Priya's already reviewed and approved pending the typed-wrangler rewrite that depends on v3.OIDCClientSpec.Scopes. #536 is a larger 408-file change (RKE1 removal) that's been in cross-team review for breaking changes since March, currently using a fork pin for pkg/apis (bhartigautam156/rancher/pkg/apis).

Would it make sense to land #560 as the focused dep bump (no behavior changes outside the bump itself) so OIDC can move forward, then handle the RKE1 removal on its own timeline in #536?

# Skip cache cause: https://github.com/golangci/golangci-lint-action/issues/135
skip-cache: true
96 changes: 57 additions & 39 deletions .golangci.yaml
Original file line number Diff line number Diff line change
@@ -1,41 +1,59 @@
linters:
disable-all: true
enable:
- ineffassign
- goimports
- govet
- misspell
- revive
- unused
- goconst
- forbidigo
- predeclared
linters-settings:
revive:
rules:
- name: confusing-naming
disabled: true
- name: exported
disabled: false
goconst:
min-len: 2
min-occurrences: 10
match-constant: true
ignore-strings: "metadata.+"
forbidigo:
forbid:
- p: ^*\.Sleep.*$
msg: "No sleeps please use the appropriate polls and watch"
- p: ^fmt\.Print.*$
msg: "No format prints, please testing or logrus packages"
version: "2"
run:
tests: false
timeout: 10m
issues:
exclude-dirs:
- pkg/generated/*
- clients/rancher/generated/*
exclude-files:
- ^*\.yaml$
- ^*\.yml$
exclude-generated: strict
linters:
default: none
enable:
- forbidigo
- goconst
- govet
- ineffassign
- misspell
- predeclared
- revive
- unused
settings:
forbidigo:
forbid:
- pattern: ^*\.Sleep.*$
msg: No sleeps please use the appropriate polls and watch
- pattern: ^fmt\.Print.*$
msg: No format prints, please testing or logrus packages
goconst:
match-constant: true
min-len: 2
min-occurrences: 10
ignore-string-values:
- metadata.+
revive:
rules:
- name: confusing-naming
disabled: true
- name: exported
disabled: false
exclusions:
presets:
- comments
- common-false-positives
- legacy
- std-error-handling
paths:
- ^*\.yaml$
- ^*\.yml$
- pkg/generated/*
- clients/rancher/generated/*
- third_party$
- builtin$
- examples$
formatters:
enable:
- goimports
exclusions:
paths:
- ^*\.yaml$
- ^*\.yml$
- pkg/generated/*
- clients/rancher/generated/*
- third_party$
- builtin$
- examples$
136 changes: 68 additions & 68 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
module github.com/rancher/shepherd

go 1.24.0

toolchain go1.24.5
go 1.25.0

replace (
github.com/docker/distribution => github.com/docker/distribution v2.8.2+incompatible // rancher-machine requires a replace is set
k8s.io/api => k8s.io/api v0.34.1
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.34.1
k8s.io/apimachinery => k8s.io/apimachinery v0.34.1
k8s.io/apiserver => k8s.io/apiserver v0.34.1
k8s.io/cli-runtime => k8s.io/cli-runtime v0.34.1
k8s.io/client-go => k8s.io/client-go v0.34.1
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.34.1
k8s.io/kubectl => k8s.io/kubectl v0.34.1
sigs.k8s.io/cluster-api => sigs.k8s.io/cluster-api v1.10.6
k8s.io/api => k8s.io/api v0.35.4
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.35.4
k8s.io/apimachinery => k8s.io/apimachinery v0.35.4
k8s.io/apiserver => k8s.io/apiserver v0.35.4
k8s.io/cli-runtime => k8s.io/cli-runtime v0.35.4
k8s.io/client-go => k8s.io/client-go v0.35.4
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.35.4
k8s.io/kubectl => k8s.io/kubectl v0.35.4
sigs.k8s.io/cluster-api => sigs.k8s.io/cluster-api v1.12.2
)

require (
Expand All @@ -30,31 +28,31 @@ require (
github.com/pkg/errors v0.9.1
github.com/pkg/sftp v1.13.5
github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.52.0
github.com/rancher/aks-operator v1.13.0-rc.4
github.com/rancher/aks-operator v1.14.0-rc.2
github.com/rancher/apiserver v0.7.7
github.com/rancher/eks-operator v1.13.0-rc.4
github.com/rancher/fleet/pkg/apis v0.14.0-rc.1
github.com/rancher/gke-operator v1.13.0-rc.3
github.com/rancher/lasso v0.2.5
github.com/rancher/norman v0.7.1
github.com/rancher/rancher/pkg/apis v0.0.0-20251107181200-efcbd5d43f4e
github.com/rancher/rke v1.8.0-rc.4
github.com/rancher/eks-operator v1.14.0-rc.5
github.com/rancher/fleet/pkg/apis v0.15.0-beta.4
github.com/rancher/gke-operator v1.14.0-rc.3
github.com/rancher/lasso v0.2.7
github.com/rancher/norman v0.9.1
github.com/rancher/rancher/pkg/apis v0.0.0-20260430130736-3f1ff49a72cb
github.com/rancher/rke v1.8.0
github.com/rancher/system-upgrade-controller/pkg/apis v0.0.0-20250930163923-f2c9e60b1078
github.com/rancher/wrangler v1.1.2
github.com/rancher/wrangler/v3 v3.3.1
github.com/sirupsen/logrus v1.9.3
github.com/rancher/wrangler/v3 v3.6.0-rc.1
github.com/sirupsen/logrus v1.9.4
github.com/spf13/cobra v1.10.1
golang.org/x/crypto v0.43.0
golang.org/x/crypto v0.49.0
gopkg.in/yaml.v2 v2.4.0
k8s.io/api v0.34.1
k8s.io/apimachinery v0.34.1
k8s.io/apiserver v0.34.1
k8s.io/cli-runtime v0.34.1
k8s.io/api v0.35.4
k8s.io/apimachinery v0.35.4
k8s.io/apiserver v0.35.4
k8s.io/cli-runtime v0.35.4
k8s.io/client-go v12.0.0+incompatible
k8s.io/kube-aggregator v0.34.1
k8s.io/kube-aggregator v0.35.0
k8s.io/kubectl v0.34.1
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4
sigs.k8s.io/cluster-api v1.10.6
sigs.k8s.io/cluster-api v1.12.2
sigs.k8s.io/yaml v1.6.0
)

Expand Down Expand Up @@ -84,7 +82,7 @@ require (
github.com/docker/docker v20.10.25+incompatible // indirect
github.com/docker/go-connections v0.4.0 // indirect
github.com/docker/go-units v0.5.0 // indirect
github.com/emicklei/go-restful/v3 v3.12.2 // indirect
github.com/emicklei/go-restful/v3 v3.13.0 // indirect
github.com/evanphx/json-patch v5.9.11+incompatible // indirect
github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect
github.com/fatih/camelcase v1.0.0 // indirect
Expand Down Expand Up @@ -121,7 +119,7 @@ require (
github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/moby/spdystream v0.5.0 // indirect
github.com/moby/spdystream v0.5.1 // indirect
github.com/moby/sys/mount v0.2.0 // indirect
github.com/moby/sys/mountinfo v0.7.2 // indirect
github.com/moby/sys/user v0.3.0 // indirect
Expand All @@ -131,65 +129,67 @@ require (
github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
github.com/onsi/gomega v1.39.1 // indirect
github.com/opencontainers/go-digest v1.0.0 // indirect
github.com/opencontainers/image-spec v1.1.1 // indirect
github.com/opencontainers/runc v1.2.1 // indirect
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/prometheus/client_golang v1.22.0 // indirect
github.com/prometheus/client_model v0.6.1 // indirect
github.com/prometheus/common v0.62.0 // indirect
github.com/prometheus/procfs v0.15.1 // indirect
github.com/rancher/ali-operator v1.13.0-rc.2 // indirect
github.com/prometheus/client_golang v1.23.2 // indirect
github.com/prometheus/client_model v0.6.2 // indirect
github.com/prometheus/common v0.66.1 // indirect
github.com/prometheus/procfs v0.16.1 // indirect
github.com/rancher/ali-operator v1.14.0-rc.1 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/shopspring/decimal v1.4.0 // indirect
github.com/smartystreets/goconvey v1.8.1 // indirect
github.com/spf13/cast v1.7.1 // indirect
github.com/spf13/pflag v1.0.9 // indirect
github.com/spf13/cast v1.10.0 // indirect
github.com/spf13/pflag v1.0.10 // indirect
github.com/x448/float16 v0.8.4 // indirect
github.com/xlab/treeprint v1.2.0 // indirect
github.com/zclconf/go-cty v1.14.1 // indirect
go.etcd.io/etcd/api/v3 v3.6.4 // indirect
go.etcd.io/etcd/client/pkg/v3 v3.6.4 // indirect
go.etcd.io/etcd/api/v3 v3.6.6 // indirect
go.etcd.io/etcd/client/pkg/v3 v3.6.6 // indirect
go.etcd.io/etcd/client/v2 v2.305.21 // indirect
go.etcd.io/etcd/client/v3 v3.6.4 // indirect
go.etcd.io/etcd/client/v3 v3.6.6 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/otel v1.37.0 // indirect
go.opentelemetry.io/otel/trace v1.37.0 // indirect
go.opentelemetry.io/otel v1.41.0 // indirect
go.opentelemetry.io/otel/trace v1.41.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
go.yaml.in/yaml/v2 v2.4.2 // indirect
go.uber.org/zap v1.27.1 // indirect
go.yaml.in/yaml/v2 v2.4.3 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
golang.org/x/mod v0.28.0 // indirect
golang.org/x/net v0.46.0 // indirect
golang.org/x/oauth2 v0.32.0 // indirect
golang.org/x/sync v0.17.0 // indirect
golang.org/x/sys v0.37.0 // indirect
golang.org/x/term v0.36.0 // indirect
golang.org/x/text v0.30.0 // indirect
golang.org/x/time v0.13.0 // indirect
golang.org/x/tools v0.37.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20250707201910-8d1bb00bc6a7 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20251002232023-7c0ddcbb5797 // indirect
google.golang.org/grpc v1.75.1 // indirect
google.golang.org/protobuf v1.36.10 // indirect
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
golang.org/x/mod v0.34.0 // indirect
golang.org/x/net v0.52.0 // indirect
golang.org/x/oauth2 v0.35.0 // indirect
golang.org/x/sync v0.20.0 // indirect
golang.org/x/sys v0.42.0 // indirect
golang.org/x/term v0.41.0 // indirect
golang.org/x/text v0.35.0 // indirect
golang.org/x/time v0.14.0 // indirect
golang.org/x/tools v0.43.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20260217215200-42d3e9bedb6d // indirect
google.golang.org/grpc v1.79.1 // indirect
google.golang.org/protobuf v1.36.11 // indirect
gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
k8s.io/apiextensions-apiserver v0.34.1 // indirect
k8s.io/code-generator v0.34.1 // indirect
k8s.io/component-base v0.34.1 // indirect
k8s.io/component-helpers v0.34.1 // indirect
k8s.io/apiextensions-apiserver v0.35.1 // indirect
k8s.io/code-generator v0.35.4 // indirect
k8s.io/component-base v0.35.4 // indirect
k8s.io/component-helpers v0.35.4 // indirect
k8s.io/gengo v0.0.0-20250130153323-76c5745d3511 // indirect
k8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f // indirect
k8s.io/gengo/v2 v2.0.0-20250922181213-ec3ebc5fd46b // indirect
k8s.io/klog/v2 v2.130.1 // indirect
k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect
k8s.io/kubernetes v1.34.1 // indirect
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 // indirect
k8s.io/kubernetes v1.35.0 // indirect
k8s.io/pod-security-admission v0.34.1 // indirect
sigs.k8s.io/cli-utils v0.37.2 // indirect
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
sigs.k8s.io/controller-runtime v0.23.1 // indirect
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect
sigs.k8s.io/kustomize/api v0.20.1 // indirect
sigs.k8s.io/kustomize/kyaml v0.20.1 // indirect
sigs.k8s.io/randfill v1.0.0 // indirect
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
sigs.k8s.io/structured-merge-diff/v6 v6.3.2-0.20260122202528-d9cc6641c482 // indirect
)
Loading
Loading