As explained in the Overview, when Kuma (
kuma-cp) is up and running it needs to store data somewhere. The data will include the state, the policies configured, the data-planes status, and so on.
Kuma supports a few different backends that we can use when running
kuma-cp. You can configure the backend storage by setting the
KUMA_STORE_TYPE environment variable when running the control plane.
This information has been documented for clarity, but when following the installation instructions these settings will be automatically configured.
The backends are:
memory(default): Kuma stores all the state in-memory. This means that restarting Kuma will delete all the data. Only recommend when playing with Kuma locally. For example:
$ KUMA_STORE_TYPE=memory kuma-cp run
This is the default memory store if
KUMA_STORE_TYPE is not being specified.
postgres: Kuma stores all the state in a PostgreSQL database. Used when running in Universal mode. You can also use a remote PostgreSQL database offered by any cloud vendor. For example:
$ KUMA_STORE_TYPE=postgres \ KUMA_STORE_POSTGRES_HOST=localhost \ KUMA_STORE_POSTGRES_PORT=5432 \ KUMA_STORE_POSTGRES_USER=kuma-user \ KUMA_STORE_POSTGRES_PASSWORD=kuma-password \ KUMA_STORE_POSTGRES_DB_NAME=kuma \ kuma-cp run
kubernetes: Kuma stores all the state in the underlying Kubernetes cluster. User when running in Kubernetes mode. For example:
$ KUMA_STORE_TYPE=kubernetes kuma-cp run