2026-07-05 21:03:14 -07:00
2025-03-23 15:51:05 +00:00
2025-11-18 02:26:45 +00:00
2026-06-24 03:13:12 +00:00
2026-06-24 03:13:12 +00:00
2017-09-09 16:04:29 -07:00
2025-07-02 03:21:18 +00:00
2025-10-13 22:07:06 +00:00
2026-03-02 02:14:03 +00:00

Spark Operator

Apache Spark workloads on Kubernetes.

A brand-neutral fork in the hanzo-ml organization — the open-source ML lifecycle estate. Branding is consumed at runtime from a brand package via the @<org>/brand contract; the same code deploys under any white-label brand with zero source changes.

Brand package

This fork imports brand configuration from a runtime brand package following the contract used across the open-source ML estate. Set BRAND_PACKAGE to the npm package name; the fork's frontend (where applicable) calls loadBrand() at boot to hydrate the singleton from that package's brand.json.

Available brand packages:

Package Brand
@hanzo/brand default / Hanzo AI
@luxfi/brand Lux Finance
@zooai/brand Zoo Labs
@osage/brand Osage
@parsdao/brand Pars DAO
@cyrusdao/brand Cyrus DAO
@migaprotocol/brand Miga Protocol
@vccross/brand VC Cross
@mlc/brand MLC
@zenlm/brand Zen LM

Or any custom reseller package conforming to the same schema.

Multi-tenant via IAM

Every request carries a JWT. The brand package's iam block specifies:

  • issuer — JWT issuer URL
  • jwksUrl — JWKS endpoint
  • tenantClaim — JWT claim with the org/tenant ID (default org_id)
  • tenantHeader — HTTP header that propagates the validated tenant ID (default X-Org-Id)

The tenant ID scopes all storage, queries, and resource ownership. Cross-tenant access is forbidden by default.

Quick start (reseller deployment)

export BRAND_PACKAGE="@<your-org>/brand"   # e.g. @luxfi/brand

The frontend (this fork's case: pipelines ships the React DAG UI; the other 7 are read-only reference forks) loads the brand at boot. The backend reads the brand package's iam block for JWKS + tenant configuration.

Role

Read-only reference for the Rust operator's SparkJob CRD (v0.1.1).

The canonical control plane for the ML lifecycle estate is the Rust operator at hanzoai/operator. See HIP-0109 for the lifecycle CRD set.

Upstream sync

This fork stays current with upstream via the GitHub merge-upstream API. No upstream code is modified in this fork; only the 5 markdown files at root are added.

gh api -X POST /repos/hanzo-ml/spark-operator/merge-upstream \
  -f branch=master

See UPSTREAM_README.md for the original project documentation.

License

Apache-2.0. See NOTICE for attribution.

See also

S
Description
Spark Operator — Apache Spark workloads on Kubernetes. Brand-neutral; consume any @<org>/brand.
Readme Apache-2.0
29 MiB
Languages
Python 61.5%
Go 36.8%
Go Template 0.7%
Makefile 0.6%
Shell 0.3%
Other 0.1%