7171MANIFESTPATHCRD := manifests/arango-crd$(MANIFESTSUFFIX ) .yaml
7272MANIFESTPATHDEPLOYMENT := manifests/arango-deployment$(MANIFESTSUFFIX ) .yaml
7373MANIFESTPATHDEPLOYMENTREPLICATION := manifests/arango-deployment-replication$(MANIFESTSUFFIX ) .yaml
74+ MANIFESTPATHBACKUP := manifests/arango-backup$(MANIFESTSUFFIX ) .yaml
7475MANIFESTPATHSTORAGE := manifests/arango-storage$(MANIFESTSUFFIX ) .yaml
7576MANIFESTPATHTEST := manifests/arango-test$(MANIFESTSUFFIX ) .yaml
7677ifndef DEPLOYMENTNAMESPACE
@@ -111,7 +112,7 @@ TESTLENGTHOPTIONS := -test.short
111112TESTTIMEOUT := 30m
112113ifeq ($(LONG ) , 1)
113114 TESTLENGTHOPTIONS :=
114- TESTTIMEOUT := 240m
115+ TESTTIMEOUT := 300m
115116endif
116117ifdef VERBOSE
117118 TESTVERBOSEOPTIONS := -v
@@ -151,6 +152,14 @@ allall: all
151152# Tip: Run `eval $(minikube docker-env)` before calling make if you're developing on minikube.
152153#
153154
155+ .PHONY : fmt
156+ fmt :
157+ golangci-lint run --no-config --issues-exit-code=1 --deadline=30m --disable-all --enable=deadcode --enable=gocyclo \
158+ --enable=golint --enable=varcheck --enable=structcheck --enable=maligned --enable=errcheck \
159+ --enable=dupl --enable=ineffassign --enable=interfacer --enable=unconvert --enable=goconst \
160+ --enable=gosec --enable=megacheck --exclude-use-default=false \
161+ $(ROOTDIR ) /pkg/backup/...
162+
154163.PHONY : build
155164build : docker manifests
156165
@@ -182,7 +191,7 @@ update-generated:
182191 " all" \
183192 " github.com/arangodb/kube-arangodb/pkg/generated" \
184193 " github.com/arangodb/kube-arangodb/pkg/apis" \
185- " deployment:v1alpha replication:v1alpha storage:v1alpha" \
194+ " deployment:v1alpha replication:v1alpha storage:v1alpha backup:v1alpha " \
186195 --go-header-file " ./tools/codegen/boilerplate.go.txt" \
187196 $(VERIFYARGS )
188197
@@ -236,7 +245,8 @@ manifests-operator-deployment: helm
236245 @$(HELM_CMD ) \
237246 --set " operator.features.deployment=true" \
238247 --set " operator.features.deploymentReplications=false" \
239- --set " operator.features.storage=false" > " $( MANIFESTPATHDEPLOYMENT) "
248+ --set " operator.features.storage=false" \
249+ --set " operator.features.backup=false" > " $( MANIFESTPATHDEPLOYMENT) "
240250
241251.PHONY : manifests-operator-deployment-replication
242252manifests-operator-deployment-replication : export CHART_NAME := kube-arangodb
@@ -246,7 +256,8 @@ manifests-operator-deployment-replication: helm
246256 @$(HELM_CMD ) \
247257 --set " operator.features.deployment=false" \
248258 --set " operator.features.deploymentReplications=true" \
249- --set " operator.features.storage=false" > " $( MANIFESTPATHDEPLOYMENTREPLICATION) "
259+ --set " operator.features.storage=false" \
260+ --set " operator.features.backup=false" > " $( MANIFESTPATHDEPLOYMENTREPLICATION) "
250261
251262.PHONY : manifests-operator-storage
252263manifests-operator-storage : export CHART_NAME := kube-arangodb
@@ -256,10 +267,22 @@ manifests-operator-storage: helm
256267 @$(HELM_CMD ) \
257268 --set " operator.features.deployment=false" \
258269 --set " operator.features.deploymentReplications=false" \
259- --set " operator.features.storage=true" > " $( MANIFESTPATHSTORAGE) "
270+ --set " operator.features.storage=true" \
271+ --set " operator.features.backup=false" > " $( MANIFESTPATHSTORAGE) "
272+
273+ .PHONY : manifests-operator-backup
274+ manifests-operator-backup : export CHART_NAME := kube-arangodb
275+ manifests-operator-backup : export NAME := backup
276+ manifests-operator-backup : helm
277+ @echo Building manifests for Operator Backup - $(MANIFESTPATHBACKUP )
278+ @$(HELM_CMD ) \
279+ --set " operator.features.deployment=false" \
280+ --set " operator.features.deploymentReplications=false" \
281+ --set " operator.features.storage=false" \
282+ --set " operator.features.backup=true" > " $( MANIFESTPATHBACKUP) "
260283
261284.PHONY : manifests-operator
262- manifests-operator : manifests-operator-deployment manifests-operator-deployment-replication manifests-operator-storage
285+ manifests-operator : manifests-operator-deployment manifests-operator-deployment-replication manifests-operator-storage manifests-operator-backup
263286
264287.PHONY : chart-crd
265288chart-crd : export CHART_NAME := kube-arangodb-crd
@@ -281,6 +304,7 @@ manifests: helm manifests-crd manifests-operator manifests-test chart-crd chart-
281304.PHONY : run-unit-tests
282305run-unit-tests : $(SOURCES )
283306 go test $(TESTVERBOSEOPTIONS ) \
307+ $(REPOPATH ) /pkg/apis/backup/v1alpha \
284308 $(REPOPATH ) /pkg/apis/deployment/v1alpha \
285309 $(REPOPATH ) /pkg/apis/replication/v1alpha \
286310 $(REPOPATH ) /pkg/apis/storage/v1alpha \
@@ -290,7 +314,8 @@ run-unit-tests: $(SOURCES)
290314 $(REPOPATH ) /pkg/util/k8sutil \
291315 $(REPOPATH ) /pkg/util/k8sutil/test \
292316 $(REPOPATH ) /pkg/util/probe \
293- $(REPOPATH ) /pkg/util/validation
317+ $(REPOPATH ) /pkg/util/validation \
318+ $(REPOPATH ) /pkg/backup/...
294319
295320$(TESTBIN ) : $(GOBUILDDIR ) $(SOURCES )
296321 @mkdir -p $(BINDIR )
@@ -318,9 +343,11 @@ endif
318343 kubectl apply -f $(MANIFESTPATHSTORAGE)
319344 kubectl apply -f $(MANIFESTPATHDEPLOYMENT)
320345 kubectl apply -f $(MANIFESTPATHDEPLOYMENTREPLICATION)
346+ kubectl apply -f $(MANIFESTPATHBACKUP)
321347 kubectl apply -f $(MANIFESTPATHTEST)
322348 $(ROOTDIR)/scripts/kube_create_storage.sh $(DEPLOYMENTNAMESPACE)
323349 $(ROOTDIR)/scripts/kube_create_license_key_secret.sh "$(DEPLOYMENTNAMESPACE)" '$(ENTERPRISELICENSE)'
350+ $(ROOTDIR)/scripts/kube_create_backup_remote_secret.sh "$(DEPLOYMENTNAMESPACE)" '$(TEST_REMOTE_SECRET)'
324351
325352.PHONY : run-tests
326353run-tests : docker-test
@@ -336,10 +363,12 @@ endif
336363 kubectl apply -f $(MANIFESTPATHSTORAGE)
337364 kubectl apply -f $(MANIFESTPATHDEPLOYMENT)
338365 kubectl apply -f $(MANIFESTPATHDEPLOYMENTREPLICATION)
366+ kubectl apply -f $(MANIFESTPATHBACKUP)
339367 kubectl apply -f $(MANIFESTPATHTEST)
340368 $(ROOTDIR)/scripts/kube_create_storage.sh $(DEPLOYMENTNAMESPACE)
341369 $(ROOTDIR)/scripts/kube_create_license_key_secret.sh "$(DEPLOYMENTNAMESPACE)" '$(ENTERPRISELICENSE)'
342- $(ROOTDIR)/scripts/kube_run_tests.sh $(DEPLOYMENTNAMESPACE) $(TESTIMAGE) "$(ARANGODIMAGE)" '$(ENTERPRISEIMAGE)' '$(TESTTIMEOUT)' '$(TESTLENGTHOPTIONS)' '$(TESTOPTIONS)'
370+ $(ROOTDIR)/scripts/kube_create_backup_remote_secret.sh "$(DEPLOYMENTNAMESPACE)" '$(TEST_REMOTE_SECRET)'
371+ $(ROOTDIR)/scripts/kube_run_tests.sh $(DEPLOYMENTNAMESPACE) $(TESTIMAGE) "$(ARANGODIMAGE)" '$(ENTERPRISEIMAGE)' '$(TESTTIMEOUT)' '$(TESTLENGTHOPTIONS)' '$(TESTOPTIONS)' '$(TEST_REMOTE_REPOSITORY)'
343372
344373$(DURATIONTESTBIN ) : $(SOURCES )
345374 CGO_ENABLED=0 go build -installsuffix cgo -ldflags " -X main.projectVersion=$( VERSION) -X main.projectBuild=$( COMMIT) " -o $(DURATIONTESTBINNAME ) $(REPOPATH ) /tests/duration
@@ -430,6 +459,7 @@ delete-operator:
430459 kubectl delete -f $(MANIFESTPATHTEST ) --ignore-not-found
431460 kubectl delete -f $(MANIFESTPATHDEPLOYMENT ) --ignore-not-found
432461 kubectl delete -f $(MANIFESTPATHDEPLOYMENTREPLICATION ) --ignore-not-found
462+ kubectl delete -f $(MANIFESTPATHBACKUP ) --ignore-not-found
433463 kubectl delete -f $(MANIFESTPATHSTORAGE ) --ignore-not-found
434464 kubectl delete -f $(MANIFESTPATHCRD ) --ignore-not-found
435465
@@ -439,6 +469,7 @@ redeploy-operator: delete-operator manifests
439469 kubectl apply -f $(MANIFESTPATHSTORAGE )
440470 kubectl apply -f $(MANIFESTPATHDEPLOYMENT )
441471 kubectl apply -f $(MANIFESTPATHDEPLOYMENTREPLICATION )
472+ kubectl apply -f $(MANIFESTPATHBACKUP )
442473 kubectl apply -f $(MANIFESTPATHTEST )
443474 kubectl get pods
444475
0 commit comments