From a9a0a702301155837bccd3b3d9df0939215e150b Mon Sep 17 00:00:00 2001 From: Miguel Elias dos Santos Date: Fri, 10 Jan 2025 14:06:46 +1100 Subject: [PATCH] Make kubebuilder go install-able Signed-off-by: Miguel Elias dos Santos --- Makefile | 12 ++++++------ build/.goreleaser.yml | 13 ++++++------- cmd/{main.go => cmd.go} | 4 ++-- cmd/version.go | 2 +- doc.go | 2 +- main.go | 7 +++++++ 6 files changed, 23 insertions(+), 17 deletions(-) rename cmd/{main.go => cmd.go} (98%) create mode 100644 main.go diff --git a/Makefile b/Makefile index 0604fc547ff..2345f5e155f 100644 --- a/Makefile +++ b/Makefile @@ -46,15 +46,15 @@ help: ## Display this help ##@ Build LD_FLAGS=-ldflags " \ - -X main.kubeBuilderVersion=$(shell git describe --tags --dirty --broken) \ - -X main.goos=$(shell go env GOOS) \ - -X main.goarch=$(shell go env GOARCH) \ - -X main.gitCommit=$(shell git rev-parse HEAD) \ - -X main.buildDate=$(shell date -u +'%Y-%m-%dT%H:%M:%SZ') \ + -X cmd.kubeBuilderVersion=$(shell git describe --tags --dirty --broken) \ + -X cmd.goos=$(shell go env GOOS) \ + -X cmd.goarch=$(shell go env GOARCH) \ + -X cmd.gitCommit=$(shell git rev-parse HEAD) \ + -X cmd.buildDate=$(shell date -u +'%Y-%m-%dT%H:%M:%SZ') \ " .PHONY: build build: ## Build the project locally - go build $(LD_FLAGS) -o bin/kubebuilder ./cmd + go build $(LD_FLAGS) -o bin/kubebuilder .PHONY: install install: build ## Build and install the binary with the current source code. Use it to test your changes locally. diff --git a/build/.goreleaser.yml b/build/.goreleaser.yml index 1de47042b54..a69dbb160fd 100644 --- a/build/.goreleaser.yml +++ b/build/.goreleaser.yml @@ -29,16 +29,15 @@ before: # Build a binary for each target in targets. builds: - id: kubebuilder - main: ./cmd binary: kubebuilder mod_timestamp: "{{ .CommitTimestamp }}" ldflags: - - -X main.kubeBuilderVersion={{ .Version }} - - -X main.goos={{ .Os }} - - -X main.goarch={{ .Arch }} - - -X main.gitCommit={{ .Commit }} - - -X main.buildDate={{ .Date }} - - -X main.kubernetesVendorVersion={{ .Env.KUBERNETES_VERSION }} + - -X cmd.kubeBuilderVersion={{ .Version }} + - -X cmd.goos={{ .Os }} + - -X cmd.goarch={{ .Arch }} + - -X cmd.gitCommit={{ .Commit }} + - -X cmd.buildDate={{ .Date }} + - -X cmd.kubernetesVendorVersion={{ .Env.KUBERNETES_VERSION }} targets: - linux_amd64 - linux_arm64 diff --git a/cmd/main.go b/cmd/cmd.go similarity index 98% rename from cmd/main.go rename to cmd/cmd.go index 35e9db150aa..51794956557 100644 --- a/cmd/main.go +++ b/cmd/cmd.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package main +package cmd import ( "github.com/sirupsen/logrus" @@ -36,7 +36,7 @@ func init() { logrus.SetFormatter(&logrus.TextFormatter{DisableTimestamp: true}) } -func main() { +func Run() { // Bundle plugin which built the golang projects scaffold with base.go/v4 and kustomize/v2 plugins gov4Bundle, _ := plugin.NewBundleWithOptions(plugin.WithName(golang.DefaultNameQualifier), plugin.WithVersion(plugin.Version{Number: 4}), diff --git a/cmd/version.go b/cmd/version.go index 7c37c5f2bcd..2f511d7ea05 100644 --- a/cmd/version.go +++ b/cmd/version.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package main +package cmd import ( "fmt" diff --git a/doc.go b/doc.go index f9a0cc4d13f..75b41e45926 100644 --- a/doc.go +++ b/doc.go @@ -18,4 +18,4 @@ limitations under the License. // Package kubebuilder contains pkged files compiled into the // go binaries. -package kubebuilder +package main diff --git a/main.go b/main.go new file mode 100644 index 00000000000..55d9b82e3f5 --- /dev/null +++ b/main.go @@ -0,0 +1,7 @@ +package main + +import "sigs.k8s.io/kubebuilder/v4/cmd" + +func main() { + cmd.Run() +}