Vai al contenuto principale

Note sull'aggiornamento

Note sull'aggiornamento

PROSSIMA VERSIONE

MODELLO DI NOTA

1. Cambiamento

Caratteristica:

Descrizione della funzionalità

Valori eliminati - nome del grafico

NomeRagione
helm.valueMotivo dell'eliminazione del valore Helm

Valori aggiunti - nome del grafico

Descrizione della sezione Valori
NomeDescrizioneValore
helm.valueDescrizione del valore dell'elmoValore predefinito

Nomi cambiati - nome del grafico

Vecchio nomeNuovo nome
vecchio nomeNuovo nome

⚠️⚠️⚠️ Warnings

Valori modificati - nome del grafico

NomeVecchio valoreNuovo valore
helm.valueValore precedenteNuovo valore

RELEASE 6.7.3

1. UI internationalization (i18n) + RTL

Caratteristica:

The web UI can now switch language and text direction at runtime from Settings (persisted to localStorage). The set of available languages is config-driven: add or remove a language with no frontend rebuild. Ships English + Persian (RTL) + Arabic (RTL) + Portuguese + Spanish + Chinese

  • Hindi; direction follows the language.

Values added - helm_ui (mirrored under ilum-ui.runtimeVars in helm_aio)

UI language configuration (rendered into the ilum-ui ConfigMap)
NomeDescrizioneValore
runtimeVars.defaultLanguageDefault UI language code (ILUM_DEFAULT_LANGUAGE)en
runtimeVars.availableLanguagesLanguages in the selector + i18next supportedLngs (ILUM_AVAILABLE_LANGUAGES); array of {code,label,dir,font?}[en, fa(rtl), ar(rtl), pt, es, zh, hi]
i18n.extraLocaleConfigMapsOptional ConfigMaps mounted over /usr/share/nginx/html/locales// to add or override catalogs at runtime (no rebuild)[]

Per-language font (the font field of each availableLanguages entry): Persian (fa) uses IRANSans, Arabic (ar) uses Vazirmatn. Both are self-hosted and the binaries are NOT shipped in the image; fa uses the free IRANSansWeb build. To render Persian in IRANSans, place the IRANSansWeb woff2 files in a custom UI image (public/fonts/) or mount them; otherwise the UI falls back to the system Persian font. Vazirmatn is SIL-OFL — confirm IRANSansWeb's terms fit your deployment, or set fa's font A "Vazirmatn".

⚠️⚠️⚠️ Warnings

None. New keys are additive with safe defaults; existing installs default to English with no behavior change. To add a brand-new language at runtime, append an availableLanguages entry AND mount its catalog JSON via i18n.extraLocaleConfigMaps (or bake it into a custom UI image under public/locales//).

2. RustFS object-storage provider (opt-in)

Caratteristica:

RustFS (Apache-2.0) is now bundled as an opt-in S3-compatible object storage provider alongside MinIO, which remains the default in the 6.7.x line. RustFS is planned to become the default in 6.8.0. Switching is a single Helm flag (rustfs.enabled=true, minio.enabled=false). A pre-upgrade hook refuses Aggiornamento dell'elmo when an existing MinIO PVC would be orphaned without explicit acknowledgement.

For step-by-step instructions, refer to Migrate Between Object Storage Providers. For the broader storage decision and provider reference pages, refer to the Object Storage section.

3. Object-storage credentials consolidation

Caratteristica:

All object-storage consumers now read S3 credentials from a single shared Secret, ilum-objectstorage-credentials, instead of per-consumer literal values in valori.yaml. The Secret holds six aliased keys: access-key, secret-key, root-user, root-password, RUSTFS_ACCESS_KEY, RUSTFS_SECRET_KEY. Consumers wired to this Secret include ilum-core, ilum-jupyter, ilum-history-server, ilum-hive-metastore, airflow, kestra, Trino, langfuse, loki, minioe rustfs.

Default credentials for net-new installs are Admin/Admin. On upgrade, the credentials-secret template's lookup preserves the live Secret values, so existing deployments keep their current credentials.

Per-consumer accessKey/secretKey literals in Helm values are now ignored when an existingSecret reference is set, which is the default in helm_aio.

The chart resolves the S3 Service + credentials Secret via templates/_storage.tpl helpers. Defaults to MinIO (ilum-minio, keys root-user/root-password); a live lookup for Service ilum-objectstorage switches it to the rustfs alias (ilum-objectstorage-credentials, keys access-key/secret-key) automatically. objectStorage.useAlias: true forces the alias path for CI helm template (no cluster lookup). Rotation is performed by editing the shared Secret and restarting the affected Pods. For the full procedure, refer to Rotate Object Storage Credentials.

4. OpenMetadata + OpenLineage integration

Caratteristica:

Ilum now ships an optional OpenMetadata data-catalog and governance layer, fed by OpenLineage events from Airflow and Spark. The whole stack is disabled by default and is safe on upgrade: an existing deployment that does not set the new flags brings up zero OpenMetadata resources and behaves exactly as before.

The integration is gated by five flags, all defaulting to falso: openmetadata.enabled, openmetadata-dependencies.enabled, openmetadataBootstrap.enabled, fixHmsDeltaColumns.enablede ilum-core.job.openLineage.openmetadata.enabled. Enabling the first four plus the OpenLineage transport leg brings up the OpenMetadata server (a small Ilum fork of the 1.12.5 image), its OpenSearch + PostgreSQL dependencies, the bootstrap Job, and the OL→OM backfill CronJob. Spark and Airflow lineage then flows into OpenMetadata via a composite OpenLineage transport that fans out to both Marquez and OpenMetadata.

Iceberg-via-Nessie catalog ingestion ships in preview status. For configuration, the governance model, and operational details, refer to OpenMetadata.

5. OM bootstrap Job + bot tokens

  • Bootstrap is a regular Job (-om-bootstrap-), not a hook — helm install returns immediately. Watch: kubectl logs -f job/-om-bootstrap-; final line is BOOTSTRAP_SUMMARY: {...}. Completed Jobs GC after 24h.
  • Bot tokens default-on (openmetadataBootstrap.botTokens.enabled: true): OM clients use the ingestion-bot/lineage-bot JWTs in the ilum-om-bot-tokens Secret; consumers fall back to admin login while the Secret holds placeholders.
  • ilum-core blocks startup on the bot token (job.openLineage.openmetadata.auth.waitForBotToken: true) via a wait-for-om-bot-token initContainer, so OpenLineage never falls back to the 1h-expiring admin login (which 401s long-lived Kyuubi engines). Set waitForBotToken: false for an external OM with no bootstrap-published token.
  • Bot-token attribution is self-healing but lags: pods that boot before the JWTs are published attribute OM writes to the ilum admin until their next restart. To switch immediately, roll Airflow + ilum-core once after BOOTSTRAP_SUMMARY. Cosmetic only (audit attribution) — both paths have identical permissions.
  • ilum-om-bot-tokens carries helm.sh/resource-policy: keep and holds never-expiring JWTs. On a shared cluster, after teardown delete it explicitly (kubectl delete secret ilum-om-bot-tokens -n ) or rotate the bots in OM.

6. OpenMetadata bootstrap behaviour

The bootstrap Job registers Hive/Superset/MinIO/Delta services and runs polish ops: sets openMetadataBaseUrlConfiguration, triggers SearchIndexing + DataInsights, seeds Table custom properties (sourceSystem, slaHours), bumps certification duration to P365D, and seeds two demo users. All ops are idempotent + non-fatal, and re-runs preserve operator overrides (GET-before-PUT on the base URL, service connections carrying ssl/kerberos/sasl/jaas/auth keys, and existing custom properties). The Hive service routes through Kyuubi (ilum-sql-thrift-binary:10009) — no separate Kyuubi service is registered.

NomeDescrizioneValore
openmetadataBootstrap.publicBaseUrlOM base URL for alert mails / deep-links. Override in production.http://localhost:9777/external/openmetadata
openmetadataBootstrap.demoUsersEnabledSeed analyst/steward demo users. Set falso in production.vero
openmetadataBootstrap.certificationDurationISO8601Default certification validity."P365D"
openmetadataBootstrap.omUserOM admin user (Secret -openmetadata-admin).[email protected]
openmetadataBootstrap.omPasswordOM admin password. Change for production.Admin
openmetadataBootstrap.botTokens.enabledPublish bot JWTs to ilum-om-bot-tokens.vero

The OM admin password lives only in the -openmetadata-admin Secret (consumed by the bootstrap Job, Airflow, and ilum-core via secretKeyRef); rotate by editing openmetadataBootstrap.omPassword. Two more Secrets render with the release: ilum-superset-admin e ilum-hms-db-creds (account for them if you mirror manifests externally).

7. OM ingestion CronJobs are OM-owned

OM creates 7 om-cronjob-* ingestion CronJobs server-side (label managed-by=openmetadata, no ownerReferences). Edit schedules/pipelines through a re-bootstrap PATCH, not the CronJob directly (reverted on next bootstrap). The helm uninstall pre-delete hook reaps them. Scheduled Hive ingestion runs with overrideMetadata: false so it preserves DAG-set Tier/Certification governance.

8. Delta + lineage helpers (opt-in flags, default on)

NomeDescrizioneValore
openmetadataBootstrap.deltaEnricher.enabledCronJob PATCHing Delta facets onto OM tables (Rust deltalake, ~80MB).vero
openmetadataBootstrap.deltaEnricher.scheduleDelta property refresh cron.0 */6 * * *
openmetadataBootstrap.olBackfill.enabledCronJob replaying Marquez OL events to OM (idempotent gap-fill).vero
openmetadataBootstrap.olBackfill.scheduleOL replay scan cron.0 2 * * *
fixHmsDeltaColumns.enabledPost-install/upgrade Job repairing Delta col array HMS schemas.falso

OM's native DeltaLake-S3 connector stays paused (>4Gi peak); the enricher CronJob fills Delta facets instead.

9. OpenLineage namespace

Airflow OL events use airflow.config.openlineage.namespace (default ilum-airflow, single source of truth). Bootstrap's namespaceToServiceMapping attaches s3://ilum-data, spark://ilum-sql-thrift-binary:10009e ilum-airflow to the right OM services. Override the namespace only to match events already in Marquez/OM.

10. Production overrides checklist

KeyDefaultFor production
openmetadataBootstrap.publicBaseUrlhttp://localhost:9777/external/openmetadataactual ingress URL
openmetadataBootstrap.demoUsersEnabledverofalso (use LDAP/OIDC)
openmetadataBootstrap.omPasswordAdmina real password
gitea.gitea.config.server.ROOT_URLhttp://localhost:9777/external/gitea/public host (path must match STATIC_URL_PREFIX)

The chart installs into any namespace (bare service DNS names, no .svc.cluster.local). If you carry extraValues overrides with FQDN metastore addresses, drop .ilum.svc.cluster.local or Spark lineage silently fails to map.

11. Iceberg via Project Nessie (opt-in, OFF by default)

A stock install runs Hive-only with no Nessie pod. Enable Iceberg cataloging (starts a Nessie pod + Postgres DB) with BOTH flags — the gate ANDs them:

helm upgrade ilum ./helm_aio \
--mettere nessie.enabled=vero \
--mettere openmetadataBootstrap.services.iceberg.enabled=vero
NomeDescrizioneValore
openmetadataBootstrap.services.iceberg.enabledRegister OM Iceberg service (needs nessie.enabled).falso
openmetadataBootstrap.services.iceberg.restUriNessie Iceberg-REST URI (no ref in path).http://ilum-nessie:19120/iceberg
openmetadataBootstrap.services.iceberg.warehouse / .catalogNameSymbolic warehouse name.nessie_catalog
openmetadataBootstrap.services.iceberg.{endpoint,accessKey,secretKey,region}S3-reader overrides (empty = objectStorage Secret)."" / Stati Uniti-Est-1
nessie.catalog.enabledNessie Iceberg-REST endpoint.vero

Gotchas:

  • Do NOT disable Hive to go "Iceberg-first": the bundled example tables are Delta/Parquet via HMS, and bootstrap gates SUCCESS on Hive producing ≥10 tables (openmetadataBootstrap.examplesIngest.expectedMinTables). Iceberg-only also needs openmetadataBootstrap.examplesIngest.enabled=false.
  • The OM ingestion reader reads Iceberg metadata.json/manifests directly from S3, so it MUST hold creds that read s3://ilum-data/nessie_catalog/. A credential mismatch registers fine but ingests 0 tables.
  • On rustfs/non-default backends, override nessie.catalog.storage.s3.defaultOptions.accessKeySecret (static YAML, defaults to the minio Secret) so Nessie and the OM reader resolve the SAME identity.
  • To catalog a ref other than principale, pin it via a Nessie warehouse, not the URI path (putting the ref in the path → HTTP 404). OM ingests one ref; no history.

12. Hive 4 support (opt-in)

Set ilum-hive-metastore.majorVersion: 4 per apache/hive:standalone-metastore-4.x images (default 3). A v3 Postgres DB cannot be reused for v4 (incompatible schemas). Running v3 + v4 side-by-side: give v4 its own database (--set ilum-hive-metastore.postgresql.database=metastore_v4) and add it to postgresExtensions.databasesToCreate. Spark against a v4 metastore needs Hive 4 client jars — use ilum/spark:4.0.2-delta-hive4 as the cluster image.

13. Airflow pools

airflowExtensions.pools pre-creates the listed Airflow pools (name + slots) via an init container on the Airflow api-server/scheduler. Default is empty ([]); add your own DAGs' pools here.

14. Cross-stack observability + cost attribution

Caratteristica

A new cross-stack observability stack (off by default) bundles an OpenTelemetry Collector (helm_otel_collector sub-chart), a Tempo trace backend (ilum-tempo, S3-backed), and Loki/Promtail log correlation, adding a Pipeline Trace tab spanning Airflow → ilum-service → Spark. A separate daily cost-attribution rollup (off by default) writes cost landing files from an in-driver Spark plugin and folds them in-core into per-job and per-table Cost tabs. Hostnames are release-name portable via _helpers.tpl, so the stack works under any release name. The settings entity (sampling ratio, listener policy, rate card) is seeded from helm_core's observabilityDefaults on first boot only — UI/dev-API edits win afterward. The previously-unprotected /api/dev/reactive/lineage/* e /cost/* endpoints now require permissions.

Values added - helm_aio

NomeDescrizioneValore
global.observability.otel.enabledEnable the OTel collector + Tempo trace backend + log correlationfalso
global.observability.monitoring.enabledRender the ServiceMonitor + PrometheusRule alert set for Tempo/collectorfalso
global.costAggregator.enabledEnable the daily cost-attribution rollupfalso
global.costAggregator.retentionDaysClamp the cost reader window to this many days90
global.observability.otel.tempoAuth.modeTempo query auth (none | bearer | basic)none
global.logAggregation.loki.auth.modeLoki query auth (none | bearer | basic)none
global.observability.otel.tenant.idTenant filter for a shared Tempo (empty = single-tenant)""

Values changed - ilum-tempo

NomeVecchio valoreNew value
ilum-tempo.tempo.resources.limits.memory2Gi4Gi

⚠️ Warnings

The observability stack hostnames are now derived at render time by helpers in helm_aio/templates/_helpers.tpl (ilum-aio.tempoHost, ilum-aio.lokiReadHost, ilum-aio.otelCollectorHost, ilum-aio.lokiQueryUrl). An overlay carrying an explicit hostname override copied from a previous release still takes precedence but couples the install to the ilum release name — drop it to let the helpers pick the correct hostname.

RELEASE 6.7.2

1. Default Java options for ilum-core

Caratteristica:

Added default JVM options to ilum-core for optimized memory and performance. The javaOpts value is now appended to security-related Java options (trustStore/keyStore) instead of replacing them, allowing both to coexist.

Values changed - helm_core

NomeVecchio valoreNuovo valore
javaOpts"""-XX:-UsePerfData -XX:+UseStringDeduplication -Xms256m -XX:MaxMetaspaceSize=256m -XX:MaxDirectMemorySize=256m -XX:CICompilerCount=2 -XX:G1ConcRefinementThreads=2 -XX:ReservedCodeCacheSize=128m"

2. Unity Catalog init container for ilum-core

Caratteristica:

Added a wait-for-unity-catalog init container to the ilum-core deployment, matching the existing pattern for Hive and Nessie. When metastore.type è impostato su unity, the init container waits for the Unity Catalog server to become reachable before starting ilum-core, preventing startup failures due to race conditions.

Values added - helm_aio

NomeDescrizioneValore
ilum-core.metastore.unity.statusProbe.enabledEnable init container to wait for Unity Catalogvero

3. PostgreSQL support for ilum-core

Caratteristica:

Added PostgreSQL as an alternative persistence backend to MongoDB. The backend is selected via storage.type (mongo o postgres). When set to postgres, Mongock migrations and the MongoDB status probe are skipped, and PostgreSQL connection details are injected instead. The MongoDB URI (mongo.uri) is always present in the configmap regardless of storage.type, so that the built-in MongoToPostgresMigration tool can read from MongoDB during migration. Flyway migrations run automatically on startup — no manual schema setup is needed. Existing deployments using MongoDB are unaffected; the default remains mongo.

Values added - helm_core

Storage type selection and migration
NomeDescrizioneValore
storage.typePersistence backend: mongo o postgresmongo
storage.migration.mongoToPostgresEnable one-time data migration from MongoDB to PostgreSQL. Set to vero together with storage.type=postgres and a valid mongo.uri to migrate all data on startup. Disable after migration completes.falso
PostgreSQL connection settings
NomeDescrizioneValore
postgres.hostPostgreSQL hostnameilum-postgresql
postgres.portPostgreSQL port5432
postgres.databaseDatabase nameilum
postgres.usernameDatabase usernameilum
postgres.passwordDatabase passwordCAMBIAMIPER favore
postgres.createSecretCreate a K8s Secret with postgres credentialsvero
postgres.existingSecretUse an existing K8s Secret (must have keys: POSTGRES_USERNAME, POSTGRES_PASSWORD)""
postgres.statusProbe.enabledEnable init container that waits for PostgreSQL readinessvero
postgres.statusProbe.imageImage used for the PostgreSQL readiness probebusybox:1.36

⚠️⚠️⚠️ Warnings

Migrating from MongoDB to PostgreSQL:

  1. Set storage.type=postgres and configure postgres.* connection values
  2. Ensure mongo.uri still points to the existing MongoDB instance
  3. Set storage.migration.mongoToPostgres=true
  4. Run Aggiornamento dell'elmo — the backend will migrate all data from MongoDB to PostgreSQL on startup
  5. After successful migration, set storage.migration.mongoToPostgres=false and run Aggiornamento dell'elmo again

4. Slimmed down ilum-core bundled configuration

Caratteristica:

The bundled application.yml in ilum-core has been significantly slimmed down. Hardcoded defaults that are now managed by the application itself (Spring multipart config, Kafka admin settings, codec size, task scheduling pool, leader election tuning, third-party logging levels, license validation details) have been removed from the Helm-generated config. This reduces the surface area of the ConfigMap and avoids conflicts with application-managed defaults.

⚠️⚠️⚠️ Warnings

If you relied on any of the removed hardcoded values (e.g., custom spring.servlet.multipart limits, spring.kafka.admin.fail-fast, logging levels for org.apache.kafka o org.mongodb.driver), you must now set them via the new customConfig o overrideConfig mechanisms described below.

5. Config override and custom config for ilum-core

Caratteristica:

Added two new mechanisms for advanced configuration of ilum-core:

  • overrideConfig: Replaces the bundled application.yml entirely with a user-managed ConfigMap (mounted at /etc/ilum/override).
  • customConfig: Mounts an additional ConfigMap at /etc/ilum/custom for partial overrides that layer on top of the bundled config.

Values added - helm_core

Full config override
NomeDescrizioneValore
overrideConfig.enabledEnable full config override (replaces bundled application.yml entirely)falso
overrideConfig.configMapNameName of a user-managed ConfigMap containing a complete application.yml replacement""
Custom config escape hatch
NomeDescrizioneValore
customConfig.enabledEnable custom config escape hatch (mounts an additional ConfigMap at /etc/ilum/custom)falso
customConfig.configMapNameName of a user-managed ConfigMap containing application.yml overrides""

⚠️⚠️⚠️ Warnings

The config mount path has changed from /config A /etc/ilum/config. If you have scripts or tooling that references the old path, update them accordingly.

6. Default communication mode changed to gRPC

Caratteristica:

The default communication mode in ilum-core has changed from Kafka A grpc.

Values changed - helm_core

NomeVecchio valoreNuovo valore
comunicazione.tipoKafkagrpc

⚠️⚠️⚠️ Warnings

If your deployment depends on Kafka-based communication between ilum components, explicitly set communication.type: kafka in your values.

7. New configurable parameters in ilum-core

Caratteristica:

Spring actuator endpoint exposure and job instance result timeout are now configurable via values instead of being hardcoded.

Values added - helm_core

NomeDescrizioneValore
management.endpoints.web.exposure.includeSpring actuator endpoints to expose"info,configprops,env,metrics,mappings,beans,prometheus,health"
job.instance.result.timeout.msJob instance result timeout in milliseconds120000

8. Schema and nullability fixes

Caratteristica:

Fixed sql.url A sql.host in the ilum-core configmap to match the actual values key.

Names changed - helm_core (configmap only)

Vecchio nomeNuovo nome
sql.urlsql.host

9. rustfs added as an opt-in object storage provider

Caratteristica

rustfs (Apache-2.0) is now bundled in helm_aio as an opt-in S3-compatible object storage provider (rustfs.enabled=false by default). minio remains the default provider (minio.enabled=true); rustfs is planned to become the default in 6.8.0. A stable Service alias ilum-objectstorage routes to whichever provider is enabled; all downstream consumers (Trino, Nessie, Jupyter, MLflow, Airflow, Kestra, Langfuse, the helm_core readiness probe) target this alias instead of provider-specific names.

⚠️⚠️⚠️ Warnings

  • rustfs is currently published as 1.0.0-alpha.99; distributed mode is marked "under testing" upstream. helm_aio defaults rustfs to standalone mode with a single 50Gi PVC.
  • A pre-upgrade hook detects orphan minio PVCs and refuses the upgrade unless the operator has chosen one of the paths below.

Choose one path on upgrade

Path A: keep using minio (zero-touch)
helm upgrade ilum ./helm_aio --mettere minio.enabled=vero --mettere rustfs.enabled=falso

Existing data is untouched; consumers continue talking to ilum-objectstorage which now selects minio pods.

Path B: migrate from minio to rustfs

Single credential source. Every consumer (ilum-core, jupyter, airflow, trino, kestra, langfuse, loki, hive-metastore, minio, rustfs) now reads S3 credentials from the shared ilum-objectstorage-credentials Secret. Net-new installs default to amministratore/amministratore; rotate with:

kubectl edit secret ilum-objectstorage-credentials
kubectl rollout restart deploy,statefulset -l 'app.kubernetes.io/part-of=ilum'

When upgrading from a MinIO-only deployment with non-default credentials, seed the new Secret with the live minio root creds before running the upgrade so consumers don't lose access:

EXISTING_USER=$(kubectl get secret ilum-minio -o jsonpath='{.data.root-user}' | base64 -d)
EXISTING_PASS=$(kubectl get secret ilum-minio -o jsonpath='{.data.root-password}' | base64 -d)
kubectl create secret generic ilum-objectstorage-credentials \
--from-literal=access-key=$EXISTING_USER \
--from-literal=secret-key=$EXISTING_PASS \
--from-literal=root-user=$EXISTING_USER \
--from-literal=root-password=$EXISTING_PASS \
--from-literal=RUSTFS_ACCESS_KEY=$EXISTING_USER \
--from-literal=RUSTFS_SECRET_KEY=$EXISTING_PASS
# the credentials-secret template's preserveExisting lookup will keep these
# values intact across helm upgrades.
# 1. Run both providers side by side. Acknowledge the cutover so the
# pre-upgrade hook accepts the upgrade.
helm upgrade ilum ./helm_aio \
--mettere minio.enabled=vero \
--mettere rustfs.enabled=vero \
--mettere rustfs.migrationAcknowledged=vero

# 2. Dry-run the migration Job to preview what would be copied.
helm upgrade ilum ./helm_aio \
--mettere minio.enabled=vero \
--mettere rustfs.enabled=vero \
--mettere rustfs.migrationAcknowledged=vero \
--mettere migration.minioToRustfs.enabled=vero \
--mettere migration.minioToRustfs.dryRun=vero
kubectl logs job/ilum-minio-to-rustfs-migration-<rev>

# 3. Run the real migration.
helm upgrade ilum ./helm_aio \
--mettere minio.enabled=vero \
--mettere rustfs.enabled=vero \
--mettere rustfs.migrationAcknowledged=vero \
--mettere migration.minioToRustfs.enabled=vero
kubectl -n ilum wait job -l app.kubernetes.io/component=migration --for=condition=complete --timeout=600s

# 4. Verify (e.g. mc diff against both providers), then disable minio.
helm upgrade ilum ./helm_aio --mettere rustfs.migrationAcknowledged=vero

For per-bucket manual procedures (no Job), see the documentation site: documentation/docs/operations/migrate-minio-to-rustfs.md.

Path C: net-new install

Nothing to do. minio is the default; the alias Service is created automatically. To start on rustfs instead, set rustfs.enabled=true e minio.enabled=false.

Values added - helm_aio

NomeDescrizioneValore
global.s3.hostStable Service name targeted by S3 consumersilum-objectstorage
global.s3.portS3 API port9000
global.s3.consolePortWeb console port9001
global.s3.regionDefault S3 regionStati Uniti-Est-1
global.s3.pathStylePath-style addressing flag for S3 clientsvero
global.s3.sslSSL flag for S3 clientsfalso
rustfs.enabledEnable bundled rustfs chartvero
rustfs.moderustfs deployment modestandalone
rustfs.persistence.sizerustfs PVC size50Gi
rustfs.migrationAcknowledgedOperator acknowledgement that disabling minio is intentional (read by the pre-upgrade hook)falso
rustfsExtensions.enabledEnable bucket/policy bootstrap on rustfsvero
objectStorage.service.enabledRender the ilum-objectstorage Service aliasvero
objectStorage.credentials.createCreate the shared credentials Secretvero
objectStorage.credentials.nameName of the shared credentials Secretilum-objectstorage-credentials
objectStorage.credentials.accessKeyDefault access key (only used to bootstrap the Secret; rotated values survive upgrades via lookup)Admin
objectStorage.credentials.secretKeyDefault secret keyAdmin
rustfs.secret.rustfs.access_keyRoot access key the rustfs Pod is launched with (must match objectStorage.credentials.accessKey)Admin
rustfs.secret.rustfs.secret_keyRoot secret key the rustfs Pod is launched withAdmin
objectStorage.defaultBucketsDefault buckets created by the rustfs init Job and migrated by the migration Job[ilum-files, ilum-data, ...]
migration.minioToRustfs.enabledRender the one-shot migration Jobfalso
migration.minioToRustfs.dryRunPass --fake to mc mirror (preview only)falso
migration.minioToRustfs.deleteAfterAfter successful mirror, remove source data with mc mirror --removefalso
migration.minioToRustfs.ttlSecondsAfterFinishedKeep Job logs around for inspection86400
preUpgradeChecks.enabledRender the pre-upgrade safety hook (disable in CI)vero

Values changed - helm_aio

NomeVecchio valoreNew value
minio.enabledverofalso
ilum-core.kubernetes.s3.hostilum-minioilum-objectstorage
ilum-core.metastore.nessie.s3Endpointhttp://ilum-minio:9000/http://ilum-objectstorage:9000/
ilum-core.minio.statusProbe.baseUrlhttp://ilum-minio:9000http://ilum-objectstorage:9000
trino.catalogs.ilum-delta (s3.endpoint=...)http://ilum-minio:9000http://ilum-objectstorage:9000
mlflow.externalS3.hostilum-minioilum-objectstorage
mlflow.externalS3.existingSecretilum-minioilum-objectstorage-credentials
mlflow.externalS3.existingSecretAccessKeyIDKeyroot-useraccess-key
mlflow.externalS3.existingSecretKeySecretKeyroot-passwordsecret-key
kestra.configuration.kestra.storage.minio.endpointilum-minioilum-objectstorage
langfuse.langfuse.s3.endpointhttp://ilum-minio:9000http://ilum-objectstorage:9000
ilum-jupyter.extraEnv (S3_ENDPOINT)http://ilum-minio:9000http://ilum-objectstorage:9000
airflow.extraEnv (MINIO_ENDPOINT, AWS_ENDPOINT_URL, AIRFLOW_CONN_ILUM-MINIO)http://ilum-minio:9000http://ilum-objectstorage:9000
ilum-ui.runtimeVars.minioUrlhttp://ilum-minio:9001http://ilum-objectstorage:9001

Values added - helm_core

NomeDescrizioneValore
objectStorage.statusProbe.enabledEnable readiness probe init container for object storagevero
objectStorage.statusProbe.baseUrlBase URL probed for readinesshttp://ilum-objectstorage:9000
objectStorage.statusProbe.imageProbe init-container imagecurlimages/curl:8.5.0
objectStorage.statusProbe.healthPathHTTP path probed (root works for both rustfs and minio)/

Values changed - helm_core

NomeVecchio valoreNew value
minio.statusProbe.baseUrlhttp://ilum-minio:9000http://ilum-objectstorage:9000

The legacy minio.statusProbe block is retained as a deprecated alias; templates prefer objectStorage.statusProbe and fall back to it when the new key is unset.

Values added - helm_ui

NomeDescrizioneValore
runtimeVars.objectStorageUrlConsole URL for the object-storage viewhttp://ilum-objectstorage:9001
runtimeVars.objectStoragePathUI iframe path/external/object-storage/
nginx.config.objectStorage.enabledRender the /external/object-storage/ proxy blockfalso
nginx.config.http_cookie.objectStorage.enabledCookie gate for the new pathvero

10. Kestra chart 1.0.x upgrade (breaking)

Caratteristica:

Bumped the bundled kestra chart from ^0.22.x A ^1.0.x (Kestra app ~v0.20 → v1.3.x). The Kestra Helm chart was rewritten in 1.0.0 — top-level deployment fields moved under a new common: block, the configuration: map was renamed to configurations.application, serviceAccountName was replaced by a structured serviceAccount block, the dind sidecar gained a mode: rootless|insecure selector, and the bundled postgres/minio/Kafka/elasticsearch subchart dependencies were dropped (operators bring their own). The umbrella kestra: block has been restructured accordingly; existing Ilum integrations (PostgreSQL backend, MinIO storage, Nginx context path, root-mode dind, post-install example flow Job) are preserved.

Names changed - kestra

Vecchio nomeNuovo nome
kestra.configurationkestra.configurations.application
kestra.serviceAccountNamekestra.serviceAccount.name (with kestra.serviceAccount.create: false)
kestra.securityContextkestra.common.securityContext
kestra.initContainerskestra.common.initContainers
kestra.dind.image.tagkestra.dind.base.insecure.image.tag (with kestra.dind.mode: insecure)
kestra.dind.argskestra.dind.base.insecure.args
kestra.dind.securityContextkestra.dind.base.insecure.securityContext

Values changed - kestra

NomeOld ValueNuovo valore
kestra.exampleFlow.kestraServicekestra-servicekestra
ilum-ui.runtimeVars.kestraUrlhttp://ilum-kestra-service:8080http://ilum-kestra:8080

Values deleted - kestra

NomeRagione
kestra.postgresql.enabledSubchart dependency removed in 1.0.0; operators provide their own PostgreSQL.
kestra.minio.enabledSubchart dependency removed in 1.0.0; operators provide their own object storage.
kestra.startupProbe.pathReplaced by the structured kestra.common.startupProbe (full Kubernetes probe spec). Path stays /external/kestra/health because Micronaut propagates server.contextPath to the management server (8081) too.
kestra.livenessProbe.pathReplaced by kestra.common.livenessProbe; path stays /external/kestra/health/liveness.
kestra.readinessProbe.pathReplaced by kestra.common.readinessProbe; path stays /external/kestra/health/readiness.

Values added - kestra

NomeDescrizioneValore
kestra.deployments.standalone.enabledEnables the standalone Kestra deployment in the new split-deployment model.vero
kestra.deployments.standalone.dind.enabledEnables the dind sidecar for the standalone deployment.vero
kestra.dind.modeSelects the dind sidecar mode (rootless o insecure); Ilum defaults to insecure to preserve prior root-mode behaviour.insecure
kestra.serviceAccount.createControls whether the chart creates the ServiceAccount; Ilum sets it to falso and reuses the Spark SA.falso

⚠️⚠️⚠️ Warnings

  • The Kestra application itself was bumped from the 0.x line to v1.3.x. Verify any custom flow definitions against the Kestra 1.0.0 migration guide — reserved Flow IDs, the purgeAuditLogs.permissions → resources rename, removal of the Singer plugin, dynamic rendering of input defaults, and custom-plugin package structure changes can break existing flows.
  • kestra.dind.mode: insecure runs the dind sidecar privileged with elevated capabilities. On hardened clusters switch to kestra.dind.mode: rootless and drop the kestra.common.securityContext.runAsUser/runAsGroup overrides.
  • The Kestra Service object is now named -kestra (chart fullname) instead of -kestra-service. The bundled helm_ui kestraUrl runtimeVar (consumed by the Nginx proxy via ILUM_KESTRA_URL) and the exampleFlow post-install Job have been updated to the new name. Any external references to ilum-kestra-service must be updated manually.
  • Kestra 1.0+ moved the flow API under a tenant path (/api/v1/{tenant}/flows). The bundled exampleFlow Job now POSTs to /api/v1/main/flows (the OSS implicit tenant). Operators with custom ricciolo/SDK calls against the Kestra API must add the tenant segment.

11. Kyuubi server image bumped to 1.11.1-spark-trino

Caratteristica

The default ilum-sql (Kyuubi) server image is bumped to ilum/kyuubi:1.11.1-spark-trino. Existing Aggiornamento dell'elmo users will pick up the new image automatically.

Values changed - helm_kyuubi

NomeOld ValueNuovo valore
immagine.tag1.10.2-spark-trino1.11.1-spark-trino

12. JupyterLab Pipeline Exporter ↔ Airflow integration (helm_jupyter)

Caratteristica

The bundled JupyterLab now ships jupyterlab-pipeline-exporter (JPE), which generates Airflow DAGs from notebooks and can auto-trigger them against the in-cluster Airflow REST API. The helm_jupyter Deployment mounts a new jupyter-pipeline-exporter-cm.yaml ConfigMap and renders the env vars JPE needs to mint bearer tokens (AIRFLOW_JWT_SECRET, AIRFLOW_API_URL), push DAGs into Gitea (GITEA_USERNAME, GITEA_PASSWORD), and build clickable deep-links (ILUM_UI_URL).

git.enabled is split into two orthogonal flags so a slim deploy without the gitea subchart can keep JPE's Gitea creds without forcing the init-container seed loop to run. The init loop (curl healthz wait + git init/commit/push) is now gated on git.initialCommit.enabled; the GITEA_* env vars are gated on git.existingSecret alone. git.enabled is retained as a deprecated back-compat alias for git.initialCommit.enabled.

Operator impact (zero by default)

On AIO (airflow.enabled=true, gitea subchart present) the chart defaults render the full integration automatically on Aggiornamento dell'elmo — no action required. On a slim deploy without Airflow, set airflowIntegration.enabled=false to suppress the JWT env block; on a slim deploy without the gitea subchart, set git.initialCommit.enabled=false (instead of the old git.enabled=false) so the init container no longer hangs while still mounting JPE's Gitea creds via git.existingSecret.

Values added - helm_jupyter

NomeDescrizioneValore
airflowIntegration.enabledRender the AIRFLOW_JWT_SECRET / AIRFLOW_API_URL block for JPE's DAG auto-triggervero
git.initialCommit.enabledRun the init-container that seeds the work dir into Giteafalso
ilumUiUrlBrowser-facing Ilum UI base URL surfaced as ILUM_UI_URL for JPE deep-linkshttp://localhost:9777

Values changed - helm_jupyter

NomePre-upgradePost-upgrade
git.enabledgated init loop e GITEA_* env varsdeprecated alias for git.initialCommit.enabled; GITEA_* env vars now gate on git.existingSecret

13. Preset feature

Caratteristica

New first-class Preset entity. A preset is a named bag of Spark / runtime properties that can be attached by id to clusters, services (groups), schedules, and jobs. At job-launch time the preset's properties merge into the resulting Spark config so users can pin a bundle (Delta / Iceberg / Hudi) once and reuse it instead of re-typing the same 5+ keys.

CRUD is exposed at POST/GET/PUT/DELETE /api/v1/preset (public) and at /api/dev/reactive/preset (internal). New PRESET_READ, PRESET_CREATE, PRESET_EDIT, PRESET_DELETE permissions are added.

Postgres V1 schema gains a preset table and preset_ids text[] columns on grappolo, Gruppi, schedule. Mongo gains the same field lazily — no migration required.

Operator-controllable defaults (helm)

helm_core/values.yaml ships a new top-level presets: block. Each entry (nome, descrizione, proprietà) is auto-seeded at first boot by the backend's DefaultPresetInitializer. The chart defaults ship a delta and an iceberg entry; remove or override them to taste, or set presets: [] to disable defaults entirely.

The default cluster's attached presets are also helm-controlled via kubernetes.defaultCluster.presetNames (defaults to [delta]). Each entry is resolved to a preset id at boot time via a deterministic v3 UUID derived from the name (same hash as the initializer uses), so the linkage is stable across restarts.

Values added — helm_core

NomeDescrizioneValore
presetsSpark/runtime property bundles auto-seeded on first bootList of delta + iceberg
kubernetes.defaultCluster.presetNamesNames (declared under presets:) attached to the default cluster on first boot[delta]

Values removed — helm_core

NomeRagione
kubernetes.defaultCluster.config.spark.kubernetes.container.imageMoved into the delta preset entry under top-level presets:
kubernetes.defaultCluster.config.spark.databricks.delta.catalog.update.enabledSame
kubernetes.defaultCluster.config.spark.sql.extensionsSame
kubernetes.defaultCluster.config.spark.sql.catalog.spark_catalogSame

Operator impact

Zero on a default upgrade. The bundled delta preset reproduces exactly the Delta keys that previously lived inline in the default cluster's defaultApplicationConfig. Existing user-created clusters keep their own config unchanged.

If you customised kubernetes.defaultCluster.config with non-Delta overrides, those entries are preserved as-is — only the four Delta-specific keys were lifted into the preset.

Operators wanting to add their own preset (e.g. a tuned Nessie bundle) extend presets: in their values override:

ilum-core:
presets:
- nome: Nessie
descrizione: Iceberg + Nessie wiring
proprietà:
spark.kubernetes.container.image: my-registry/spark:Nessie
spark.sql.extensions: org.projectnessie.spark.extensions.NessieSparkSessionExtensions
# ...
kubernetes:
defaultCluster:
presetNames:
- delta
- Nessie

Renaming a preset detaches any cluster / group / schedule that referenced the old id (the id is derived from the name). Detach in the UI first, or use the API to update presetIds to the new id before removing the old entry.

Merge precedence at job launch (last wins): cluster's effective config (including its attached presets via ClusterConfigurer) → system providers (memory, metastore, packages) → entity presets → entity jobConfig. The symmetric "plain spark args you typed at the entity level win" rule still applies. Follow-up #202 will extract immagine e Namespace to first-class cluster fields so presets layer cleanly without the current "plain wins" caveat on the cluster scope.

14. Airflow secret backend + base image bump

Caratteristica

The bundled Airflow image (ilum/airflow) now ships an IlumS3SecretsBackend that resolves the conn-id aliases ilum-minio, ilum-s3e ilum-objectstorage (plus their _-separated and case variants) to a single canonical AIRFLOW_CONN_ILUM_S3 env var. Activating the backend (AIRFLOW__SECRETS__BACKEND=ilum_secrets_backend.IlumS3SecretsBackend) is already wired in helm_aio/values.yaml.

This replaces the broken AIRFLOW_CONN_ILUM-MINIO_CMD / AIRFLOW_CONN_ILUM-S3_CMD printf-based env-var pattern. Airflow 3 silently dropped _CMD resolution for connection env vars — the suffix now resolves only for config keys like SQL_ALCHEMY_CONN_CMD — which caused worker pods to surface RuntimeError: generator didn't yield from the remote-logging path and InvalidAccessKeyId from user S3Hook calls.

The same change bumps the base image from apache/airflow:3.1.6 A apache/airflow:3.2.1 across all four ops/docker/ilum-airflow/ variants (Dockerfile, Dockerfile-plain, Dockerfile-spark, Dockerfile-spark-4.x), and switches the bake-in install location for the backend to /opt/ilum_secrets/ with a PYTHONPATH prepend so the module path no longer depends on the base image's Python minor.

Operator impact (zero by default)

The Helm values flip is opt-in via the chart-default airflow.enabled flag — operators with airflow.enabled=true pick up the new env configuration automatically on Aggiornamento dell'elmo. No DAG changes are required: BaseHook.get_connection("ilum-minio") e S3Hook(aws_conn_id="ilum-s3") continue to work, but now resolve to a storage-backend-agnostic connection.

KeyPre-upgradePost-upgrade
airflow.airflowVersion3.1.63.2.1
airflow.images.airflow.tag3.1.63.2.1
airflow.extraEnv AIRFLOW_CONN_ILUM-MINIO_CMD(broken printf pattern)removed
airflow.extraEnv AIRFLOW_CONN_ILUM-S3_CMD(broken printf pattern)removed
airflow.extraEnv AIRFLOW__SECRETS__BACKEND(unset)ilum_secrets_backend.IlumS3SecretsBackend
airflow.extraEnv AIRFLOW_CONN_ILUM_S3(unset)JSON literal with $(AWS_*) downward expansion

DAG-level changes from Airflow 3.1.6 to 3.2.1 are minor; full changelog at https://airflow.apache.org/docs/apache-airflow/3.2.1/release_notes.html.

Failure modes (now caught at chart-render time)

  • If an operator overrides airflow.images.airflow.tag to an ilum/airflow tag that does not contain /opt/ilum_secrets/ (e.g. an older custom build), the secrets backend resolves to ModuleNotFoundError: ilum_secrets_backend at scheduler start. Fix by upgrading the image or unsetting AIRFLOW__SECRETS__BACKEND.

15. Object storage console wiring is now data-driven

Caratteristica

The active object-storage provider, the Object Storage iframe path, and the /external/object-storage/ nginx redirect target are now derived from a single source of truth in helm_aio/templates/_helpers.tpl. The previously hand-rolled three-way conditional in ui-cm.yaml has been replaced with helper calls; the objectstorage-svc.yaml inline resolution has been collapsed into the same helper.

A new objectStorage.providers registry maps provider names to their console paths and routing modes. To enable a third S3-compatible backend (e.g. SeaweedFS) for benchmarking or migration:

  1. Add the chart dependency under helm_aio/Chart.yaml.
  2. Add an entry under objectStorage.providers. con consolePath e consoleMode (same-origin o nginx-rewrite).
  3. Set objectStorage.activeProvider: to flip user-facing traffic.

Operator impact (zero by default)

Existing RC2 overlays that only set rustfs.enabled / minio.enabled / rustfs.migrationAcknowledged continue to work unchanged. The chart reads the legacy flags as back-compat shims.

The registry intentionally does NOT set a default Abilitato field for rustfs e minio; the chart-level flags (.Values.rustfs.enabled / .Values.minio.enabled) remain the single source of truth for those two providers. This avoids the silent override that would occur if the new chart-default registry flipped objectStorage.providers.rustfs.enabled=true on a user who had rustfs.enabled=false in their overlay.

Verified upgrade paths (zero operator action required):

Pre-upgrade overlayPost-upgrade resolved providerRisk
minio.enabled=true, rustfs.enabled=false (default)minionone
minio.enabled=false, rustfs.enabled=true (opt-in)rustfsnone
minio.enabled=true, rustfs.enabled=true, rustfs.migrationAcknowledged=falseminio (data-bearing side)none
minio.enabled=true, rustfs.enabled=true, rustfs.migrationAcknowledged=truerustfs (post-cutover)none
objectStorage.activeProvider= explicit override verbatimonly if has no pods, ilum-core readiness fails loudly
Pre-RC2 install (no rustfs key, only minio.enabled=true)minionone

Misconfiguration scenarios that fail loudly (not silently):

  • 3+ providers enabled with activeProvider=auto: render-time error names the enabled providers and asks for an explicit choice.
  • Explicit activeProvider= where has no running pods: Service alias has no endpoints; ilum-core readiness probe fails with a clear log message.

New values to know about

KeyDefaultMeaning
objectStorage.previousProvider"minio"Required when two providers are enabled and activeProvider=auto. Names the side that holds the data; the alias targets it until cutover is acknowledged.
objectStorage.cutoverAcknowledgedfalsoGeneralizes the previous rustfs.migrationAcknowledged. Flips the alias from previousProvider to the other enabled provider. The legacy flag is still honored as an alias.
objectStorage.providers..enabledper-providerMirror of .Values..enabled for new providers without their own chart-level flag.
objectStorage.providers..consolePath/rustfs/console/, /esterno/minio/UI iframe path for that provider's console.
objectStorage.providers..consoleModesame-origin (rustfs), nginx-rewrite (minio)Controls whether nginx redirects /external/object-storage/ to the provider's path (nginx-rewrite, for consoles pinned to a single URL) or keeps the proxy body (same-origin).

Failure modes (now loud)

  • Three or more providers enabled with activeProvider=auto: the chart fails at render time with a message naming the enabled providers and asking the operator to set activeProvider= explicitly.
  • Two providers enabled with previousProvider empty: chart fails at render time asking the operator to set previousProvider to the data-bearing side, or to set activeProvider explicitly.
  • activeProvider set to a name with no matching pods: the chart renders but the alias Service has no Endpoints, and ilum-core's readiness probe surfaces the misconfiguration in pod logs.

16. Rook-Ceph S3 Storage Backend (BYO)

Caratteristica:

A pre-deployed (BYO) rook-ceph cluster can now be used as the sole S3-compatible storage backend, in place of the default minio (or opt-in rustfs). The rook-ceph operator and CephCluster must be deployed separately; see the Rook-Ceph user guide for end-to-end setup.

Values added - ilum (AIO)

NomeDescrizioneValore
rookCeph.enabledEnable rook-ceph S3 storage integration (requires pre-deployed rook-ceph)falso
rookCeph.s3.hostRGW service hostname (e.g., rook-ceph-rgw-my-store.rook-ceph.svc.cluster.local)""
rookCeph.s3.serviceNameRGW Service name for Endpoints lookup; falls back to first segment of ospite""
rookCeph.s3.namespaceNamespace containing the RGW Service; falls back to second segment of ospite""
rookCeph.s3.portRGW service port80
rookCeph.s3.schemeURL scheme (http (in inglese) o https); set to https for TLS-terminating RGW Serviceshttp (in inglese)
rookCeph.s3.insecureSkipVerifySkip TLS certificate verification (opt-in for self-signed Rook-managed RGW)falso
rookCeph.s3.regionS3 regionStati Uniti-Est-1
rookCeph.s3.accessKeyS3 access key from CephObjectStoreUserCAMBIAMIPER favore
rookCeph.s3.secretKeyS3 secret key from CephObjectStoreUserCAMBIAMIPER favore
rookCeph.bucketInit.enabledCreate S3 buckets on the RGW endpoint (reuses objectStorage.defaultBuckets)vero
rookCeph.bucketInit.imageaws-cli image for bucket creationamazon/aws-cli:2.27.31
rookCeph.statusProbe.enabledEnable RGW health check in the bucket init Jobvero
rookCeph.statusProbe.imageHealth check imagecurlimages/curl:8.5.0

⚠️⚠️⚠️ Warnings

  • minio.enabled=true is the chart default in the 6.7.x line (rustfs is opt-in until it becomes the default in 6.8.0). When switching to rook-ceph, the values overlay must set both minio.enabled=false e rustfs.enabled=false. The rustfsExtensions e minioExtensions bootstrap Jobs are already gated on their parent providers, so a separate *Extensions.enabled=false flag is not required. A chart validation now fails the install when rookCeph.enabled is combined with either bundled provider.
  • Le ilum-objectstorage Service alias is rendered as a selector-less Service backed by a manual Endpoints object that mirrors the live RGW Pod IPs from the rook-ceph namespace (a label-selector alias cannot cross namespaces, and an ExternalName CNAME is black-holed by kube-proxy because it cannot DNAT a packet twice). RGW Pod restarts rotate the Pod IPs and stale the mirrored Endpoints; re-run helm upgrade ilum ./helm_aio -f ilum-rook-ceph-values.yaml after any RGW Pod restart to refresh the addresses.
  • The shared ilum-objectstorage-credentials Secret is now seeded from rookCeph.s3.{accessKey,secretKey} in rook-ceph-only mode; an install fails fast when either is left at the CAMBIAMIPER favore placeholder.
  • The bucket init Job no longer swallows aws-cli errors. Network/credential/endpoint misconfigurations now fail the Job loudly instead of completing 1/1 with no buckets created.

To perform the rollout:

# 1. Deploy the rook-ceph operator and CephCluster in the rook-ceph namespace
# (operator chart, CephCluster CR, CephObjectStore, CephObjectStoreUser).
# Wait for the RGW Service and Pods to become Ready in the rook-ceph
# namespace; ilum-objectstorage Endpoints are mirrored from this Service
# at chart install/upgrade time.

# 2. Extract S3 credentials from the CephObjectStoreUser Secret.
ACCESS_KEY=$(kubectl -n rook-ceph get secret \
rook-ceph-object-user-<store-name>-<user-name> \
-o jsonpath='{.data.AccessKey}' | base64 -d)
SECRET_KEY=$(kubectl -n rook-ceph get secret \
rook-ceph-object-user-<store-name>-<user-name> \
-o jsonpath='{.data.SecretKey}' | base64 -d)

# 3. Render the overlay (the doc ships a complete template).
cat > ilum-rook-ceph-values.yaml <<EOF
rustfs:
enabled: false
minio:
enabled: false
rookCeph:
enabled: true
s3:
host: rook-ceph-rgw-.rook-ceph.svc.cluster.local
port: 80
accessKey: $ACCESS_KEY
secretKey: $SECRET_KEY
EOF

# 4. Install or upgrade.
Aggiornamento dell'elmo --install ilum ./helm_aio -f ilum-rook-ceph-values.yaml

# 5. After RGW Pod restarts (Ceph cluster upgrades, rook-ceph operator
# rollouts, node maintenance), refresh the mirrored Endpoints:
helm upgrade ilum ./helm_aio -f ilum-rook-ceph-values.yaml

17. Legacy activities audit feature removed (helm_core)

Caratteristica:

The backend dropped the legacy "activities" audit trail; the structured EventLog now backs all audit and user/group operation statistics. The corresponding backend config key was removed, so its Helm value is dead.

Values deleted - helm_core

NomeRagione
security.activities.timeToLiveBackend security.activities.timeToLive property no longer exists

RELEASE 6.7.1

1. Cluster-scoped RBAC for the management API

Caratteristica:

The management API (helm_api, which backs the Ilum CLI and the in-UI Module Marketplace) can now be granted a cluster-scoped role so it can install and manage modules that require cluster-scoped resources — CRDs, ClusterRoles/ClusterRoleBindings, admission webhooks, and Prometheus Operator custom resources (for example, kube-prometheus-stack). When rbac.clusterScope is enabled, the chart renders a Ruolo del cluster e ClusterRoleBinding bound to the API service account; with it disabled, the API keeps only its namespace-scoped permissions.

Values added - helm_api

NomeDescrizioneValore
rbac.clusterScopeRender a cluster-scoped Ruolo del cluster/ClusterRoleBinding for the management APIvero

Valori aggiunti - ilum-aio

NomeDescrizioneValore
ilum-api.rbac.createCreate RBAC resources for the management APIvero
ilum-api.rbac.clusterScopeGrant the management API cluster-scoped RBACvero

2. Probe and startup hardening

Caratteristica:

Liveness, readiness, and startup probe timings were relaxed across ilum-core, ilum-uie ilum-api (longer initial delays, periods, and failure thresholds, with startup probes enabled) so the stack comes up cleanly in slower or resource-constrained environments. The bundled default cluster also gained a spark.kubernetes.memoryOverheadFactor di 0.5 and a higher default driver memory. No operator action is required.

RELEASE 6.7.0

1. Airflow version update

Caratteristica:

Updated Airflow from version 3.1.1 to 3.1.6.

Values changed - helm_aio

NomeVecchio valoreNuovo valore
airflow.airflowVersion3.1.13.1.6
airflow.images.airflow.tag3.1.13.1.6
airflow.apiServer.extraInitContainers[0].image`ilum/airflow:3.1.1ilum/airflow:3.1.6

2. Added ClickHouse and Langfuse to ilum-aio

Caratteristica:

Added ClickHouse and Langfuse to ilum-aio as new modules. ClickHouse is a fast open-source OLAP database management system. Langfuse is an open source LLM engineering platform.

Valori aggiunti - ilum-aio

NomeDescrizioneValore
clickhouse.enabledFlag to enable ClickHouse deployment in ilum-aiofalso
langfuse.enabledFlag to enable Langfuse deployment in ilum-aiofalso

Valori aggiunti - ilum-ui

NomeDescrizioneValore
runtimeVars.langfuseUrlURL of the Langfuse instancehttp://ilum-langfuse-web:3000
runtimeVars.langfusePathProxy path for Langfuse/external/langfuse/
nginx.config.langfuse.enabledEnable proxy for Langfusefalso
nginx.config.http_cookie.langfuse.enabledEnables cookie mapping for Langfusevero

3. Configurable Scala version for default cluster

Caratteristica:

Aggiunto scalaVersion configuration option to the default cluster settings. This allows users to specify which Scala version their Spark jobs are run with, supporting both Scala 2.12 for spark 3.x and 2.13 for spark 4.x

Values added - helm_core

NomeDescrizioneValore
kubernetes.defaultCluster.scalaVersionScala version for Spark jobs (SCALA_2_12 or SCALA_2_13)SCALA_2_13

4. API token authentication system

Caratteristica:

Added "API token authentication system for internal and external service authentication."

Values added - helm_core

NomeDescrizioneValore
security.api-token.enabledFlag to enable API token authenticationfalso
security.api-token.tokensList of initial tokens[]

Valori aggiunti - ilum-aio

NomeDescrizioneValore
ilum-core.security.api-token.enabledFlag to enable API token authenticationfalso
ilum-core.security.api-token.tokensList of initial tokens[{name: "superset", token: "initial-superset-token-for-engine-creation", permissions: ["SQLENGINE_CREATE"]}]

5. Startup probe for Ilum-core

Caratteristica:

Added startup probe to the Ilum-core deployment. This allows the application to have sufficient time to start in constrained environments while maintaining quick readiness and liveness checks once started. The startup probe delays readiness and liveness probes until the application starts successfully.

Values added - helm_core

NomeDescrizioneValore
startupProbeStartup probe configuration for ilum-core containerSee values.yaml for full structure
startupProbe.failureThresholdNumber of failures before giving up (300 × 2s = 10 minutes max)300
startupProbe.periodSecondsHow often to perform the probe2
startupProbe.timeoutSecondsTimeout for each probe request1
startupProbe.httpGet.pathHTTP path for startup probe/actuator/health/liveness

Values changed - helm_core

NomeVecchio valoreNuovo valore
livenessProbe.initialDelaySeconds12010
readinessProbe.initialDelaySeconds12010

6. Disabled SASL in Kafka configuration

Caratteristica:

Disabled SASL authentication in the default Kafka configuration. This change simplifies the setup for users who do not require SASL authentication for their Kafka clusters. Users who need SASL can still enable it through custom configuration.

Values added - helm_aio

NomeDescrizioneValore
kafka.listeners.interbroker.protocolInterbroker protocolPLAINTEXT
kafka.listeners.controller.protocolController protocolPLAINTEXT
kafka.kraft.clusterIdKraft clusterId to prevent Bitnami chart upgrade failuresaWx1bS1kZWZhdWx0LWlkMQ

7. Management API and Ilum CLI

Caratteristica:

Added the helm_api chart (ilum-api), a Management API sidecar that exposes the Ilum CLI's operations over HTTP and powers the in-UI Module Marketplace for point-and-click module deployment. It is deployed by default in ilum-aio.

Valori aggiunti - ilum-aio

NomeDescrizioneValore
ilum-api.enabledDeploy the Management API sidecar (CLI over HTTP)vero

RELEASE 6.6.2

1. Spark 4.x Upgrade - Scala 2.13 Migration

Caratteristica:

Updated default Spark images to ilum/spark:4.0.1-delta and ilum-spark-launcher to spark-4.1.0. Spark 4.x exclusively uses Scala 2.13 and has dropped support for Scala 2.12.

Values changed - helm_core

NomeVecchio valoreNuovo valore
kubernetes.defaultCluster.dockerImageilum/spark:3.5.7-deltailum/spark:4.0.1-delta
historyServer.imagespark-3.5.7spark-4.1.0
externalSparkSubmit.image.tagspark-3.5.7spark-4.1.0

⚠️⚠️⚠️ CRITICAL WARNING - BREAKING CHANGE ⚠️⚠️⚠️

Spark 4.x uses Scala 2.13 exclusively. Scala 2.12 is NO LONGER SUPPORTED.

This is a BREAKING CHANGE that may affect your existing Spark jobs:

  1. JAR Compatibility: Any Spark applications, libraries, or dependencies compiled with Scala 2.12 WILL NOT WORK with Spark 4.x. You must recompile all custom JARs with Scala 2.13.

  2. Affected Components:

    • Custom Spark applications (Scala-based)
    • Third-party libraries compiled for Scala 2.12
    • UDFs written in Scala
    • Qualunque .jar files built with scalaVersion := "2.12.x"
  3. How to Identify Affected JARs:

    • Check your build.sbt o pom.xml per scalaVersion settings
    • JAR names often contain the Scala version suffix (e.g., myapp_2.12-1.0.jar)
    • JARs with _2.12 suffix need to be rebuilt with _2.13
  4. Required Actions Before Upgrade:

    • Inventory all custom Spark JARs in use
    • Recompile all Scala-based applications with Scala 2.13
    • Update all third-party dependencies to Scala 2.13 versions
    • Test all jobs thoroughly in a staging environment
  5. No Backwards Compatibility:

    • Starting from this version, Ilum's Spark job wrapper uses Scala 2.13 exclusively
    • Running Spark 3.x jobs compiled with Scala 2.12 is no longer supported
    • Tu MUST recompile all your Scala-based Spark jobs with Scala 2.13 before upgrading
  6. PySpark Users: PySpark jobs are generally unaffected unless they use Scala-based UDFs or custom Scala libraries.

RECOMMENDATION: Test your workloads in a non-production environment before upgrading to this release.

2. Added environment variables support to default cluster configuration

Caratteristica:

Added support for configuring environment variables in the default cluster configuration. This allows users to set environment variables that will be applied to Spark jobs running on the default cluster. The SPARK_SUBMIT_OPTS environment variable is now configurable through Helm values instead of being hardcoded, providing better flexibility for JVM tuning and other environment-specific configurations.

Values added - helm_core

Default cluster environment variables configuration
NomeDescrizioneValore
kubernetes.defaultCluster.environmentVariablesEnvironment variables for default cluster{}
kubernetes.defaultCluster.environmentVariables.SPARK_SUBMIT_OPTSJVM options for Spark submit process"-XX:MaxHeapSize=64m -XX:MaxMetaspaceSize=64m -Xss256k"

3. Added Unity Catalog integration

Caratteristica:

Aggiunto helm_unity_catalog chart to provide Unity Catalog support as an optional catalog backend (similar to Hive Metastore and Nessie). Unity Catalog is disabled by default and can be enabled to provide unified governance for data and AI assets. The chart is integrated with the existing PostgreSQL database and MinIO S3 storage, with automatic JWT keypair generation for authentication.

Values added - helm_unity_catalog

NomeDescrizioneValore
ilum-unity-catalog.enabledEnables Unity Catalog deploymentfalso
ilum-unity-catalog.server.enabledEnables the Unity Catalog serververo
ilum-unity-catalog.server.db.typeDatabase backend type (file or postgresql)postgresql
ilum-unity-catalog.server.db.postgresqlConfig.hostPostgreSQL hostilum-postgresql-hl
ilum-unity-catalog.server.db.postgresqlConfig.portPostgreSQL port5432
ilum-unity-catalog.server.db.postgresqlConfig.dbNamePostgreSQL database nameunitycatalog
ilum-unity-catalog.server.db.postgresqlConfig.userPostgreSQL usernameilum
ilum-unity-catalog.server.db.postgresqlConfig.passwordSecretNameSecret containing PostgreSQL passwordilum-postgres-credentials
ilum-unity-catalog.server.db.postgresqlConfig.passwordSecretKeyKey in secret for passwordparola d’ordine
ilum-unity-catalog.server.jwtKeypairSecret.createAuto-generate JWT keypair for authenticationvero
ilum-unity-catalog.storage.modelStorageRootS3 path for Unity Catalog model storages3a://ilum-data/unity-catalog/
ilum-unity-catalog.storage.credentials.s3[0].bucketPathS3 bucket paths3://ilum-data
ilum-unity-catalog.storage.credentials.s3[0].regionS3 regionStati Uniti-Est-1
ilum-unity-catalog.storage.credentials.s3[0].credentialsSecretNameSecret containing S3 credentialsilum-minio
ilum-unity-catalog.storage.credentials.s3[0].accessKeySecretKeyKey name for S3 access key in secretroot-user
ilum-unity-catalog.storage.credentials.s3[0].secretKeySecretKeyKey name for S3 secret key in secretroot-password
ilum-unity-catalog.ui.enabledEnables Unity Catalog UIfalso

Values added - helm_core

Unity Catalog metastore configuration
NomeDescrizioneValore
ilum-core.metastore.typeImpostare su unity to use Unity Catalog as metastorealveare
ilum-core.metastore.unity.addressUnity Catalog server endpointhttp://unity-catalog-ilum-unity-catalog-server:8080
ilum-core.metastore.unity.warehouseDirUnity Catalog warehouse directorys3a://ilum-data/unity-catalog/
ilum-core.metastore.unity.s3EndpointS3 endpoint for Unity Cataloghttp://ilum-minio:9000/
ilum-core.metastore.unity.s3PathStyleAccessEnable S3 path-style accessvero
ilum-core.metastore.unity.catalogNameUnity Catalog name in Sparkunity_catalog
ilum-core.metastore.unity.configSpark configuration for Unity Catalog integrationSee values.yaml

Values added - postgresExtensions

NomeDescrizioneValore
postgresExtensions.databasesToCreateAggiunto unitycatalog database for Unity Catalog metadata...,nessie,unitycatalog

⚠️⚠️⚠️ Warnings

  • Unity Catalog requires PostgreSQL and S3-compatible storage to be enabled
  • JWT keypairs are auto-generated on first deployment and stored in Kubernetes secrets
  • When using Unity Catalog, set ilum-core.metastore.type: unity to configure Spark integration

4. Added DuckDb and DuckLake to Ilum Core

Caratteristica:

Added DuckDb as an SQL executor and DuckLake as a metastore option in Ilum Core. DuckDb is a fast and lightweight SQL engine that supports a wide range of data types and SQL features. DuckLake is a distributed metastore for DuckDb, which provides options for multi-user access and data versioning.

Values added - ilum_core

NomeDescrizioneValore
sql.duckdb.idleTimeoutDetermines the time DuckDb connections are kept alive without activity1h
sql.duckdb.ducklake.enabledEnables DuckLakevero
sql.duckdb.ducklake.locationLocation of the data in for the DuckLakes3://ilum-ducklake/
sql.duckdb.ducklake.postgres.hostHost for the metastore postgres connection``
sql.duckdb.ducklake.postgres.portPort for the metastore postgres connection5432
sql.duckdb.ducklake.postgres.databaseDatabase name for the metastore postgres connectionducklake
sql.duckdb.ducklake.postgres.userUsername for the metastore postgres connection``
sql.duckdb.ducklake.postgres.passwordPassword for the metastore postgres connection``
sql.duckdb.ducklake.s3.endpointS3 endpoint for the metastore data``
sql.duckdb.ducklake.s3.regionS3 region for the metastore dataStati Uniti-Est-1
sql.duckdb.ducklake.s3.keyIdS3 key id for the metastore data``
sql.duckdb.ducklake.s3.secretS3 secret for the metastore data``
sql.duckdb.ducklake.s3.urlStyleUrl style to use for S3. Either sentiero o vhostsentiero
sql.duckdb.ducklake.s3.sslWhether to use SSL for the S3 connectionfalso

RELEASE 6.6.1

1. Ugraded JupyterHub experience

Caratteristica:

Ugraded helm_jupyterhub to bundle Ilum-specific SSH/Git/LDAP bootstrap logic, curated notebooks, and tailored singleuser defaults so helm_aio merely enables the dependency, pins fullnameOverride, and surfaces only the still-relevant overrides. This also keeps the SSH network policy open for port 2222 and ensures the shared ilum-jupyter-ssh-keys secret remains stable, while c.JupyterHub.cleanup_servers = True guarantees the SSH service and user pods stop with the release.

Values added - helm_aio

NomeDescrizioneValore
ilum-jupyterhub.enabledEnables the curated Ilum JupyterHub chartfalso

Values added - helm_jupyterhub

NomeDescrizioneValore
fullnameOverrideOverride for the full resource nameilum-jupyterhub
AbilitatoChart enabled flagfalso
SSH configuration
NomeDescrizioneValore
ssh.enabledEnables the bundled SSH operator, service, and shared key workflowfalso
ssh.keysSecretSecret that provides the stable host and authorized keysilum-jupyter-ssh-keys
ssh.modeSSH authentication mode: padrone (shared authorized_keys from keysSecret) or per-user (individual secrets per user)padrone
ssh.perUserSecretNameTemplateTemplate for per-user secret names when using per-user modessh-keys-{username}
ssh.perUserAuthorizedKeysKeyKey name in per-user secrets containing authorized_keysauthorized_keys
ssh.service.typeType of service fronting port 2222Porta nodo
ssh.service.portPort exposed for SSH traffic2222
ssh.service.targetPortTarget port for SSH traffic2222
ssh.service.nodePortNodePort number (empty for auto-assignment)""
ssh.service.clusterIPClusterIP address (empty for auto-assignment)""
ssh.service.loadBalancerIPLoadBalancer IP address""
ssh.service.annotationsAnnotations for the SSH service{}
ssh.service.prefixPrefix for SSH service resourcesilum-jupyter-ssh
ssh.sshdConfig.customConfigCustom sshd_config lines[]
ssh.operatorImage.nameSSH operator image repositorydocker.ilum.cloud/ilum-jupyterhub
ssh.operatorImage.tagSSH operator image tagssh-operator-4.3.1
ssh.extraEnvExtra environment variables for SSH operator[]
Git configuration
NomeDescrizioneValore
git.existingSecretCredentials that allow the Git init job to seed the notebooks repositoryilum-git-credenziali
git.emailGit email for commitsilum@ilum
git.repositoryNome del repository GitJupyter
git.addressGitea server addressilum-gitea-http:3000
git.urlGitea endpoint URL used to seed the ilum-jupyterhub orghttp://ilum-gitea-http:3000
git.orgNameOrganization managed by the git-init jobilum-jupyterhub
git.operatorImage.nameGit operator image repositorydocker.ilum.cloud/ilum-jupyterhub
git.operatorImage.tagGit operator image taggitea-operator-4.3.1
git.secret.nameSecret containing credentials referenced by the operatorilum-git-credenziali
git.secret.usernameKeyKey for username in the secretnome utente
git.secret.passwordKeyKey for password in the secretparola d’ordine
LDAP configuration
NomeDescrizioneValore
ldap.enabledKeeps the LDAP authenticator wired into Ilum JupyterHubvero
ldap.urlsLDAP server endpoints that front the Ilum directory["ldap://ilum-openldap:389"]
ldap.baseSearch base for Ilum users and groups"dc=ilum,dc=cloud"
ldap.usernameBind DN used for authentication"cn=admin,dc=ilum,dc=cloud"
ldap.passwordPassword for the bind DNNot@SecurePassw0rd
ldap.adminUsersLDAP accounts with admin privileges in JupyterHub["ilumadmin","admin"]
ldap.userSearchBaseBase DN where user entries live"ou=people,dc=ilum,dc=cloud"
ldap.userSearchFilterFilter for user lookups"uid={0}"
ldap.groupSearchBaseBase DN where group entries live"ou=groups,dc=ilum,dc=cloud"
ldap.groupSearchFilterFilter that matches members"(membro={0})"
ldap.allowedGroupsEmpty list allows all groups unless specified[]
ldap.userAttributeUser attribute for username"uido"
ldap.fullnameAttributeAttribute for user's full name"cn"
ldap.emailAttributeAttribute for user's email"posta"
ldap.groupNameAttributeAttribute for group name"cn"
ldap.groupMemberAttributeAttribute for group membership"member"
ldap.useSslUse SSL for LDAP connectionfalso
ldap.startTlsUse STARTTLS for LDAP connectionfalso
ldap.lookupDnLookup DN before bindingvero
Hub configuration
NomeDescrizioneValore
hub.image.nameHub image repositorydocker.ilum.cloud/ilum-jupyterhub
hub.image.tagHub image tagjupyterhub-4.3.1
hub.contentSecurityPolicy.enabledTurns the managed CSP header injection on/offvero
hub.contentSecurityPolicy.frameAncestorsOrigins allowed to embed JupyterHub in an iframe["'self'","http://localhost:9777"]
hub.gitInit.enabledRuns the job that ensures the ilum-jupyterhub organization/repo existvero
Singleuser runtime defaults
NomeDescrizioneValore
singleuser.startupArgs.iopubDataRateLimitRaised output bandwidth ceiling for Ilum workloads1000000000
singleuser.startupArgs.extraArgsAdditional CLI arguments forwarded to the user server[]
singleuser.nodeSelectorArchitecture-agnostic placement (empty by default){}
singleuser.tolerationsAllows scheduling on tainted nodes when needed[]
Image pull credentials
NomeDescrizioneValore
imagePullSecret.createCreate the pull secret in-clusterfalso
imagePullSecret.automaticReferenceInjectionAuto-inject the created secret into JupyterHub workloadsvero
imagePullSecret.registryRegistry host for the pull secret""
imagePullSecret.usernameRegistry username for the pull secret""
imagePullSecret.passwordRegistry password for the pull secret""
imagePullSecret.emailRegistry email for the pull secret""
imagePullSecret.nameExisting secret name to reference instead of the autogenerated pull secret""
imagePullSecretsAdditional pull secrets injected into all hub-managed pods[]

Values changed - helm_jupyterhub

NomeVecchio valoreNuovo valore
singleuser.networkPolicy.allowedIngressPorts[][2222]

Instructions

  • Keep ilum-jupyter-ssh-keys stable outside Helm so the SSH host fingerprint survives upgrades; rotating the secret requires removing stale entries from user known_hosts.
  • Ensure ilum-git-credenziali contains valid credentials for a Gitea account with org-level write access—both the SSH operator and Git init job rely on the rendered token.
  • To refresh the curated notebooks, update helm_jupyterhub/files/examples (and their config map templates) so the init container can push them into the ilum-jupyterhub repo again.

⚠️⚠️⚠️ Warnings

  • Port 2222 is opened via the SSH operator’s shared service; if you switch to per-user authorized keys, keep the service numbering and secrets aligned.

  • Cleanup is forced (c.JupyterHub.cleanup_servers = True), so user pods and the SSH service terminate with the Helm release. Manage any long-lived workloads outside this chart.

2. Upgraded Livy compatible API to version 0.8.0

Caratteristica:

Upgraded Livy compatible API to version 0.8.0 with enhanced configuration options for compression, server version control, and TTL-based session cleanup.

Valori aggiunti - ilum-core

Livy Compression Configuration
NomeDescrizioneValore
livy.compression.enabledEnable response compression for Livy endpointsfalso
Livy Server Configuration
NomeDescrizioneValore
livy.server.versionLivy server version identifier0.8.0
livy.server.sendServerVersionSend server version in response headersfalso
livy.server.allowCustomClasspathAllow custom classpath in session creationfalso
Livy TTL Session Cleanup Configuration
NomeDescrizioneValore
livy.ttl.checkPeriodBackground sweep period in milliseconds for checking expired sessions300000
livy.ttl.checkInitialDelayInitial delay in milliseconds before first TTL background check60000

Valori aggiunti - ilum-aio

Same values as ilum-core but under the ilum-core. prefix (e.g., ilum-core.livy.compression.enabled).

⚠️⚠️⚠️ Important Notes

For most users:No action required. All new configuration options have safe defaults and are backward compatible.

Optional Performance Optimization: If you handle large Livy responses, you may enable compression by setting livy.compression.enabled: true.

Gestione delle sessioni: The new TTL cleanup uses a hybrid approach (lazy + background sweep) to automatically clean up expired sessions. Default settings should work for most deployments.

3. Updated default Spark version and added autopause configuration

Caratteristica:

Updated default Spark version to 3.5.7-delta in kubernetes.defaultCluster.config. Added spark.ilum.autopause: "true" A kubernetes.defaultCluster.config to set the default behavior of the autopause feature.

Valori modificati - ilum-core

NomeVecchio valoreNuovo valore
kubernetes.defaultCluster.config.spark.kubernetes.container.imageILUM / Scintilla: 3.5.6-Deltailum/spark:3.5.7-delta

Valori aggiunti - ilum-core

NomeDescrizioneValore
kubernetes.defaultCluster.config.spark.ilum.autopauseSets the default behavior of autopause feature"vero"

Caratteristica:

Fixed stability issues and changed HTTP cookie-based access control to be disabled by default for all external services (Jupyter, Airflow, MLflow, Grafana, etc.).

What Changed?

  • External services are now open by default - no cookie requirements
  • All users can access services without any special configuration
  • System works out-of-the-box

What This Means for You

  • ✅ Your services will become more accessible
  • ✅ Users can access Jupyter, Airflow, MLflow, etc. without cookie setup
  • ✅ No action required for most deployments

If you need to restrict access:

  • Use the built-in OAuth2/Hydra authentication (recommended for production)
  • Or manually enable cookie-based access control per service (see below)

This is an advanced feature for specific use cases:

  • ✅ Temporary access restrictions for specific users/sessions
  • ✅ Custom access control integrated with your frontend application

To enable for a specific service:

nginx:
configurazione:
http_cookie:
Abilitato: vero
ilum-jupyter:
Abilitato: vero

Values changed - ilum-ui

NomeVecchio valoreNuovo valore
nginx.config.http_cookie.enabledverofalso

Values changed - ilum-aio

NomeVecchio valoreNuovo valore
ilum-ui.nginx.config.http_cookie.enabledverofalso

⚠️⚠️⚠️ Important Notes

For most users:No action required. This change makes services more accessible.

If you customized cookie settings in 6.6.0: You may need to review your configuration. The system now defaults to open access instead of requiring cookies.

RELEASE 6.6.0

1. Upgraded Apache Airflow to 3.1.1

Caratteristica:

Upgraded Apache Airflow from 3.0.5 to 3.1.1 with improved OIDC authentication support using authlib OAuth providers (AUTH_OAUTH) instead of deprecated flask-oidc (AUTH_OIDC). This upgrade includes fixes for OAuth redirect URI patterns and proper volume mounting for OIDC client secrets in init containers.

Values changed - ilum-aio

NomeVecchio valoreNuovo valore
airflow.airflowVersion3.0.53.1.1
airflow.images.airflow.tag3.0.53.1.1
airflow.apiServer.extraInitContainers[0].imageilum/airflow:3.0.5ilum/airflow:3.1.1

Valori aggiunti - ilum-aio

NomeDescrizioneValore
airflow.migrateDatabaseJob.useHelmHooksDisable Helm hooks for database migration jobfalso
airflow.apiServer.extraInitContainers[0]Modified create admin user init containerSee below
airflow.apiServer.apiServerConfigConfigMapNameCustom webserver_config.py configmapilum-api-server-config
Init Container Volume Mount Configuration
- nome: create-Admin-utente
immagine: ilum/airflow:3.1.1
command: ["/bin/bash", "/scripts/init.sh"]
volumeMounts:
- nome: ilum-airflow-create-utente-segreto
mountPath: /scripts
- nome: configurazione
mountPath: /opt/airflow/airflow.cfg
Percorso secondario: airflow.cfg
- nome: oauth-segreto-volume
mountPath: /opt/airflow/client-segreto
readOnly: vero
- nome: webserver-configurazione-volume
mountPath: /opt/airflow/webserver_config.py
Percorso secondario: webserver_config.py
readOnly: vero

⚠️⚠️⚠️ Warnings

Configuration value airflow.apiServer.apiServerConfigConfigMapName is preconfigured to use a ConfigMap named ilum-api-server-config. But the name of this configMap must follow pattern -api-server-config to be properly mounted as it is Airflow's chart requirement. So if your release name is different from ilum, please change this value accordingly. For example use:

airflow:
apiServer:
apiServerConfigConfigMapName: -release-nome>-API-server-configurazione
extraVolumes:
- nome: oauth-segreto-volume
segreto:
Nome segreto: ilum-idra-cliente-segreto
- nome: ilum-airflow-create-utente-segreto
segreto:
Nome segreto: ilum-airflow-create-utente-segreto
- nome: webserver-configurazione-volume
configMap:
nome: -release-nome>-API-server-configurazione

2. Enhanced Jupyter startup configuration

Caratteristica:

Added configurable startup arguments for Jupyter notebook server, allowing users to customize base URL, IOPub data rate limits, and pass additional command-line arguments. Also added support for extra environment variables with templating support.

Valori aggiunti - ilum-jupyter

Startup and environment configuration
NomeDescrizioneValore
tokenJupyter notebook authentication token""
startupArgs.baseUrlJupyter base URL path for reverse proxy configurations/external/jupyter/
startupArgs.iopubDataRateLimitIOPub data rate limit in bytes/sec (controls output bandwidth)1000000000
startupArgs.extraArgsAdditional command-line arguments to pass to Jupyter server[]
extraEnvAdditional environment variables for Jupyter container as string template""

⚠️⚠️⚠️ Warnings

  • All startup arguments configured via startupArgs.* can be completely overridden by setting the argomenti parameter in values.yaml. When argomenti is set, all default startup arguments are ignored, giving you full control over the Jupyter server startup command.
  • Le extraEnv parameter accepts a string template (multiline YAML using |). Example usage:
    extraEnv: |
    - name: MY_VAR
    value: value

3. Added Apache NiFi module

Caratteristica:

Added Apache NiFi to ilum-aio as a new module. This will allow users to easily deploy NiFi and use it next to Ilum.

Valori aggiunti - ilum-aio

NomeDescrizioneValore
nifi.enabledFlag to enable NiFi deployment in ilum-aiofalso
nifi.fullnameOverrideFull name override for NiFiilum-nifi
nifi.image.tagTag of the source NiFi image2.5.0
nifi.properties.safetyValveAdditional properties passed to nifi.propertiesVedere valori.yaml
nifi.persistence.enabledEnables PVC for the data directoryvero
nifi.persistence.subpath.enabledEnabled one PVC instead of manyvero
nifi.persistence.subpath.sizeSize of the data directory10Gi
nifi.zookeeper.enabledEnables bundled Zookeeper deploymentfalso
nifi.registry.enabledEnables bundled NiFi registry deploymentfalso
nifi.ca.enabledEnables bundled CA deploymentfalso
nifi.openldap.enabledEnables bundled openLDAP deploymentfalso

Valori aggiunti - ilum-ui

NomeDescrizioneValore
runtimeVars.nifiUrlURL of the NiFi instancehttp://ilum-nifi:8443/nifi/
runtimeVars.nifiPathProxy path of NiFi/external/nifi/
nginx.config.nifi.enabledEnable proxy for NiFifalso
nginx.config.http_cookie.nifi.enabledEnables cookie mapping for NiFivero

4. Added integration with Project Nessie metastore

Caratteristica:

Added integration with Project Nessie metastore in Ilum, which allows the use of Nessie as a metastore for Spark jobs.

Valori aggiunti - ilum-core

NomeDescrizioneValore
metastore.typeIndicates the default metastorealveare
metastore.nessie.addressThe address of the default Nessie metastorehttp://ilum-nessie:19120/api/v2
metastore.nessie.warehouseDirThe location of the warehouse of the default Nessie metastores3a://ilum-data/nessie_catalog
metastore.nessie.s3EndpointThe S3 API endpoint to use for the default Nessie metastorehttp://ilum-minio:9000
metastore.nessie.s3PathStyleAccessWhether to use path style access for the S3 Nessie connectionvero
metastore.nessie.authTypeAuth type of the default Nessie metastoreNONE
metastore.nessie.refThe branch to use for the default Nessie metastoreprincipale
metastore.nessie.cacheEnabledEnables caching in the default Nessie metastorefalso
metastore.nessie.catalog_nameThe name of the catalog for the default Nessie metastorenessie_catalog
metastore.nessie.configAdditional config to add for the Spark jobVedere valori.yaml
metastore.nessie.statusProbeStatus probe for the Nessie metastore, so Ilum-core does not launch too quicklyVedere valori.yaml

Valori aggiunti - ilum-aio

NomeDescrizioneValore
nessie.enabledEnables or disables bundled Nessie deploymentfalso
nessie.fullnameOverrideFull name override for Nessieilum-nessie
nessie.versionStoreTypeType of persistent metadata storageJDBC2
nessie.extraInitContainersAdds init containers to Nessie (waiting for database)Vedere valori.yaml
nessie.jdbc.jdbcUrlUrl for DB connectionjdbc:postgresql://ilum-postgresql-hl:5432/nessie
nessie.jdbc.secret.nameSecret containing DB credentialsilum-postgres-credentals
nessie.jdbc.secret.usernameKey of username in the secretnome utente
nessie.jdbc.secret.passwordKey of password in the secretparola d’ordine

Nomi cambiati - ilum-core

Vecchio nomeNuovo nome
hiveMetastore.enabledmetastore.enabled
hiveMetastore.*metastore.hive.*

Valori modificati - ilum-core

NomeVecchio valoreNuovo valore
kubernetes.defaultCluster.configVedere valori.yamlVedere valori.yaml

⚠️⚠️⚠️ Warnings

This is an important change that will need to be addressed if any custom changes to the default configuration were made. Please carefully review the changes and make sure they will not break your deployment.

5. Livy API now fully served by ilum-core (embedded)

Caratteristica:

Livy API is implemented and served directly by ilum-core (embedded). The legacy Livy proxy is deprecated but can still be turned on for backward compatibility.

Valori aggiunti - ilum-aio

NomeDescrizioneValore
ilum-core.livy.enabledEnables embedded Livy integration in AIO via ilum-corevero
ilum-core.livy.ilumUI.publicEndpointPublic endpoint of ilum-ui used for Livy links/integrationhttp://localhost:9777
ilum-livy-proxy.legacy.enabledTurns on the legacy Livy proxy resources (ConfigMap/Deployment/etc.)falso

⚠️⚠️⚠️ Warnings

  • Le compat Service (ilum-livy-proxy → ilum-core) is deprecated and will be removed in a future release.
  • Le legacy proxy is also deprecated and will be removed after the transition period.
  • Mode matrix (AIO):
    • ilum-livy-proxy.enabled=false & ilum-livy-proxy.legacy.enabled=false → nothing created; call ilum-core directly.
    • ilum-livy-proxy.enabled=true & ilum-livy-proxy.legacy.enabled=false → create compat Service pointing to the new ilum-core Livy API.
    • ilum-livy-proxy.enabled=false & ilum-livy-proxy.legacy.enabled=true → deploy legacy proxy.
  • When legacy is enabled, update client endpoints to use the legacy Service:
    • ilum-jupyter.livyEndpoint = http://ilum-livy-proxy:8998
    • ilum-zeppelin.livyEndpoint = http://ilum-livy-proxy:8998
    • Airflow connection: AIRFLOW_CONN_ILUM-LIVY-PROXY=livy://ilum-livy-proxy:8998
  • Some resources (e.g., ConfigMap/Ingress) are rendered based on ilum-livy-proxy.legacy.enabled only (not on ilum-livy-proxy.enabled).

6. Added cronjob cleaning after uninstalling

Caratteristica:

A pre-delete hook will now clean up kubernetes cronjobs after uninstalling the chart.

Valori aggiunti - ilum-core

NomeDescrizioneValore
cronjob.cleanup.enabledEnable cronjob cleanup after uninstalling the chartvero
cronjob.cleanup.imageImage used for the cleanup jobalpine/kubectl:1.34.1

RELEASE 6.5.2

1. SSH mode implementation for helm_jupyter

Caratteristica:

SSH mode in the helm_jupyter chart has been implemented to provide SSH access directly within the main Jupyter container. This allows users to access their Jupyter environment via SSH while maintaining workspace consistency between web and SSH interfaces.

Values added - helm_jupyter

SSH access configuration
NomeDescrizioneValore
ssh.enabledEnable SSH access in the Jupyter containervero
ssh.keysSecretName of the secret containing SSH keysilum-jupyter-ssh-keys
ssh.service.typeSSH service typePorta nodo
ssh.service.portSSH service port2222
ssh.service.nodePortSSH service node port (when service type is NodePort)""
ssh.service.clusterIPSSH service cluster IP""
ssh.service.loadBalancerIPSSH service load balancer IP""
ssh.service.annotationsSSH service annotations{}
ssh.sshdConfig.customConfigCustom SSH server configuration[]

⚠️⚠️⚠️ Warnings

  • SSH server runs directly in the main Jupyter container on port 2222 internally
  • SSH keys must be provided via a Kubernetes Secret referenced by ssh.keysSecret parameter
  • The secret should contain both SSH host keys and authorized_keys for authentication
  • SSH access provides direct access to the /home/jovyan/work directory (same as web interface)
  • Custom SSH server configuration can be provided via ssh.sshdConfig.customConfig array

2. Address Bitnami’s move to bitnamilegacy + bitnamisecure

Caratteristica:

Bitnami has moved to bitnamilegacy + bitnamisecure for their images after the 18th of August 2025. This change moves used images to the new repositories.

Valori aggiunti - ilum-aio

NomeDescrizioneValore
global.security.allowInsecureImagesAllows images from outside of bitnami repository in Bitnami's chartsvero
kafka.image.repositoryRepository for Kafka's imagebitnamilegacy/kafka
minio.image.repositoryRepository for Minio's imagebitnamilegacy/minio
mlflow.image.repositoryRepository for MlFlow's imagebitnamilegacy/mlflow
postgresql.image.repositoryRepository for Postgresql's imagebitnamilegacy/postgresql

Values changed - ilum-aio

NomeVecchio valoreNuovo valore
airflowExtensions.git.imagebitnami/git:2.48.1bitnamisecure/git@sha256:72ae5bd9715fc81446becc0418011883479c593bac427911aa62ecf27ef96546
postgresExtensions.imageBitnami/PostgreSQL:16bitnamilegacy/postgresql:16

Valori modificati - ilum-core

NomeVecchio valoreNuovo valore
kafka.statusProbe.imageBitnami/Kafka:3.4.1bitnamilegacy/kafka:3.4.1

Values changed - ilum-hive-metastore

NomeVecchio valoreNuovo valore
postgresql.imageBitnami/PostgreSQL:16bitnamilegacy/postgresql:16

Values changed - ilum-jupyter

NomeVecchio valoreNuovo valore
git.init.imagebitnami/git:2.48.1bitnamisecure/git@sha256:72ae5bd9715fc81446becc0418011883479c593bac427911aa62ecf27ef96546

Values changed - ilum-marquez

NomeVecchio valoreNuovo valore
marquez.db.imageBitnami/PostgreSQL:16bitnamilegacy/postgresql:16

1. Updated Airflow defaults in ilum-aio

Caratteristica:

Bumped Airflow to 3.0.5 and streamlined default connection/env configuration. Removed legacy cleanup and scheduler overrides in favor of chart defaults and connection-based setup.

Valori aggiunti - ilum-aio

NomeDescrizioneValore
airflow.enableBuiltInSecretEnvVars.AIRFLOW__CORE__FERNET_KEYEnable default fernet key generationfalso

Values changed - ilum-aio

NomeVecchio valoreNuovo valore
airflow.extraEnvVedere valori.yamlVedere valori.yaml
airflow.airflowVersion3.0.33.0.5
airflow.images.airflow.tag3.0.33.0.5
airflow.apiServer.extraInitContainers[0].imageilum/airflow:3.0.3ilum/airflow:3.0.5

Values deleted - ilum-aio

NomeRagione
airflow.scheduler.argsRevert to chart default scheduler command as we manage connections via env variables now
airflow.cleanup.enabledUse executor's instant cleanup
airflow.config.kubernetes_executor.delete_worker_podsUse chart defaults
airflow.config.kubernetes_executor.delete_worker_pods_on_failureUse chart defaults

⚠️⚠️⚠️ Warnings

As the default Airflow’s fernet key creation mechanism made it impossible to enable Airflow via values upgrade, the mechanism will get disabled by default. To use it once again, manually create a Kubernetes secret and set required values in the airflow chart.

Caratteristica:

Added configurable HTTP cookie mappings in the ilum-ui nginx configuration. This allows users to enable or disable cookie-based access control for individual services or turn off the entire cookie mapping section. Each service can be controlled individually while maintaining backward compatibility with all options enabled by default.

Valori aggiunti - ilum-ui

NomeDescrizioneValore
nginx.config.http_cookie.enabledGlobal flag to enable HTTP cookie mappingsvero
nginx.config.http_cookie.historyServer.enabledEnable cookie mapping for history server accessvero
nginx.config.http_cookie.mlflow.enabledEnable cookie mapping for MLflow accessvero
nginx.config.http_cookie.ilum-jupyter.enabledEnable cookie mapping for Jupyter notebook accessvero
nginx.config.http_cookie.gitea.enabledEnable cookie mapping for Gitea accessvero
nginx.config.http_cookie.n8n.enabledEnable cookie mapping for n8n accessvero
nginx.config.http_cookie.minio.enabledEnable cookie mapping for MinIO accessvero
nginx.config.http_cookie.airflow.enabledEnable cookie mapping for Airflow accessvero
nginx.config.http_cookie.superset.enabledEnable cookie mapping for Superset accessvero
nginx.config.http_cookie.grafana.enabledEnable cookie mapping for Grafana accessvero
nginx.config.http_cookie.kestra.enabledEnable cookie mapping for Kestra accessvero
nginx.config.http_cookie.mageai.enabledEnable cookie mapping for Mage AI accessvero

4. PostgreSQL Max Connections Configuration

Caratteristica:

Added PostgreSQL max_connections configuration to address database connection limits in high-load scenarios.

Valori aggiunti - ilum-aio

PostgreSQL configuration
NomeDescrizioneValore
postgresql.primary.extendedConfigurationExtended PostgreSQL configuration to set max_connections parametermax_connections = 1000

RELEASE 6.4.3

1. Added Mage to ilum-aio

Caratteristica:

Added Mage OSS to ilum-aio as a new module. This will allow users to easily deploy Mage and use it next to Ilum.

Valori aggiunti - ilum-aio

NomeDescrizioneValore
mageai.enabledFlag to enable Mage OSS deployment in ilum-aiofalso
mageai.fullnameOverrideOverrides the full name of the Mage deploymentilum-mageai
mageai.image.repositoryRepository of the source Mage imageilum/mageai
mageai.image.tagTag of the source Mage image0.9.76
mageai.rootPathThe root path for the Mage web serverexternal/mageai
mageai.service.typeType of Mage's kubernetes serviceClusterIP
mageai.redis.enabledEnables Redis for the Mage deploymentfalso
mageai.postgresql.enabledEnables external Postgres for Magevero
mageai.postgresql.deployDeploys external Postgres for Magefalso
mageai.postgresql.fullnameOverrideThe name of the Postgres serviceilum-postgresql-hl
mageai.postgresql.auth.usernameUsername of the Postgres userilum
mageai.postgresql.auth.passwordPassword of the Postgres userCAMBIAMIPER favore
mageai.postgresql.auth.databaseThe database Mage should usemageai
mageai.persistence.enabledEnables PVC for the main data directoryvero

2. Updated Airflow’s chart and values to support Airflow 3.0

Caratteristica:

Updated Airflow’s chart and values to support Airflow 3.0, which includes changes in the configuration and deployment of Airflow.

Valori aggiunti - ilum-aio

NomeDescrizioneValore
airflow.airflowVersionSets chart compatibility for given Airflow version3.0.3
airflow.apiServer.*apiServer replaces webserver settingsVedere valori.yaml
airflow.config.core.auth_managerClass of auth manager used in Airflowairflow.providers.fab.auth_manager.fab_auth_manager.FabAuthManager
airflow.config.api.base_urlThe base path of the Airflow web apphttp://localhost:9777/external/airflow
airflow.config.api.enable_xcom_deserialize_supportEnables XCom deserialization in Airflow APIVero
airflow.config.logging.colored_console_logEnables colored console log in AirflowVero
airflow.config.kubernetes_executor.delete_worker_podsEnables instant deletion of worker podsFalse
airflow.config.kubernetes_executor.delete_worker_pods_on_failureEnables instant deletion of failed worker podsFalse
airflow.cleanup.enabledEnables periodic deletion of worker podsVero

Values changed - ilum-aio

NomeVecchio valoreNuovo valore
airflow.images.airflow.tag2.9.33.0.3
airflow.executorLocalKubernetesExecutorKubernetesExecutor
airflow.extraEnvVedere valori.yamlVedere valori.yaml
airflow.webserver.extraInitContainersVedere valori.yamlVedere valori.yaml

Values deleted - ilum-aio

NomeRagione
airflow.migrateDatabaseJob.useHelmHooksRevert to chart default

Values changed - ilum-ui

NomeVecchio valoreNuovo valore
runtimeVars.airflowUrlhttp://ilum-airflow-webserver:8080http://ilum-airflow-api-server:8080

⚠️⚠️⚠️ Warnings

Ilum’s changes, Airflow 3.0 and the new Airflow chart version bring significant changes to the Airflow configuration and deployment. Please review the new values and adjust your configuration accordingly.

If you are a user of Ilum’s OAuth2 provider, this update may require you to manually update some configuration, as Helm is likely to not be able to automatically migrate the values.

3. Added securityContext configuration for ilum charts

Caratteristica:

Added comprehensive securityContext configuration for enhanced security across all ilum Helm charts. This includes both pod-level and container-level security contexts with non-root user execution, capability dropping, and seccomp profiles.

Valori aggiunti - ilum-core

NomeDescrizioneValore
securityContext.pod.runAsNonRootRun container as non-root uservero
securityContext.pod.runAsUserUser ID to run the container1001
securityContext.pod.runAsGroupGroup ID to run the container1001
securityContext.pod.fsGroupFile system group ID1001
securityContext.pod.seccompProfile.typeSeccomp profile typeUnconfined
securityContext.container.allowPrivilegeEscalationAllow privilege escalationfalso
securityContext.container.readOnlyRootFilesystemRead-only root filesystemfalso
securityContext.container.runAsNonRootRun container as non-root uservero
securityContext.container.runAsUserUser ID to run the container1001
securityContext.container.runAsGroupGroup ID to run the container1001
securityContext.container.capabilities.dropCapabilities to drop["ALL"]
securityContext.container.seccompProfile.typeSeccomp profile typeUnconfined

Valori aggiunti - ilum-ui

NomeDescrizioneValore
securityContext.pod.runAsNonRootRun pod as non-root uservero
securityContext.pod.runAsUserUser ID to run the pod101
securityContext.pod.runAsGroupGroup ID to run the pod101
securityContext.pod.fsGroupFile system group ID101
securityContext.pod.seccompProfile.typeSeccomp profile typeUnconfined
securityContext.container.allowPrivilegeEscalationAllow privilege escalationfalso
securityContext.container.readOnlyRootFilesystemRead-only root filesystemfalso
securityContext.container.runAsNonRootRun container as non-root uservero
securityContext.container.runAsUserUser ID to run the container101
securityContext.container.runAsGroupGroup ID to run the container101
securityContext.container.capabilities.dropCapabilities to drop["ALL"]
securityContext.container.seccompProfile.typeSeccomp profile typeUnconfined

Valori aggiunti - ilum-jupyter

NomeDescrizioneValore
securityContext.container.allowPrivilegeEscalationAllow privilege escalationfalso
securityContext.container.readOnlyRootFilesystemRead-only root filesystemfalso
securityContext.container.runAsNonRootRun container as non-root uservero
securityContext.container.runAsUserUser ID to run the container1000
securityContext.container.runAsGroupGroup ID to run the container100
securityContext.container.capabilities.dropCapabilities to drop["ALL"]
securityContext.container.seccompProfile.typeSeccomp profile typeUnconfined
securityContext.initContainer.allowPrivilegeEscalationAllow privilege escalation for init containerfalso
securityContext.initContainer.readOnlyRootFilesystemRead-only root filesystem for init containerfalso
securityContext.initContainer.runAsNonRootRun init container as non-root userfalso
securityContext.initContainer.runAsUserUser ID to run the init container0
securityContext.initContainer.runAsGroupGroup ID to run the init container0
securityContext.initContainer.capabilities.dropCapabilities to drop for init container["ALL"]
securityContext.initContainer.seccompProfile.typeSeccomp profile type for init containerUnconfined

Valori aggiunti - ilum-livy-proxy

NomeDescrizioneValore
securityContext.pod.runAsNonRootRun pod as non-root uservero
securityContext.pod.runAsUserUser ID to run the pod1001
securityContext.pod.runAsGroupGroup ID to run the pod1001
securityContext.pod.fsGroupFile system group ID1001
securityContext.pod.seccompProfile.typeSeccomp profile typeUnconfined
securityContext.container.allowPrivilegeEscalationAllow privilege escalationfalso
securityContext.container.readOnlyRootFilesystemRead-only root filesystemfalso
securityContext.container.runAsNonRootRun container as non-root uservero
securityContext.container.runAsUserUser ID to run the container1001
securityContext.container.runAsGroupGroup ID to run the container1001
securityContext.container.seccompProfile.typeSeccomp profile typeUnconfined

Valori aggiunti - ilum-aio

Added securityContext configuration for postgresExtensions
NomeDescrizioneValore
postgresExtensions.securityContext.pod.runAsNonRootRun pod as non-root uservero
postgresExtensions.securityContext.pod.runAsUserUser ID to run the pod999
postgresExtensions.securityContext.pod.runAsGroupGroup ID to run the pod999
postgresExtensions.securityContext.pod.fsGroupFile system group ID999
postgresExtensions.securityContext.pod.seccompProfile.typeSeccomp profile typeUnconfined
postgresExtensions.securityContext.container.allowPrivilegeEscalationAllow privilege escalationfalso
postgresExtensions.securityContext.container.readOnlyRootFilesystemRead-only root filesystemfalso
postgresExtensions.securityContext.container.runAsNonRootRun container as non-root uservero
postgresExtensions.securityContext.container.runAsUserUser ID to run the container999
postgresExtensions.securityContext.container.runAsGroupGroup ID to run the container999
postgresExtensions.securityContext.container.capabilities.dropCapabilities to drop["ALL"]
postgresExtensions.securityContext.container.seccompProfile.typeSeccomp profile typeUnconfined

RELEASE 6.4.2

1. changed openldap chart provider to jp-gouin's

Caratteristica:

Changed openldap chart provider to jp-gouin's, which is more actively maintained and has better support for features like TLS. Because of that, the default configuration of openldap was changed to reflect the new provider's defaults.

Valori modificati - ilum-core

NomeVecchio valoreNuovo valore
sicurezza.ldap.userMapping.enabledSnemployeeType
security.ldap.userMapping.enabledValue~active
sicurezza.ldap.passwordAdminNot@SecurePassw0rd

Valori aggiunti - ilum-aio

Added new values for openldap configuration
NomeDescrizioneValore
global.ldapDomainDomain of the LDAP configurationilum.cloud
openldap.replicaCountReplica count of openLDAP1
openldap.replication.enabledEnable HA for openLDAPfalso
openldap.ltb-passwd.enabledEnable ltb-passwd servicefalso
openldap.phpldapadmin.enabledEnable PhpLdapAdminfalso

Values changed - ilum-aio

NomeVecchio valoreNuovo valore
openldap.env.LDAP_BACKENDhdbmdb
openldap.customLdifFilessee valori.yamlsee valori.yaml

Values deleted - ilum-aio

NomeRagione
openldap.env.LDAP_ORGANISATIONManaged by the chart
openldap.env.LDAP_DOMAINManaged by the chart
openldap.env.LDAP_TLSManaged by the chart
openldap.env.LDAP_TLS_ENFORCEManaged by the chart

RELEASE 6.4.1

1. Adapt hydra to https

Valori aggiunti - ilum-aio

NomeDescrizioneValore
global.security.hydra.uiDomainDomain where ilum-ui can be accessed from browser``
global.security.hydra.uiProtocolProtocol used to access ilum-ui: http (in inglese) o httpshttp (in inglese)

Values deleted - ilum-aio

NomeRagione
globale.security.hydra.uiUrlSostituito con uiDomain e uiProtocol

Valori aggiunti - ilum-core

NomeDescrizioneValore
hydra.cookies.same_site_modeSameSite value for hydra cookies in set-cookie headerLax

2. Added openldap to helm chart and ilum-to-ldap synchronization

Valori aggiunti - ilum-aio

Added openldap configuration values
NomeDescrizioneValore
openldap.enabledFlag used to enable openldapfalso
openldap.adminPasswordPassword of admin ldap userAdmin
openldap.fullnameOverrideName of Openldap helm chart resourcesilum-openldap
openldap.persistence.enabledFlag to enable persistence by openldapvero
openldap.persistence.sizeMemory used by openldap for storage1Gi
openldap.env.LDAP_ORGANIZATIONOrganization name of main ldap domainIlum
openldap.env.LDAP_DOMAINMain domain used in ldap by adminilum.cloud
openldap.env.LDAP_BACKENDType of ldap backendhdb
openldap.env.LDAP_TLSFlag used to enable TLS in ldapfalso
openldap.env.LDAP_TLS_ENFORCEFlag used to enforce TLS in ldapfalso
openldap.env.LDAP_REMOVE_CONFIG_AFTER_SETUPFlag used to update configvero
openldap.customLdifFiles.schemas.ldifFile with custom schem applied at the startup

Valori aggiunti - ilum-core

Added configurations for synchronization of ldap with ilum
NomeDescrizioneValore
security.ldap.ilumToLdapSyncFlag used to enable ilum to ldap syncfalso
security.ldap.userMapping.ocOC values used during insertion of ilum users into ldap
security.ldap.groupMapping.ocOC values used during insertion of ilum groups into ldap

Valori modificati - ilum-core

NomeVecchio valoreNuovo valore
sicurezza.ldap.urls[][ "ldap://ilum-openldap:389" ]
sicurezza.ldap.base""dc=ilum,dc=cloud
sicurezza.ldap.username""cn=admin,dc=ilum,dc=cloud
sicurezza.ldap.password""Admin
security.ldap.adminUsers[ "admin" ][ "admin", "ilumadmin" ]
sicurezza.ldap.userMapping.base""ou=persone
sicurezza.ldap.userMapping.fullname""Cn
sicurezza.ldap.userMapping.description""descrizione
security.ldap.userMapping.email""posta
sicurezza.ldap.userMapping.enabled""Sn
sicurezza.ldap.userMapping.base""ou=groups
sicurezza.ldap.userMapping.description""descrizione

3. Restricted RBAC Mode for ilum-core service

Caratteristica:

Introduced a new rbac.restricted.enabled flag in the ilum-core chart. When set to vero, this option applies a more restrictive set of RBAC permissions for the service account. This enhances security by adhering to the principle of least privilege and is recommended for production or security-sensitive environments.

Valori aggiunti - ilum-core

Added a flag to enable a more restrictive RBAC configuration.
NomeDescrizioneValore
rbac.restricted.enabledIf true, applies a more restrictive, non-cluster-wide set of RBAC permissions for Spark applications.falso

4. Added Abilitato flag to Trino in ilum-sql

Caratteristica:

Aggiunto Abilitato flag to Trino in ilum-sql, which allows users to disable Trino if they do not need it. This also will help ilum-ui with the configuration of Trino.

Values added - ilum-sql

NomeDescrizioneValore
config.trino.enabledFlag to enable Trino in ilum-sqlfalso

⚠️⚠️⚠️ Warnings

Trino was enabled by default, so if you wish to enable it after the version upgrade, you need to set ilum-sql.config.trino.enabled A vero nei valori del timone.

RELEASE 6.4.0

1. Addition of OAuth Provider and its integration with Services

Caratteristica:

Added Hydra deployment to helm chart and fields to configure it

Valori aggiunti - ilum-core

NomeDescrizioneValore
globale.sicurezza.hydra.enabledFlag to enable hydrafalso
globale.security.hydra.uiUrlIlum UI url required to configure OpenID connect``
global.security.hydra.clientIdClient Id of OpenID client created in hydrailum-client
global.security.hydra.cliendSecretClient Secret of OpenId Client created in hydrasegreto
hydra.dsnDSN for database used by hydrapostgres://ilum:CHANGEMEPLEASE@ilum-postgresql:5432/hydra?sslmode=disable
hydra.secretsSystemSecret used by hydra to securily store dataCAMBIAMIPER favore
hydra.recreateClientBoolean flag for OpenId client recreation during hydra startupvero
hydra.resources.requestsMemory and CPU limits and requests used by hydra deploymentnullo
hydra.imagePullPolicyHydra container image pull policyIfNotPresent
hydra.service.domainDomain used by hydra serviceilum-hydra
hydra.service.publicPortPort that exposes public api of hydra4444
hydra.service.adminPortPort that exposes admin api of hydra4445
hydra.service.typeHydra service typeClusterIP
hydra.service.publicNodePortHydra service node port assigned to public port``
hydra.service.publicNodePortHydra service node port assigned to admin port``
hydra.service.clusterIPHydra service cluster IP``
hydra.service.loadBalancerIPHydra service load balancer IP``
hydra.service.annotationsAnnotations used by hydra service{}
hydra.separateDeploymentFlag to launch hydra in a separate deployment or in ilum-corevero

Valori aggiunti - ilum-ui

NomeDescrizioneValore
runtimeVars.hydraUrlUrl of Hydra Public APIhttp://ilum-hydra:4444
runtimeVars.hydraPathilum-ui proxy-path to hydra public api/external/hydra

Caratteristica

Added helm values to specify how roles and groups from ilum-core are going to be mapped to microservices of ilum

Valori aggiunti - ilum-core

NomeDescrizioneValore
hydra.rewriteMappingBoolean flag for recreation of ilum-to-services roles config after ilum-core restartvero
hydra.mapping.minioMinAccessRoleDefault role assigned to ilum users with access to miniosola lettura
hydra.mapping.airflowMinAccessRoleDefault role assigned to ilum users with access to airflowViewer
hydra.mapping.supersetMinAccessRoleDefault role assigned to ilum users with access to supersetGamma
hydra.mapping.grafanaMinAccessRoleDefault role assigned to ilum users with access to grafanaViewer
hydra.mapping.giteaMinAccessRoleDefault role assigned to ilum users with access to gitea``
hydra.mapping.groupsToMinioMap of ilum groups to a list of minio policiesnullo
hydra.mapping.groupsToSupersetMap of ilum groups to a list of superset rolesnullo
hydra.mapping.groupsToAirflowMap of ilum groups to a list of airflow rolesnullo
hydra.mapping.groupsToGrafanaMap of ilum groups to a list of grafana rolesnullo
hydra.mapping.groupsToGiteaMap of ilum groups to a list of gitea rolesnullo
hydra.mapping.groupsToMinio[*].ilumObjName of ilum group to be mapped``
hydra.mapping.groupsToMinio[*].serviceObjsList of minio policies that the ilum group is mapped to``
hydra.mapping.groupsToSuperset[*].ilumObjName of ilum group to be mapped``
hydra.mapping.groupsToSuperset[*].serviceObjsList of superset roles that the ilum group is mapped to``
hydra.mapping.groupsToAirflow[*].ilumObjName of ilum group to be mapped``
hydra.mapping.groupsToAirflow[*].serviceObjsList of airflow roles that the ilum group is mapped to``
hydra.mapping.groupsToGrafana[*].ilumObjName of ilum group to be mapped``
hydra.mapping.groupsToGrafana[*].serviceObjsList of grafana roles that the ilum group is mapped to``
hydra.mapping.groupsToGitea[*].ilumObjName of ilum group to be mapped``
hydra.mapping.groupsToGitea[*].serviceObjsList of gitea roles that the ilum group is mapped to``
hydra.mapping.rolesToGiteaMap of ilum roles to a list of gitea rolesnullo
hydra.mapping.rolesToMinio[0].ilumObjName of ilum role to be mappedADMIN
hydra.mapping.rolesToMinio[0].serviceObjsList of minio policies that the ilum role is mapped to[ consoleAdmin ]
hydra.mapping.rolesToMinio[1].ilumObjName of ilum role to be mappedDATA_ENGINEER
hydra.mapping.rolesToMinio[1].serviceObjsList of minio policies that the ilum role is mapped to[ readonly, writeonly, diagnostics ]
hydra.mapping.rolesToSuperset[0].ilumObjName of ilum role to be mappedADMIN
hydra.mapping.rolesToSuperset[0].serviceObjsList of superset roles that the ilum role is mapped to[ Admin ]
hydra.mapping.rolesToSuperset[1].ilumObjName of ilum role to be mappedDATA_ENGINEER
hydra.mapping.rolesToSuperset[1].serviceObjsList of superset roles that the ilum role is mapped to[ Alpha ]
hydra.mapping.rolesToAirflow[0].ilumObjName of ilum role to be mappedADMIN
hydra.mapping.rolesToAirflow[0].serviceObjsList of airflow roles that the ilum role is mapped to[ Admin ]
hydra.mapping.rolesToAirflow[1].ilumObjName of ilum role to be mappedDATA_ENGINEER
hydra.mapping.rolesToAirflow[1].serviceObjsList of airflow roles that the ilum role is mapped to[ User ]
hydra.mapping.rolesToGrafana[0].ilumObjName of ilum role to be mappedADMIN
hydra.mapping.rolesToGrafana[0].serviceObjsList of grafana roles that the ilum role is mapped to[ Admin ]
hydra.mapping.rolesToGrafana[1].ilumObjName of ilum role to be mappedDATA_ENGINEER
hydra.mapping.rolesToGrafana[1].serviceObjsList of grafana roles that the ilum role is mapped to[ Editor ]
hydra.mapping.rolesToMinio[*].ilumObjName of ilum role to be mapped``
hydra.mapping.rolesToMinio[*].serviceObjsList of minio policies that the ilum role is mapped to``
hydra.mapping.rolesToSuperset[*].ilumObjName of ilum role to be mapped``
hydra.mapping.rolesToSuperset[*].serviceObjsList of superset roles that the ilum role is mapped to``
hydra.mapping.rolesToAirflow[*].ilumObjName of ilum role to be mapped``
hydra.mapping.rolesToAirflow[*].serviceObjsList of airflow roles that the ilum role is mapped to``
hydra.mapping.rolesToGrafana[*].ilumObjName of ilum role to be mapped``
hydra.mapping.rolesToGrafana[*].serviceObjsList of grafana roles that the ilum role is mapped to``
hydra.mapping.rolesToGitea[*].ilumObjName of ilum role to be mapped``
hydra.mapping.rolesToGitea[*].serviceObjsList of gitea roles that the ilum role is mapped to``

Caratteristica

Integrated minio with Hydra OIDC in values.yaml by adding new environment variables with oidc client data taken from global.security.hydra

Values added - minio

| minio.extraEnvVars | | |

NomeVecchio valoreNuovo valore
minio.extraEnvVars......

Caratteristica

Integrated airflow with Hydra OIDC in values.yaml

Values added - airflow

NomeDescrizioneValore
airflow.webserver.extraVolumes[0].nameName of additional airflow volume with oidc configoauth-secret-volume
airflow.webserver.extraVolumes[0].secret.secretNameAirflow secret with hydra oidc client configilum-hydra-client-secret
airflow.webserver.extraVolumeMounts[0].nameName of volume-mount of secret with oidc configoauth-secret-volume
airflow.webserver.extraVolumeMounts[0].mountPathPath for volume-mount of secret with oidc config/opt/airflow/client-secret
airflow.webserver.extraVolumeMounts[0].readOnlyreadonly flag of volume mount with oidc configvero

Caratteristica

Integrated grafana with Hydra OIDC in values.yaml

Values added - grafana

NomeDescrizioneValore
grafana.grafana.ini.auth.generic_oauth.enabledFlag to enable oauth in grafana, taken from globale.sicurezza.hydra.enabled by defaultfalso
grafana.grafana.ini.auth.generic_oauth.nameName of oauth clientIlum
grafana.grafana.ini.auth.generic_oauth.allow_sign_upFlag to enable user creation when signing in with oauthvero
grafana.grafana.ini.auth.generic_oauth.client_idId of oauth client, taken from global.security.hydra.clientId by defaultilum-client
grafana.grafana.ini.auth.generic_oauth.client_secretSecret of oauth client, taken from global.security.hydra.clientSecret by defaultsegreto
grafana.grafana.ini.auth.generic_oauth.scopesScopes requested from oauthopenid profile email offline_access
grafana.grafana.ini.auth.generic_oauth.auth_urlUrl used to initiate oauth authentication, uses globale.security.hydra.uiUrl as base by default/external/hydra/oauth2/auth
grafana.grafana.ini.auth.generic_oauth.token_urlUrl used for tokens exchange in oauth workflow, uses globale.security.hydra.uiUrl as base by default/external/hydra/oauth2/token
grafana.grafana.ini.auth.generic_oauth.api_urlUrl used to access user info, uses globale.security.hydra.uiUrl as base by default/external/hydra/userinfo
grafana.grafana.ini.auth.generic_oauth.login_attribute_pathId token claim used to distinguish different usersuserId
grafana.grafana.ini.auth.generic_oauth.email_attribute_nameId token claim with emailE-mail
grafana.grafana.ini.auth.generic_oauth.role_attribute_pathExpression used to map roles from id_token to grafana...
grafana.grafana.ini.auth.generic_oauth.role_attribute_strictFlag to require the role during sign upvero

Caratteristica

Integrated superset with Hydra OIDC in values.yaml

Values added - superset

NomeDescrizioneValore
superset.configOverrides.ilum_oauth_securityCode added to superset config in order to enable oidc...
superset.extraVolumes[0].nameName of extra volume with a secret for oidc connectionoauth-secret-volume
superset.extraVolumes[0].secret.secretNameName of secret used in extra volume for oidc connectionilum-hydra-client-secret
superset.extraVolumes[1].nameName of extra volume with superset plugin used to enable oidcoauth-plugin-volume
superset.extraVolumes[1].secret.secretNameSecret with superset plugin used to enable oidcilum-superset-oidc-plugin-secret
superset.extraVolumeMounts[0].nameName of volume mount with oidc secret dataoauth-secret-volume
superset.extraVolumeMounts[0].mountPathPath of volume mount with oidc secret data/app/pythonpath/oauth
superset.extraVolumeMounts[1].nameName of volume mount with a superset plugin as a python fileoauth-plugin-volume
superset.extraVolumeMounts[1].mountPathPath of volume mound with a superset plugin/app/pythonpath/security

2. Addition of examples for ilum-core and superset

Caratteristica:

Added examples for Ilum modules. New Ilum users can use these examples to quickly understand how to use Ilum modules like ilum-sql, superset and others.

Valori aggiunti - ilum-core

NomeDescrizioneValore
examples.jobEnables creating single job examplevero
examples.scheduleEnables creating schedule examplevero
examples.sqlNotebookEnables creating sql notebook examplevero
examples.sqlQueryEnables creating sql query examplevero
examples.databaseEnables creating database examplevero

Valori aggiunti - ilum-aio

NomeDescrizioneValore
ilum-core.examples.jobEnables creating single job examplevero
ilum-core.examples.scheduleEnables creating schedule examplevero
ilum-core.examples.sqlNotebookEnables creating sql notebook examplevero
ilum-core.examples.sqlQueryEnables creating sql query examplevero
ilum-core.examples.databaseEnables creating database examplevero
superset.extraEnv.IMPORT_DASHBOARDEnables creating superset dashboard examplevero
superset.extraVolumes[2].nameVolume name for dashboard importexample-dashboard
superset.extraVolumes[2].configMap.nameConfigMap that contains base64-encoded dashboardilum-superset-example-dashboard
superset.extraVolumeMounts[2].nameMount name for example dashboard configexample-dashboard
superset.extraVolumeMounts[2].mountPathPath in container to mount the dashboard config/config
superset.extraVolumeMounts[2].readOnlyMount config as read-onlyvero
superset.init.initscriptCustom init script to conditionally import dashboardSee script in ilum-aio values file

3. Internal users upgrade credentials flag

Valori aggiunti - ilum-core

NomeDescrizioneValore
ilum-core.security.internal.upgradeCredentialsEnables overriding user password with helm configurationfalso

4. Tighter integration of Marquez with Ilum

Caratteristica:

Enhanced Marquez integration with ilum-core, which means no direct communication between ilum-frontend and Marquez is needed anymore. This way, having a customized Marquez build is not necessary anymore.

Valori modificati - ilum-core

NomeVecchio valoreNuovo valore
job.openLineage.transport.endpoint/external/derivazione/api/v1/derivazione/api/v1/derivazione

5. Changed superset load example variable name

Values deleted - ilum-aio

NomeRagione
superset.extraEnv.IMPORT_DASHBOARDChanged to other variable name

Valori aggiunti - ilum-aio

NomeDescrizioneValore
superset.init.loadExamplesEnables creating superset dashboard examplevero

RELEASE 6.3.2

1. Addition of frequently used values to ilum-sql

Caratteristica:

Added frequently used values to ilum-sql chart, so that their configuration is easier.

Values added - ilum-sql

NomeDescrizioneValore
config.kyuubi.logLevelBase log-level of the log4j frameworkINFO
config.kyuubi.idleEngineTimeoutAuto-shutdown time of Kyuubi engines30M
config.kyuubi.idleSessionTimeoutAuto-shutdown time of Kyuubi sessions30M
config.kyuubi.engineAliveProbeWhether to create a probe, which will check engine livenessvero
config.kyuubi.cleanupTerminatedSparkDriverPodsDetermines which of the terminated Spark engine pods will get deleted. Available: NONE, COMPLETED, ALLALL

Values changed - ilum-aio

NomeVecchio valoreNuovo valore
ilum-sql.config.kyuubi.defaultssee valori.yaml~

⚠️⚠️⚠️ Warnings

Because these values were already present in the ilum-aio chart, the change will not be noticeable for users who have changed the value of ilum-sql.config.kyuubi.defaults.

2. Support of Trino in ilum-sql

Caratteristica:

Introduced support for Trino as an SQL engine in ilum-sql chart.

Valori aggiunti - ilum-aio

NomeDescrizioneValore
trino.enabledEnables built-in Trinofalso
trino.nameOverrideSets the name overrideilum-trino
trino.coordinatorNameOverrideSets the name override for the coordinatorilum-trino-coordinator
trino.workerNameOverrideSets the name override for the worker nodesilum-trino-worker
trino.server.workersSets the number of workers1
trino.catalogs.ilum-deltaConfigures the 'ilum-delta' catalogVedere valori.yaml
ilum-sql.config.trino.catalogThe catalog of choice for Trinoilum-delta

Values added - ilum-sql

NomeDescrizioneValore
config.trino.urlUrl pointing to Trino coordinatorhttp://ilum-trino:8080
config.trino.catalogThe catalog of choice for Trinosistema
config.trino.defaultsAdditional settings of Trino engines. All properties must be prefixed with trino.~

3. Enhanced Oauth2

Caratteristica

Added users, groups and roles mapping during authentication from OAuth2 Autherization server to Ilum Core. Added ability to assign Admin role to oauth2 users.

Valori aggiunti - ilum-core

NomeDescrizioneValore
security.oauth2.mapping.idJWT claim that should be mapped to user`s id""
security.oauth2.mapping.nameJWT claim that should be mapped to user`s namesub
security.oauth2.mapping.emailJWT claim that should be mapped to user`s emailE-mail
security.oauth2.mapping.fullnameJWT claim that should be mapped to user`s fullnamenome completo
security.oauth2.mapping.descriptionJWT claim that should be mapped to user`s description""
security.oauth2.mapping.departmentJWT claim that should be mapped to user`s department""
security.oauth2.mapping.groupsJWT claim with a list of groups that user is a part of represented by strings"gruppi"
security.oauth2.mapping.rolesJWT claim with a list of roles that user uses represented by strings"ruoli"
security.oauth2.mapping.enabledJWT claim that should be mapped to user`s state""
security.oauth2.mapping.enabledTrueValue of JWT claim with the name of mapping.enabled che sta per ABILITATO""
security.oauth2.mapping.singleGroupJWT claim that contains a string with name of group that the user is part of""
security.oauth2.mapping.singleRoleJWT claim that contains a string with name of role that the user has""

4. Addition of kubernetes s3 region to ilum-core and ilum-aio

Caratteristica:

Added the ability to set the S3 region in ilum-core.

Valori aggiunti - ilum-core

NomeDescrizioneValore
kubernetes.s3.regiondefault kubernetes cluster S3 storage region to store spark resourcesStati Uniti-Est-1

Valori aggiunti - ilum-aio

NomeDescrizioneValore
ilum-core.kubernetes.s3.regiondefault kubernetes cluster S3 storage region to store spark resourcesStati Uniti-Est-1
ilum-core.kubernetes.defaultCluster.config.spark.hadoop.fs.s3a.bucket.ilum-data.regiondefault kubernetes cluster S3 storage region to store spark resourcesStati Uniti-Est-1

5. Protocol in superset

Caratteristica:

Added the ability to set the protocol in superset.

Values added - superset

NomeDescrizioneValore
protocollosuperset protocolhttp (in inglese)

6. Addition of hive metastore status probe to ilum-core helm chart

Caratteristica:

Added possibility to enable status probe for hive metastore.

Valori aggiunti - ilum-core

NomeDescrizioneValore
hiveMetastore.statusProbe.enabledHive metastore status probe enabled flagfalso
hiveMetastore.statusProbe.imageHive metastore status probe imagecurlimages/curl:8.5.0
hiveMetastore.statusProbe.hostHive metastore status probe hostilum-hive-metastore
hiveMetastore.statusProbe.portHive metastore status probe port9083

VERSIONE 6.3.1

1. Aggiunti bucket extra alla configurazione di archiviazione

Caratteristica

Aggiunta della possibilità di includere bucket aggiuntivi nella configurazione di archiviazione spark del cluster ilum.

Valori aggiunti - ilum-core

NomeDescrizioneValore
kubernetes.s3.extraBucketsilum-core default kubernetes cluster S3 storage bucket extra da includere[]
kubernetes.gcs.extraBucketsilum-core default kubernetes cluster GCS storage bucket extra da includere[]
kubernetes.wasbs.extraContainersilum-core default kubernetes cluster WASBS storage contenitori extra da includere[]
kubernetes.hdfs.extraCataloghiilum-core default kubernetes cluster HDFS storage cataloghi extra da includere[]

2. LDAP migliorato

Added the ability to map users, groups, and roles — along with their properties and relationships — from an LDAP server to Ilum Core based on mapping configurations in Helm. Enabled the option to assign Admin role to LDAP users.

Valori aggiunti - ilum-core

NomeDescrizioneValore
sicurezza.ldap.userMapping.baseLDAP base delle voci utente""
sicurezza.ldap.userMapping.filterFiltro LDAP utilizzato per la ricerca degli utenti"uid={0}"
sicurezza.ldap.userMapping.usernameNome dell'attributo LDAP che deve essere mappato al nome utente dell'utenteUid
sicurezza.ldap.userMapping.passwordNome dell'attributo LDAP che deve essere mappato alla password dell'utenteuserPassword
sicurezza.ldap.userMapping.descriptionNome dell'attributo LDAP che deve essere mappato alla descrizione dell'utente""
sicurezza.ldap.userMapping.fullnameNome dell'attributo LDAP che deve essere mappato al nome completo dell'utente""
sicurezza.ldap.userMapping.departmentNome dell'attributo LDAP che deve essere mappato al reparto dell'utente""
security.ldap.userMapping.emailNome dell'attributo LDAP che deve essere mappato all'e-mail dell'utente""
sicurezza.ldap.userMapping.enabledNome dell'attributo LDAP che deve essere mappato allo stato dell'utente""
security.ldap.userMapping.enabledValueValore dell'attributo con il nome di userMapping.enabled che sta per ABILITATO""
sicurezza.ldap.groupMapping.baseBase LDAP per le voci di gruppo""
sicurezza.ldap.groupMapping.filterFiltro LDAP utilizzato per la ricerca di gruppi(membro={0})
security.ldap.groupMapping.nameNome dell'attributo LDAP che deve essere mappato al nome del gruppoCn
sicurezza.ldap.groupMapping.descriptionNome dell'attributo LDAP che deve essere mappato alla descrizione del gruppo""
sicurezza.ldap.groupMapping.memberAttributeNome dell'attributo LDAP che elenca gli utenti che hanno il gruppoUid
sicurezza.ldap.groupMapping.rolesAttributo LDAP che elenca i ruoli inclusi nel gruppo""
security.ldap.groupMapping.roleFilterAttributeAttributo LDAP dei ruoli che rappresenta un ruolo in groupMapping.roles attributo""
sicurezza.ldap.groupMapping.enabledNome dell'attributo LDAP che deve essere mappato allo stato del gruppo""
security.ldap.groupMapping.enabledTrueValore dell'attributo da groupMapping.enabled che sta per ABILITATO""
sicurezza.ldap.roleMapping.baseBase LDAP per le voci di ruolo""
sicurezza.ldap.roleMapping.filterFiltro LDAP utilizzato per la ricerca dei ruoli""
sicurezza.ldap.roleMapping.memberAttributeNome dell'attributo LDAP che elenca gli utenti che hanno il ruolo""
security.ldap.roleMapping.nameNome dell'attributo LDAP che deve essere mappato al nome del ruolo""
sicurezza.ldap.roleMapping.descriptionNome dell'attributo LDAP che deve essere mappato alla descrizione del ruolo""
sicurezza.ldap.roleMapping.enabledNome dell'attributo LDAP che deve essere mappato allo stato del ruolo""
security.ldap.roleMapping.enabledTrueValore dell'attributo da roleMapping.enabled che sta per ABILITATO""

Valori eliminati - ilum-core

NomeRagione
sicurezza.ldap.userSearchSostituito con sicurezza.ldap.userMapping
sicurezza.ldap.groupRicercaSostituito con sicurezza.ldap.groupMapping

Nomi cambiati - ilum-core

Vecchio nomeNuovo nome
sicurezza.utentiinterni[*].passwordsecurity.internal.users[*].initialPassword

3. Configurazione predefinita di SparkMagic

Valori modificati: i parametri di configurazione ilum-jupyter cambiano a causa dell'introduzione del modulo di sessione spark.

NomeVecchio valoreNuovo valore
sparkmagic.config.sessionConfigs.conf'{ "pyRequirements": "pandas", "cluster": "default", "autoPause": "false", "spark.example.config": "Puoi cambiare la configurazione predefinita in ilum-jupyter-config k8s configmap" }''{}'

Valori cancellati - ilum-jupyter

NomeRagione
sparkmagic.config.sessionConfigs.executorCoresNon più necessario a causa del nuovo modulo di sessione spark

Valori cancellati - ilum-jupyter

NomeRagione
sparkmagic.config.sessionConfigs.driverMemoryNon più necessario a causa del nuovo modulo di sessione spark

VERSIONE 6.3.0

1. Modificata la versione del tag immagine di kyuubi

Valori modificati - parametri di configurazione di sparkmagic

NomeVecchio valoreNuovo valore
sparkmagic.config.sessionConfigs.conf'{ "pyRequirements": "pandas", "spark.example.config": "Puoi modificare la configurazione predefinita in ilum-jupyter-config k8s configmap" }''{ "pyRequirements": "pandas", "cluster": "default", "autoPause": "false", "spark.example.config": "Puoi cambiare la configurazione predefinita in ilum-jupyter-config k8s configmap" }'

2. Aggiunta proprietà per impostare l'indirizzo kafka per ilum-core

Caratteristica

Aggiunta della possibilità di impostare l'indirizzo kafka per il pod ilum-core, separato dalla configurazione dell'indirizzo kafka globale sia per i processi spark che per il set di pod ilum-core tramite la proprietà kafka.address.

Valori aggiunti - ilum-core

NomeDescrizioneValore
kafka.ilum.addressindirizzo ilum-core kafka solo per ilum-core pod, sovrascrive kafka.addressnon definito

3. Modificato il tempo di tolleranza del controllo dello stato di salute del lavoro di ilum

Valori modificati - parametri di configurazione del controllo integrità del processo ilum

NomeVecchio valoreNuovo valore
lavoro.controllo integrità.tolleranza1203600

4. Introduzione al repository git incorporato

Caratteristica

Aggiunto Gitea come modulo che fornisce il server git integrato per la piattaforma ilum.

Valori aggiunti - gitea

NomeDescrizioneValore
gitea.enabledAbilitare o disabilitare la distribuzione di Giteavero
gite.image.rootlessEsegui Gitea in modalità rootlessfalso
gitea.gitea.config.database.DB_TIPOTipo di database utilizzato per Giteapostgres
gitea.gitea.config.database.HOSTHost e porta del database per GiteaILUM-POSTGRESQL-HL:5432
gitea.gitea.config.database.NAMENome del database per GiteaGitea
gitea.gitea.config.database.USERNome utente del database per Giteailum
gitea.gitea.config.database.PASSWDPassword del database per Gitea (Modifica richiesta)CAMBIAMIPER favore
gitea.gitea.admin.existingSecretIl segreto di Gitea per memorizzare le credenziali di inizializzazioneilum-git-credenziali
gitea.gitea.admin.emailE-mail dell'amministratore di Giteailum@ilum
gitea.gitea.admin.passwordModeModalità password per l'account amministratoreinitialOnlyNoReset
gitea.gitea.additionalConfigFromEnvs[0].nameAbilita push-creazione utenteGITEA__REPOSITORY__ENABLE_PUSH_CREATE_USER
gitea.gitea.additionalConfigFromEnvs[0].valueValore per l'abilitazione della creazione push dell'utentevero
gitea.gitea.additionalConfigFromEnvs[1].nameAbilita organizzazione push-createGITEA__REPOSITORY__ENABLE_PUSH_CREATE_ORG
gitea.gitea.additionalConfigFromEnvs[1].valueValore per l'abilitazione dell'organizzazione push-createvero
gitea.gitea.additionalConfigFromEnvs[2].nameRamo predefinito del repositoryGITEA__REPOSITORY__DEFAULT_BRANCH
gitea.gitea.additionalConfigFromEnvs[2].valueValore per il ramo predefinito del repositorypadrone
gitea.gitea.additionalConfigFromEnvs[3].nameURL principale del server GiteaGITEA__SERVER__ROOT_URL
gitea.gitea.additionalConfigFromEnvs[3].valueValore per l'URL radice del server Giteahttp://git.example.com/external/gitea/
gitea.gitea.additionalConfigFromEnvs[4].namePrefisso URL staticoGITEA__SERVER__STATIC_URL_PREFIX
gitea.gitea.additionalConfigFromEnvs[4].valueValore per il prefisso URL statico/esterno/gitea/
gitea.redis-cluster.enabledAbilitare o disabilitare il cluster Redisfalso
gitea.redis.enabledAbilitare o disabilitare Redisfalso
gitea.postgresql.enabledAbilitare o disabilitare PostgreSQL autonomofalso
gitea.postgresql-ha.enabledAbilita o disabilita PostgreSQL HAfalso

Valori aggiunti - ilum-jupyter

NomeDescrizioneValore
ilum-jupyter.git.enabledAbilitare o disabilitare l'integrazione Gitfalso
ilum-jupyter.git.usernameNome utente Git per l'autenticazioneilum
ilum-jupyter.git.passwordPassword Git per l'autenticazioneilum
ilum-jupyter.git.emailIndirizzo email Gitilum@ilum
ilum-jupyter.git.repositoryNome del repository GitJupyter
ilum-jupyter.git.addressIndirizzo del server Gitilum-gitea-http:3000
ilum-jupyter.git.init.imageImmagine di inizializzazione Gitbitnami/git:2.48.1

Valori aggiunti - ilum-airflow

NomeDescrizioneValore
flusso d'aria.dags.gitSync.enabledAbilitare o disabilitare la sincronizzazione Git per i gruppi di disponibilità del databasevero
flusso d'aria.dags.gitSync.repoURL del repository Git per i gruppi di disponibilità del databasehttp://ilum-gitea-http:3000/ilum/airflow.git
flusso d'aria.dags.gitSync.branchRamo Git da cui sincronizzarepadrone
flusso d'aria.dags.gitSync.refRiferimento Git per la sincronizzazioneTESTA
flusso d'aria.dags.gitSync.depthProfondità del clone Git1
airflow.dags.gitSync.maxFailuresNumero massimo di errori di sincronizzazione consentiti0
flusso d'aria.dags.gitSync.subPathPercorso secondario all'interno dell'archivio da sincronizzare""
flusso d'aria.dags.gitSync.credentialsSecretSegreto utilizzato per l'autenticazione Gitilum-git-credenziali

5. Modifiche ai nomi della configurazione SQL di Ilum

Modificare la denominazione di Ilum Sql Configuration per riflettere meglio l'uso corrente di Kyuubi

Nomi cambiati - ilum-core

Vecchio nomeNuovo nome
kyuubi.*SQL.*

Nomi cambiati - ilum-aio

Vecchio nomeNuovo nome
ilum-kyuubi.*ilum-sql.*

⚠️⚠️⚠️ Warnings

A causa delle modifiche nella denominazione e nel funzionamento interno del motore SQL e delle restrizioni su ciò che può essere fatto tramite un Aggiornamento dell'elmo, È necessario eliminare manualmente il vecchio set stateful (ad es. kubectl delete sts ilum-sql) prima di eseguire l'aggiornamento a questa versione. In questo modo si garantisce che durante l'aggiornamento venga creato un nuovo set con stato con la configurazione corretta. Le modifiche di rilievo sono correlate alle etichette e ai montaggi del volume utilizzati dal set stateful ilum-sql.

6. Aggiungere configurazioni per Ilum Submit per i motori Spark Sql

Ilum Submit migliora il processo di avvio dei motori Spark SQL tramite l'applicazione Web Ilum e l'endpoint JDBC applicando automaticamente le configurazioni del cluster selezionato. Questo miglioramento elimina la necessità di fornire manualmente la configurazione Spark di Kyuubi a Ilum Core.

Valori eliminati - ilum-core

NomeRagione
sql.sparkConfigNon necessario dopo la modifica

Valori aggiunti - ilum-kyuubi

NomeDescrizioneValore
ilumSubmit.enabledFlag per abilitare il servizio di invio ilumfalso
ilumSubmit.ilum.hostHost del servizio Ilum RESTilum-core
ilumSubmit.ilum.portServizio REST del porto di Ilum9888

Valori aggiunti - ilum-aio

NomeDescrizioneValore
ilum-sql.ilumSubmit.enabledFlag per abilitare la creazione del motore SQL tramite Ilumvero

⚠️⚠️⚠️ Warnings

Poiché la configurazione Spark di Kyuubi non è più necessaria in Ilum Core, La configurazione predefinita di Spark deve essere fornita direttamente a ilum-sql.config.spark.defaults invece del valore globale.

Caratteristica

Security‑related configuration (including internal user credentials, LDAP, OAuth2, JWT, and authorities settings) has been moved from the config map to a dedicated Kubernetes Secret. This improves the security of sensitive data by isolating it from non‑sensitive configuration.

Valori aggiunti - ilum-core

NomeDescrizioneValore
security.secret.nameName of the secret that holds security‑related configuration. Use this to override the default secret name.ilum-security

8. Modificato il tipo di servizio ilum-ui

A causa dei problemi con kubectl port-forward, stiamo esponendo un NodePort per impostazione predefinita.

Valori modificati - Parametri di configurazione di ilum-ui healthcheck

NomeVecchio valoreNuovo valore
servizio.tipoClusterIPPorta nodo
servizio.nodePort``31777

VERSIONE 6.2.1

1. Modificare il valore dell'URL di Kyuubi

Caratteristica

Cambia il valore dell'url di Kyuubi in ilum-core. Il valore predefinito dovrebbe funzionare immediatamente.

Valori modificati - ilum-core

NomeVecchio valoreNuovo valore
kyuubi.hostilum-sql-restilum-sql-senza testa

VERSIONE 6.2.1-RC1

1. Configurazione delle impostazioni di memoria del job Spark in ilum-core

Caratteristica

Aggiunta la configurazione delle impostazioni di memoria del processo spark in ilum-core. Quando viene creato il cluster predefinito in ilum-core, i parametri delle impostazioni di memoria saranno impostati su tali valori.

Valori aggiunti - ilum-core

NomeDescrizioneValore
job.memorysettings.executorsConteggio dell'esecutore dei processi Spark2
job.memorysettings.executorMemorySpark Jobs Executor Allocazione della memoria1 grammo
job.memorysettings.driverMemorySpark jobs allocazione della memoria del driver1 grammo
job.memorysettings.executorCoresConteggio dei core dell'executor dei processi Spark1
job.memorysettings.driverCoresSpark Jobs Conteggio dei core del driver1
job.memorysettings.dynamicAllocationEnabledFlag di allocazione dinamica abilitata per i processi Sparkfalso
job.memorysettings.minExecutorsSpark Jobs Numero minimo di esecutori0
job.memorysettings.initialExecutorsSpark Jobs Numero iniziale di esecutori0
job.memorysettings.maxExecutorsSpark jobs Numero massimo di esecutori20

2. Aggiunta dei parametri di conservazione del server della cronologia Spark

Caratteristica

Aggiunti i parametri di conservazione del server della cronologia delle scintilla a ilum-core. Questi parametri consentono all'utente di configurare la conservazione dei log del server della cronologia Spark.

Valori aggiunti - ilum-core

NomeDescrizioneValore
historyServer.parameters.spark.history.fs.cleaner.enabledFlag abilitato per la pulizia del server della cronologiavero
historyServer.parameters.spark.history.fs.cleaner.intervalIntervallo di pulizia del server della cronologia1d
historyServer.parameters.spark.history.fs.cleaner.maxAgeCronologia Registri del server Età massima7d

3. Dividi l'URL di Kyuubi in host e porta

Caratteristica

Dividi l'url di Kyuubi in host e porta in ilum-core. Questa modifica è stata necessaria per poter creare motori personalizzati.

Valori aggiunti - ilum-core

NomeDescrizioneValore
kyuubi.hostKyuubi ospiteilum-sql-rest
kyuubi.portPorto di Kyuubi10099

Valori eliminati - ilum-core

NomeRagione
kyuubi.urlNon necessario dopo la modifica

4. Voci extra nella mappa di configurazione del server nginx helm_ui

Caratteristica

Aggiunti flag abilitati per history server, minio, ilum-jupyter, airflow, mlflow e lineage a ilum-ui. Questi flag consentono all'utente di abilitare o disabilitare l'accesso a questi servizi tramite ilum-ui. Questi valori verranno utilizzati nella mappa di configurazione del server nginx.

Valori aggiunti - grafico ilum-ui

NomeDescrizioneValore
nginx.config.ilum-jupyter.enabledilum-ui nginx config ilum-jupyter abilitato flagfalso
nginx.config.airflow.enabledFlag di flusso d'aria abilitato per la configurazione di ilum-ui nginxfalso
nginx.config.minio.enabledilum-ui nginx config minio abilitato flagfalso
nginx.config.historyServer.enabledilum-ui nginx config historyFlag server abilitatofalso
nginx.config.mlflow.enabledFlag abilitato MLFLOW di configurazione ilum-ui nginxfalso
nginx.config.lineage.enabledFlag di derivazione abilitata della configurazione di ilum-ui nginxfalso

5. Superset nel grafico ilum-aio

Caratteristica

Superset nel grafico AIO ilum. Superset è veloce, leggero, intuitivo e ricco di opzioni che facilitano l'esplorazione e la visualizzazione dei dati da parte degli utenti di tutte le competenze. Dai semplici grafici a linee ai grafici geospaziali altamente dettagliati. Superset è uno dei moduli integrati con la piattaforma Ilum.

Valori aggiunti - ilum-ui

Configurazione aggregazione log
NomeDescrizioneValore
runtimeVars.supersetUrlURL del servizio SuperSethttp://ilum-superset:8088/
nginx.config.superset.enabledFlag abilitato Superset di configurazione ilum-ui nginxfalso

4. Configurazione predefinita del cluster kubernetes Ilum dai valori helm

Caratteristica

D'ora in poi, i parametri predefiniti del cluster ilum verranno impostati in base ai valori dell'helm.

Valori aggiunti - grafico ilum-core

NomeDescrizioneValore
kubernetes.defaultCluster.configConfigurazione predefinita del cluster Kubernetes ilum-coreconfigurazione:
  spark.driver.extraJavaOptions: "-Divy.cache.dir=/tmp -Divy.home=/tmp"
  spark.kubernetes.container.image: "ilum/spark:3.5.2-delta"
  spark.databricks.delta.catalog.update.enabled: "vero"

VERSIONE 6.2.0

1. Modificata la versione del tag immagine di kyuubi

Valori modificati - grafico ilum-kyuubi

NomeVecchio valoreNuovo valore
immagine.tag1.9.2-scintilla1.10.0-scintilla

2. Modificata la configurazione della scintilla kyuubi nel grafico ilum-kyuubi

Aggiunto spark.driver.memory=2g in globale.kyuubi.sparkConfig

VERSIONE 6.2.0-RC2

1. Aggiunta della sonda di stato Minio

Caratteristica

Aggiunta una sonda di stato in ilum-core che verifica se lo storage minio è pronto

Valori aggiunti - ilum-core

NomeDescrizioneValore
minio.statusProbe.enabledFlag di abilitazione della sonda di stato Miniovero
minio.statusProbe.imageImmagine della sonda di stato Miniocurlimages/curl:8.5.0
minio.statusProbe.baseUrlURL di base minio"http://ilum-minio:9000"

2. Configurazione Kyuubi in ilum-core

Caratteristica

Aggiunta la configurazione Kyuubi nella tabella del timone ilum-core. Kyuubi consentirà all'utente di eseguire query SQL su molte fonti di dati diverse utilizzando l'interfaccia utente di ILUM.

Valori aggiunti - ilum-core

NomeDescrizioneValore
kyuubi.enabledFlag Kyuubi abilitatovero
kyuubi.urlUrl del servizio di riposo di Kyuubihttp://ilum-sql-rest:10099

⚠️⚠️⚠️ Warnings

Per gestire correttamente i motori SQL, è necessario passare la configurazione spark di Kyuubi a ilum-core. Questo viene fatto configurando la scintilla di Kyuubi in globale.kyuubi.sparkConfig e permette all'utente di scrivere una configurazione che può essere passata sia a Kyuubi che a ilum-core.

3. Configurazione dell'uri MongoDb in ilum-core

Caratteristica

Modificare il modo in cui l'uri mongoDb viene passato a ilum-core. Ora viene passato come una singola stringa, che consente all'utente di fornire una configurazione più granulare come authSource.

Valori aggiunti - ilum-core

NomeDescrizioneValore
mongo.uriStringa di connessione MongoDbmongodb://mongo:27017/ilum-default?replicaSet=rs0

Valori eliminati - ilum-core

NomeRagione
mongo.instancesNon necessario dopo la modifica
mongo.replicaSetNameNon necessario dopo la modifica

⚠️⚠️⚠️ Warnings

Le mongo.uri, se impostato in modo errato, l'applicazione non funzionerà correttamente. Assicurarsi di fornire la stringa di connessione corretta.

In precedenza il formato era: mongodb://{ mongo.instances }/ilum-{ release_namespace }?replicaSet={ mongo.replicaSetName } Per impostazione predefinita, nel grafico ilum-aio questi valori erano:

  • mongo.instances - ilum-mongodb-0.ilum-mongodb-headless:27017,ilum-mongodb-1.ilum-mongodb-headless:27017
  • mongo.replicaSetName - RS0
  • release_namespace - default

4. Messa in pausa automatica della configurazione in ilum-core

Caratteristica

Aggiunta la pausa automatica in ilum-core, che controlla periodicamente se ci sono gruppi inattivi per il tempo specificato e mette in pausa il gruppo. Ogni gruppo deve avere l'autopausa attivata affinché ciò avvenga.

Valori aggiunti - ilum-core

NomeDescrizioneValore
lavoro.autoPause.enabledFlag di funzionalità per abilitare la pausa automaticavero
lavoro.autoPause.periodIntervallo in secondi per il controllo dei gruppi di inattività180
lavoro.autoPause.idleTimeTempo in secondi durante il quale il gruppo deve essere inattivo per essere messo in pausa automaticamente3600

5. Esportatore di grafite nel grafico ilum-aio

Caratteristica

Esportatore di grafite nel grafico AIO di ilum e configurazione di grafite nel grafico ilum-core. Graphite exporter è un esportatore Prometheus per le metriche esportate nel protocollo Graphite plaintext.

Valori aggiunti - esportatore di grafite

Appena aggiunto l'intero grafico, controlla i suoi valori sul Pagina del grafico

6. Configurazione della grafite in ilum-core

Caratteristica

Aggiunta la configurazione Graphite nella carta del timone ilum-core. Graphite consentirà ai lavori Spark di inviare le loro metriche a graphite sink, che verrà raschiato da Prometheus.

Valori aggiunti - ilum-core

NomeDescrizioneValore
lavoro.grafite.enabledFlag abilitato alla grafitefalso
lavoro.grafite.hostHost in grafiteilum-grafite-grafite-tcp
lavoro.grafite.portPorta in grafite9109
lavoro.grafite.periodoIntervallo tra l'invio delle metriche del processo10
lavoro.grafite.unitàUnità di tempoSecondi

VERSIONE 6.1.4

1. Modifica della configurazione predefinita di sparkmagic di Jupyter

Caratteristica

Metodo modificato per passare le configurazioni predefinite di Spark al notebook jupyter, ora viene passato come stringa json

Valori aggiunti - ilum-jupyter

Parametri di configurazione di Sparkmagic
NomeDescrizioneValore
sparkmagic.config.sessionConfigs.confConfigurazione di SparkMagic Session Spark'{ "pyRequirements": "pandas", "spark.jars.packages": "io.delta:delta-core_2.12:2.4.0", "spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension", "spark.sql.catalog.spark_catalog": "org.apache.spark.sql.delta.catalog.DeltaCatalog"}'
sparkmagic.config.sessionConfigsDefaults.confConfigurazione di Spark predefinita della sessione SparkMagic'{ "pyRequirements": "pandas", "spark.jars.packages": "io.delta:delta-core_2.12:2.4.0", "spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension", "spark.sql.catalog.spark_catalog": "org.apache.spark.sql.delta.catalog.DeltaCatalog"}'

2. Kyuubi nel grafico ilum-aio

Caratteristica

Kyuubi nel grafico AIO di ilum. Kyuubi è un gateway multi-tenant distribuito che fornisce servizi di query SQL per data warehouse e lakehouse. Fornisce interfacce JDBC e ODBC e un'API REST con cui i client possono interagire.

Valori aggiunti - ilum-kyuubi

Appena aggiunto l'intero grafico, controlla i suoi valori sul Pagina del grafico

VERSIONE 6.1.3

1. Configurazione di Jupyter e archiviazione persistente

Caratteristica

Aggiunta della configurazione estesa del grafico helm del notebook jupyter tramite i valori helm. Inoltre, è stato aggiunto un contenitore resistente al jupyter pod. Tutti i dati salvati in lavoro La directory sarà ora disponibile dopo il riavvio/aggiornamento di Jupyter.

Valori aggiunti - ilum-jupyter

Parametri PVC
NomeDescrizioneValore
pvc.annotationsAnnotazioni persistenti delle attestazioni di volume{}
pvc.selectorSelettore di attestazioni di volume persistente{}
pvc.accessModesaccesso all'attestazione del volume persistenteModalitàReadWriteOnce
in pvc.di stoccaggioRichieste di archiviazione delle attestazioni di volume persistenti4Gi
pvc.storageNomeClasserichiesta di volume persistente storageClassName``
Parametri di configurazione di Sparkmagic
NomeDescrizioneValore
sparkmagic.config.kernelPythonCredentials.usernameNome utente del kernel Python Sparkmagic""
sparkmagic.config.kernelPythonCredentials.passwordPassword del kernel Python Sparkmagic""
sparkmagic.config.kernelPythonCredentials.authModalità di autenticazione del kernel Python Sparkmagic"Nessuno"
sparkmagic.config.kernelScalaCredentials.usernameNome utente del kernel Python Sparkmagic""
sparkmagic.config.kernelScalaCredentials.passwordPassword del kernel Sparkmagic Scala""
sparkmagic.config.kernelScalaCredentials.authModalità di autenticazione del kernel Sparkmagic Scala"Nessuno"
sparkmagic.config.kernelRCredentials.usernameNome utente del kernel Sparkmagic R""
sparkmagic.config.kernelRCredentials.passwordPassword del kernel Sparkmagic R""
sparkmagic.config.waitForIdleTimeoutSecondsTimeout sparkmagic in attesa dello stato di inattività15
sparkmagic.config.livySessionStartupTimeoutSecondsTimeout di SparkMagic in attesa dell'avvio della sessione300
sparkmagic.config.ignoreSslErrorsSparkmagic Ignora flag di errore SSLfalso
sparkmagic.config.sessionConfigs.confConfigurazione di SparkMagic Session Spark[pyRequirements: pandas, spark.jars.packages: io.delta:delta-core_2.12:2.4.0, spark.sql.extensions: io.delta.sql.DeltaSparkSessionExtension,spark.sql.catalog.spark_catalog: org.apache.spark.sql.delta.catalog.DeltaCatalog]
sparkmagic.config.sessionConfigs.driverMemoryMemoria del driver di sessione Sparkmagic1000 milioni
sparkmagic.config.sessionConfigs.executorCoresCore dell'esecutore di sessione Sparkmagic2
sparkmagic.config.sessionConfigsDefaults.confConfigurazione di Spark predefinita della sessione SparkMagic[pyRequirements: pandas, spark.jars.packages: io.delta:delta-core_2.12:2.4.0, spark.sql.extensions: io.delta.sql.DeltaSparkSessionExtension,spark.sql.catalog.spark_catalog: org.apache.spark.sql.delta.catalog.DeltaCatalog]
sparkmagic.config.sessionConfigsDefaults.driverMemoryLa sessione SparkMagic imposta per impostazione predefinita la memoria del driver1000 milioni
sparkmagic.config.sessionConfigsDefaults.executorCoresSparkmagic Session Defaults executor cores2
sparkmagic.config.useAutoVizFlag di visualizzazione automatica di SparkMagic Usevero
sparkmagic.config.coerceDataframeflag di dataframe di coercizione sparkmagicvero
sparkmagic.config.maxResultsSqlRisultato SQL massimo di sparkmagic2500
sparkmagic.config.pysparkDataframeEncodingCodifica del dataframe SparkMagic PySparkUTF-8
sparkmagic.config.heartbeatRefreshSecondssparkmagic heartbeat refresh secondi30
sparkmagic.config.livyServerHeartbeatTimeoutSecondsSparkMagic Livy Server Heartbeat Timeout secondi0
sparkmagic.config.heartbeatRetrySecondssparkmagic heartbeat riprova secondi10
sparkmagic.config.serverExtensionDefaultKernelNameNome predefinito del kernel dell'estensione del server Sparkmagicpysparkkernel
sparkmagic.config.retryPolicyPolitica di ripetizione dei tentativi di SparkMagicconfigurabile
sparkmagic.config.retrySecondsToSleepListElenco dei secondi di ripetizione dei tentativi di SparkMagic per dormire[0.2, 0.5, 1, 3, 5]
sparkmagic.config.configurableRetryPolicyMaxRetriesCriteri di ripetizione dei tentativi di SparkMagic Numero massimo di tentativi8

VERSIONE 6.1.2

1. Metastore Hive nel grafico ilum-aio

Caratteristica

Metastore Hive nel grafico AIO di ilum. HMS è un repository centrale di metadati per le tabelle e le partizioni Hive in un database relazionale, e fornisce ai client (tra cui Hive, Impala e Spark) l'accesso a queste informazioni utilizzando l'API del servizio metastore. Con il metastore hive abilitato in ilum, i processi di spark dello stack di comando AIO eseguiti da ilum possono essere configurati per accedervi automaticamente.

Valori aggiunti - ilum-hive-metastore

Intero grafico appena aggiunto, controlla i suoi valori su pagina del grafico

Valori aggiunti - ilum-core

NomeDescrizioneValore
hiveMetastore.enabledPassaggio della configurazione del metastore Hive al flag dei processi Spark di ILUMfalso
hiveMetastore.addressIndirizzo del metastore Hivethrift://ilum-hive-metastore:9083
hiveMetastore.warehouseDirDirectory del magazzino del metastore Hives3a://ilum-data/

2. Aggiunte estensioni Postgres

Caratteristica

Pochi dei subchar AIO di ilum utilizzano postgresql, per semplificare la gestione della distribuzione di essi abbiamo aggiunto la risorsa di estensione postgres per creare database postgresql per ilum sucharts.

Valori aggiunti - ilum-aio

Parametri delle estensioni PostgreSQL
NomeDescrizioneValore
postgresExtensions.enabledFlag Estensioni Postgres abilitatevero
postgresExtensions.imageimmagine in cui eseguire le estensioniBitnami/PostgreSQL:16
postgresExtensions.pullPolicyCriteri di estrazione delle immaginiIfNotPresent
postgresExtensions.imagePullSecretsSegreti di estrazione delle immagini[]
postgresExtensions.hostHost di database PostgreSQLilum-postgresql-0.ilum-postgresql-hl
postgresExtensions.portPorta del database PostgreSQL5432
postgresExtensions.databasesToCreateElenco separato da virgole di database da crearemarquez,flusso d'aria,metastore
postgresExtensions.auth.usernameNome utente dell'account PostgreSQLilum
postgresExtensions.auth.passwordPassword dell'account PostgreSQLCAMBIAMIPER favore
postgresExtensions.nodeSelectorSelettore di nodi Pods delle estensioni di PostgreSQL{}
postgresExtensions.tolerationsTolleranze dei pod delle estensioni di PostgreSQL[]

3. Loki e promtail nel grafico ilum-aio

Caratteristica

Loki e promtail nel grafico AIO di ilum. Loki è un sistema di aggregazione dei log multi-tenant scalabile orizzontalmente, altamente disponibile e ispirato a Prometheus. Promtail è un agente che spedisce il contenuto dei log locali a un'istanza di Grafana Loki. Ilum ora utilizzerà Loki per aggregare i log dai pod di processo spark per essere in grado di pulire le risorse del cluster dopo l'esecuzione dei processi. Loki e promtail sono preconfigurati per eliminare i log solo dai pod spark eseguiti da ilum al fine di recuperare i log dei lavori dopo il loro completamento.

Valori aggiunti - ilum-core

Configurazione aggregazione log
NomeDescrizioneValore
global.logAggregation.enabledFlag di aggregazione dei log di Ilum, se abilitato Ilum recupererà i log dei pod di scintilla Kubernetes finiti da Lokifalso
global.logAggregation.loki.urlIndirizzo del gateway Loki per accedere ai registrihttp://ilum-loki-gateway

Valori aggiunti - ilum-aio

Aggregazione dei log - Loki Config
NomeDescrizioneValore
loki.nameOverrideSostituzione del nome del sottograficoilum-loki
loki.monitoring.selfMonitoring.enabledFlag di monitoraggio automatico abilitatofalso
loki.monitoring.selfMonitoring.grafanaAgent.installOperatorFlag di installazione dell'operatore dell'agente Grafana di monitoraggio automaticofalso
loki.monitoring.selfMonitoring.lokiCanary.enabledFlag canary abilitato per il monitoraggio automaticofalso
loki.test.enabledFlag Test abilitatifalso
loki.loki.auth_enabledFlag di autenticazione abilitatafalso
loki.loki.storage.bucketNames.chunksBucket di blocchi di archiviazioneilum-files
loki.loki.storage.bucketNames.rulersecchio righello di stoccaggioilum-files
loki.loki.storage.bucketNames.adminBucket di amministrazione dello storageilum-files
loki.loki.storage.typeTipo di archiviazioneS3
loki.loki.s3.endpointEndpoint di archiviazione S3http://ilum-minio:9000
loki.loki.s3.regionEndpoint di archiviazione S3Stati Uniti-Est-1
loki.loki.s3.secretAccessKeyChiave di accesso segreta di S3 Storageminioadmin
loki.loki.s3.accessKeyIdID chiave di accesso all'archiviazione S3minioadmin
loki.loki.s3.s3ForcePathStyleFlag di accesso in stile percorso di archiviazione S3vero
loki.loki.s3.insecureFlag di archiviazione non sicuro S3vero
loki.loki.compactor.retention_enabledFlag di conservazione dei log abilitatavero
loki.loki.compactor.deletion_modeModalità di eliminazionefiltra ed elimina
loki.loki.compactor.shared_storeNegozio condivisoS3
loki.loki.limits_config.allow_deletesFlag Consenti eliminazione logvero
Aggregazione dei log - Loki Config
NomeDescrizioneValore
promtail.config.clients[0].urlURL del primo clienthttp://ilum-loki-write:3100/loki/api/v1/push
promtail.snippets.pipelineStages[0].match.selectorFase della pipeline per eliminare il selettore dei log non ILUM{ilum_logAggregation!="true"}
promtail.snippets.pipelineStages[0].match.actionFase della pipeline per eliminare l'azione dei log non ILUMgoccia
promtail.snippets.pipelineStages[0].match.drop_counter_reasonFase della pipeline per eliminare i log non ILUM drop_counter_reasonnon_ilum_log
promtail.snippets.extraRelabelConfigs[0].actionRietichetta la configurazione per mantenere l'azione delle etichette del pod Ilumper etichetteper mappa
promtail.snippets.extraRelabelConfigs[0].regexRietichetta la configurazione per mantenere le etichette dei pod ILUM regex__meta_kubernetes_pod_label_ilum(.*)
promtail.snippets.extraRelabelConfigs[0].replacementRietichetta la configurazione per mantenere la sostituzione delle etichette del pod Ilumilum${1}
promtail.snippets.extraRelabelConfigs[1].actionRietichetta configurazione per mantenere l'azione Spark Pod Labelsper etichetteper mappa
promtail.snippets.extraRelabelConfigs[1].regexRietichettare la configurazione per mantenere le etichette dei pod Spark Regex__meta_kubernetes_pod_label_spark(.*)
promtail.snippets.extraRelabelConfigs[1].replacementRietichettare la configurazione per mantenere la sostituzione delle etichette Spark Podscintilla${1}

VERSIONE 6.1.1

1. Aggiunti controlli di integrità per i lavori interattivi ilum

Caratteristica

Per evitare situazioni con schiacciamenti imprevisti di gruppi di ilum, abbiamo aggiunto controlli di integrità per assicurarci che funzionino come dovrebbero.

Valori aggiunti - ilum-core

parametri ilum-job
NomeDescrizioneValore
lavoro.healthcheck.enabledFlag Spark Interactive Jobs HealthCheck abilitatovero
lavoro.healthcheck.intervalIntervallo di controllo dello stato dei processi interattivi Spark in secondi300
lavoro.controllo integrità.tolleranzaSpark Interactive Jobs HealthCheck Tolleranza del tempo di risposta in secondi120

2. Scalabilità delle repliche con parametri per i servizi scalabili ilum

Caratteristica

La configurazione del numero di repliche per i servizi scalabili ilum è stata estratta per eseguire il tim dei valori.

Valori aggiunti - ilum-core

Parametri comuni ilum-core
NomeDescrizioneValore
replicaCountNumero di repliche ilum-core1

Valori aggiunti - ilum-ui

Parametri comuni di ilum-ui
NomeDescrizioneValore
replicaCountNumero di repliche ILUM-UI1

VERSIONE 6.1.0

1. Eliminati i parametri non necessari dall'archiviazione wasbs del cluster ilum

Caratteristica

I contenitori di archiviazione WASBS non devono più avere token sas forniti nei valori helm perché si è rivelato non necessario

Valori eliminati - ilum-core

Parametri di archiviazione WASBS
NomeRagione
kubernetes.wasbs.sparkContainer.nameSpostato in kubernetes.wasbs.sparkContainer valore
kubernetes.wasbs.sparkContainer.sasTokenSi è rivelato inutile
kubernetes.wasbs.dataContainer.nameSpostato in kubernetes.wasbs.dataContainer valore
kubernetes.wasbs.dataContainer.sasTokenSi è rivelato inutile

Valori aggiunti - ilum-core

Parametri di archiviazione WASBS
NomeDescrizioneValore
kubernetes.wasbs.sparkContainernome del contenitore di archiviazione WASBS del cluster kubernetes predefinito per archiviare le risorse sparkilum-files
kubernetes.wasbs.dataContainernome del contenitore di archiviazione WASBS del cluster kubernetes predefinito per archiviare le tabelle ilumilum-tabelle

2. Aggiunti contenitori di inizializzazione per verificare la disponibilità del servizio

Caratteristica

Per rendere l'implementazione di Ilum più fluida, d'ora in poi i container Ilum dispongono di container in attesa della disponibilità dei servizi da cui dipendono.

Valori aggiunti - ilum-core

NomeDescrizioneValore
mongo.statusProbe.enabledFlag di abilitazione della sonda di stato MONGOvero
mongo.statusProbe.imageContenitore init che attende che MongoDB sia disponibile Immaginemongo:7.0.5
kafka.statusProbe.enabledFlag di abilitazione della sonda di stato Kafkavero
kafka.statusProbe.imageContenitore init che attende che Kafka sia disponibile ImmagineBitnami/Kafka:3.4.1
historyServer.statusProbe.enabledFlag di abilitazione della sonda di stato ilum-core del server della cronologia ilumvero
historyServer.statusProbe.imageContenitore di inizializzazione del server di cronologia ILUM che attende che ilum-core sia disponibile immaginecurlimages/curl:8.5.0

Valori aggiunti - ilum-livy-proxy

NomeDescrizioneValore
statusProbe.enabledFlag di abilitazione della sonda di stato ilum-corevero
statusProbe.imagecontenitore init che attende che ilum-core sia disponibile immaginecurlimages/curl:8.5.0

Valori aggiunti - ilum-ui

NomeDescrizioneValore
statusProbe.enabledFlag di abilitazione della sonda di stato ilum-corevero
statusProbe.imagecontenitore init che attende che ilum-core sia disponibile immaginecurlimages/curl:8.5.0

3. Produttori di kafka parametrizzati nel grafico ilum-core

Caratteristica

Nella modalità di comunicazione kafka ilum risposte ai processi interattivi alle istanze di lavoro interattive utilizzando i produttori kafka. Con i nuovi valori di elmo aggiunti, il produttore di kafka può essere adattato alle esigenze dell'utente.

Valori aggiunti - ilum-core

Parametri Kafka
NomeDescrizioneValore
kafka.maxPollRecordskafka max.poll.records parametro per ilum jobs kafka consumer, determina quante richieste ilum-job kafka consumer recupererà con ogni sondaggio500
kafka.maxPollIntervalKafka max.poll.interval.ms parametro per ilum jobs kafka consumer, determina il ritardo massimo tra le invocazioni di poll, che nel contesto ilum-job significa limite di tempo per l'elaborazione delle richieste recuperate in poll60000

VERSIONE 6.1.0-RC1

1. Aggiunto il supporto per le annotazioni di servizio

Caratteristica

Le annotazioni dei servizi dei grafici helm Ilum possono ora essere configurate tramite i valori helm

Valori aggiunti - ilum-core

Parametri del servizio
NomeDescrizioneValore
servizio.annotazioniAnnotazioni di servizio{}
grpc.servizio.annotazioniAnnotazioni del servizio GRPC{}
historyServer.service.annotationsAnnotazioni del servizio History Server{}

Valori aggiunti - ilum-jupyter

Parametri del servizio
NomeDescrizioneValore
servizio.annotazioniAnnotazioni di servizio{}

Valori aggiunti - ilum-livy-proxy

Parametri del servizio
NomeDescrizioneValore
servizio.annotazioniAnnotazioni di servizio{}

Valori aggiunti - ilum-ui

Parametri del servizio
NomeDescrizioneValore
servizio.annotazioniAnnotazioni di servizio{}

Valori aggiunti - ilum-zeppelin

Parametri del servizio
NomeDescrizioneValore
servizio.annotazioniAnnotazioni di servizio{}

2. Estratti i parametri di sicurezza oauth2 ai valori globali

Caratteristica

La configurazione oauth2 di Ilum security viene ora impostata tramite valori globali

Valori aggiunti - ilum-aio

Parametri di sicurezza
NomeDescrizioneValore
global.security.oauth2.clientIdID client oauth2``
global.security.oauth2.issuerUriURI oauth2 che può essere un endpoint di individuazione OpenID Connect o un endpoint di metadati del server di autorizzazione OAuth 2.0 definito da RFC 8414``
globale.sicurezza.oauth2.audiencesOAuth2 Segmenti di pubblico``
globale.security.oauth2.clientSecretSegreto client OAuth2``

Valori eliminati - ilum-core

Parametri di sicurezza
NomeRagioneValore
sicurezza.oauth2.clientIdI parametri di sicurezza OAuth2 sono ora configurati tramite valori globali``
security.oauth2.issuerUriI parametri di sicurezza OAuth2 sono ora configurati tramite valori globali``

3. Variabili d'ambiente di runtime per il frontend

Caratteristica

Configurazione per le variabili di ambiente front-end tramite i valori dell'interfaccia utente helm.

Valori aggiunti - ilum-ui

Variabili di runtime
NomeDescrizioneValore
runtimeVars.defaultConfigMap.enabledMappa di configurazione predefinita per le variabili d'ambiente del runtime frontendvero
runtimeVars.debugflag di registrazione di debugfalso
runtimeVars.backenUrlURL di backend ilum-corehttp://ilum-core:9888
runtimeVars.historyServerUrlURL dell'interfaccia utente del server di cronologiahttp://ilum-history-server:9666
runtimeVars.jupyterUrlURL dell'interfaccia utente di Jupyterhttp://ilum-jupyter:8888
runtimeVars.airflowUrlURL dell'interfaccia utente del flusso d'ariahttp://ilum-webserver:8080
runtimeVars.minioUrlURL dell'interfaccia utente di Miniohttp://ilum-minio:9001
runtimeVars.mlflowUrlURL dell'interfaccia utente di mlflowhttp://mlflow:5000
runtimeVars.historyServerPathilum-ui proxy percorso dell'interfaccia utente del server di cronologia/esterno/history-server/
runtimeVars.jupyterPathPercorso proxy ilum-ui per l'interfaccia utente di jupyter/external/jupyter/lab/tree/work/IlumIntro.ipynb
runtimeVars.airflowPathPercorso proxy ilum-ui per l'interfaccia utente del flusso d'aria/esterno/flusso d'aria/
runtimeVars.dataPathPercorso del proxy ilum-ui per l'interfaccia utente minio/esterno/minio/
runtimeVars.mlflowPathPercorso del proxy ilum-ui per l'interfaccia utente di mlflow/esterno/mlflow/

Valori eliminati - ilum-ui

NomeRagione
Eseguire il debugspostato nella sezione runtimeVars
backenUrlspostato nella sezione runtimeVars
historyServerUrlspostato nella sezione runtimeVars
jupyterUrlspostato nella sezione runtimeVars
di flusso d'ariaUrlspostato nella sezione runtimeVars

4. Kube-prometheus-stack nel grafico ilum-aio

Caratteristica

Kube prometheus stack nel grafico AIO ilum. Preconfigurato per funzionare automaticamente con la distribuzione di ilum al fine di raccogliere le metriche dei pod ilum e dei processi di avvio eseguiti da ilum. Ilum fornisce monitoraggi del servizio Prometheus per estrarre automaticamente le metriche dai pod del driver spark eseguiti dai servizi ilum e back-end ilum. Inoltre, ilum_aio grafico fornisce dashboard grafana incorporati che possono essere trovati in Ilum cartella.

Valori aggiunti - ilum-aio

Variabili kube-prometheus-stack - per un controllo esteso della configurazione Tabella dell'elmo della pila Kube-Prometheus
NomeDescrizioneValore
kube-prometheus-stack.enabledFlag abilitato kube-prometheus-stackfalso
kube-prometheus-stack.releaseLabelFlag kube-prometheus-stack per monitorare la risorsa solo dalla versione ilum_aiovero
kube-prometheus-stack.kubeStateMetrics.enabledkube-prometheus-stack Flag abilitato per lo scraping dei componenti delle metriche di stato kubefalso
kube-prometheus-stack.nodeExporter.enabledkube-prometheus-stack node exporter daemon set deployment flagfalso
kube-prometheus-stack.alertmanager.enabledFlag del gestore di avvisi kube-prometheus-stackfalso
kube-prometheus-stack.grafana.sidecar.dashboards.folderAnnotationkube-prometheus-stack, Se specificato, il sidecar cercherà l'annotazione con questo nome per creare la cartella e mettere il grafico quigrafana_folder
kube-prometheus-stack.grafana.sidecar.dashboards.provider.foldersFromFilesStructurekube-prometheus-stack, permette a Grafana di replicare la struttura del cruscotto dal filesystemvero

Valori aggiunti - ilum-core

NomeDescrizioneValore
lavoro.prometeo.enabledFlag prometheus abilitato, se i processi spark true eseguiti da Ilum condivideranno le metriche in formato prometheusvero

5. Marquez OpenLineage nel grafico ilum-aio

Caratteristica

Marquez OpenLineage nel grafico AIO di ilum. Marquez consente di consumare, archiviare e visualizzare i metadati OpenLineage da tutta l'organizzazione, Al servizio di casi d'uso tra cui la governance dei dati, il monitoraggio della qualità dei dati e l'analisi delle prestazioni. Con marquez abilitato in ilum, il processo di spark dello stack di gestione AIO eseguito da Ilum condividerà le informazioni di derivazione con il back-end marquez. L'interfaccia web di Marquez visualizza le informazioni sui dati raccolti dai lavori spark ed è accessibile tramite l'interfaccia utente di ilum come iframe.

Valori aggiunti - ilum-aio

NomeDescrizioneValore
globale.lineage.enabledFlag Marquez abilitatofalso

Valori aggiunti - ilum-core

NomeDescrizioneValore
lavoro.openLineage.transport.typeTipo di comunicazione Marquezhttp (in inglese)
job.openLineage.transport.serverUrlURL di backend Marquezhttp://ilum-marquez:9555/
job.openLineage.transport.endpointEndpoint backend Marquez/external/derivazione/api/v1/derivazione

Valori aggiunti - ilum-marquez

Intero grafico appena aggiunto, controlla i suoi valori su pagina del grafico

Valori aggiunti - ilum-ui

NomeDescrizioneValore
runtimeVars.lineageUrlurl per fornire l'iframe dell'interfaccia utente di marquez openlineagehttp://ilum-marquez-web:9444
runtimeVars.lineagePathPercorso del proxy ilum-ui per l'interfaccia utente di marquez openlineage/esterno/lignaggio/

VERSIONE 6.0.3

1. Parametro max.request.size dei produttori kafka parametrizzati nel grafico ilum-core

Caratteristica

Nella modalità di comunicazione kafka ilum risposte ai processi interattivi alle istanze di lavoro interattive utilizzando i produttori kafka. Con il nuovo valore helm aggiunto max.request.size kafka il parametro producer può essere adattato per soddisfare le esigenze di dimensioni delle risposte.

Valori aggiunti - ilum-core

Parametri Kafka
NomeDescrizioneValore
kafka.requestSizeParametro kafka max.request.size per i lavori ILUM Produttori Kafka20000000

VERSIONE 6.0.2

1. Supporto per hdfs, gcs e archiviazione BLOB di azure nel grafico ilum-core

Caratteristica

Il cluster Ilum non deve più essere collegato allo storage s3, da ora il cluster predefinito può essere configurato per utilizzare anche hdfs, gcs o azure blob come storage. Può essere ottenuto utilizzando i nuovi valori aggiunti nella carta del timone ilum-core.

Valori eliminati - ilum-core

NomeRagione
kubernetes.s3.bucketD'ora in poi dovranno essere impostati due bucket separati con nuovi valori: kubernetes.s3.sparkBucket, kubernetes.s3.dataBucket

Valori aggiunti - ilum-core

Parametri di archiviazione Kubernetes
NomeDescrizioneValore
kubernetes.upgradeClusterOnStartupAggiornamento predefinito del cluster Kubernetes dai valori nel flag della mappa di configurazionefalso
kubernetes.storage.typeTipo di archiviazione del cluster Kubernetes predefinito, opzioni disponibili: S3, Gcs, Vespe, HDFSS3
Parametri di archiviazione Kubernetes S3
NomeDescrizioneValore
kubernetes.s3.hosthost di archiviazione S3 del cluster kubernetes predefinito per archiviare le risorse sparkS3
kubernetes.s3.portPorta di archiviazione S3 del cluster Kubernetes predefinita per archiviare le risorse Spark7000
kubernetes.s3.sparkBucketbucket di archiviazione S3 del cluster Kubernetes predefinito per archiviare le risorse Sparkilum-files
kubernetes.s3.dataBucketbucket di archiviazione S3 del cluster Kubernetes predefinito per archiviare le tabelle ilumilum-tabelle
kubernetes.s3.accessKeyChiave di accesso all'archiviazione S3 del cluster Kubernetes predefinita per archiviare le risorse Spark""
kubernetes.s3.secretKeychiave segreta di archiviazione S3 del cluster Kubernetes predefinita per archiviare le risorse Spark""
Parametri di archiviazione GCS Kubernetes
NomeDescrizioneValore
kubernetes.gcs.clientEmailPosta elettronica predefinita del client di archiviazione GCS del cluster Kubernetes""
kubernetes.gcs.sparkBucketbucket di archiviazione GCS del cluster Kubernetes predefinito per archiviare le risorse Spark"ilum-files"
kubernetes.gcs.dataBucketbucket di archiviazione GCS del cluster Kubernetes predefinito per archiviare le tabelle ilum"Tavoli-ilum"
kubernetes.gcs.privateKeychiave privata di archiviazione GCS del cluster kubernetes predefinita per archiviare le risorse spark""
kubernetes.gcs.privateKeyIdID chiave privata di archiviazione GCS del cluster Kubernetes predefinito per archiviare le risorse Spark""
Parametri di archiviazione WASBS Kubernetes
NomeDescrizioneValore
kubernetes.wasbs.accountNamenome dell'account di archiviazione WASBS del cluster kubernetes predefinito""
kubernetes.wasbs.accessKeyChiave di accesso all'archiviazione WASBS del cluster kubernetes predefinita per archiviare le risorse spark""
kubernetes.wasbs.sparkContainer.namenome del contenitore di archiviazione WASBS del cluster kubernetes predefinito per archiviare le risorse spark"ilum-files"
kubernetes.wasbs.sparkContainer.sasTokenToken SAS del contenitore di archiviazione WASBS del cluster Kubernetes predefinito per archiviare le risorse Spark""
kubernetes.wasbs.dataContainer.namenome del contenitore di archiviazione WASBS del cluster kubernetes predefinito per archiviare le tabelle ilum"Tavoli-ilum"
kubernetes.wasbs.dataContainer.sasTokentoken sas del contenitore di archiviazione WASBS del cluster kubernetes predefinito per archiviare le tabelle ilum""
Parametri di archiviazione di HDFS Kubernetes
NomeDescrizioneValore
kubernetes.hdfs.hadoopUsernamenome utente hadoop di archiviazione HDFS del cluster kubernetes predefinito""
kubernetes.hdfs.configDict di archiviazione HDFS del cluster kubernetes predefinito dei file di configurazione con nome come chiave e contenuto codificato base64 come valore""
kubernetes.hdfs.sparkCatalogCatalogo di archiviazione HDFS del cluster Kubernetes predefinito per archiviare le risorse Spark"ilum-files"
kubernetes.hdfs.dataCatalogCatalogo di archiviazione HDFS del cluster Kubernetes predefinito per archiviare le tabelle ILUM"Tavoli-ilum"
kubernetes.hdfs.keyTabPredefinito cluster kubernetes HDFS storage keytab file con codifica base64""
kubernetes.hdfs.principalnome dell'entità di archiviazione HDFS del cluster kubernetes predefinito""
kubernetes.hdfs.krb5Cluster Kubernetes predefinito Archiviazione HDFS File KRB5 Contenuto codificato Base64""
kubernetes.hdfs.trustStorecluster kubernetes predefinito, truststore storage trustStore file base64 contenuto codificato""
kubernetes.hdfs.logDirectorypercorso assoluto della directory di archiviazione HDFS del cluster kubernetes predefinito per memorizzare eventLog per il server della cronologia""

Importante! Assicurati che i bucket S3/GCS o i container WASBS siano già creati e raggiungibili!

2. Aggiunto il server della cronologia delle scintille al grafico dell'elmo ilum-core

Caratteristica

Il server di cronologia Spark può essere distribuito d'ora in poi insieme a ilum-core. La configurazione del server della cronologia viene passata a ogni processo spark eseguito da ilum. L'interfaccia utente del server di cronologia è ora accessibile dall'interfaccia utente ilum. Se abilitato, utilizzerà l'archiviazione cluster kubernetes predefinita configurata con kubernetes. [STORAGE_TYPE]. [PARAMETER] come memorizzazione eventLog.

Valori aggiunti - ilum-core

Parametri del server di cronologia
NomeDescrizioneValore
historyServer.enabledFlag del server della cronologia di Sparkvero
historyServer.imageImmagine del server della cronologia Sparkilum/lancia-scintille:scintilla-3.5.3
historyServer.addressIndirizzo del server della cronologia delle scintillahttp://ilum-history-server:9666
historyServer.pullPolicyCriteri di pull dell'immagine del server della cronologia di SparkIfNotPresent
historyServer.imagePullSecretsSegreti pull dell'immagine del server della cronologia Spark[]
historyServer.parametersParametri Spark personalizzati del server della cronologia Spark[]
historyServer.resourcesRisorse del pod del server Cronologia Spark
Limiti:
memoria: "500Mi"
Richieste:
memoria: "300Mi"
historyServer.service.typeTipo di servizio del server della cronologia SparkClusterIP
historyServer.service.portPorta del servizio del server della cronologia Spark9666
historyServer.service.nodePortCronologia delle scintille Servizio server nodePort""
historyServer.service.clusterIPcluster del servizio del server della cronologia delle scintilleIP""
historyServer.service.loadBalancerIPspark history server service loadbalancerIP""
historyServer.ingress.enabledFlag di ingresso del server della cronologia di Sparkfalso
historyServer.ingress.versionCronologia Spark Server in entrata Versione"v1"
historyServer.ingress.classNamecronologia spark server in entrata className""
historyServer.ingress.hostHost in entrata del server della cronologia delle scintille"ospite"
historyServer.ingress.pathPercorso di ingresso del server della cronologia delle scintilla"/(.*)"
historyServer.ingress.pathTypecronologia spark server in entrata pathTypePrefisso
historyServer.ingress.annotationsAnnotazioni del server della cronologia di Sparknginx.ingress.kubernetes.io/rewrite-target: /$1
nginx.ingress.kubernetes.io/proxy-body-size: "600m"
nginx.org/client-max-body-size: "600m"

Avvertenze

  1. Assicurarsi che HDFS logDirectory (valore helm kubernetes.hdfs.logDirectory) sia il percorso assoluto di sparkCatalog configurato con il suffisso /ilum/logs! Ad esempio, per kubernetes.hdfs.sparkCatalog=spark-catalog metti hdfs://name-node/user/username/spark-catalog/ilum/logs

3. Mantenimento del lavoro nel grafico ilum-core

Caratteristica

I processi Ilum verranno eliminati dopo la scadenza del periodo di conservazione configurato

Valori aggiunti - ilum-core

Parametri di conservazione dei processi
NomeDescrizioneValore
lavoro.retain.hoursLimite di ore di conservazione dei processi Spark168