Vai al contenuto principale

Command Reference

1. Global Options

FlagShortDefault Descrizione
--output-o tavolo Output format: tavolo , json, yaml, CSV .
--tranquillo -q FalseSuppress informational output (errors still shown).
--verbose-vFalseEnable verbose/debug output.
--no-headersFalseOmit column headers from table and CSV output.
--field-selectorNoneComma-separated list of fields to include in output (e.g. name,status).
--version-VPrint version and exit.
$ ilum --version
$ ilum -v install
$ ilum --output json status
$ ilum --quiet --output json module list

2. ilum init

Interactive setup wizard for the Ilum CLI.

Synopsis

ilum init [OPTIONS]

Options

FlagShortDefault Descrizione
--yes-yFalseNon-interactive mode with defaults.
--profile-pdefault Profile name to create.

Wizard Steps

StepAction
1. PreflightCheck for helm (>= 3.12), kubectl (>= 1.28), and docker (>= 24.0). In interactive mode, offers to install any missing or outdated tool automatically using platform-appropriate methods (see Prerequisiti ). In non-interactive mode (--yes), raises an error if a tool is missing.
2. ClusterDetect kubecontexts or create a local cluster (k3d, minikube, kind). If creating a cluster, also checks for the cluster provider binary and offers to install it.
3. ProfilePrompt for profile name, release name, namespace.
4. ModulesInteractive checkbox grouped by category with dependency resolution.
5. ConfirmDisplay summary table and ask for confirmation.
6. SaveWrite the profile to config.yaml.

Esempi

# Interactive wizard
$ ilum init

# Non-interactive with defaults
$ ilum init --yes

# Create a named profile
$ ilum init --profile staging

3. ilum quickstart

Install Ilum in one command with sensible defaults.

Synopsis

ilum quickstart [OPTIONS]

Options

FlagShortDefault Descrizione
--providerminikubeLocal cluster provider if a new cluster is needed (minikube, k3d, gentile ).
--profile-pdefault Profile name to create.
--module-m NoneAdditional module to enable (repeatable).
--presetNoneDeployment preset to apply (e.g. tiny, default , data-engineering, production).
--timeout15mHelm install timeout.

Steps Performed

StepAction
1. PreflightCheck for helm (>= 3.12), kubectl (>= 1.28), docker (>= 24.0). In interactive mode, offers to install missing tools automatically (see Prerequisiti ). In non-interactive mode, raises an error if a tool is missing.
2. ClusterProbe current kubecontext. If unreachable, create a local cluster with the Dev preset (4 CPUs, 8 GB). Also checks for the cluster provider binary and offers to install it.
3. ProfileCreate a profile with default modules plus any extras from --module.
4. InstallRun helm installcon --atomic, auto-resolve NodePort conflicts.

Cluster Auto-Detection

Quickstart probes the current kubeconfig context by listing namespaces. If the API server responds within 5 seconds, the existing cluster is used. Otherwise, a new local cluster is created using the provider specified by --provider (default: minikube).

Esempi

# Install with all defaults (detects cluster, default modules)
$ ilum quickstart

# Create a k3d cluster instead of minikube
$ ilum quickstart --provider k3d

# Enable additional modules beyond defaults
$ ilum quickstart -m sql -m airflow

# Use a named profile
$ ilum quickstart --profile staging

# Increase Helm install timeout
$ ilum quickstart --timeout 20m

4. ilum install

Install the Ilum platform via Helm.

Synopsis

ilum install [OPTIONS]

Options

FlagShortDefault Descrizione
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--version"" (latest)Chart version to install.
--values-f NoneValues file (repeatable).
--mettere NoneTimone --mettere flag (repeatable).
--module-m NoneModule to enable (repeatable).
--presetNoneDeployment preset to apply (e.g. tiny, default , data-engineering, production).
--atomicVero Usare --atomic for Helm install.
--yes-yFalseSkip confirmation prompt.
--dry-runFalsePreview without executing.
--timeout10mHelm timeout.

Module Priority Rule

Modules are resolved in this order:

  1. Modules passed via --module flags.
  2. Modules saved in the active profile (get_enabled_modules).
  3. Default-enabled modules from the module registry.

NodePort Conflict Resolution

Before Helm install, the CLI checks for NodePort conflicts on the cluster. If a default NodePort (e.g. 31777 for ilum-ui) is already allocated, the user is prompted to select a free port. In --yes mode, a free port is auto-assigned.

Esempi

# Install with defaults
$ ilum install

# Install a specific version with modules
$ ilum install --version 6.7.0 --module jupyter --module sql

# Install into a custom namespace, non-interactive
$ ilum install -n ilum-prod -r ilum-prod --yes

# Dry-run preview
$ ilum install --dry-run

# Install with custom values file and overrides
$ ilum install -f custom-values.yaml --set ilum-core.replicaCount=3

5. ilum upgrade

Upgrade an existing Ilum installation.

Synopsis

ilum upgrade [OPTIONS]

Options

FlagShortDefault Descrizione
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--version"" (latest)Chart version to upgrade to.
--values-f NoneValues file (repeatable).
--mettere NoneTimone --mettere flag (repeatable).
--module-m NoneModule to enable (repeatable).
--atomicVero Usare --atomic for Helm upgrade.
--force-rollbackFalseRollback a stuck release before upgrading.
--reset-defaultsFalseReset to new chart defaults before applying user values (uses Helm's --reset-then-reuse-values). Enabled automatically when the chart version changes.
--valori-di-riutilizzo FalseForce reuse of previous values even when chart version changes. Overrides the automatic --reset-defaults behavior.
--yes-yFalseSkip confirmation prompt.
--dry-runFalsePreview without executing.
--timeout10mHelm timeout.

Values Safety Pipeline

  1. Stuck release detection -- if the release is in pending-install, pending-upgradeo pending-rollback state, the CLI blocks unless --force-rollback is passed.
  2. Auto-reset chart defaults -- when the chart version changes, the CLI automatically uses --reset-then-reuse-values so new chart defaults (e.g. updated image tags) take effect. Pass --valori-di-riutilizzo to opt out.
  3. Drift detection -- external changes made since the last CLI operation are displayed as a diff table and preserved during upgrade.
  4. Breaking change warnings -- version transitions are checked for known breaking changes.
  5. No-op detection -- if the target version matches the current version and there are no value changes or new modules, the CLI exits early with a success message.

Esempi

# Upgrade to latest
$ ilum upgrade

# Upgrade to a specific version
$ ilum upgrade --version 6.8.0

# Recover a stuck release and upgrade
$ ilum upgrade --force-rollback

# Upgrade with additional modules
$ ilum upgrade --module airflow --module superset

# Dry-run preview
$ ilum upgrade --dry-run

6. ilum uninstall

Uninstall the Ilum platform.

Synopsis

ilum uninstall [OPTIONS]

Options

FlagShortDefault Descrizione
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--yes-yFalseSkip confirmation prompt.
--dry-runFalsePreview without executing.
--delete-dataFalseDelete PersistentVolumeClaims after uninstall.
--delete-namespaceFalseDelete the namespace after uninstall.

Idempotent Behavior

If the release does not exist, ilum uninstall exits with code 0 and prints an informational message. It does not fail.

Destructive Flag Confirmation

When --delete-datao --delete-namespace is passed (without --yes), the user must type the release name to confirm.

Esempi

# Standard uninstall
$ ilum uninstall

# Uninstall and delete all data
$ ilum uninstall --delete-data

# Uninstall, delete data, and delete namespace
$ ilum uninstall --delete-data --delete-namespace --yes

# Dry-run preview
$ ilum uninstall --dry-run

6b. ilum cleanup

Full environment teardown with tiered, opt-in destructiveness. Combines uninstall, cluster deletion, config removal, dependency removal, and CLI self-uninstall into a single command.

Synopsis

ilum cleanup [OPTIONS]

Options

FlagShortDefault Descrizione
--clusterFalseAlso delete CLI-managed local k8s cluster.
--configFalseAlso remove CLI config/state/cache directories.
--depsFalseAlso remove dependencies (helm, kubectl, minikube, k3d, kind, docker).
--selfFalseAlso uninstall the CLI itself (always last, never included in --all).
--allFalseShorthand for --cluster --config --deps.
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--yes-yFalseSkip all confirmations.
--dry-runFalsePreview without executing.

Tiers

The command executes in order:

  1. Tier 1 (always): Uninstall Helm release + delete PVCs + delete namespace. Requires typing release name to confirm.
  2. Tier 2( --cluster): Delete CLI-managed local cluster. Requires typing cluster name.
  3. Tier 3( --config): Remove CLI directories and Helm repo. Requires typing CANCELLARE .
  4. Tier 4( --deps): Remove dependencies. Requires typing REMOVE per tool (or REMOVE DOCKER for Docker).
  5. Tier 5( --self): Uninstall the CLI itself. Requires typing UNINSTALL.

Each tier is independent -- if one fails, the next still runs.

Esempi

# Preview what would be removed
$ ilum cleanup --all --dry-run

# Uninstall release only (Tier 1)
$ ilum cleanup --yes

# Full teardown: release + cluster + config + dependencies
$ ilum cleanup --all --yes

# Full teardown including CLI itself
$ ilum cleanup --all --self --yes

# Just release + cluster, skip deps
$ ilum cleanup --cluster --yes

7. ilum connect

Connect the CLI to an existing Ilum installation.

Synopsis

ilum connect [OPTIONS]

Options

FlagShortDefault Descrizione
--release-rNoneHelm release name (skips auto-detection).
--namespace-n NoneKubernetes namespace (scans all if omitted).
--contextNoneKubernetes context.
--profile-pdefault Profile name to create or update.
--yes-yFalseSkip confirmation prompts.
--no-switchFalseDon't switch active profile after connecting.

Auto-detect vs Direct Mode

ConditionModeBehavior
--releasee --namespace both setDirectValidate the specific release in the given namespace.
--release set, --namespace omittedScanScan all namespaces for the named release.
Neither setScanScan all namespaces for any Ilum releases.

When multiple releases are found in scan mode, a table is displayed and the user selects one. In --yes mode, the first release is auto-selected.

Post-connect Actions

  • Enabled modules are detected from live Helm values and synced to the profile.
  • A values snapshot is saved for drift detection.
  • Stuck releases produce a warning with recovery instructions.

Esempi

# Auto-detect
$ ilum connect

# Direct mode
$ ilum connect --release ilum --namespace production

# Connect to a named profile
$ ilum connect --profile staging

# Non-interactive
$ ilum connect --yes

8. ilum status

Show the status of an Ilum installation.

Synopsis

ilum status [OPTIONS]

Options

FlagShortDefault Descrizione
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--pods/--no-podsVero Show pod readiness.
--modules/--no-modulesVero Show enabled modules.
--wait-wFalseBlock until all pods are ready.
--wait-timeout300 Seconds to wait when --wait is used (0 = unlimited).
--eventsFalseInclude recent Kubernetes events in output.
--events-typeNoneFilter events by type: Normal, Avvertimento .
--events-since5mShow events newer than this duration (e.g. 10m, 1h).

Esempi

# Full status
$ ilum status

# Status without pod details
$ ilum status --no-pods

# Status for a specific release
$ ilum status -r my-ilum -n staging

# Wait for all pods to become ready (up to 5 minutes)
$ ilum status --wait

# Wait with a custom timeout
$ ilum status --wait --wait-timeout 600

# Include recent warning events
$ ilum status --events --events-type Warning

# Show events from the last hour
$ ilum status --events --events-since 1h

8b. ilum values

View or export live Helm values for the current release.

Synopsis

ilum values [OPTIONS]

Options

FlagShortDefault Descrizione
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--pathNoneDot-notation path to a specific key (e.g. ilum-core.replicaCount).
--all-aFalseShow all computed values (chart defaults + overrides), not just user-supplied.
--diffFalseShow a diff between user-supplied values and chart defaults.
--revisionNoneShow values from a specific Helm revision number.
--exportNoneExport values to a file path instead of printing to stdout.

Esempi

# Show user-supplied values
$ ilum values

# Show a specific key
$ ilum values --path ilum-core.replicaCount

# Show all computed values
$ ilum values --all

# Show values from a previous revision
$ ilum values --revision 3

# Diff user values against chart defaults
$ ilum values --diff

# Export values to a file
$ ilum values --export my-values.yaml

# Combine path filter with JSON output
$ ilum values --path mongodb --output json

8c. ilum diff

Compare Helm values across different sources.

Synopsis

ilum diff [OPTIONS]

Options

FlagShortDefault Descrizione
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--source-s defaultsSource to compare live values against: defaults, file , revision, snapshot.
--values-file-f NoneValues file to compare against (required when --source file).
--revisionNoneHelm revision number to compare against (required when --source revision).
--pathNoneDot-notation path to limit comparison scope (e.g. ilum-core ).

Source Modes

SourceDescrizione
defaultsCompare live values against chart default values.
file Compare live values against a local values file.
revisionCompare live values against a previous Helm revision.
snapshotCompare live values against the last CLI snapshot (drift detection).

Esempi

# Diff live values against chart defaults
$ ilum diff

# Diff against a local values file
$ ilum diff --source file --values-file custom-values.yaml

# Diff against a specific revision
$ ilum diff --source revision --revision 2

# Diff against the last CLI snapshot (detect drift)
$ ilum diff --source snapshot

# Limit diff to a specific path
$ ilum diff --path ilum-core

8d. ilum rollback

Roll back the Ilum release to a previous Helm revision.

Synopsis

ilum rollback [OPTIONS]

Options

FlagShortDefault Descrizione
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--revisionNoneTarget revision number (defaults to previous revision if omitted).
--dry-runFalsePreview the rollback without executing.
--yes-yFalseSkip confirmation prompt.
--timeout10mHelm timeout.

Esempi

# Rollback to the previous revision
$ ilum rollback

# Rollback to a specific revision
$ ilum rollback --revision 3

# Dry-run preview
$ ilum rollback --dry-run

# Non-interactive rollback
$ ilum rollback --revision 5 --yes

# Rollback with a longer timeout
$ ilum rollback --timeout 15m

8e. ilum exec

Open an interactive shell session inside a module's pod.

Synopsis

ilum exec MODULE [OPTIONS]

Arguments

ArgumentRequiredDescrizione
MODULEModule name (e.g. nucleo , Jupyter , SQL ).

Options

FlagShortDefault Descrizione
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--shell/bin/shShell binary to use (e.g. /bin/bash).
--container-cNoneContainer name (auto-detected if omitted).
--podNoneSpecific pod name (auto-detected if omitted).
--commandNoneRun a single command instead of opening an interactive shell.

Esempi

# Open a shell in the core pod
$ ilum exec core

# Use bash instead of sh
$ ilum exec core --shell /bin/bash

# Exec into a specific container
$ ilum exec jupyter --container ilum-jupyter

# Run a single command
$ ilum exec core --command "cat /opt/ilum/conf/application.conf"

# Exec into a specific pod
$ ilum exec core --pod ilum-core-0

8f. ilum top

Show resource usage (CPU and memory) for module pods.

Synopsis

ilum top [MODULE] [OPTIONS]

Arguments

ArgumentRequiredDescrizione
MODULENo Module name to filter (shows all modules if omitted).

Options

FlagShortDefault Descrizione
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--sort-bycpuSort column: cpu, memory, nome .
--watch-wFalseContinuously refresh the display.
--interval5 Refresh interval in seconds when --watch is used.

Esempi

# Show resource usage for all modules
$ ilum top

# Show resource usage for a specific module
$ ilum top core

# Sort by memory usage
$ ilum top --sort-by memory

# Watch mode with 10-second refresh
$ ilum top --watch --interval 10

# JSON output for scripting
$ ilum top --output json

9. ilum logs

Show logs for an Ilum module's pod.

Synopsis

ilum logs MODULE [OPTIONS]

Arguments

ArgumentRequiredDescrizione
MODULEModule name (e.g. nucleo , Jupyter , SQL ).

Options

FlagShortDefault Descrizione
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--follow-f FalseStream logs in real time.
--tail100 Number of lines to show (0 for all).
--container-cNoneContainer name (auto-detected if omitted).
--previous-pFalseShow logs from previously terminated container.
--max-duration0 Fermarsi --follow after N seconds (0 = unlimited).

Piping Note

Output is written to stdout via typer.echo, so logs can be piped to other tools:

$ ilum logs core --tail 0 | grep ERROR
$ ilum logs core -f | tee /tmp/core.log

Esempi

# Last 100 lines from core
$ ilum logs core

# Stream jupyter logs
$ ilum logs jupyter --follow

# All logs from a specific container
$ ilum logs core --tail 0 --container ilum-core

# Previous container logs (after restart)
$ ilum logs core --previous

10. ilum doctor

Run health checks on the Ilum installation.

Synopsis

ilum doctor [OPTIONS]

Options

FlagShortDefault Descrizione
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--release-rfrom profileHelm release name.
--check-cNoneRun a single check by name.
--failures-onlyFalseOnly show failed and warning checks.
--fixFalseAuto-fix simple issues (e.g., add missing Helm repo).

Checks Table

Check NamePhaseWhat it verifies
helm1 - BinariesHelm is installed and version >= 3.12
kubectl 1 - Binarieskubectl is installed and version >= 1.28
docker1 - BinariesDocker is installed and version >= 24.0
helm-repo2 - Helm repoLe ilum Helm repo is configured (charts.ilum.cloud)
grappolo 3 - ConnectivityKubernetes cluster is reachable
Namespace 4 - Cluster-dependentTarget namespace exists
pods4 - Cluster-dependentAll pods are healthy (detects CrashLoopBackOff)
pvcs4 - Cluster-dependentAll PVCs are bound (detects Pending PVCs)
rbac4 - Cluster-dependentRequired RBAC permissions are granted
release4 - Cluster-dependentHelm release exists and is not stuck or failed
compatibility4 - Cluster-dependentKubernetes version >= 1.28
service-endpoints4 - Cluster-dependentService endpoints have ready addresses
health-endpoints4 - Cluster-dependentHealth check endpoints respond for core, airflow, superset, minio

Phase Gating

If the grappolo check fails (phase 3), all phase-4 checks are skipped with status SKIP.

Esempi

# Run all checks
$ ilum doctor

# Run a single check
$ ilum doctor --check pods

# Check against a specific release
$ ilum doctor -r my-ilum -n staging

11. ilum module

Manage Ilum platform modules.

11.1 ilum module list

List all available Ilum modules.

Synopsis

ilum module list [OPTIONS]

Options

FlagShortDefault Descrizione
--category-cNoneFilter by category.
--enabled/--disabledNoneFilter by default-enabled status.
--search-s NoneSearch modules by name or description.

Esempi

# List all modules
$ ilum module list

# List only notebook modules
$ ilum module list --category notebook

# List only default-enabled modules
$ ilum module list --enabled

# Search for modules matching a term
$ ilum module list --search kafka

11.2 ilum module show

Show detailed information about a module.

Synopsis

ilum module show NAME

Arguments

ArgumentRequiredDescrizione
NAMEModule name to inspect.

Esempi

$ ilum module show sql
$ ilum module show hive-metastore

11.3 ilum module tree

Show the dependency tree for a module with resource estimates.

Synopsis

ilum module tree NAME

Arguments

ArgumentRequiredDescrizione
NAMEModule name to display tree for.

Esempi

$ ilum module tree sql
$ ilum module tree langfuse

11.4 ilum module enable

Enable one or more modules on a running Ilum release.

Synopsis

ilum module enable MODULES... [OPTIONS]

Arguments

ArgumentRequiredDescrizione
MODULESModules to enable (one or more).

Options

FlagShortDefault Descrizione
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--mettere NoneAdditional Helm --mettere flag (repeatable).
--reset-defaultsFalseReset to new chart defaults before applying user values. Use when upgrading across chart versions with breaking changes.
--yes-yFalseSkip confirmation prompt.
--dry-runFalsePreview without executing.
--timeout10mHelm timeout.

Esempi

# Enable a single module
$ ilum module enable jupyter

# Enable multiple modules
$ ilum module enable airflow superset

# Enable with additional Helm overrides
$ ilum module enable sql --set ilum-sql.replicaCount=2

# Dry-run preview
$ ilum module enable trino --dry-run

11.5 ilum module disable

Disable one or more modules on a running Ilum release.

Synopsis

ilum module disable MODULES... [OPTIONS]

Arguments

ArgumentRequiredDescrizione
MODULESModules to disable (one or more).

Options

FlagShortDefault Descrizione
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--mettere NoneAdditional Helm --mettere flag (repeatable).
--reset-defaultsFalseReset to new chart defaults before applying user values. Use when upgrading across chart versions with breaking changes.
--yes-yFalseSkip confirmation prompt.
--dry-runFalsePreview without executing.
--timeout10mHelm timeout.

Esempi

# Disable a module
$ ilum module disable zeppelin

# Disable multiple modules
$ ilum module disable airflow superset

# Dry-run preview
$ ilum module disable kafka --dry-run

11.6 ilum module status

Show live module status on a running Ilum release.

Synopsis

ilum module status [OPTIONS]

Options

FlagShortDefault Descrizione
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--category-cNoneFilter by module category.
--timeout10mHelm timeout.

Esempi

# Show all module statuses
$ ilum module status

# Filter by category
$ ilum module status --category orchestration

12. ilum config

Manage Ilum CLI configuration.

12.1 ilum config show

Show the current configuration (or a specific key).

Synopsis

ilum config show [KEY]

Arguments

ArgumentRequiredDescrizione
KEYNo Dot-notation key to display (e.g. active_profile).

Esempi

# Show full config
$ ilum config show

# Show a specific key
$ ilum config show active_profile

12.2 ilum config set

Set a configuration value.

Synopsis

ilum config set KEY VALUE

Arguments

ArgumentRequiredDescrizione
KEYDot-notation key (e.g. active_profile).
VALUEValue to set.

Esempi

$ ilum config set active_profile staging

12.3 ilum config path

Print the configuration file path.

Synopsis

ilum config path

Esempi

# Linux / macOS
$ ilum config path
/home/user/.config/ilum/config.yaml

# Windows
PS> ilum config path
C:\Users\user\AppData\Roaming\ilum\config.yaml

12.4 ilum config init

Create a default configuration file.

Synopsis

ilum config init [OPTIONS]

Options

FlagShortDefault Descrizione
--force-f FalseOverwrite existing config.

Esempi

# Create config if it doesn't exist
$ ilum config init

# Overwrite existing config
$ ilum config init --force

12.5 ilum config edit

Open the configuration file in $EDITOR (falls back to vi on Linux/macOS, notepad on Windows).

Synopsis

ilum config edit

Esempi

$ EDITOR=nano ilum config edit

12.6 ilum config use

Switch the active profile.

Synopsis

ilum config use PROFILE

Arguments

ArgumentRequiredDescrizione
PROFILEProfile name to switch to.

Esempi

$ ilum config use staging
$ ilum config use production

12.7 ilum config list-profiles

List all configured profiles.

Synopsis

ilum config list-profiles

Esempi

$ ilum config list-profiles

12.8 ilum config validate

Validate the configuration file for correctness.

Synopsis

ilum config validate

Esempi

$ ilum config validate

12.9 ilum config backup

Create a backup copy of the configuration file.

Synopsis

ilum config backup

Esempi

$ ilum config backup

12.10 ilum config export

Export a profile for team sharing.

Synopsis

ilum config export PROFILE [OPTIONS]

Arguments

ArgumentRequiredDescrizione
PROFILEProfile name to export.

Options

FlagShortDefault Descrizione
--out-o <profile>.yamlOutput file path.

Esempi

# Export to default filename
$ ilum config export production

# Export to a specific file
$ ilum config export production --out prod-profile.yaml

12.11 ilum config import

Import a profile from a file.

Synopsis

ilum config import FILE [OPTIONS]

Arguments

ArgumentRequiredDescrizione
FILEPath to the profile file to import.

Options

FlagShortDefault Descrizione
--nome -n from fileProfile name to use.

Esempi

# Import with the name from the file
$ ilum config import prod-profile.yaml

# Import with a custom name
$ ilum config import prod-profile.yaml --name production

13. ilum cluster

Manage local Kubernetes clusters.

13.1 ilum cluster create

Create a local Kubernetes cluster.

Synopsis

ilum cluster create [OPTIONS]

Options

FlagShortDefault Descrizione
--providerk3dCluster provider: minikube, k3d, gentile .
--presetDev Resource preset: Dev , full.
--nome "" (from preset)Cluster name.

Presets Table

PresetCPUsMemoria Default Name
Dev 6 12gilum-dev
full8 18gilum

Esempi

# Create with defaults (k3d, dev preset)
$ ilum cluster create

# Create a minikube cluster with full resources
$ ilum cluster create --provider minikube --preset full

# Create with a custom name
$ ilum cluster create --name my-ilum-cluster

13.2 ilum cluster delete

Delete a local Kubernetes cluster.

Synopsis

ilum cluster delete NAME

Arguments

ArgumentRequiredDescrizione
NAMECluster name to delete.

Esempi

$ ilum cluster delete ilum-dev

13.3 ilum cluster list

List tracked local Kubernetes clusters.

Synopsis

ilum cluster list

Esempi

$ ilum cluster list

14. ilum preset list

List all available deployment presets.

Synopsis

ilum preset list

Descrizione

Lists all available deployment presets with their names, descriptions, and module counts. Presets are curated collections of modules designed for common deployment scenarios. The output is a Rich table with three columns: Name, Description, and Modules.

Output Columns

Colonna Descrizione
Nome Preset identifier used with --preset flags.
Descrizione Short summary of the preset's purpose.
Moduli Number of modules included in the preset.

Esempi

# List all presets
$ ilum preset list

15. ilum airgap images

List container images required by selected modules.

Synopsis

ilum airgap images [OPTIONS]

Descrizione

Lists all container images required by the selected modules. Image references are extracted by running helm template against the chart and parsing the rendered manifests for container image fields. This is useful for pre-pulling images or preparing air-gapped environments.

Options

FlagShortDefault Descrizione
--presetNoneDeployment preset to select modules from.
--module-m NoneModule to include (repeatable).
--version"" (latest)Chart version to template.
--formattavolo Output format: tavolo o plain.

Esempi

# List images for default modules
$ ilum airgap images

# List images for a preset
$ ilum airgap images --preset production

# List images for specific modules
$ ilum airgap images -m core -m jupyter -m mongodb

# Plain output for scripting
$ ilum airgap images --preset tiny --format plain

# List images for a specific chart version
$ ilum airgap images --version 6.7.0

16. ilum airgap export

Export images and chart into a portable air-gapped bundle.

Synopsis

ilum airgap export OUTPUT_DIR [OPTIONS]

Descrizione

Exports the Helm chart and all required container images into a portable bundle directory. The bundle includes a manifest.json file describing the contents, chart version, and image list. This bundle can be transferred to an air-gapped environment and imported with ilum airgap import.

Arguments

ArgumentRequiredDescrizione
OUTPUT_DIRDirectory to write the bundle to. Created if it does not exist.

Options

FlagShortDefault Descrizione
--presetNoneDeployment preset to select modules from.
--module-m NoneModule to include (repeatable).
--version"" (latest)Chart version to export.

Esempi

# Export default modules
$ ilum airgap export ./bundle

# Export a specific preset
$ ilum airgap export ./bundle --preset analyst

# Export specific modules and version
$ ilum airgap export ./bundle -m core -m jupyter --version 6.7.0

17. ilum airgap import

Import an air-gapped bundle into a private container registry.

Synopsis

ilum airgap import BUNDLE_DIR --registry URL

Descrizione

Imports a previously exported air-gapped bundle into a private container registry. Reads the manifest.json from the bundle directory, loads the container images, re-tags them for the target registry, and pushes them. The Helm chart is also made available for installation from the bundle.

Arguments

ArgumentRequiredDescrizione
BUNDLE_DIRPath to the bundle directory created by ilum airgap export.

Options

FlagShortDefault Descrizione
--registryObbligatorio Target container registry URL (e.g. registry.internal:5000).

Esempi

# Import bundle into a private registry
$ ilum airgap import ./bundle --registry registry.internal:5000

# Import from an absolute path
$ ilum airgap import /mnt/usb/ilum-bundle --registry harbor.corp.local/ilum

18. ilum history

View the operation audit log.

Synopsis

ilum history [OPTIONS]

Options

FlagShortDefault Descrizione
--last-n 20 Number of recent operations to show.
--operationNoneFilter by operation type (install, upgrade, enable, disable, uninstall).
--release-rfrom profileFilter by Helm release name.

Esempi

# Show recent operations
$ ilum history

# Show last 5 operations
$ ilum history --last 5

# Filter by operation type
$ ilum history --operation upgrade

# JSON output for CI/CD
$ ilum history --last 10 --output json

19. ilum deps

Manage CLI dependencies (helm, kubectl, docker, k3d, etc.).

ilum deps install

Install missing CLI dependencies.

Synopsis

ilum deps install [TOOL...] [OPTIONS]

Arguments

ArgumentRequiredDescrizione
TOOLNo One or more tool names to install. If omitted, installs all core tools (helm, kubectl, docker) plus the selected provider.

Options

FlagDefault Descrizione
--providerk3dCluster provider to install: k3d, minikube, gentile .
--dry-runFalsePreview what would be installed without executing.

Esempi

# Install all missing core tools + default provider (k3d)
$ ilum deps install

# Install only specific tools
$ ilum deps install helm kubectl

# Install with a different provider
$ ilum deps install --provider kind

# Preview without executing
$ ilum deps install --dry-run

ilum deps list

List CLI dependencies and their status.

Synopsis

ilum deps list

Esempi

$ ilum deps list

19b. ilum access

Manage access to the Ilum UI via port-forward, NodePort, or ingress.

ilum access open

Open the Ilum UI in a browser.

Synopsis

ilum access open [OPTIONS]

Options

FlagShortDefault Descrizione
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--access-afrom profileAccess method: nodeport, port-forwardo Ingresso .
--port-p9777 Local port to forward to (port-forward mode).
--address127.0.0.1Local address to bind to (port-forward mode).
--no-browserFalseDon't open a browser automatically.

Esempi

# Open UI with default access method (from profile)
$ ilum access open

# Open via port-forward on a custom port
$ ilum access open --access port-forward --port 8080

# Open via NodePort without launching browser
$ ilum access open --access nodeport --no-browser

# Open via ingress
$ ilum access open --access ingress

ilum access ingress enable

Enable ingress for the Ilum UI via Helm upgrade.

Synopsis

ilum access ingress enable --host HOSTNAME [OPTIONS]

Options

FlagShortDefault Descrizione
--hostObbligatorio Ingress hostname.
--tlsFalseEnable TLS.
--tls-secret"" TLS secret name.
--classe "" Ingress class name.
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--mettere NoneAdditional Helm --mettere flag (repeatable).
--yes-yFalseSkip confirmation prompt.
--dry-runFalsePreview without executing.
--timeout10mHelm timeout.

Esempi

# Enable ingress with a hostname
$ ilum access ingress enable --host ilum.example.com

# Enable ingress with TLS
$ ilum access ingress enable --host ilum.example.com --tls

# Enable with a specific ingress class
$ ilum access ingress enable --host ilum.example.com --class nginx

ilum access ingress disable

Disable ingress for the Ilum UI.

Synopsis

ilum access ingress disable [OPTIONS]

Options

FlagShortDefault Descrizione
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--mettere NoneAdditional Helm --mettere flag (repeatable).
--yes-yFalseSkip confirmation prompt.
--dry-runFalsePreview without executing.
--timeout10mHelm timeout.

Esempi

# Disable ingress
$ ilum access ingress disable --yes

ilum access ingress show

Show the current ingress configuration.

Synopsis

ilum access ingress show [OPTIONS]

Options

FlagShortDefault Descrizione
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.

Esempi

# Show ingress config
$ ilum access ingress show

# JSON output
$ ilum access ingress show --output json

19c. ilum auth

Manage authentication and OAuth configuration.

ilum auth setup

Interactive authentication setup wizard. Guides you through selecting an auth mode (internal Hydra, external OAuth2, or disable), choosing a provider, and collecting required parameters.

Synopsis

ilum auth setup [OPTIONS]

Options

FlagShortDefault Descrizione
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--mettere NoneAdditional Helm --mettere flag (repeatable).
--yes-yFalseSkip confirmation prompt.
--dry-runFalsePreview without executing.
--timeout10mHelm timeout.

Esempi

# Launch the interactive auth wizard
$ ilum auth setup

# Dry-run preview of auth changes
$ ilum auth setup --dry-run

ilum auth enable

Enable authentication with a specific provider non-interactively.

Synopsis

ilum auth enable PROVIDER [OPTIONS]

Arguments

ArgumentRequiredDescrizione
PROVIDERProvider name (e.g. google, idra , oidc, okta, gitlab, Manto di chiave , cognito, azure).

Options

FlagShortDefault Descrizione
--client-idNoneOAuth2 Client ID.
--client-secretNoneOAuth2 Client Secret.
--domainNoneDomain (Hydra UI domain or Okta domain).
--protocolNoneProtocol — Hydra: http (in inglese) o https .
--urlNoneProvider URL (GitLab, Keycloak).
--realmNoneKeycloak realm name.
--regionNoneAWS region (Cognito).
--user-pool-idNoneCognito User Pool ID.
--tenant-idNoneAzure AD Tenant ID.
--issuer-uriNoneOIDC Issuer URI.
--scopeNoneOAuth2 scopes.
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--mettere NoneAdditional Helm --mettere flag (repeatable).
--yes-yFalseSkip confirmation prompt.
--dry-runFalsePreview without executing.
--timeout10mHelm timeout.

Esempi

# Enable Hydra (internal) auth
$ ilum auth enable hydra --domain ilum.example.com --yes

# Enable Google OAuth2
$ ilum auth enable google --client-id MY_ID --client-secret MY_SECRET --yes

# Enable a generic OIDC provider
$ ilum auth enable oidc --issuer-uri https://auth.example.com --client-id MY_ID --client-secret MY_SECRET

ilum auth disable

Disable OAuth and revert to internal authentication.

Synopsis

ilum auth disable [OPTIONS]

Options

FlagShortDefault Descrizione
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--mettere NoneAdditional Helm --mettere flag (repeatable).
--yes-yFalseSkip confirmation prompt.
--dry-runFalsePreview without executing.
--timeout10mHelm timeout.

Esempi

# Disable OAuth
$ ilum auth disable --yes

ilum auth status

Show the current authentication configuration from live Helm values.

Synopsis

ilum auth status [OPTIONS]

Options

FlagShortDefault Descrizione
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.

Esempi

# Show auth status
$ ilum auth status

# JSON output
$ ilum auth status --output json

ilum auth list

List all available authentication providers.

Synopsis

ilum auth list

Esempi

$ ilum auth list

20. Prerequisites

The CLI requires the following tools to be installed on your system. These are checked during the preflight step of ilum init, ilum quickstart, and before operations like ilum installe ilum upgrade.

Required Tools

ToolMinimum VersionPurpose
helm>= 3.12Deploys and manages the Ilum Helm chart
kubectl >= 1.28Communicates with the Kubernetes cluster
docker>= 24.0Container runtime for local clusters and image operations

Cluster Providers (optional)

One of these is required only if creating a local cluster via ilum cluster create:

ProviderDescrizione
k3dLightweight k3s clusters in Docker containers (default provider)
minikubeFull Kubernetes in a VM or container
gentile Kubernetes-in-Docker for testing

Automatic Installation

When running in an interactive terminal (TTY connected to stdin), the CLI offers to install missing or outdated tools automatically. This applies to:

  • ilum init (wizard preflight step)
  • ilum quickstart (preflight step)
  • ilum cluster create (cluster provider check)
  • Any command that calls ensure_tool() internally

The install methods are platform-specific:

PlatformMethodEsempio
LinuxOfficial install scripts or direct binary downloadscurl -fsSL https://get.docker.com | sh
macOSHomebrewbrew install helm
Windowswingetwinget install --id Helm.Helm

After installation, the CLI re-checks the tool version. If the check fails, it displays the tool's manual install URL.

Non-Interactive Behavior

In non-interactive environments (CI/CD, scripts, piped output, --yes mode without TTY), the CLI does non offer auto-installation. Instead, it raises a PrerequisiteError (error code ILUM-001) with a manual install link:

Error: kubectl is required but not available [ILUM-001]
Suggestion: Install manually: https://kubernetes.io/docs/tasks/tools/

For CI/CD pipelines, install all required tools before invoking the CLI. See the guide's CI/CD section for an example GitHub Actions workflow.

Supported Tools and Install URLs

ToolManual Install URL
helmhttps://helm.sh/docs/intro/install/
kubectl https://kubernetes.io/docs/tasks/tools/
dockerhttps://docs.docker.com/get-docker/
minikubehttps://minikube.sigs.k8s.io/docs/start/
k3dhttps://k3d.io/
gentile https://kind.sigs.k8s.io/docs/user/quick-start/#installation

Docker Post-Install (Linux)

On Linux, after installing Docker the CLI automatically:

  1. Adds the current user to the docker group (requires sudo)
  2. Starts the Docker daemon via systemctl
  3. Warns that a logout/login (or newgrp docker) may be required for group permissions

If passwordless sudo is not available, the CLI prints the manual commands instead.


21. Error Codes

Structured error codes for programmatic error handling (see also Prerequisiti per ILUM-001e ILUM-002):

Codice CategoryTitle
ILUM-001prerequisiteTool not found
ILUM-002prerequisiteTool version too old
ILUM-010grappolo Cluster unreachable
ILUM-011grappolo Namespace not found
ILUM-020helmHelm command failed
ILUM-021helmHelm timeout
ILUM-022helmRelease stuck
ILUM-023helmRelease not found
ILUM-024helmRelease already exists
ILUM-030configurazione Config file invalid
ILUM-031configurazione Config key not found
ILUM-040moduleUnknown module
ILUM-041moduleModule conflict
ILUM-050valori Values parse error
ILUM-051valori Values drift detected
ILUM-070execExec failed / No pods found
ILUM-071eventsEvents query failed
ILUM-072Metriche Metrics unavailable
ILUM-073helmRollback failed

Error codes appear in both human-readable output and structured JSON/YAML output, enabling CI/CD pipelines to handle specific error conditions programmatically.


22. Module Registry

All 32 modules registered in MODULE_REGISTRY, grouped by category.

Core

Nome Descrizione Default DependenciesConflicts
nucleo Ilum backend API (Spring Boot on Spark)
Ui Ilum web frontend (React + Nginx reverse proxy)nucleo
livy-proxyLivy-compatible Spark session proxyNo nucleo
API Ilum REST API for module managementnucleo

Infrastructure

Nome Descrizione Default DependenciesConflicts
mongodbMongoDB document store for metadata
Kafka Apache Kafka event busNo nucleo
postgresqlPostgreSQL relational database
clickhouseClickHouse columnar analytics databaseNo
Gitea Gitea self-hosted Git servicepostgresql

Immagazzinamento

Nome Descrizione Default DependenciesConflicts
rustfsRustFS S3-compatible object storage (bundled default)minio (when both flagged as the active provider)
minio MinIO S3-compatible object storage (bundled, opt-in)No rustfs (when both flagged as the active provider)

Taccuino

Nome Descrizione Default DependenciesConflicts
Jupyter Jupyter notebook server with Sparkmagicnucleo
jupyterhubMulti-user JupyterHub (Kubernetes >= 1.28)No nucleo
zeppelinApache Zeppelin notebook serverNo nucleo

SQL

Nome Descrizione Default DependenciesConflicts
SQL Ilum SQL engine (Kyuubi)postgresql, nucleo
Trino Trino distributed SQL query engineNo hive-metastore, SQL
hive-metastoreHive Metastore servicepostgresql, nucleo Nessie , unity-catalog
Nessie Nessie versioned data catalogNo postgresqlhive-metastore, unity-catalog
unity-catalogUnity Catalog for data governanceNo postgresqlhive-metastore, Nessie

Orchestrazione

Nome Descrizione Default DependenciesConflicts
airflowApache Airflow workflow orchestrationNo postgresql
kestraKestra declarative orchestration engineNo postgresql
n8n n8n workflow automation platformNo postgresql
nifiApache NiFi data integrationNo nucleo
mageaiMage.ai data pipeline toolNo postgresql

Analytics

Nome Descrizione Default DependenciesConflicts
supersetApache Superset BI dashboardsNo postgresql
streamlitStreamlit interactive data applicationsNo nucleo
marquezMarquez data lineage trackingpostgresql

AI

Nome Descrizione Default DependenciesConflicts
Flusso ML MLflow experiment tracking and model registryNo postgresql
langfuseLangfuse LLM observability platformNo postgresql, clickhouse

Monitoraggio

Nome Descrizione Default DependenciesConflicts
monitoraggio Prometheus + Grafana monitoring stackNo
lokiGrafana Loki log aggregationNo
graphiteGraphite metrics exporterNo

Sicurezza

Nome Descrizione Default DependenciesConflicts
openldap OpenLDAP directory serviceNo

Enable/Disable Flags Reference

ModuleEnable FlagsDisable Flags
nucleo ilum-core.enabled=trueilum-core.enabled=false
Ui ilum-ui.enabled=trueilum-ui.enabled=false
livy-proxyilum-livy-proxy.legacy.enabled=trueilum-livy-proxy.legacy.enabled=false
mongodbmongodb.enabled=truemongodb.enabled=false
Kafka kafka.enabled=true, ilum-core.communication.type=kafkakafka.enabled=false, ilum-core.communication.type=grpc
postgresqlpostgresql.enabled=truepostgresql.enabled=false
clickhouseclickhouse.enabled=trueclickhouse.enabled=false
Gitea gitea.enabled=truegitea.enabled=false
rustfsrustfs.enabled=truerustfs.enabled=false
minio minio.enabled=trueminio.enabled=false
Jupyter ilum-jupyter.enabled=trueilum-jupyter.enabled=false
jupyterhubilum-jupyterhub.enabled=trueilum-jupyterhub.enabled=false
zeppelinilum-zeppelin.enabled=trueilum-zeppelin.enabled=false
SQL ilum-sql.enabled=true, ilum-core.sql.enabled=trueilum-sql.enabled=false, ilum-core.sql.enabled=false
Trino trino.enabled=true, ilum-sql.config.trino.enabled=truetrino.enabled=false, ilum-sql.config.trino.enabled=false
hive-metastoreilum-hive-metastore.enabled=true, ilum-core.metastore.enabled=true, ilum-core.metastore.type=hiveilum-hive-metastore.enabled=false, ilum-core.metastore.enabled=false, ilum-core.metastore.type=hive
Nessie nessie.enabled=true, ilum-core.metastore.enabled=true, ilum-core.metastore.type=nessienessie.enabled=false, ilum-core.metastore.enabled=false, ilum-core.metastore.type=hive
unity-catalogilum-unity-catalog.enabled=true, ilum-core.metastore.enabled=true, ilum-core.metastore.type=unityilum-unity-catalog.enabled=false, ilum-core.metastore.enabled=false, ilum-core.metastore.type=hive
airflowairflow.enabled=trueairflow.enabled=false
kestrakestra.enabled=truekestra.enabled=false
n8n ilum-n8n.enabled=trueilum-n8n.enabled=false
nifinifi.enabled=truenifi.enabled=false
mageaimageai.enabled=truemageai.enabled=false
supersetsuperset.enabled=truesuperset.enabled=false
streamlitstreamlit.enabled=truestreamlit.enabled=false
marquezglobal.lineage.enabled=trueglobal.lineage.enabled=false
Flusso ML mlflow.enabled=truemlflow.enabled=false
langfuselangfuse.enabled=truelangfuse.enabled=false
monitoraggio kube-prometheus-stack.enabled=truekube-prometheus-stack.enabled=false
lokiglobal.logAggregation.enabled=true, global.logAggregation.loki.enabled=true, global.logAggregation.promtail.enabled=trueglobal.logAggregation.enabled=false, global.logAggregation.loki.enabled=false, global.logAggregation.promtail.enabled=false
graphitegraphite-exporter.graphite.enabled=true, ilum-core.job.graphite.enabled=truegraphite-exporter.graphite.enabled=false, ilum-core.job.graphite.enabled=false
API ilum-api.enabled=trueilum-api.enabled=false
openldap openldap.enabled=trueopenldap.enabled=false

23. Doctor Checks

Check NamePhaseWhat it verifies
helm1 - BinariesHelm is on PATH and version >= 3.12
kubectl 1 - Binarieskubectl is on PATH and version >= 1.28
docker1 - BinariesDocker is on PATH and version >= 24.0
helm-repo2 - Helm repoLe ilum chart repository (charts.ilum.cloud) is configured
grappolo 3 - ConnectivityKubernetes cluster is reachable via current kubeconfig
Namespace 4 - Cluster-dependentThe target namespace exists on the cluster
pods4 - Cluster-dependentAll pods in the namespace are healthy; detects CrashLoopBackOff (>5 restarts)
pvcs4 - Cluster-dependentAll PersistentVolumeClaims are Bound; detects Pending PVCs
rbac4 - Cluster-dependentRequired RBAC permissions are granted to the current user
release4 - Cluster-dependentHelm release exists and is not in stuck (pending-*) or failedstato
compatibility4 - Cluster-dependentKubernetes server version >= 1.28
service-endpoints4 - Cluster-dependentService endpoints have ready addresses
health-endpoints4 - Cluster-dependentHealth check endpoints respond for core, airflow, superset, minio

24. Error Reference

Classe ParentWhen RaisedTypical Suggestion
IlumErrorExceptionBase exception for all Ilum CLI errors.
PrerequisiteErrorIlumErrorA required tool or resource (helm, kubectl, docker) is missing.Install the missing tool.
ClusterConnectionErrorIlumErrorCannot connect to the Kubernetes cluster.Check kubeconfig: kubectl cluster-info.
HelmErrorIlumErrorA Helm operation failed.Check helm output for details.
HelmTimeoutErrorHelmErrorA Helm operation timed out.Increase --timeout or check cluster resources.
HelmReleaseErrorHelmErrorA Helm release is in a bad state (e.g. pending-install, pending-upgrade). Usare ilum upgrade --force-rollback to recover.
ConfigErrorIlumErrorConfiguration is missing or invalid.Run ilum config inito ilum init.
ValuesErrorIlumErrorProblem with Helm values files.Validate your values YAML syntax.
ModuleErrorIlumErrorModule dependency or conflict error.Check ilum module show <name> for dependencies.
ReleaseExistsErrorIlumErrorA Helm release already exists when a fresh install was requested.Usare ilum upgrade instead, or ilum uninstall first.
ReleaseNotFoundErrorIlumErrorA Helm release was expected but does not exist.Usare ilum install to create the release, or ilum connect to attach to an existing one.

25. Exit Codes

Codice Meaning
0 Success.
1 Error (any IlumError, invalid input, failed check, or failed Helm operation).
130Interrupted by user (Ctrl+C during ilum init).

ilum uninstall exits with code 0 even when the release does not exist (idempotent behavior).