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
| Addon | Description |
|---|---|
| Grafana | Analytics and visualization dashboards |
| Node-RED | Low-code platform for data collection and transformation |
| Geoportal | Integrates 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
- Destroy the Helm release:
helmfile -f deployment/helmfile.yaml destroy -e <env> --selector component=grafana
- Remove the component from the
componentslist inglobal.yaml. - Remove the submodule:
git submodule deinit -f deployment/addons/grafanagit rm deployment/addons/grafana