Advanced Installation via Helm

We provide a helm chart for an advanced installation of DataCater into arbitrary Kubernetes namespaces. In this approach, you have the chance to integrate DataCater with an external PostgreSQL instance.

Choose namespace

In the first step, please choose the Kubernetes namespace that you want to use for the installation of DataCater:
$ export DATACATER_NAMESPACE="default"

Install PostgreSQL (optional)

You can skip this step if you already have a PostgreSQL instance up and running.
Use Bitnami's Helm chart to install a PostgreSQL instance into your Kubernetes namespace:
helm repo add bitnami
helm install postgres bitnami/postgresql -n $DATACATER_NAMESPACE
Use the following command to access its password:
export POSTGRES_PASSWORD=$(kubectl get secret --namespace $DATACATER_NAMESPACE postgres-postgresql -o jsonpath="{.data.postgres-password}" | base64 -d)

Seed PostgreSQL with the schema and RLS policies

This section uses psql as CLI client for PostgreSQL. Feel free to use any other database client.
If you installed PostgreSQL following the previous section, open a connection to your PostgreSQL instance:
kubectl port-forward --namespace $DATACATER_NAMESPACE svc/postgres-postgresql 5432:5432
Execute the following script to seed the PostgreSQL database with the schema and RLS policies of DataCater. If you are using an external PostgreSQL instance, make sure to replace the connection credentials.
PGPASSWORD="$POSTGRES_PASSWORD" psql --host -U postgres -d postgres -p 5432 -f platform-api/src/main/resources/init-db.sql

Install DataCater

We --set the value to the postgres-postgresql service within the namespace that DataCater was installed into. Feel free to change this to any other host, port, or schema if needed.
helm -n $DATACATER_NAMESPACE upgrade datacater helm-charts/datacater --set "" --install

Access DataCater

Port-forward your traffic into your Kubernetes cluster to get a quick access to the UI of DataCater.
kubectl -n $DATACATER_NAMESPACE port-forward svc/datacater-ui 8080:80
You can now navigate to http://localhost:8080 in your browser and sign in using the default credentials admin:admin.