Skip to main content
Version: 1.5.0

Addons

Core platform functionality can be extended using addons. This enables users of the platform to deploy software components that are not used by large parts of the community but still benefit from the data platform's infrastructure and integrate with its other components. Examples of components that have successfully been integrated as addons include Node-RED, Jupyter Hub and Apache Airflow.

Structure of an Addon

An addon to CIVITAS/CORE is in itself a Git repository, that defines a main Ansible task in its root directory's tasks.yml. The configuration options of the addon are documented in the addon itself and default values are typically given in default_inventory.yml within the addon repository.

Addons can reuse infrastructure of the core repository, such as Ansible tasks to deploy Helm charts and access to the identity management to integrate OIDC authentication for the application.

Adding an Addon to the deployment

For an addon to be deployed with the platform, the addon repository needs to be added to the platform's core_platform/addons/ directory either by copying the files there or, when working on a fork of CIVITAS/CORE, adding the addon repository as a Git submodule to core_platform/addons/.

Activating the addon requires updating the addon section in the inventory by setting inv_addons.import to true and adding the addon's tasks file to the list inv_addons.addons. Configuration options of the addon are typically within a subsection of inv_addons.

Example inventory section:

inv_addons:
import: true
addons:
- "addons/my_addon/tasks.yml"

my_addon:
my_addon_config_key: some_particular_value

Compatibility of Addon versions

The versioning of addons follows the versioning of the core platform, such that an addon version v1.4.1 is compatible with the core platform version v1.4.1. For a compatibility check of an addon with the platform, make sure the addon supports the new platform version before upgrading. Any breaking changes to the inventory should be documented in the addon. An upgrade of the Git submodule within your core platform's fork will be required when ugprading.