3.6 KiB
Maintainer Instructions
Build
Due to changes in the upstream Kubernetes API Dependency, by default Client and Operator will compile with Kubernetes 1.29+
If Client is used with:
- 1.28 or lower, build tag
kube_arangodb_k8s_1_28
is required
Before
To run templating models HELM needs to be installed. We are supporting HELM 2.14+
Helm URL: https://github.com/helm/helm/releases/tag/v2.14.3
You can install HELM in PATH or set HELM path before running make - export HELM=<path to helm>
Running tests
To run the entire test set, first set the following environment variables:
DOCKERNAMESPACE
to your docker hub accountVERBOSE
to1
(default is empty)LONG
to1
(default is empty, which skips lots of tests)ARANGODB
to the name of a community image you want to test, default isarangodb/arangodb:latest
ENTERPRISEIMAGE
to the name of an enterprise image, you want to test, if not set, some tests are skippedENTERPRISELICENSE
to the enterpise license keyKUBECONFIG
to the path to some k8s configuration with credentials, this indicates which cluster to use
make clean
make build
make run-tests
To run only a single test, set TESTOPTIONS
to something like
-test.run=TestRocksDBEncryptionSingle
where
TestRocksDBEncryptionSingle
is the name of the test.
Debugging with DLV
To attach DLV debugger, first prepare operator image with DLV server included:
IMAGETAG=1.2.4dlv DEBUG=true make docker
Then deploy it on your k8s and use following command to access DLV server on localhost:2345
from your local machine:
kubectl port-forward deployment/arango-arango-deployment-operator 2345
Preparing a release
To prepare for a release, do the following:
- Make sure all tests are OK.
- To run a complete set of tests, see above.
- Update the CHANGELOG manually, since the automatic CHANGELOG generation is switched off (did not work in many cases).
Building a release
To make a release you must have:
- A github access token in
~/.arangodb/github-token
that has read/write access for this repository. - Push permission for the current docker account (
docker login <your-docker-hub-account>
) for thearangodb
docker hub namespace. - The latest checked out
master
branch of this repository.
make release-patch
# or
make release-minor
# or
make release-major
If successful, a new version will be:
- Build docker images, yaml resources & helm charts.
- Tagged in github
- Uploaded as github release
- Pushed as docker image to docker hub
./VERSION
will be updated to a+git
version (after the release process)
If the release process fails, it may leave:
./VERSION
uncommitted. To resolve, checkoutmaster
or edit it to the original value and commit to master.- A git tag named
<major>.<minor>.<patch>
in your repository. To resolve remove it usinggit tag -d ...
. - A git tag named
<major>.<minor>.<patch>
in this repository in github. To resolve remove it manually.
Development on MacOS
This repo requires GNU command line tools instead BSD one (which are by default available on Mac).
brew install coreutils ed findutils gawk gnu-sed gnu-tar grep make
Please add following to your ~/bashrc
or ~/.zshrc
file (it requires Homebrew to be installed):
HOMEBREW_PREFIX=$(brew --prefix)
for d in ${HOMEBREW_PREFIX}/opt/*/libexec/gnubin; do export PATH=$d:$PATH; done
Change Go version
Change file Makefile
- GOVERSION := e.g. 1.17-alpine3.15
- DISTRIBUTION := e.g. alpine:3.15