Skip to main content
Version 3.0

Iceberg Configuration

ChartVersion3.0.1TypeapplicationAppVersion1.10.0
CompatibilityKubernetes1.32+OpenShift4.19+Rancher2.10.x+
Feature SupportS3supported

What is Apache Iceberg and why does it need maintenance?

Apache Iceberg is an open table format for large datasets, designed to overcome Hive limitations. Like Delta Lake, Iceberg maintains snapshots: immutable versions of the table for each write operation. With continuous use, this tends to accumulate:

  • old snapshots;
  • orphan files;
  • small files that hurt read performance.

The tdp-iceberg chart creates Kubernetes CronJobs to execute these maintenance routines on a schedule, using Apache Spark as the processing engine.

Learn more

See Apache Iceberg — Concepts for a complete overview of the format, snapshots and use cases.

Helm values structure

The tdp-iceberg chart distributes configuration in two main blocks:

  • maintenance: — enables jobs, defines the CronJobs Spark image, Spark configuration (catalog, S3) and each job's schedule.
  • spark: — controls the upstream Spark subchart (master/worker pods). Independent of the image used by the CronJobs.
maintenance:
enabled: true
spark:
enabled: true
image:
repository: "registry.tecnisys.com.br/tdp-dev/images/spark"
tag: "4.0.2-0"
jobs:
expireSnapshots:
enabled: true

spark:
image:
registry: registry.tecnisys.com.br
repository: tdp-dev/images/spark
tag: 4.0.2-0

Overview

PropertyValue
Charttdp-iceberg
Iceberg version (runtime)1.10.0
Chart version3.0.1
Registry (OCI)oci://registry.tecnisys.com.br/tdp/charts/tdp-iceberg
Typemaintenance — Kubernetes CronJobs
External HTTP exposureNot applicable

Runtime compatibility

ComponentVersion
Spark4.0.2
Iceberg (Spark runtime)1.10.0
Scala2.13

The chart does not replace the catalog or warehouse: it schedules tasks that operate on existing Iceberg tables. You remain responsible for ensuring the CronJob commands point to the correct catalog, metastore and bucket.

Prerequisites

  • Kubernetes 1.32+, Red Hat OpenShift 4.19+ or Rancher Manager 2.10.x+
  • Helm 3.2.0+
  • Tecnisys OCI registry accessible from the installation environment
  • s3-credentials Secret created in the namespace before deployment (see Security — Iceberg)
  • S3/MinIO endpoint accessible from the cluster
  • Hive Metastore accessible via Thrift, if the Iceberg catalog uses type: hive

Without these items, the CronJob Spark commands will fail to resolve warehouse, credentials or metadata. Confirm that the metastore and bucket referenced in the values point to the actual catalog of the tables to be maintained.

Installation

Terminal input
helm upgrade --install <RELEASE_NAME> \
oci://registry.tecnisys.com.br/tdp/charts/tdp-iceberg \
--version <CHART_VERSION> \
-n <NAMESPACE> --create-namespace
PlaceholderDescription
<RELEASE_NAME>Helm release name
<NAMESPACE>Kubernetes installation namespace
<CHART_VERSION>Chart version

OpenShift

The chart configures adaptSecurityContext: force by default, automatically adapting security contexts to OpenShift requirements. No additional parameters are needed for most OpenShift environments.

global:
compatibility:
openshift:
adaptSecurityContext: force

Verify installation

Terminal input
kubectl -n <NAMESPACE> get cronjobs
kubectl -n <NAMESPACE> get jobs
kubectl -n <NAMESPACE> logs job/<JOB_NAME>