Skip to content

Commit 8e146ce

Browse files
authored
Merge branch 'master' into cluster-scope
2 parents 85b94d2 + 4254057 commit 8e146ce

File tree

202 files changed

+9191
-2830
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

202 files changed

+9191
-2830
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ logs
66
vendor/
77
.idea/
88
deps/
9-
.vscode/
9+
.vscode/
10+
**/*.enterprise.go

CHANGELOG.md

+40
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,46 @@
11
# Change Log
22

33
## [master](https://github.com/arangodb/kube-arangodb/tree/master) (N/A)
4+
- Replace `beta.kubernetes.io/arch` Pod label with `kubernetes.io/arch` using Silent Rotation
5+
- Add "Short Names" feature
6+
- Switch ArangoDB Image Discovery process from Headless Service to Pod IP
7+
- Fix PVC Resize for Single servers
8+
- Add Topology support
9+
10+
## [1.2.3](https://github.com/arangodb/kube-arangodb/tree/1.2.3) (2021-09-24)
11+
- Update UBI Image to 8.4
12+
- Fix ArangoSync Liveness Probe
13+
- Allow runtime update of Sidecar images
14+
- Allow Agent recreation with preserved IDs
15+
- The internal metrics exporter can not be disabled
16+
- Changing the topics' log level without restarting the container.
17+
When the topic is removed from the argument list then it will not
18+
be turned off in the ArangoDB automatically.
19+
- Allow to customize SchedulerName inside Member Pod
20+
- Add Enterprise Edition support
21+
22+
## [1.2.2](https://github.com/arangodb/kube-arangodb/tree/1.2.2) (2021-09-09)
23+
- Update 'github.com/arangodb/arangosync-client' dependency to v0.7.0
24+
- Add HighPriorityPlan to ArangoDeployment Status
25+
- Add Pending Member phase
26+
- Add Ephemeral Volumes for apps feature
27+
- Check if the DB server is cleaned out.
28+
- Render Pod Template in ArangoMember Spec and Status
29+
- Add Pod PropagationModes
30+
- Fix MemberUp action for ActiveFailover
31+
32+
## [1.2.1](https://github.com/arangodb/kube-arangodb/tree/1.2.1) (2021-07-28)
33+
- Fix ArangoMember race with multiple ArangoDeployments within single namespace
34+
- Allow to define Member Recreation Policy within group
35+
- Replace 'github.com/dgrijalva/jwt-go' with 'github.com/golang-jwt/jwt'
36+
- Update 'github.com/gin-gonic/gin' dependency to v1.7.2
37+
38+
## [1.2.0](https://github.com/arangodb/kube-arangodb/tree/1.2.0) (2021-07-16)
39+
- Enable "Operator Internal Metrics Exporter" by default
40+
- Enable "Operator Maintenance Management Support" by default
41+
- Add Operator `/api/v1/version` endpoint
42+
43+
## [1.1.10](https://github.com/arangodb/kube-arangodb/tree/1.1.10) (2021-07-06)
444
- Switch K8S CRD API to V1
545
- Deprecate Alpine image usage
646
- Use persistent name and namespace in ArangoDeployment reconcilation loop

Dockerfile.ubi

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
ARG IMAGE=registry.access.redhat.com/ubi8/ubi-minimal:8.0
1+
ARG IMAGE=registry.access.redhat.com/ubi8/ubi-minimal:8.4
22
FROM ${IMAGE}
33

44
RUN microdnf update && microdnf clean all

Makefile

+33-55
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@ VERSION_MAJOR_MINOR := $(shell echo $(VERSION_MAJOR_MINOR_PATCH) | cut -f 1,2 -d
1010
VERSION_MAJOR := $(shell echo $(VERSION_MAJOR_MINOR) | cut -f 1 -d '.')
1111
COMMIT := $(shell git rev-parse --short HEAD)
1212
DOCKERCLI := $(shell which docker)
13+
RELEASE_MODE ?= community
1314

1415
GOBUILDDIR := $(SCRIPTDIR)/.gobuild
1516
SRCDIR := $(SCRIPTDIR)
1617
CACHEVOL := $(PROJECT)-gocache
1718
BINDIR := $(ROOTDIR)/bin
19+
VBINDIR := $(BINDIR)/$(RELEASE_MODE)
1820
VENDORDIR := $(ROOTDIR)/deps
1921
DASHBOARDDIR := $(ROOTDIR)/dashboard
2022

@@ -30,6 +32,8 @@ GOVERSION := 1.10.0-alpine
3032
PULSAR := $(GOBUILDDIR)/bin/pulsar$(shell go env GOEXE)
3133
GOASSETSBUILDER := $(GOBUILDDIR)/bin/go-assets-builder$(shell go env GOEXE)
3234

35+
BUILDTIME = $(shell go run "$(ROOT)/tools/dategen/")
36+
3337
DOCKERFILE := Dockerfile
3438

3539
HELM ?= $(shell which helm)
@@ -46,7 +50,7 @@ endif
4650

4751
HELM_PACKAGE_CMD = $(HELM) package "$(ROOTDIR)/chart/$(CHART_NAME)" \
4852
-d "$(ROOTDIR)/bin/charts" \
49-
--save=false
53+
--save=false --version "$(VERSION_MAJOR_MINOR_PATCH)"
5054

5155
HELM_CMD = $(HELM) template "$(ROOTDIR)/chart/$(CHART_NAME)" \
5256
--name "$(NAME)" \
@@ -91,13 +95,15 @@ ifndef DEPLOYMENTNAMESPACE
9195
DEPLOYMENTNAMESPACE := default
9296
endif
9397

94-
BASEUBIIMAGE ?= registry.access.redhat.com/ubi8/ubi-minimal:8.0
98+
BASEUBIIMAGE ?= registry.access.redhat.com/ubi8/ubi-minimal:8.4
99+
100+
OPERATORIMAGENAME ?= $(REPONAME)
95101

96102
ifndef OPERATORIMAGE
97-
OPERATORIMAGE := $(DOCKERNAMESPACE)/kube-arangodb$(IMAGESUFFIX)
103+
OPERATORIMAGE := $(DOCKERNAMESPACE)/$(OPERATORIMAGENAME)$(IMAGESUFFIX)
98104
endif
99105
ifndef OPERATORUBIIMAGE
100-
OPERATORUBIIMAGE := $(DOCKERNAMESPACE)/kube-arangodb$(IMAGESUFFIX)-ubi
106+
OPERATORUBIIMAGE := $(DOCKERNAMESPACE)/$(OPERATORIMAGENAME)$(IMAGESUFFIX)-ubi
101107
endif
102108
ifndef ENTERPRISEIMAGE
103109
ENTERPRISEIMAGE := $(DEFAULTENTERPRISEIMAGE)
@@ -113,17 +119,23 @@ endif
113119

114120
BINNAME := $(PROJECT)
115121
BIN := $(BINDIR)/$(BINNAME)
116-
RELEASE := $(GOBUILDDIR)/bin/release
117-
GHRELEASE := $(GOBUILDDIR)/bin/github-release
122+
VBIN := $(BINDIR)/$(RELEASE_MODE)/$(BINNAME)
118123

119124
ifdef VERBOSE
120125
TESTVERBOSEOPTIONS := -v
121126
endif
122127

123128
EXCLUDE_DIRS := tests vendor .gobuild deps tools
124-
SOURCES_QUERY := find $(SRCDIR) -name '*.go' -type f -not -path '$(SRCDIR)/tests/*' -not -path '$(SRCDIR)/vendor/*' -not -path '$(SRCDIR)/.gobuild/*' -not -path '$(SRCDIR)/deps/*' -not -path '$(SRCDIR)/tools/*'
129+
SOURCES_QUERY := find ./ -type f -name '*.go' $(foreach EXCLUDE_DIR,$(EXCLUDE_DIRS), ! -path "./$(EXCLUDE_DIR)/*")
125130
SOURCES := $(shell $(SOURCES_QUERY))
126-
DASHBOARDSOURCES := $(shell find $(DASHBOARDDIR)/src -name '*.js' -not -path './test/*') $(DASHBOARDDIR)/package.json
131+
DASHBOARDSOURCES := $(shell find $(DASHBOARDDIR)/src -name '*.js') $(DASHBOARDDIR)/package.json
132+
LINT_EXCLUDES:=
133+
ifeq ($(RELEASE_MODE),enterprise)
134+
LINT_EXCLUDES+=.*\.community\.go$$
135+
else
136+
LINT_EXCLUDES+=.*\.enterprise\.go$$
137+
endif
138+
127139

128140
.DEFAULT_GOAL := all
129141
.PHONY: all
@@ -166,9 +178,11 @@ fmt-verify: license-verify
166178

167179
.PHONY: linter
168180
linter:
169-
$(GOPATH)/bin/golangci-lint run --no-config --issues-exit-code=1 --deadline=30m --exclude-use-default=false \
181+
$(GOPATH)/bin/golangci-lint run --build-tags "$(RELEASE_MODE)" --no-config --issues-exit-code=1 --deadline=30m --exclude-use-default=false \
170182
--disable-all $(foreach EXCLUDE_DIR,$(EXCLUDE_DIRS),--skip-dirs $(EXCLUDE_DIR)) \
171-
$(foreach MODE,$(GOLANGCI_ENABLED),--enable $(MODE)) ./...
183+
$(foreach MODE,$(GOLANGCI_ENABLED),--enable $(MODE)) \
184+
$(foreach LINT_EXCLUDE,$(LINT_EXCLUDES),--exclude '$(LINT_EXCLUDE)') \
185+
./...
172186

173187
.PHONY: build
174188
build: docker manifests
@@ -220,7 +234,7 @@ update-generated:
220234
verify-generated:
221235
@${MAKE} -B -s VERIFYARGS=--verify-only update-generated
222236

223-
dashboard/assets.go: $(DASHBOARDSOURCES) $(DASHBOARDDIR)/Dockerfile.build
237+
dashboard/assets.go:
224238
cd $(DASHBOARDDIR) && docker build -t $(DASHBOARDBUILDIMAGE) -f Dockerfile.build $(DASHBOARDDIR)
225239
@mkdir -p $(DASHBOARDDIR)/build
226240
docker run --rm \
@@ -234,9 +248,12 @@ dashboard/assets.go: $(DASHBOARDSOURCES) $(DASHBOARDDIR)/Dockerfile.build
234248
.PHONY: bin
235249
bin: $(BIN)
236250

237-
$(BIN): $(SOURCES) dashboard/assets.go VERSION
238-
@mkdir -p $(BINDIR)
239-
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -installsuffix netgo -ldflags "-X main.projectVersion=$(VERSION) -X main.projectBuild=$(COMMIT)" -o $(BIN) $(REPOPATH)
251+
$(VBIN): $(SOURCES) dashboard/assets.go VERSION
252+
@mkdir -p $(VBINDIR)
253+
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build --tags "$(RELEASE_MODE)" -installsuffix netgo -ldflags "-X $(REPOPATH)/pkg/version.version=$(VERSION) -X $(REPOPATH)/pkg/version.buildDate=$(BUILDTIME) -X $(REPOPATH)/pkg/version.build=$(COMMIT)" -o $(VBIN) $(REPOPATH)
254+
255+
$(BIN): $(VBIN)
256+
@cp "$(VBIN)" "$(BIN)"
240257

241258
.PHONY: docker
242259
docker: check-vars $(BIN)
@@ -331,7 +348,7 @@ manifests: chart-operator
331348

332349
.PHONY: run-unit-tests
333350
run-unit-tests: $(SOURCES)
334-
go test --count=1 $(TESTVERBOSEOPTIONS) \
351+
go test --count=1 --tags "$(RELEASE_MODE)" $(TESTVERBOSEOPTIONS) \
335352
$(REPOPATH)/pkg/apis/backup/... \
336353
$(REPOPATH)/pkg/apis/deployment/... \
337354
$(REPOPATH)/pkg/apis/replication/... \
@@ -361,45 +378,6 @@ patch-release: patch-readme patch-examples
361378
patch-chart:
362379
$(ROOTDIR)/scripts/patch_chart.sh "$(VERSION_MAJOR_MINOR_PATCH)" "$(OPERATORIMAGE)"
363380

364-
.PHONY: docker-push
365-
docker-push: docker
366-
ifneq ($(DOCKERNAMESPACE), arangodb)
367-
docker tag $(OPERATORIMAGE) $(DOCKERNAMESPACE)/arangodb-operator
368-
endif
369-
docker push $(DOCKERNAMESPACE)/arangodb-operator
370-
371-
.PHONY: docker-push-version
372-
docker-push-version: docker
373-
docker tag arangodb/arangodb-operator arangodb/arangodb-operator:$(VERSION)
374-
docker tag arangodb/arangodb-operator arangodb/arangodb-operator:$(VERSION_MAJOR_MINOR)
375-
docker tag arangodb/arangodb-operator arangodb/arangodb-operator:$(VERSION_MAJOR)
376-
docker tag arangodb/arangodb-operator arangodb/arangodb-operator:latest
377-
docker push arangodb/arangodb-operator:$(VERSION)
378-
docker push arangodb/arangodb-operator:$(VERSION_MAJOR_MINOR)
379-
docker push arangodb/arangodb-operator:$(VERSION_MAJOR)
380-
docker push arangodb/arangodb-operator:latest
381-
382-
$(RELEASE): $(GOBUILDDIR) $(SOURCES) $(GHRELEASE)
383-
GOPATH=$(GOBUILDDIR) go build -o $(RELEASE) $(REPOPATH)/tools/release
384-
385-
.PHONY: build-ghrelease
386-
build-ghrelease: $(GHRELEASE)
387-
388-
$(GHRELEASE): $(GOBUILDDIR)
389-
GOPATH=$(GOBUILDDIR) go build -o $(GHRELEASE) github.com/aktau/github-release
390-
391-
.PHONY: release-patch
392-
release-patch: $(RELEASE)
393-
GOPATH=$(GOBUILDDIR) $(RELEASE) -type=patch
394-
395-
.PHONY: release-minor
396-
release-minor: $(RELEASE)
397-
GOPATH=$(GOBUILDDIR) $(RELEASE) -type=minor
398-
399-
.PHONY: release-major
400-
release-major: $(RELEASE)
401-
GOPATH=$(GOBUILDDIR) $(RELEASE) -type=major
402-
403381
.PHONY: tidy
404382
tidy:
405383
@go mod tidy
@@ -408,7 +386,7 @@ tidy:
408386
deps-reload: tidy init
409387

410388
.PHONY: init
411-
init: tools update-generated $(GHRELEASE) $(RELEASE) $(BIN) vendor
389+
init: tools update-generated $(BIN) vendor
412390

413391
.PHONY: tools
414392
tools: update-vendor

0 commit comments

Comments
 (0)