You are looking at the documentation of a prior release. To read the documentation of the latest release, please
visit here.
Using FluxCD
KubeDB can be deployed via FluxCD using its Helm Controller against the OCI Helm registry at ghcr.io/appscode-charts. Apply the manifests below in order.
1. Configure the OCI Helm repository
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: appscode-charts
namespace: flux-system
spec:
type: oci
interval: 12h
url: oci://ghcr.io/appscode-charts
2. Create a Secret with the license
Generate a license from the AppsCode License Server and store it in a Secret so HelmRelease can reference it via valuesFrom.
$ kubectl create namespace kubedb
$ kubectl create secret generic kubedb-license \
--from-file=license=/path/to/the/license.txt \
-n kubedb
3. Install KubeDB via HelmRelease
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: kubedb
namespace: kubedb
spec:
interval: 1h
chart:
spec:
chart: kubedb
version: v2026.6.18-rc.2
sourceRef:
kind: HelmRepository
name: appscode-charts
namespace: flux-system
install:
createNamespace: true
crds: CreateReplace
upgrade:
crds: CreateReplace
valuesFrom:
- kind: Secret
name: kubedb-license
valuesKey: license
targetPath: global.license
values:
global:
featureGates:
Elasticsearch: true
Kafka: true
MariaDB: true
MongoDB: true
MySQL: true
Postgres: true
Redis: true
If you use a private Docker registry with self-signed certificates, add the registry hosts under global.insecureRegistries:
values:
global:
insecureRegistries:
- hub.example.com
- hub2.example.com
(Alternative) Use License Proxyserver instead of a license Secret
Instead of creating a per-cluster license Secret (steps 2–3 above), you can deploy the license-proxyserver chart. It distributes license tokens to KubeDB and other AppsCode operators inside the cluster, so the kubedb HelmRelease no longer needs to mount a license. Use this approach in place of the kubedb-license Secret.
a. Install license-proxyserver
Generate an online license-proxyserver token by following the License Proxyserver guide, then store it in a Secret that the HelmRelease references via valuesFrom:
$ cat > license-proxyserver.yaml <<'EOF'
platform:
baseURL: https://appscode.com
token: '****************************************'
EOF
$ kubectl create secret generic ace-licenseserver-cred \
--from-file=license-proxyserver.yaml \
-n kubeops
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: license-proxyserver
namespace: kubeops
spec:
interval: 5m
chart:
spec:
chart: license-proxyserver
version: v2026.2.16
sourceRef:
kind: HelmRepository
name: appscode-charts
namespace: flux-system
install:
createNamespace: true
crds: CreateReplace
upgrade:
crds: CreateReplace
values:
registryFQDN: ghcr.io
valuesFrom:
- kind: Secret
name: ace-licenseserver-cred
valuesKey: license-proxyserver.yaml
optional: true
b. Install KubeDB without a license Secret
With the proxyserver running, deploy the kubedb HelmRelease without the valuesFrom license Secret — drop step 2 and the valuesFrom block from step 3:
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: kubedb
namespace: kubedb
spec:
interval: 1h
chart:
spec:
chart: kubedb
version: v2026.6.18-rc.2
sourceRef:
kind: HelmRepository
name: appscode-charts
namespace: flux-system
install:
createNamespace: true
crds: CreateReplace
upgrade:
crds: CreateReplace
values:
global:
featureGates:
Elasticsearch: true
Kafka: true
MariaDB: true
MongoDB: true
MySQL: true
Postgres: true
Redis: true
To see the detailed configuration options, visit here.































