@@ -16,7 +16,7 @@ BUNDLE_METADATA_OPTS ?= $(BUNDLE_CHANNELS) $(BUNDLE_DEFAULT_CHANNEL)
16
16
# Image URL to use all building/pushing image targets
17
17
IMG ?= stakater/slack-operator:v$(VERSION )
18
18
# Produce CRDs that work back to Kubernetes 1.11 (no version conversion)
19
- CRD_OPTIONS ?= "crd:trivialVersions=true"
19
+ CRD_OPTIONS ?= "crd:trivialVersions=true,crdVersions=v1,preserveUnknownFields=false "
20
20
21
21
# GOLANGCI_LINT env
22
22
GOLANGCI_LINT = _output/tools/golangci-lint
32
32
33
33
all : manager
34
34
35
- # Run tests
36
- test : generate fmt vet manifests
37
- go test ./... -coverprofile cover.out
35
+
36
+ ENVTEST_ASSETS_DIR =$(shell pwd) /testbin
37
+ test : manifests generate fmt vet # # Run tests.
38
+ mkdir -p ${ENVTEST_ASSETS_DIR}
39
+ test -f ${ENVTEST_ASSETS_DIR} /setup-envtest.sh || curl -sSLo ${ENVTEST_ASSETS_DIR} /setup-envtest.sh https://raw.githubusercontent.com/kubernetes-sigs/controller-runtime/v0.7.2/hack/setup-envtest.sh
40
+ source ${ENVTEST_ASSETS_DIR} /setup-envtest.sh; fetch_envtest_tools $(ENVTEST_ASSETS_DIR ) ; setup_envtest_env $(ENVTEST_ASSETS_DIR ) ; go test ./... -coverprofile cover.out
41
+
38
42
39
43
# Build manager binary
40
44
manager : generate fmt vet
@@ -75,43 +79,36 @@ generate: controller-gen
75
79
76
80
# Build the docker image
77
81
docker-build : test
78
- docker build . -t ${IMG}
82
+ docker build -t ${IMG} .
79
83
80
84
# Push the docker image
81
85
docker-push :
82
86
docker push ${IMG}
83
87
84
88
# find or download controller-gen
85
89
# download controller-gen if necessary
86
- controller-gen :
87
- ifeq (, $(shell which controller-gen) )
88
- @{ \
89
- set -e ;\
90
- CONTROLLER_GEN_TMP_DIR=$$(mktemp -d) ;\
91
- cd $$CONTROLLER_GEN_TMP_DIR ;\
92
- go mod init tmp ;\
93
- go get sigs.k8s.io/controller-tools/cmd/
[email protected] ;\
94
- rm -rf $$CONTROLLER_GEN_TMP_DIR ;\
95
- }
96
- CONTROLLER_GEN =$(GOBIN ) /controller-gen
97
- else
98
- CONTROLLER_GEN =$(shell which controller-gen)
99
- endif
100
90
101
- kustomize :
102
- ifeq (, $(shell which kustomize) )
103
- @{ \
104
- set -e ;\
105
- KUSTOMIZE_GEN_TMP_DIR=$$(mktemp -d) ;\
106
- cd $$KUSTOMIZE_GEN_TMP_DIR ;\
107
- go mod init tmp ;\
108
- go get sigs.k8s.io/kustomize/kustomize/
[email protected] ;\
109
- rm -rf $$KUSTOMIZE_GEN_TMP_DIR ;\
110
- }
111
- KUSTOMIZE =$(GOBIN ) /kustomize
112
- else
113
- KUSTOMIZE =$(shell which kustomize)
114
- endif
91
+ CONTROLLER_GEN = $(shell pwd) /bin/controller-gen
92
+ controller-gen : # # Download controller-gen locally if necessary.
93
+ $(call go-get-tool,$(CONTROLLER_GEN ) ,sigs.k8s.io/controller-tools/cmd/[email protected] )
94
+
95
+ KUSTOMIZE = $(shell pwd) /bin/kustomize
96
+ kustomize : # # Download kustomize locally if necessary.
97
+ $(call go-get-tool,$(KUSTOMIZE ) ,sigs.k8s.io/kustomize/kustomize/[email protected] )
98
+
99
+ # go-get-tool will 'go get' any package $2 and install it to $1.
100
+ PROJECT_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST ) ) ) )
101
+ define go-get-tool
102
+ @[ -f $(1 ) ] || { \
103
+ set -e ;\
104
+ TMP_DIR=$$(mktemp -d ) ;\
105
+ cd $$TMP_DIR ;\
106
+ go mod init tmp ;\
107
+ echo "Downloading $(2 ) " ;\
108
+ GOBIN=$(PROJECT_DIR ) /bin go get $(2 ) ;\
109
+ rm -rf $$TMP_DIR ;\
110
+ }
111
+ endef
115
112
116
113
# Generate bundle manifests and metadata, then validate generated files.
117
114
.PHONY : bundle
0 commit comments