/nuodb-helm-charts

NuoDB Helm Chart for Kubernetes & OpenShift

Primary LanguageGoBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

NuoDB Helm Charts

Build Status

This repository includes Helm Charts that can be used to deploy NuoDB in Kubernetes. You may also contribute by submitting enhancement requests if you like. Charts are curated application definitions for Helm. For more information about installing and using Helm, see its README.md. To get a quick introduction to Helm Charts see this chart document. For more information on using Helm, refer to the Helm's documentation.

NuoDB Helm Chart Version support

For a list of supported NuoDB Helm Chart releases and where to download, click the Releases tab above. To enable automated notification of new releases, click the Watch button above and subscribe to the Releases Only selection.

Software Release requirements

Software Release Requirements
Kubernetes The latest and previous minor versions of Kubernetes. For example, if the latest minor release of Kubernetes is 1.16 then 1.16 and 1.15 are officially supported. Charts may still work on previous versions of Kubernetes even though they are outside the target support window. To provide that support the API versions of objects should be those that work for both the latest minor release and the previous one.
Managed Kubernetes Distributions OpenShift 4.x, Google GKE, Amazon EKS, Azure AKS, or Rancher RKE. Charts may also work on other Kubernetes distributions. The distributions listed here are tested regularly.
Helm Version 3. Version 3.2 is the main development environment.
NuoDB Version 5.0 and onwards.

NOTE: The helm commands used in this repository use Helm 3.

Helm 2 has reached it's end of life. The last Helm 2 security patch was released in November 2020. If you are using Helm 2, NuoDB recommends upgrading to Helm 3 before deploying NuoDB. If you must use Helm 2, NuoDB can only offer limited and best reasonable effort (BRE) support for Helm 2.

NuoDB Helm Chart Installation

To add the NuoDB charts to your local helm repository, run:

$ helm repo add nuodb https://nuodb.github.io/nuodb-helm-charts
"nuodb" has been added to your repositories

To list the NuoDB charts added to your repository, run helm search repo nuodb/

NuoDB Helm Chart Incubator Repository Installation

The Incubator repository contains enhancements not yet available in the supported releases. This repository includes a sample application load generator. If you would like to install this sample application, then add the Incubator charts to your local helm repository, run:

$ helm repo add nuodb-incubator https://nuodb.github.io/nuodb-helm-charts/incubator
"nuodb-incubator" has been added to your repositories

To list the NuoDB incubator charts added to your repository, run helm search repo nuodb-incubator/

NuoDB Installation

Follow the instructions in the stable folder to install NuoDB.

The charts in the stable directory are the latest packaged charts in the chart repository. The purpose of this repository is to provide a place for maintaining and contributing official chart updates and enhancements into the chart repository.

Follow the instructions in the incubator folder to install the YCSB database workload generator (sample application).

The charts in the Incubator directory allows charts to be shared and improved on until they are ready to be moved into the stable folder.

Status of the Project

This project is still under active development. If you experience any issues please let us know, or better yet, contribute a fix or feature.

Testing

To run the tests in this project, Go 1.21 is required. To clone the repository and run a test suite (e.g. test/integration), execute the following:

git clone git@github.com:nuodb/nuodb-helm-charts
cd nuodb-helm-charts
go test -v -timeout 60s ./test/integration

Alternatively, go get can be used to clone the repository into the GOPATH:

GO111MODULE=off go get github.com/nuodb/nuodb-helm-charts
cd $(go env GOPATH)/src/github.com/nuodb/nuodb-helm-charts
go test -v -timeout 60s ./test/integration

The tests in test/minikube require kubectl to be configured with access to a Kubernetes cluster, typically Minikube running on localhost, and can be run as follows:

go test -v -timeout 60m -tags=short ./test/minikube
go test -v -timeout 60m -tags=long ./test/minikube

A specific test case can be run as follows:

go test -v -timeout 10m ./test/minikube/* -run TestKubernetesStartDatabaseShrinkedAdmin