Skip to content

Repository files navigation

Rybbit Helm Chart

A Helm chart for deploying Rybbit self-hosted analytics platform on Kubernetes.

Prerequisites

  • Kubernetes 1.19+
  • Helm 3.2.0+
  • PV provisioner support in the underlying infrastructure

Installation

# Install with default values
helm install rybbit oci://ghcr.io/antoniolago/rybbit --version 1.1.0
# Install with custom values
helm install rybbit oci://ghcr.io/antoniolago/rybbit --version 1.1.0 -f values.yaml

Minimal Running Example

Below is a minimal configuration example for production usage, DB and Clickhouse secrets are managed by subcharts auth values:

client:
image:
tag: v2.6.0env:
NEXT_PUBLIC_BACKEND_URL: "https://rybbit.lag0.com.br"NEXT_PUBLIC_DISABLE_SIGNUP: "false"backend:
image:
tag: v2.6.0env:
BASE_URL: "https://rybbit.lag0.com.br"DISABLE_SIGNUP: "false"ingress:
# API Ingress (with regex)api:
enabled: trueclassName: "nginx"annotations:
kubernetes.io/ingress.class: nginxcert-manager.io/cluster-issuer: letsencrypt-prodnginx.ingress.kubernetes.io/use-regex: "true"nginx.ingress.kubernetes.io/rewrite-target: /api/$2hosts:
- host: rybbit.lag0.com.brpaths:
- path: /api(/|$)(.*)pathType: ImplementationSpecifictls:
- secretName: lag0-rybbit-certificatehosts:
- rybbit.lag0.com.br# Client Ingress (without regex)client:
enabled: trueclassName: "nginx"annotations:
kubernetes.io/ingress.class: nginxcert-manager.io/cluster-issuer: letsencrypt-prodhosts:
- host: rybbit.lag0.com.brpaths:
- path: /pathType: Prefixtls:
- secretName: lag0-rybbit-certificatehosts:
- rybbit.lag0.com.br

External Dependencies

This chart has the following external dependencies:

PostgreSQL (CloudNativePG)

The chart creates a CloudNativePG Cluster resource directly (inlined template). The CloudNativePG operator must be installed in the cluster for it to work:

helm repo add cnpg https://cloudnative-pg.github.io/charts
helm install cnpg cnpg/cloudnative-pg \
--namespace cnpg-system \
--create-namespace

ClickHouse

The chart provisions ClickHouse itself by creating ClickHouseInstallation and ClickHouseKeeperInstallation resources (inlined templates). These are declarative CRs — the actual ClickHouse/Keeper pods are created by the Altinity ClickHouse Operator, which is not part of this chart and must be installed in the cluster beforehand (it also registers the CRDs the chart relies on):

helm repo add altinity https://helm.altinity.com/
helm install clickhouse-operator altinity/altinity-clickhouse-operator \
--namespace clickhouse-system \
--create-namespace \
--set 'watchNamespaces[0]=.*'

For detailed configuration options, refer to: Altinity Clickhouse Parameters

Configuration

The following table lists the configurable parameters of the Rybbit chart and their default values.

Global parameters

ParameterDescriptionDefault
global.imagePullSecretsGlobal image pull secrets[]
global.podSecurityContextGlobal pod security contextSee values.yaml
global.containerSecurityContextGlobal container security contextSee values.yaml
global.podAntiAffinityGlobal pod anti-affinity"soft"

Backend parameters

ParameterDescriptionDefault
backend.enabledEnable backend deploymenttrue
backend.image.repositoryBackend image repositoryghcr.io/rybbit-io/rybbit-backend
backend.image.tagBackend image taglatest
backend.replicaCountNumber of backend replicas1
backend.resourcesBackend resource requests/limitsSee values.yaml
backend.envBackend environment variablesSee values.yaml
backend.betterSecret.secretNameName of the secret containing auth key""
backend.betterSecret.authKeyKey in the secret containing auth value"better-auth-secret"
backend.betterSecret.authValueValue for the auth secret""

Client parameters

ParameterDescriptionDefault
client.enabledEnable client deploymenttrue
client.image.repositoryClient image repositoryghcr.io/rybbit-io/rybbit-client
client.image.tagClient image taglatest
client.replicaCountNumber of client replicas1
client.resourcesClient resource requests/limitsSee values.yaml
client.envClient environment variablesSee values.yaml

PostgreSQL parameters

For all available PostgreSQL parameters, see CloudNativePG Parameters

ClickHouse parameters

For all available ClickHouse parameters, see Altinity Operator Configuration

Ingress parameters

ParameterDescriptionDefault
ingress.api.enabledEnable API ingress (with regex)false
ingress.api.classNameIngress class name for API""
ingress.api.annotationsAnnotations for API ingressSee values.yaml
ingress.api.hostsHosts for API ingressSee values.yaml
ingress.api.tlsTLS config for API ingressSee values.yaml
ingress.client.enabledEnable client ingress (no regex)false
ingress.client.classNameIngress class name for client""
ingress.client.annotationsAnnotations for client ingressSee values.yaml
ingress.client.hostsHosts for client ingressSee values.yaml
ingress.client.tlsTLS config for client ingressSee values.yaml

See the Minimal Running Example above for a real-world configuration.

Environment Variables

The backend and client applications can be configured through environment variables. You can provide custom environment variables in your values.yaml:

backend:
env:
NODE_ENV: production# Add any custom environment variables here### USE clickhouse.auth VALUES INSTEAD, ITS SAFER# CLICKHOUSE_USER: "rybbit"# CLICKHOUSE_PASSWORD: "rybbit"# CLICKHOUSE_HOST: "default-will-come-from-clickhouse-chart"### USE postgres.auth INSTEAD, ITS SAFER# POSTGRES_HOST: postgresql-postgresql# POSTGRES_DB: analytics# POSTGRES_USER: postgres# POSTGRES_PASSWORD: "use-secret-instead"CUSTOM_VAR: valueclient:
env:
NODE_ENV: production# Add any custom environment variables hereCUSTOM_VAR: value

Upgrading

helm upgrade rybbit oci://ghcr.io/antoniolago/rybbit --version 1.1.0 -f values.yaml

Uninstalling

helm uninstall rybbit

About

No description, website, or topics provided.

Resources

Stars

5 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages