跳至主要内容

Command Reference

1. Global Options

FlagShort违约 描述
--output-o 桌子 Output format: 桌子 , json, yaml, CSV .
--安静 -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

FlagShort违约 描述
--yes-yFalseNon-interactive mode with defaults.
--profile-p违约 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 先决条件 ). 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.

例子

# 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

FlagShort违约 描述
--providerminikubeLocal cluster provider if a new cluster is needed (minikube, k3d, ).
--profile-p违约 Profile name to create.
--module-米 NoneAdditional module to enable (repeatable).
--presetNoneDeployment preset to apply (e.g. tiny, 违约 , 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 先决条件 ). In non-interactive mode, raises an error if a tool is missing.
2. ClusterProbe current kubecontext. If unreachable, create a local cluster with the 开发 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 install--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).

例子

# 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

FlagShort违约 描述
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--version"" (latest)Chart version to install.
--values-f NoneValues file (repeatable).
--setNone掌舵 --set flag (repeatable).
--module-米 NoneModule to enable (repeatable).
--presetNoneDeployment preset to apply (e.g. tiny, 违约 , data-engineering, production).
--atomic--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.

例子

# 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

FlagShort违约 描述
--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).
--setNone掌舵 --set flag (repeatable).
--module-米 NoneModule to enable (repeatable).
--atomic--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.
--reuse-values 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-upgradepending-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 --reuse-values 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.

例子

# 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

FlagShort违约 描述
--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-data--delete-namespace is passed (without --yes), the user must type the release name to confirm.

例子

# 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

FlagShort违约 描述
--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 删除 .
  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.

例子

# 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

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

Auto-detect vs Direct Mode

ConditionModeBehavior
--release--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.

例子

# 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

FlagShort违约 描述
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--pods/--no-podsShow pod readiness.
--modules/--no-modulesShow 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, 警告 .
--events-since5mShow events newer than this duration (e.g. 10m, 1h).

例子

# 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

FlagShort违约 描述
--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.

例子

# 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

FlagShort违约 描述
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--source-s defaultsSource to compare live values against: defaults, 文件 , 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

Source描述
defaultsCompare live values against chart default values.
文件 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).

例子

# 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

FlagShort违约 描述
--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.

例子

# 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

ArgumentRequired描述
MODULEYesModule name (e.g. 核心 , Jupyter , SQL ).

Options

FlagShort违约 描述
--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.

例子

# 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

ArgumentRequired描述
MODULENoModule name to filter (shows all modules if omitted).

Options

FlagShort违约 描述
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--sort-bycpuSort column: cpu, memory, 名字 .
--watch-wFalseContinuously refresh the display.
--interval5 Refresh interval in seconds when --watch is used.

例子

# 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

ArgumentRequired描述
MODULEYesModule name (e.g. 核心 , Jupyter , SQL ).

Options

FlagShort违约 描述
--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 --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

例子

# 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

FlagShort违约 描述
--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 repo伊鲁姆 Helm repo is configured (charts.ilum.cloud)
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 check fails (phase 3), all phase-4 checks are skipped with status SKIP.

例子

# 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

FlagShort违约 描述
--category-cNoneFilter by category.
--enabled/--disabledNoneFilter by default-enabled status.
--search-s NoneSearch modules by name or description.

例子

# 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

ArgumentRequired描述
NAMEYesModule name to inspect.

例子

$ 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

ArgumentRequired描述
NAMEYesModule name to display tree for.

例子

$ 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

ArgumentRequired描述
MODULESYesModules to enable (one or more).

Options

FlagShort违约 描述
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--setNoneAdditional Helm --set 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.

例子

# 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

ArgumentRequired描述
MODULESYesModules to disable (one or more).

Options

FlagShort违约 描述
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--setNoneAdditional Helm --set 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.

例子

# 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

FlagShort违约 描述
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--category-cNoneFilter by module category.
--timeout10mHelm timeout.

例子

# 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

ArgumentRequired描述
KEYNoDot-notation key to display (e.g. active_profile).

例子

# 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

ArgumentRequired描述
KEYYesDot-notation key (e.g. active_profile).
VALUEYesValue to set.

例子

$ ilum config set active_profile staging

12.3 ilum config path

Print the configuration file path.

Synopsis

ilum config path

例子

# 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

FlagShort违约 描述
--force-f FalseOverwrite existing config.

例子

# 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

例子

$ EDITOR=nano ilum config edit

12.6 ilum config use

Switch the active profile.

Synopsis

ilum config use PROFILE

Arguments

ArgumentRequired描述
PROFILEYesProfile name to switch to.

例子

$ ilum config use staging
$ ilum config use production

12.7 ilum config list-profiles

List all configured profiles.

Synopsis

ilum config list-profiles

例子

$ ilum config list-profiles

12.8 ilum config validate

Validate the configuration file for correctness.

Synopsis

ilum config validate

例子

$ ilum config validate

12.9 ilum config backup

Create a backup copy of the configuration file.

Synopsis

ilum config backup

例子

$ ilum config backup

12.10 ilum config export

Export a profile for team sharing.

Synopsis

ilum config export PROFILE [OPTIONS]

Arguments

ArgumentRequired描述
PROFILEYesProfile name to export.

Options

FlagShort违约 描述
--out-o <profile>.yamlOutput file path.

例子

# 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

ArgumentRequired描述
FILEYesPath to the profile file to import.

Options

FlagShort违约 描述
--名字 -n from fileProfile name to use.

例子

# 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

FlagShort违约 描述
--providerk3dCluster provider: minikube, k3d, .
--preset开发 Resource preset: 开发 , full.
--名字 "" (from preset)Cluster name.

Presets Table

PresetCPUs记忆 Default Name
开发 6 12gilum-dev
full8 18g伊鲁姆

例子

# 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

ArgumentRequired描述
NAMEYesCluster name to delete.

例子

$ ilum cluster delete ilum-dev

13.3 ilum cluster list

List tracked local Kubernetes clusters.

Synopsis

ilum cluster list

例子

$ ilum cluster list

14. ilum preset list

List all available deployment presets.

Synopsis

ilum preset list

描述

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

描述
名字 Preset identifier used with --preset flags.
描述 Short summary of the preset's purpose.
模块 Number of modules included in the preset.

例子

# List all presets
$ ilum preset list

15. ilum airgap images

List container images required by selected modules.

Synopsis

ilum airgap images [OPTIONS]

描述

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

FlagShort违约 描述
--presetNoneDeployment preset to select modules from.
--module-米 NoneModule to include (repeatable).
--version"" (latest)Chart version to template.
--format桌子 Output format: 桌子 plain.

例子

# 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]

描述

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

ArgumentRequired描述
OUTPUT_DIRYesDirectory to write the bundle to. Created if it does not exist.

Options

FlagShort违约 描述
--presetNoneDeployment preset to select modules from.
--module-米 NoneModule to include (repeatable).
--version"" (latest)Chart version to export.

例子

# 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

描述

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

ArgumentRequired描述
BUNDLE_DIRYesPath to the bundle directory created by ilum airgap export.

Options

FlagShort违约 描述
--registry必填 Target container registry URL (e.g. registry.internal:5000).

例子

# 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

FlagShort违约 描述
--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.

例子

# 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

ArgumentRequired描述
TOOLNoOne or more tool names to install. If omitted, installs all core tools (helm, kubectl, docker) plus the selected provider.

Options

Flag违约 描述
--providerk3dCluster provider to install: k3d, minikube, .
--dry-runFalsePreview what would be installed without executing.

例子

# 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

例子

$ 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

FlagShort违约 描述
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--access-afrom profileAccess method: nodeport, port-forward入口 .
--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.

例子

# 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

FlagShort违约 描述
--host必填 Ingress hostname.
--tlsFalseEnable TLS.
--tls-secret"" TLS secret name.
--类 "" Ingress class name.
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--setNoneAdditional Helm --set flag (repeatable).
--yes-yFalseSkip confirmation prompt.
--dry-runFalsePreview without executing.
--timeout10mHelm timeout.

例子

# 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

FlagShort违约 描述
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--setNoneAdditional Helm --set flag (repeatable).
--yes-yFalseSkip confirmation prompt.
--dry-runFalsePreview without executing.
--timeout10mHelm timeout.

例子

# Disable ingress
$ ilum access ingress disable --yes

ilum access ingress show

Show the current ingress configuration.

Synopsis

ilum access ingress show [OPTIONS]

Options

FlagShort违约 描述
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.

例子

# 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

FlagShort违约 描述
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--setNoneAdditional Helm --set flag (repeatable).
--yes-yFalseSkip confirmation prompt.
--dry-runFalsePreview without executing.
--timeout10mHelm timeout.

例子

# 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

ArgumentRequired描述
PROVIDERYesProvider name (e.g. google, 水螅 , oidc, okta, gitlab, 键斗篷 , cognito, azure).

Options

FlagShort违约 描述
--client-idNoneOAuth2 Client ID.
--client-secretNoneOAuth2 Client Secret.
--domainNoneDomain (Hydra UI domain or Okta domain).
--protocolNoneProtocol — Hydra: http 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.
--setNoneAdditional Helm --set flag (repeatable).
--yes-yFalseSkip confirmation prompt.
--dry-runFalsePreview without executing.
--timeout10mHelm timeout.

例子

# 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

FlagShort违约 描述
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.
--setNoneAdditional Helm --set flag (repeatable).
--yes-yFalseSkip confirmation prompt.
--dry-runFalsePreview without executing.
--timeout10mHelm timeout.

例子

# Disable OAuth
$ ilum auth disable --yes

ilum auth status

Show the current authentication configuration from live Helm values.

Synopsis

ilum auth status [OPTIONS]

Options

FlagShort违约 描述
--release-rfrom profileHelm release name.
--namespace-n from profileKubernetes namespace.
--contextfrom profileKubernetes context.

例子

# 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

例子

$ 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 installilum 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:

Provider描述
k3dLightweight k3s clusters in Docker containers (default provider)
minikubeFull Kubernetes in a VM or container
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:

PlatformMethod
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

non-interactive environments (CI/CD, scripts, piped output, --yes mode without TTY), the CLI does 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/
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 先决条件 ILUM-001ILUM-002):

法典 CategoryTitle
ILUM-001prerequisiteTool not found
ILUM-002prerequisiteTool version too old
ILUM-010Cluster unreachable
ILUM-011Namespace not found
ILUM-020helmHelm command failed
ILUM-021helmHelm timeout
ILUM-022helmRelease stuck
ILUM-023helmRelease not found
ILUM-024helmRelease already exists
ILUM-030配置 Config file invalid
ILUM-031配置 Config key not found
ILUM-040moduleUnknown module
ILUM-041moduleModule conflict
ILUM-050Values parse error
ILUM-051Values drift detected
ILUM-070execExec failed / No pods found
ILUM-071eventsEvents query failed
ILUM-072指标 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

名字 描述 违约 DependenciesConflicts
核心 Ilum backend API (Spring Boot on Spark)Yes
用户界面 Ilum web frontend (React + Nginx reverse proxy)Yes核心
livy-proxyLivy-compatible Spark session proxyNo核心
应用程序接口 Ilum REST API for module managementYes核心

Infrastructure

名字 描述 违约 DependenciesConflicts
mongodbMongoDB document store for metadataYes
卡 夫 卡 Apache Kafka event busNo核心
postgresqlPostgreSQL relational databaseYes
clickhouseClickHouse columnar analytics databaseNo
吉蒂亚 Gitea self-hosted Git serviceYespostgresql

存储

名字 描述 违约 DependenciesConflicts
小人 MinIO S3-compatible object storageYes

笔记本

名字 描述 违约 DependenciesConflicts
Jupyter Jupyter notebook server with SparkmagicYes核心
jupyterhubMulti-user JupyterHub (Kubernetes >= 1.28)No核心
zeppelinApache Zeppelin notebook serverNo核心

SQL

名字 描述 违约 DependenciesConflicts
SQL Ilum SQL engine (Kyuubi)Yespostgresql, 核心
特里诺 Trino distributed SQL query engineNohive-metastore, SQL
hive-metastoreHive Metastore serviceYespostgresql, 核心 尼斯 , unity-catalog
尼斯 Nessie versioned data catalogNopostgresqlhive-metastore, unity-catalog
unity-catalogUnity Catalog for data governanceNopostgresqlhive-metastore, 尼斯

配器

名字 描述 违约 DependenciesConflicts
airflowApache Airflow workflow orchestrationNopostgresql
kestraKestra declarative orchestration engineNopostgresql
n8n n8n workflow automation platformNopostgresql
nifiApache NiFi data integrationNo核心
mageaiMage.ai data pipeline toolNopostgresql

Analytics

名字 描述 违约 DependenciesConflicts
supersetApache Superset BI dashboardsNopostgresql
streamlitStreamlit interactive data applicationsNo核心
marquezMarquez data lineage trackingYespostgresql

AI

名字 描述 违约 DependenciesConflicts
MLflow MLflow experiment tracking and model registryNopostgresql
langfuseLangfuse LLM observability platformNopostgresql, clickhouse

监测

名字 描述 违约 DependenciesConflicts
监测 Prometheus + Grafana monitoring stackNo
lokiGrafana Loki log aggregationNo
graphiteGraphite metrics exporterNo

安全

名字 描述 违约 DependenciesConflicts
OpenLDAP OpenLDAP directory serviceNo

Enable/Disable Flags Reference

ModuleEnable FlagsDisable Flags
核心 ilum-core.enabled=trueilum-core.enabled=false
用户界面 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.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.enabled=truegitea.enabled=false
小人 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.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.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
MLflow mlflow.enabled=truemlflow.enabled=false
langfuselangfuse.enabled=truelangfuse.enabled=false
监测 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
应用程序接口 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 repo伊鲁姆 chart repository (charts.ilum.cloud) is configured
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 failed
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

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). ilum upgrade --force-rollback to recover.
ConfigErrorIlumErrorConfiguration is missing or invalid.Run ilum config initilum 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.ilum upgrade instead, or ilum uninstall first.
ReleaseNotFoundErrorIlumErrorA Helm release was expected but does not exist.ilum install to create the release, or ilum connect to attach to an existing one.

25. Exit Codes

法典 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).