Skip to main content
Version: V2-Next

Addons

CIVITAS/CORE V2 can be extended with addons — optional, independently deployable components that integrate with the platform's shared infrastructure (Kubernetes, Keycloak, APISIX) without modifying the core deployment.

Each addon is a standalone Git repository included in your deployment as a Git submodule. Like core components, addons are deployed and managed via Helmfile.

Available Addons

AddonDescription
GrafanaAnalytics and visualization dashboards
Node-REDLow-code platform for data collection and transformation
GeoportalIntegrates Masterportal with a backend for authenticated layer support

Adding an Addon

1. Add the Git Submodule

Navigate to your deployment directory and add the addon repository as a submodule:

cd deployment/addons/
git submodule add https://gitlab.com/civitas-connect/civitas-core/civitas-core-v2/add-ons/grafana.git

2. Register the Component

Add the addon name to the components list in deployment/environments/<env>/global.yaml.gotmpl. Addons should be listed in topological order to account for dependencies:

components:
# ... core components ...
- grafana # addon
- node-red # addon

3. Apply the Deployment

helmfile -f deployment/helmfile.yaml apply -e <env>

Configuration

Addons are configured the same way as core components. See Component-Specific Parameters for details.

Access Control

Addons can integrate with the platform's Keycloak IDM, but unlike core components they are not managed through the portal. Roles must be assigned manually via the Keycloak admin console.

For a list of available roles per addon, see Addon Access Control.

Upgrading an Addon

Update the submodule to the target version and re-apply. Check the addon's changelog for breaking configuration changes before upgrading.

cd deployment/addons/grafana
git fetch
git checkout v2.x.y
cd ../..
helmfile -f deployment/helmfile.yaml apply -e <env> --selector component=grafana

Removing an Addon

  1. Destroy the Helm release:
    helmfile -f deployment/helmfile.yaml destroy -e <env> --selector component=grafana
  2. Remove the component from the components list in global.yaml.
  3. Remove the submodule:
    git submodule deinit -f deployment/addons/grafana
    git rm deployment/addons/grafana