Skip to content

Releases: dsx-ai-factory/workload-map

v0.2.6

Choose a tag to compare

@AviadHayumi AviadHayumi released this 15 Sep 11:45
ea3628f

What's Changed

Full Changelog: v0.2.4...v0.2.5

What's Changed

  • Update HELM_REGISTRY in push-artifacts.yaml by @yuval-gr in #369

Full Changelog: v0.2.5...v0.2.6

v0.2.4

Choose a tag to compare

@yuval-gr yuval-gr released this 09 Sep 18:50
8aaa89f

What's Changed

  • build(deps): track hack/imagelock go module in dependabot (v0.2) by @AviadHayumi in #239
  • build(deps): align go modules with main for v0.2 by @yuval-gr in #321
  • docs(changelog): add patch release changelog for the v0.2 line by @lavianalon in #316
  • feat(operator): support FIPS 140-3 runtime mode (v0.2 backport) by @nshidlansik in #348
  • fix(operator): default fips140 to off via go.mod, not the chart by @nshidlansik in #350

Full Changelog: v0.2.3...v0.2.4

v0.2.3

Choose a tag to compare

@AviadHayumi AviadHayumi released this 17 Aug 10:52
afc357d

Adds a digest-pinned air-gap image lock to the release. Each release now carries
per-platform ImageLock YAML assets (linux/amd64, linux/arm64) that list the exact
image digests needed to install Karta in an air-gapped cluster.

What's Changed

  • feat(release): generate air-gap image locks per release (v0.2 backport) by @AviadHayumi in #237

Full Changelog: v0.2.2...v0.2.3

v0.2.2

Choose a tag to compare

@yuval-gr yuval-gr released this 23 Jul 12:54
c68a8a0

What's Changed

Full Changelog: v0.2.1...v0.2.2

v0.2.1

Choose a tag to compare

@yuval-gr yuval-gr released this 20 Jul 10:26
638b10e

What's Changed

Full Changelog: v0.2.0...v0.2.1

v0.2.0

Choose a tag to compare

@AviadHayumi AviadHayumi released this 15 Jul 13:50
f3187d6

karta v0.2.0

This release extends Karta from a CRD and Go library into an optional runnable system. It lands the controller / operator (reconcile core, workload-tree model, Helm chart, container images), and a new pod-grouping API for better schedulers integration, alongside a much larger catalog of built-in workload samples. There are no breaking API changes; the previous grouping format is deprecated but still works. See Deprecations for the recommended migration.


🌟 Highlights

🚀 Controller / operator The reconcile core, an operator Helm chart, and container images all land, so Karta can now run as a controller rather than only being a CRD plus library. (#77, #97, #91)
🌲 WorkloadTree A WorkloadTree is the raw component hierarchy of a workload (its desired structure, scale, specs, and status) produced by the Karta library, giving clients a single shared tree to traverse and render. (#87)
🪶 New pod-grouping API gangScheduling.podGroup adds subgroups and topology constraints for better schedulers integration; the old gangScheduling.podGroups is deprecated but still honored. (#145)

📦 Install

Helm chart ( from GHCR ) :

helm install karta oci://ghcr.io/run-ai/karta/karta --version 0.2.0

Go consumers :

go get github.com/run-ai/karta@v0.2.0
import karta "github.com/run-ai/karta/pkg/api/runai/v1alpha1"

📚 Compatibility

Kubernetes tested against v1.31 – v1.35 ( k8s.io/api v0.36.2 )
Go 1.26.3 or later
Helm 3.14 or later

⚠️ Deprecations

gangScheduling.podGroupsgangScheduling.podGroup

The alpha grouping format podGroups (a list) is deprecated in favor of the new podGroup mapping, which adds subgroups and topology constraints. Existing Kartas using podGroups continue to validate and run; migrate when convenient.

  optimizationInstructions:
    gangScheduling:
-     podGroups:
-       - name: job
-         members:
-           - componentName: launcher
-             groupByKeyPaths:
-               - .metadata.labels["training.kubeflow.org/job-name"]
-           - componentName: worker
-             groupByKeyPaths:
-               - .metadata.labels["training.kubeflow.org/job-name"]
+     podGroup:
+       name: job
+       subGroups:
+         - componentName: launcher
+         - componentName: worker

✨ New features

  • Controller reconcile core — the operator's central reconcile logic. (#77 by @shaked-bouktus)
  • WorkloadTree data model and builder — a typed tree that assembles a workload's root and child components. (#87 by @rogirun)
  • Operator Helm chart — deploy the karta operator via Helm. (#97 by @shaked-bouktus)
  • Operator container images — Dockerfiles for the karta operator. (#91 by @shaked-bouktus)
  • Operator Makefile — build / run targets for the operator. (#96 by @shaked-bouktus)
  • karta CLI — CLI entrypoint and Cobra root command. (#127 by @rogirun)
  • New pod-grouping APIgangScheduling.podGroup with subgroups and topology. (#145 by @davidLif)
  • Kind-based e2e provisionerhack/e2e spins up a kind cluster for end-to-end tests. (#144 by @AviadHayumi)
  • Expanded workload sample catalog — many additional built-in Karta samples across core, batch, training, serving, and Ray workloads. (#155 by @AviadHayumi)
  • Grove PodCliqueSet samplegrove.io/v1alpha1 Karta example. (#66 by @shmuel-runai)
  • Milvus samplemilvus.io/v1beta1 Karta example. (#103 by @ronlv10)
  • Controller example with LWS — a worked controller example over LeaderWorkerSet. (#92 by @yuval-gr)
  • Quickstart controller example — minimal controller to get started. (#84 by @yuval-gr)

🐛 Bug fixes

🧹 Maintenance

📖 Documentation

  • Add an authoring tutorial and troubleshooting guide. (#130 by @lavianalon)
  • Add ROADMAP and GOVERNANCE. (#89 by @lavianalon)
  • Add a maintainer ladder / emeritus policy and RELEASE.md. (#128 by @lavianalon)
  • Harden OSS health docs (security policy, code of conduct, contributing). (#111 by @lavianalon)
  • Add README badges, community section, and CoC link. (#125 by @lavianalon)
  • Add AGENTS.md guide for AI coding agents. (#73 by @lavianalon)
  • Add a CLI high-level design document. (#31 by @ronlv10)
  • Add KAI Scheduler to the "who uses Karta" section. (#156 by @lavianalon)
  • Drop the API group rename from the roadmap and governance. (#119 by @lavianalon)

📊 Dependencies

Changed

  • Go 1.25.91.26.3
  • k8s.io/api v0.35.1v0.36.2

🤝 Contributors

thanks to everyone who shipped this release :

@AviadHayumi , @Isan-Rivkin , @davidLif , @lavianalon , @rogirun , @ronlv10 , @shaked-bouktus , @shmuel-runai , @yuval-gr

plus automated dependency updates from @dependabot.


Full changelog : v0.1.0...v0.2.0
Helm chart : oci://ghcr.io/run-ai/karta:0.2.0
Container images : see packages page

v0.1.1

Choose a tag to compare

@yuval-gr yuval-gr released this 01 Jun 08:12
53f64ee

What's Changed

  • Bump Go version to 1.26.3 and update dependencies by @yuval-gr in #82

Full Changelog: v0.1.0...v0.1.1

v0.1.0

Choose a tag to compare

@yuval-gr yuval-gr released this 12 May 08:11
1ad38ed

karta v0.1.0

This release completes the project rename from ri / krt to karta , decouples the library from sigs.k8s.io/controller-runtime , and introduces native suspend / resume support on the CRD. See Breaking changes for migration steps.


🌟 Highlights

🆕 Project rename to karta API group is now run.ai/v1alpha1 , the CRD Kind is Karta , and the Helm chart is named karta. (#42 , #50)
🪶 Zero controller-runtime dependency karta no longer imports sigs.k8s.io/controller-runtime. Consumers that only need the CRD types or the resource helpers no longer inherit it transitively. (#62)
⏸️ Suspend / Resume support New SuspendDefinition field on the CRD , and new resource statuses Suspended , Suspending , Resuming. (#56)

📦 Install

Helm chart ( from GHCR ) :

helm install karta oci://ghcr.io/run-ai/karta/karta --version 0.1.0

Go consumers :

go get github.com/run-ai/karta@v0.1.0
import karta "github.com/run-ai/karta/pkg/api/runai/v1alpha1"

📚 Compatibility

Kubernetes tested against v1.30 – v1.34 ( k8s.io/api v0.35.1 )
Go 1.25.9 or later
Helm 3.14 or later

⚠️ Breaking changes

1. Project rename : ri / krtkarta

was now
CRD Kind ResourceInterface Karta
API group optimization.nvidia.com/v1alpha1 run.ai/v1alpha1
Go package github.com/run-ai/karta/pkg/api/optimization/v1alpha1 github.com/run-ai/karta/pkg/api/runai/v1alpha1
Field on ComponentFactory : ri *ResourceInterface karta *Karta
Helm chart krt karta

Cluster migration — existing CRDs need to be re-applied under the new GVK :

kubectl get resourceinterfaces.optimization.nvidia.com -o yaml | \
    sed 's|optimization.nvidia.com/v1alpha1|run.ai/v1alpha1|; s|kind: ResourceInterface|kind: Karta|' | \
    kubectl apply -f -

kubectl delete crd resourceinterfaces.optimization.nvidia.com

Go consumer migration :

- import ri "github.com/run-ai/karta/pkg/api/optimization/v1alpha1"
+ import karta "github.com/run-ai/karta/pkg/api/runai/v1alpha1"

- var obj ri.ResourceInterface
+ var obj karta.Karta

- factory := resource.NewComponentFactoryFromObject(myRi, kubeObj)
+ factory := resource.NewComponentFactoryFromObject(myKarta, kubeObj)

2. sigs.k8s.io/controller-runtime no longer a karta dependency

karta now uses k8s.io/apimachinery directly for the two things it previously needed from controller-runtime :

was now
&scheme.Builder{GroupVersion: ...} from controller-runtime/pkg/scheme runtime.NewSchemeBuilder(addKnownTypes) from k8s.io/apimachinery/pkg/runtime
client.Object from controller-runtime/pkg/client ( in NewComponentFactoryFromObject and GetResource ) local KubernetesObject interface ( metav1.Object + runtime.Object )

Consumer impact : no source code changes required. Go matches interfaces structurally ( by method set ) , so :

import "sigs.k8s.io/controller-runtime/pkg/client"

var pod client.Object = &corev1.Pod{...}
factory := resource.NewComponentFactoryFromObject(myKarta, pod)  // still compiles
obj, _ := factory.GetResource()
var asClientObject client.Object = obj                            // still compiles

Cleanup opportunity : consumers that only had sigs.k8s.io/controller-runtime in their go.mod because karta dragged it in can now drop it :

go get sigs.k8s.io/controller-runtime@none  # if you don't otherwise use it
go mod tidy

This is the dominant pattern across major K8s OSS — see the same idiom in kubevirt/api , prometheus-operator , tektoncd/pipeline , cert-manager , cluster-api , knative/pkg kmeta.Accessor , and crossplane-runtime resource.Object.


✨ New features

  • Suspend / Resume definitions and statuses — new SuspendDefinition on the CRD , plus new resource statuses Suspended , Suspending , Resuming. (#56 by @TomB30)
  • ValidateParsedJQ is now exported — external consumers that already hold a compiled *gojq.Query can run the read-only / safe-expression check without re-parsing. (#53 by @AviadHayumi)
  • Helm chart published to GHCR on every release — pull with helm install karta oci://ghcr.io/run-ai/karta --version 0.1.0. (#27 by @AviadHayumi)
  • Chart version bump enforcement in CIct lint blocks PRs that change the chart without bumping Chart.yaml version. Matches the prometheus-operator / argo enforcement model. (#48 by @AviadHayumi)
  • docs/examples/*.yaml validated in CI — example Kartas are exercised by CI so docs cant silently drift from the schema. (#61 by @Isan-Rivkin)
  • Issue templates + code of conduct — bug / feature templates plus a contributor CoC. (#38 by @yuval-gr)
  • Helm chart annotated with OCI sourcehelm.sh/chart-source annotation links chart back to the GHCR package page. (#49 by @AviadHayumi)

🐛 Bug fixes

  • Repaired docs/examples/mpijob.yaml and simplified the pytorch running mapping. (#58 by @lavianalon)
  • Removed accidentally pushed docs/ri-studio/ directory. (#40 by @ronlv10)
  • Fixed formatting and validation in issue templates. (#41 by @yuval-gr)

🧹 Maintenance

  • Renamed rikrt across the codebase ( first half of the rename to karta ). (#42 by @AviadHayumi)
  • Renamed Helm chart krtkarta ( finishing the rename ). (#50 by @AviadHayumi)
  • Bumped golang.org/x/net to v0.51.0 ( security ). (#45 by @yuval-gr)
  • Updated Go toolchain to 1.25.9. (#30 by @yuval-gr)

📊 Dependencies

Added

nothing

Changed

  • golang.org/x/net v0.39.0 → v0.51.0
  • Go toolchain 1.25.7 → 1.25.9
  • k8s.io/api v0.34.x → v0.35.1
  • k8s.io/apimachinery v0.34.x → v0.35.1

Removed

  • sigs.k8s.io/controller-runtime ( previously v0.23.1 ) — dropped entirely
  • sigs.k8s.io/controller-runtime/pkg/client ( transitive ) — no longer pulled in
  • sigs.k8s.io/controller-runtime/pkg/scheme ( transitive ) — no longer pulled in

🤝 Contributors

thanks to everyone who shipped this release :

@AviadHayumi , @Isan-Rivkin , @TomB30 , @lavianalon , @ronlv10 , @yuval-gr


Full changelog : v0.0.12...v0.1.0
Helm chart : oci://ghcr.io/run-ai/karta:0.1.0

v0.0.12

Choose a tag to compare

@yuval-gr yuval-gr released this 15 Apr 11:22
728dc26

What's Changed

  • docs: adjust README, add community files and contributor templates by @lavianalon in #26
  • docs: README and maintainers followup fixes by @lavianalon in #28

New Contributors

Full Changelog: v0.0.11...v0.0.12

v0.0.11

Choose a tag to compare

@ronlv10 ronlv10 released this 12 Mar 15:25
d20a8a9

What's Changed

  • Fix UpdateFragmentedPodSpec writing null for nil fields by @ronlv10 in #24

Full Changelog: v0.0.10...v0.0.11