Working with Modules
Ilum is built as a modular platform with 32 independently toggleable modules spanning 10 categories. The ilum module sub-commands let you browse, enable, disable, and inspect modules without writing raw Helm flags.
Browsing Modules
List all available modules:
$ ilum module list
╭─ Ilum Modules ───────────────────────────────────────────────────────────────╮
│ Name Category Description Default │
├──────────────────────────────────────────────────────────────────────────────┤
│ core core Ilum backend API (Spring Boot... ✓ │
│ ui core Ilum web frontend (React + Ng... ✓ │
│ livy-proxy core Livy-compatible Spark session... │
│ api core Ilum REST API for module mana... ✓ │
│ mongodb infrastructure MongoDB document store for me... ✓ │
│ kafka infrastructure Apache Kafka event bus │
│ postgresql infrastructure PostgreSQL relational database ✓ │
│ clickhouse infrastructure ClickHouse columnar analytics... │
│ gitea infrastructure Gitea self-hosted Git service ✓ │
│ minio storage MinIO S3-compatible object st... ✓ │
│ jupyter notebook Jupyter notebook server with ... ✓ │
│ jupyterhub notebook Multi-user JupyterHub (Kuber... │
│ zeppelin notebook Apache Zeppelin notebook server │
│ sql sql Ilum SQL engine (Kyuubi) ✓ │
│ hive-metastore sql Hive Metastore service ✓ │
│ nessie sql Nessie versioned data catalog │
│ unity-catalog sql Unity Catalog for data govern... │
│ trino sql Trino distributed SQL query e... │
│ airflow orchestration Apache Airflow workflow orche... │
│ kestra orchestration Kestra declarative orchestrat... │
│ n8n orchestration n8n workflow automation platf... │
│ nifi orchestration Apache NiFi data integration │
│ mageai orchestration Mage.ai data pipeline tool │
│ mlflow ai MLflow experiment tracking a... │
│ langfuse ai Langfuse LLM observability p... │
│ superset analytics Apache Superset BI dashboards │
│ streamlit analytics Streamlit interactive data ap... │
│ marquez analytics Marquez data lineage tracking ✓ │
│ monitoring monitoring Prometheus + Grafana monitori... │
│ loki monitoring Grafana Loki log aggregation │
│ graphite monitoring Graphite metrics exporter │
│ openldap security OpenLDAP directory service │
╰──────────────────────────────────────────────────────────────────────────────╯
Filter by category:
$ ilum module list --category sql
╭─ Ilum Modules ───────────────────────────────────────────────────────────────╮
│ Name Category Description Default │
├──────────────────────────────────────────────────────────────────────────────┤
│ sql sql Ilum SQL engine (Kyuubi) │
│ hive-metastore sql Hive Metastore service │
│ nessie sql Nessie versioned data catalog │
│ unity-catalog sql Unity Catalog for data governance │
│ trino sql Trino distributed SQL query engine │
╰──────────────────────────────────────────────────────────────────────────────╯
Show only default-enabled modules:
$ ilum module list --enabled
╭─ Ilum Modules ───────────────────────────────────────────────────────────────╮
│ Name Category Description Default │
├──────────────────────────────────────────────────────────────────────────────┤
│ core core Ilum backend API (Spring Boot... ✓ │
│ ui core Ilum web frontend (React + Ng... ✓ │
│ api core Ilum REST API for module mana... ✓ │
│ mongodb infrastructure MongoDB document store for me... ✓ │
│ postgresql infrastructure PostgreSQL relational database ✓ │
│ gitea infrastructure Gitea self-hosted Git service ✓ │
│ minio storage MinIO S3-compatible object st... ✓ │
│ jupyter notebook Jupyter notebook server with ... ✓ │
│ sql sql Ilum SQL engine (Kyuubi) ✓ │
│ hive-metastore sql Hive Metastore service ✓ │
│ marquez analytics Marquez data lineage tracking ✓ │
╰──────────────────────────────────────────────────────────────────────────────╯
Inspect a single module in detail:
$ ilum module show sql
╭─ Module: sql ────────────────────────────────────────────────────────╮
│ sql (sql) │
│ Ilum SQL engine (Kyuubi) │
│ │
│ Default enabled: yes │
│ Enable flags: ilum-sql.enabled=true, ilum-core.sql.enabled=true │
│ Disable flags: ilum-sql.enabled=false, ilum-core.sql.enabled=false │
│ Requires: postgresql, core │
│ │
│ Resolved enable chain (including dependencies): │
│ --set postgresql.enabled=true │
│ --set ilum-core.enabled=true │
│ --set ilum-sql.enabled=true │
│ --set ilum-core.sql.enabled=true │
╰──────────────────────────────────────────────────────────────────────╯
The "Resolved enable chain" shows every --set flag needed, including transitive dependencies. This is the exact set of flags the CLI generates when you run ilum module enable sql.
Enabling Modules
O ilum module enable command upgrades a running Helm release to turn on one or more modules. It computes a values diff, shows a preview, and asks for confirmation.
$ ilum module enable sql --yes
╭─ Enable Summary ─────────────────────────────────────────╮
│ Action Enable │
│ Release ilum │
│ Namespace default │
│ Modules sql │
╰──────────────────────────────────────────────────────────╯
ℹ Auto-resolved dependencies: postgresql, core
╭─ Values Diff ────────────────────────────────────────────╮
│ Key Before After │
├──────────────────────────────────────────────────────────┤
│ ilum-sql.enabled false true │
│ ilum-core.sql.enabled false true │
│ postgresql.enabled true true │
│ ilum-core.enabled true true │
╰──────────────────────────────────────────────────────────╯
Command: helm upgrade ilum ilum/ilum \
--namespace default \
--timeout 10m \
--reuse-values \
--set ilum-sql.enabled=true \
--set ilum-core.sql.enabled=true \
--set postgresql.enabled=true \
--set ilum-core.enabled=true
⠋ Enabling modules...
✓ Enabled: sql
Compare this to the manual Helm equivalent, which requires you to know all four --set flags and their exact keys:
$ helm upgrade ilum ilum/ilum --reuse-values \
--set ilum-sql.enabled=true \
--set ilum-core.sql.enabled=true \
--set postgresql.enabled=true \
--set ilum-core.enabled=true
The CLI computes these for you, including transitive dependencies.
You can enable multiple modules at once:
$ ilum module enable airflow superset --yes
Usar --dry-run to preview without applying:
$ ilum module enable sql --dry-run
Understanding Dependency Resolution
Every module declares its dependencies and conflicts in the module registry. When you enable a module, the CLI walks the dependency graph and automatically includes everything that is needed.
Example: langfuse requires postgresql and clickhouse.
When you run ilum module enable langfuse, the resolver detects two transitive dependencies:
langfuse
├── requires: postgresql
└── requires: clickhouse
If postgresql is already enabled on the cluster, only clickhouse is added. If neither is present, both are pulled in automatically. You see this reported as:
ℹ Auto-resolved dependencies: clickhouse, postgresql
Conflict detection: hive-metastore vs. nessie.
Some modules are mutually exclusive. Both hive-metastoree Nessie configure the Ilum Core metastore, but with different backends (Hive vs. Nessie). They are declared as conflicting:
hive-metastoresetsilum-core.metastore.type=hiveNessiesetsilum-core.metastore.type=nessie
If you attempt to enable both, the CLI raises a conflict warning:
⚠ Module 'hive-metastore' conflicts with 'nessie', but both are enabled
You must choose one or the other. The trino module depends on hive-metastore, so enabling Trino implicitly selects the Hive path.
Disabling Modules
O ilum module disable command removes modules from a running release:
$ ilum module disable sql --yes
╭─ Disable Summary ────────────────────────────────────────╮
│ Action Disable │
│ Release ilum │
│ Namespace default │
│ Modules sql │
╰──────────────────────────────────────────────────────────╯
╭─ Values Diff ────────────────────────────────────────────╮
│ Key Before After │
├──────────────────────────────────────────────────────────┤
│ ilum-sql.enabled true false │
│ ilum-core.sql.enabled true false │
╰──────────────────────────────────────────────────────────╯
Command: helm upgrade ilum ilum/ilum \
--namespace default \
--timeout 10m \
--reuse-values \
--set ilum-sql.enabled=false \
--set ilum-core.sql.enabled=false
⠋ Disabling modules...
✓ Disabled: sql
The CLI is shared-dependency aware. When you disable SQL , its dependency postgresql is not disabled because other active modules (such as gitea ) still require it. The resolver walks the remaining active module set and only disables dependencies that are no longer needed by any other enabled module.
You can disable multiple modules at once:
$ ilum module disable airflow superset --yes
Attempting to disable a required module (núcleo , Ui ou mongodb) triggers a warning. These modules are fundamental to the platform and should generally remain enabled.
Module Categories
The 32 modules are organized into 10 categories. The table below summarizes each category with a count and representative examples.
| Category | Count | Example Modules |
|---|---|---|
| núcleo | 4 | core, ui, livy-proxy, api |
| infrastructure | 5 | mongodb, kafka, postgresql, clickhouse, gitea |
| storage | 1 | Mínimo |
| notebook | 3 | jupyter, jupyterhub, zeppelin |
| SQL | 5 | sql, hive-metastore, nessie, unity-catalog, trino |
| orchestration | 5 | airflow, kestra, n8n, nifi, mageai |
| ai | 2 | mlflow, langfuse |
| Analytics | 3 | superset, streamlit, marquez |
| monitorização | 3 | monitoring, loki, graphite |
| segurança | 1 | openldap |
You can filter any ilum module command by category. For example, to see live status of all orchestration modules on the cluster:
$ ilum module status --category orchestration
╭─ Module Status (release: ilum, namespace: default) ──────────────────╮
│ Module Category Status Pods Health │
├──────────────────────────────────────────────────────────────────────┤
│ airflow orchestration Enabled 3/3 Healthy │
│ kestra orchestration Disabled -- -- │
│ n8n orchestration Disabled -- -- │
│ nifi orchestration Disabled -- -- │
│ mageai orchestration Disabled -- -- │
╰──────────────────────────────────────────────────────────────────────╯
For the full list of module flags, dependency chains, and conflict maps, see Command Reference.