Skip to content

Commit df623c3

Browse files
committed
makefile integration
1 parent 7c39202 commit df623c3

File tree

2 files changed

+21
-4
lines changed

2 files changed

+21
-4
lines changed

Makefile

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,11 @@ licensecheck:
4343

4444
lint: shellcheck licensecheck
4545
golangci-lint run
46+
cd exp/metric-gen && golangci-lint run
4647

4748
lint-fix:
4849
golangci-lint run --fix -v
50+
cd exp/metric-gen && golangci-lint run --fix -v
4951

5052
doccheck: generate
5153
@echo "- Checking if the generated documentation is up to date..."
@@ -63,12 +65,19 @@ doccheck: generate
6365
build-local:
6466
GOOS=$(OS) GOARCH=$(ARCH) CGO_ENABLED=0 go build -ldflags "-s -w -X ${PKG}/version.Version=${TAG} -X ${PKG}/version.Revision=${GIT_COMMIT} -X ${PKG}/version.Branch=${BRANCH} -X ${PKG}/version.BuildUser=${USER}@${HOST} -X ${PKG}/version.BuildDate=${BUILD_DATE}" -o kube-state-metrics
6567

66-
build: kube-state-metrics
68+
build-metric-gen-local:
69+
cd exp/metric-gen && GOOS=$(OS) GOARCH=$(ARCH) CGO_ENABLED=0 go build -ldflags "-s -w -X ${PKG}/version.Version=${TAG} -X ${PKG}/version.Revision=${GIT_COMMIT} -X ${PKG}/version.Branch=${BRANCH} -X ${PKG}/version.BuildUser=${USER}@${HOST} -X ${PKG}/version.BuildDate=${BUILD_DATE}" -o ../../metric-gen
70+
71+
build: kube-state-metrics metric-gen
6772

6873
kube-state-metrics:
6974
# Need to update git setting to prevent failing builds due to https://github.com/docker-library/golang/issues/452
7075
${DOCKER_CLI} run --rm -v "${PWD}:/go/src/k8s.io/kube-state-metrics" -w /go/src/k8s.io/kube-state-metrics -e GOOS=$(OS) -e GOARCH=$(ARCH) golang:${GO_VERSION} git config --global --add safe.directory "*" && make build-local
7176

77+
metric-gen:
78+
# Need to update git setting to prevent failing builds due to https://github.com/docker-library/golang/issues/452
79+
${DOCKER_CLI} run --rm -v "${PWD}:/go/src/k8s.io/kube-state-metrics" -w /go/src/k8s.io/kube-state-metrics -e GOOS=$(OS) -e GOARCH=$(ARCH) golang:${GO_VERSION} git config --global --add safe.directory "*" && make build-metric-gen-local
80+
7281
test-unit:
7382
GOOS=$(shell uname -s | tr A-Z a-z) GOARCH=$(ARCH) $(TESTENVVAR) go test --race $(FLAGS) $(PKGS)
7483

@@ -114,7 +123,7 @@ push-multi-arch:
114123
${DOCKER_CLI} manifest push --purge $(IMAGE):$(TAG)
115124

116125
clean:
117-
rm -f kube-state-metrics
126+
rm -f kube-state-metrics metric-gen
118127
git clean -Xfd .
119128

120129
e2e:

exp/metric-gen/main.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,15 @@ import (
1919
"fmt"
2020
"os"
2121

22+
"github.com/prometheus/common/version"
2223
"github.com/spf13/pflag"
2324
"sigs.k8s.io/controller-tools/pkg/genall"
2425
"sigs.k8s.io/controller-tools/pkg/genall/help"
2526
prettyhelp "sigs.k8s.io/controller-tools/pkg/genall/help/pretty"
2627
"sigs.k8s.io/controller-tools/pkg/loader"
2728
"sigs.k8s.io/controller-tools/pkg/markers"
2829

30+
"k8s.io/klog/v2"
2931
"k8s.io/kube-state-metrics/v2/exp/metric-gen/generator"
3032
)
3133

@@ -39,9 +41,10 @@ var (
3941
)
4042

4143
func main() {
42-
var whichMarkersFlag bool
44+
var whichMarkersFlag, versionFlag bool
4345

44-
pflag.CommandLine.BoolVarP(&whichMarkersFlag, "which-markers", "w", false, "print out all markers available with the requested generators")
46+
pflag.CommandLine.BoolVarP(&whichMarkersFlag, "which-markers", "w", false, "Print out all markers available with the requested generators.")
47+
pflag.CommandLine.BoolVarP(&versionFlag, "version", "v", false, "Print verison information.")
4548

4649
pflag.Usage = func() {
4750
fmt.Fprintf(os.Stderr, "Usage of %s:\n\n", os.Args[0])
@@ -53,6 +56,11 @@ func main() {
5356

5457
pflag.Parse()
5558

59+
if versionFlag {
60+
fmt.Printf("%s\n", version.Print("metric-gen"))
61+
klog.FlushAndExit(klog.ExitFlushTimeout, 0)
62+
}
63+
5664
// Register the metric generator itself as marker so genall.FromOptions is able to initialize the runtime properly.
5765
// This also registers the markers inside the optionsRegistry so its available to print the marker docs.
5866
metricGenerator := generator.CustomResourceConfigGenerator{}

0 commit comments

Comments
 (0)