@@ -27,16 +27,31 @@ PULSAR := $(GOBUILDDIR)/bin/pulsar$(shell go env GOEXE)
27
27
ifndef DOCKERNAMESPACE
28
28
DOCKERNAMESPACE := arangodb
29
29
endif
30
- ifndef DOCKERFILE
31
- DOCKERFILE := Dockerfile
32
- # DOCKERFILE := Dockerfile.debug
30
+ DOCKERFILE := Dockerfile
31
+ DOCKERTESTFILE := Dockerfile.test
32
+
33
+ ifdef IMAGETAG
34
+ IMAGESUFFIX := ":$(IMAGETAG)"
35
+ endif
36
+
37
+ ifndef OPERATORIMAGE
38
+ OPERATORIMAGE := $(DOCKERNAMESPACE)/arangodb-operator$(IMAGESUFFIX)
39
+ endif
40
+ ifndef TESTIMAGE
41
+ TESTIMAGE := $(DOCKERNAMESPACE)/arangodb-operator-test$(IMAGESUFFIX)
33
42
endif
34
43
35
44
BINNAME := $(PROJECT )
36
45
BIN := $(BINDIR ) /$(BINNAME )
46
+ TESTBINNAME := $(PROJECT ) _test
47
+ TESTBIN := $(BINDIR ) /$(TESTBINNAME )
37
48
RELEASE := $(GOBUILDDIR ) /bin/release
38
49
GHRELEASE := $(GOBUILDDIR ) /bin/github-release
39
50
51
+ ifndef TESTNAMESPACE
52
+ TESTNAMESPACE := arangodb-operator-tests
53
+ endif
54
+
40
55
SOURCES := $(shell find $(SRCDIR ) -name '* .go' -not -path './test/* ')
41
56
42
57
.PHONY : all clean deps docker update-vendor update-generated verify-generated
@@ -77,6 +92,7 @@ update-vendor:
77
92
k8s.io/client-go/... \
78
93
k8s.io/gengo/args \
79
94
k8s.io/apiextensions-apiserver \
95
+ github.com/arangodb/go-driver \
80
96
github.com/cenkalti/backoff \
81
97
github.com/dchest/uniuri \
82
98
github.com/dgrijalva/jwt-go \
@@ -122,11 +138,43 @@ $(BIN): $(GOBUILDDIR) $(SOURCES)
122
138
go build -installsuffix cgo -ldflags " -X main.projectVersion=$( VERSION) -X main.projectBuild=$( COMMIT) " -o /usr/code/bin/$(BINNAME ) $(REPOPATH )
123
139
124
140
docker : $(BIN )
125
- docker build -f $(DOCKERFILE ) -t arangodb/arangodb-operator .
141
+ docker build -f $(DOCKERFILE ) -t $(OPERATORIMAGE ) .
142
+
143
+ # Testing
144
+
145
+ $(TESTBIN ) : $(GOBUILDDIR ) $(SOURCES )
146
+ @mkdir -p $(BINDIR )
147
+ docker run \
148
+ --rm \
149
+ -v $(SRCDIR ) :/usr/code \
150
+ -e GOPATH=/usr/code/.gobuild \
151
+ -e GOOS=linux \
152
+ -e GOARCH=amd64 \
153
+ -e CGO_ENABLED=0 \
154
+ -w /usr/code/ \
155
+ golang:$(GOVERSION ) \
156
+ go test -c -installsuffix cgo -ldflags " -X main.projectVersion=$( VERSION) -X main.projectBuild=$( COMMIT) " -o /usr/code/bin/$(TESTBINNAME ) $(REPOPATH ) /tests
157
+
158
+ docker-test : $(TESTBIN )
159
+ docker build --quiet -f $(DOCKERTESTFILE ) -t $(TESTIMAGE ) .
160
+
161
+ run-tests : docker-test
162
+ ifdef PUSHIMAGES
163
+ docker push $(OPERATORIMAGE)
164
+ docker push $(TESTIMAGE)
165
+ endif
166
+ $(ROOTDIR)/scripts/kube_delete_namespace.sh $(TESTNAMESPACE)
167
+ kubectl create namespace $(TESTNAMESPACE)
168
+ $(ROOTDIR)/examples/setup-rbac.sh --namespace=$(TESTNAMESPACE)
169
+ $(ROOTDIR)/scripts/kube_create_operator.sh $(TESTNAMESPACE) $(OPERATORIMAGE)
170
+ kubectl --namespace $(TESTNAMESPACE) run arangodb-operator-test -i --rm --quiet --restart=Never --image=$(TESTIMAGE) --env="TEST_NAMESPACE=$(TESTNAMESPACE)" -- -test.v
171
+ kubectl delete namespace $(TESTNAMESPACE) --ignore-not-found --now
172
+
173
+ # Release building
126
174
127
175
docker-push : docker
128
176
ifneq ($(DOCKERNAMESPACE ) , arangodb)
129
- docker tag arangodb/arangodb-operator $(DOCKERNAMESPACE)/arangodb-operator
177
+ docker tag $(OPERATORIMAGE) $(DOCKERNAMESPACE)/arangodb-operator
130
178
endif
131
179
docker push $(DOCKERNAMESPACE)/arangodb-operator
132
180
@@ -161,7 +209,7 @@ minikube-start:
161
209
minikube start --cpus=4 --memory=6144
162
210
163
211
delete-operator :
164
- kubectl delete -f examples/deployment.yaml || true
212
+ kubectl delete -f examples/deployment.yaml --ignore-not-found
165
213
166
214
redeploy-operator : delete-operator
167
215
kubectl create -f examples/deployment.yaml
0 commit comments