You are looking at the documentation of a prior release. To read the documentation of the latest release, please
visit here.
We use cookies and other similar technology to collect data to improve your experience on our site, as described in our Privacy Policy.
Run Production-Grade Databases on Kubernetes
Backup and Recovery Solution for Kubernetes
Run Production-Grade Vault on Kubernetes
Secure HAProxy Ingress Controller for Kubernetes
Kubernetes Configuration Syncer
Kubernetes Authentication WebHook Server
KubeDB simplifies Provision, Upgrade, Scaling, Volume Expansion, Monitor, Backup, Restore for various Databases in Kubernetes on any Public & Private Cloud
A complete Kubernetes native disaster recovery solution for backup and restore your volumes and databases in Kubernetes on any public and private clouds.
KubeVault is a Git-Ops ready, production-grade solution for deploying and configuring Hashicorp's Vault on Kubernetes.
Secure HAProxy Ingress Controller for Kubernetes
Kubernetes Configuration Syncer
Kubernetes Authentication WebHook Server
This document is intended to be the canonical source of truth for things like supported toolchain versions for building KubeDB. If you find a requirement that this doc does not capture, please submit an issue on github.
This document is intended to be relative to the branch in which it is found. It is guaranteed that requirements will change over time for the development branch, but release branches of KubeDB should not change.
Some of the KubeDB development helper scripts rely on a fairly up-to-date GNU tools environment, so most recent Linux distros should work just fine out-of-the-box.
KubeDB is written in Google’s GO programming language. Currently, KubeDB is developed and tested on go 1.8.3. If you haven’t set up a GO development environment, please follow these instructions to install GO.
KubeDB codebase is across various repositories under github.com/kubedb organization. There are 5 categories of git repositories:
Repository | Description |
---|---|
https://github.com/kubedb/apimachinery | Contains api types, clientset and KubeDB framework interfaces. |
https://github.com/kubedb/xdb | This repository contains operator for db , eg, https://github.com/kubedb/postgres |
https://github.com/kubedb/db_exporter | This repository contains Prometheus exporter for db , eg, https://github.com/kubedb/postgres_exporter . |
https://github.com/kubedb/operator | This repository contains the combined operator for all databases supported by KubeDB. |
https://github.com/kubedb/cli | This repository contains CLI for KubeDB. |
For each of these repositories, you can get source code and build code using the following steps:
$ go get github.com/kubedb/operator
$ cd $(go env GOPATH)/src/github.com/kubedb/operator
To install various dev tools for KubeDB, run the following command:
$ ./hack/builddeps.sh
$ ./hack/make.py
For KubeDB original repositories, we use Glide to manage dependencies. Dependencies are already checked in the vendor
folder. If you want to update/add dependencies, run:
$ glide slow
For unified operator or db specific operators, we support building Docker images. To build and push your custom Docker image, follow the steps below. To release a new version of KubeDB, please follow the release guide.
# Build Docker image
$ ./hack/docker/operator/setup.sh; ./hack/docker/operator/setup.sh push
# Add docker tag for your repository
$ docker tag kubedb/operator:<tag> <image>:<tag>
# Push Image
$ docker push <image>:<tag>
# Example:
$ docker tag kubedb/operator:default aerokite/operator:default
$ docker push aerokite/operator:default
$ cd ~/go/src/github.com/kubedb/cli
$ ./hack/gendocs/make.sh