mirror of
https://gitee.com/rancher/rancher.git
synced 2025-12-06 15:59:37 +08:00
* Use `go tool` for Go-based code generation (#51153) * Add mockgen and controller-gen as go tools * Do not install controller-gen or mockgen * Do not write generate directive * Add README for gotools * Add usage instructions * Add generation for useractivity * Add generation for managementuser/rbac * Add generation for dashboard/chart * Add generation for catalogv2/system * Add generation for management/auth * Remove mockgen for fleetcluster * Add generation for pkg/auth/providers/mocks * Keep Go toolchain in sync * Adjust package to `user`
1.3 KiB
1.3 KiB
Gotools
This directory contains Go-based tools to use with go tool.
Each tool is within its own directory with its own go.mod file to avoid
dependency conflicts.
Managing tools
Using a tool
go tool -modfile <path to modfile> <tool>
For example, to use controller-gen:
go tool -modfile gotools/controller-gen/go.mod controller-gen -h
Add a new tool
From repository root:
TOOLNAME=<tool name>
mkdir -p gotools/"$TOOLNAME"
go mod init -modfile=gotools/"$TOOLNAME"/go.mod github.com/rancher/rancher/gotools/"$TOOLNAME"
go get -tool -modfile=gotools/"$TOOLNAME"/go.mod <module>@<version>
For example, controller-gen was added this way:
TOOLNAME=controller-gen
mkdir -p gotools/"$TOOLNAME"
go mod init -modfile=gotools/"$TOOLNAME"/go.mod github.com/rancher/rancher/gotools/"$TOOLNAME"
go get -tool -modfile=gotools/"$TOOLNAME"/go.mod sigs.k8s.io/controller-tools/cmd/controller-gen@v0.17.1
Update existing tool
From repository root:
TOOLNAME=<tool name>
go get -tool -modfile=gotools/"$TOOLNAME"/go.mod <module>@<new version>
For example, to update controller-gen to v0.17.3:
TOOLNAME=controller-gen
go get -tool -modfile=gotools/"$TOOLNAME"/go.mod sigs.k8s.io/controller-tools/cmd/controller-gen@v0.17.3