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