Skip to content

Commit 457a376

Browse files
authored
Merge pull request #325 from IlyaAlexin/controller-gen-update
Controller gen update
2 parents 585c609 + 6bcd921 commit 457a376

File tree

5 files changed

+160
-33
lines changed

5 files changed

+160
-33
lines changed

Makefile

Lines changed: 12 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ list: ## list Makefile targets
1111
@echo "The most used targets: \n"
1212
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
1313

14-
unit-tests: generate fmt vet manifests ## Run unit tests
14+
unit-tests: install-tools generate fmt vet manifests ## Run unit tests
1515
ginkgo -r api/ internal/
1616

17-
integration-tests: generate fmt vet manifests ## Run integration tests
17+
integration-tests: install-tools generate fmt vet manifests ## Run integration tests
1818
ginkgo -r controllers/
1919

20-
manifests: controller-gen ## Generate manifests e.g. CRD, RBAC etc.
21-
$(CONTROLLER_GEN) $(CRD_OPTIONS) rbac:roleName=operator-role paths="./api/...;./controllers/..." output:crd:artifacts:config=config/crd/bases
20+
manifests: install-tools ## Generate manifests e.g. CRD, RBAC etc.
21+
controller-gen $(CRD_OPTIONS) rbac:roleName=operator-role paths="./api/...;./controllers/..." output:crd:artifacts:config=config/crd/bases
2222
./hack/add-notice-to-yaml.sh config/rbac/role.yaml
2323
# this is temporary workaround due to issue https://github.com/kubernetes/kubernetes/issues/91395
2424
# the hack ensures that "protocal" is a required value where this field is listed as x-kubernetes-list-map-keys
@@ -35,9 +35,9 @@ vet:
3535
go vet ./...
3636

3737
# Generate code
38-
generate: controller-gen
39-
$(CONTROLLER_GEN) object:headerFile=./hack/NOTICE.go.txt paths=./api/...
40-
$(CONTROLLER_GEN) object:headerFile=./hack/NOTICE.go.txt paths=./internal/status/...
38+
generate: install-tools
39+
controller-gen object:headerFile=./hack/NOTICE.go.txt paths=./api/...
40+
controller-gen object:headerFile=./hack/NOTICE.go.txt paths=./internal/status/...
4141

4242
# Build manager binary
4343
manager: generate fmt vet
@@ -68,7 +68,7 @@ just-run: ## Just runs 'go run main.go' without regenerating any manifests or de
6868

6969
delve: generate install deploy-namespace-rbac just-delve ## Deploys CRD, Namespace, RBACs and starts Delve debugger
7070

71-
just-delve: ## Just starts Delve debugger
71+
just-delve: install-tools ## Just starts Delve debugger
7272
KUBE_CONFIG=${HOME}/.kube/config OPERATOR_NAMESPACE=rabbitmq-system dlv debug
7373

7474
# Install CRDs into a cluster
@@ -127,31 +127,17 @@ kind-unprepare: ## Remove KIND support for LoadBalancer services
127127
@kubectl delete -f https://raw.githubusercontent.com/metallb/metallb/v0.9.3/manifests/metallb.yaml
128128
@kubectl delete -f https://raw.githubusercontent.com/metallb/metallb/v0.9.3/manifests/namespace.yaml
129129

130-
system-tests: ## run end-to-end tests against Kubernetes cluster defined in ~/.kube/config
130+
system-tests: install-tools ## run end-to-end tests against Kubernetes cluster defined in ~/.kube/config
131131
NAMESPACE="rabbitmq-system" ginkgo -nodes=3 -randomizeAllSpecs -r system_tests/
132132

133133
docker-registry-secret: check-env-docker-credentials operator-namespace
134134
echo "creating registry secret and patching default service account"
135135
@kubectl -n $(K8S_OPERATOR_NAMESPACE) create secret docker-registry $(DOCKER_REGISTRY_SECRET) --docker-server='$(DOCKER_REGISTRY_SERVER)' --docker-username="$$DOCKER_REGISTRY_USERNAME" --docker-password="$$DOCKER_REGISTRY_PASSWORD" || true
136136
@kubectl -n $(K8S_OPERATOR_NAMESPACE) patch serviceaccount rabbitmq-cluster-operator -p '{"imagePullSecrets": [{"name": "$(DOCKER_REGISTRY_SECRET)"}]}'
137137

138-
controller-gen: ## download controller-gen if not in $PATH
139-
ifeq (, $(shell which controller-gen))
140-
@{ \
141-
set -e ;\
142-
CONTROLLER_GEN_TMP_DIR=$$(mktemp -d) ;\
143-
cd $$CONTROLLER_GEN_TMP_DIR ;\
144-
go mod init tmp ;\
145-
go get sigs.k8s.io/controller-tools/cmd/[email protected] ;\
146-
rm -rf $$CONTROLLER_GEN_TMP_DIR ;\
147-
}
148-
ifeq (, $(GOBIN))
149-
GOBIN=$(GOPATH)/bin
150-
endif
151-
CONTROLLER_GEN=$(GOBIN)/controller-gen
152-
else
153-
CONTROLLER_GEN=$(shell which controller-gen)
154-
endif
138+
install-tools:
139+
go mod download
140+
grep _ tools/tools.go | awk -F '"' '{print $$2}' | xargs -t go install
155141

156142
operator-namespace:
157143
ifeq (, $(K8S_OPERATOR_NAMESPACE))

config/crd/bases/rabbitmq.com_rabbitmqclusters.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ apiVersion: apiextensions.k8s.io/v1
1010
kind: CustomResourceDefinition
1111
metadata:
1212
annotations:
13-
controller-gen.kubebuilder.io/version: v0.2.5
13+
controller-gen.kubebuilder.io/version: v0.4.0
1414
creationTimestamp: null
1515
name: rabbitmqclusters.rabbitmq.com
1616
spec:

go.mod

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,19 @@ require (
99
github.com/cespare/xxhash/v2 v2.1.1 // indirect
1010
github.com/cloudflare/cfssl v1.4.1
1111
github.com/eclipse/paho.mqtt.golang v1.2.0
12+
github.com/go-delve/delve v1.5.0
1213
github.com/go-logr/logr v0.1.0
1314
github.com/go-logr/zapr v0.1.1 // indirect
1415
github.com/go-stomp/stomp v2.0.6+incompatible
1516
github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9 // indirect
1617
github.com/gophercloud/gophercloud v0.5.0 // indirect
18+
github.com/mattn/go-colorable v0.1.4 // indirect
1719
github.com/onsi/ginkgo v1.14.1
1820
github.com/onsi/gomega v1.10.2
1921
github.com/prometheus/client_golang v1.2.1 // indirect
2022
github.com/smartystreets/goconvey v1.6.4 // indirect
2123
github.com/streadway/amqp v0.0.0-20200108173154-1c71cc93ed71
24+
go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect
2225
go.uber.org/multierr v1.2.0 // indirect
2326
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7
2427
golang.org/x/oauth2 v0.0.0-20191122200657-5d9234df094c // indirect
@@ -30,4 +33,6 @@ require (
3033
k8s.io/client-go v0.18.6
3134
k8s.io/utils v0.0.0-20200603063816-c1c6865ac451
3235
sigs.k8s.io/controller-runtime v0.6.2
36+
sigs.k8s.io/controller-tools v0.4.0
37+
sigs.k8s.io/kind v0.8.1
3338
)

0 commit comments

Comments
 (0)