Skip to content

Releases: kaito-project/kaito

v0.11.0

Choose a tag to compare

@github-actions github-actions released this 01 Jul 04:21
7545aa2

v0.11.0 - 2026-07-01

This release closes out the migration off the legacy preset system, tightens node estimation, and rounds out three long-running workstreams β€” GPU node provisioning via Karpenter, model weight streaming from blob, and prefill/decode disaggregation with MultiRoleInference. It also promotes InferenceSet to v1beta1 on by default, ships the KAITO ProductionStack as an optional Helm subchart, and refreshes the model catalog, base images, and runtime versions.


Breaking Changes

  • Legacy preset system removed . The old built-in preset API is gone. Workloads that still reference legacy preset names must migrate to modelName in the Model Catalog before upgrading.
  • Stricter max-model-len and node estimation . KAITO now uses vLLM's native estimation to compute default max-model-len and the number of GPU nodes required. Deployments that previously relied on looser estimates may need to set max-model-len explicitly or request additional nodes.

Major Features

Karpenter-based GPU node provisioning

@rambohe-ch @2170chm

Set --node-provisioner=karpenter at controller startup and KAITO will provision, reconcile, and drift-detect GPU nodes through Karpenter instead of the legacy gpu-provisioner path. NodeClass RBAC is derived from the configured karpenterProvider so operators no longer hand-roll it. The bundled gpu-provisioner is also updated to v0.4.2 for clusters that stay on the classic path.

Model weight streaming from blob storage

@2170chm

Two new resources work together to eliminate per-pod model downloads at startup:

  • ModelMirror CRD creates a PVC-backed mirror of a HuggingFace model on blob storage.
  • Workspace ModelStreaming annotation β€” add kaito.sh/model-streaming: "true" to a Workspace and the controller creates the ModelMirror for you and starts the download in parallel with GPU node provisioning. Once the mirror is ready, inference pods start with --model=az:// and stream weights directly from blob via RunAI Model Streamer, with no per-pod weight volume. Download bandwidth is exposed as a Prometheus metric on the vLLM pod.

Prefill/decode disaggregation β€” MultiRoleInference

@andyzhangx

A new MultiRoleInference CRD lets you run prefill and decode on separate, independently-scaled pod groups. You declare the roles and node requirements; the controller creates the InferencePool, wires the EPP plugin config, and injects the NixlConnector KV-transfer settings so the two groups can exchange KV-cache state. A GWIE + MultiRoleInference deployment guide is included in the docs.

InferenceSet promoted to v1beta1

@andyzhangx

InferenceSet is now v1beta1 and enabled by default β€” the feature gate is gone. Two behaviors ship with the promotion: replicas can scale to zero, and the Kubernetes deployment name can be used directly as the served-model-name.

Base image auto-upgrade for Workspaces

@zhehli688

Workspaces can now opt in to automatic base image updates. When a new vLLM base image is published, opted-in Workspaces roll forward without any manual spec change.

ProductionStack as an optional subchart

@rambohe-ch @techworldhello @tnsimon @zhuangqh

The KAITO ProductionStack is now available as an optional Helm subchart β€” a turnkey inference gateway designed based on the llm-d reference stack. It stitches together Istio, llm-gateway-auth (API-key or Azure Entra ID authz), the llm-d inference scheduler for KV-cache-aware routing, KEDA-driven autoscaling on vllm:* metrics, and KAITO InferenceSet into a single deployable configuration.


Model Catalog Additions

Family Models added
Gemma 4 Gemma 4 series
NVIDIA Nemotron Nemotron series
Mistral / Qwen Mistral 4, Qwen 3.5, Qwen 3.6
MoonshotAI / Minimax Kimi-K2.5, Minimax series

AWQ 4-bit quantization is now supported as a deployment option for compatible models.


Dependency & Runtime Upgrades

Component Version
vLLM 0.22.1
PyTorch 2.11.0
transformers 5.6.0
Go 1.26.4
Kubernetes 1.33.8
gpu-provisioner v0.4.2
local-csi-driver 0.2.18
ProductionStack 0.2.2

Changelog

Features 🌈

  • 4d73506 feat: Add minimal block-only streaming guardrails (#2157)
  • 2853512 feat: use vLLM native estimation for max-model-len (#2156)
  • a8def1d feat: add RAGEngine streaming buffer window (#2138)
  • f4b80b3 feat: derive NodeClass RBAC from karpenterProvider config (#2150)
  • 77ddc2c feat: add RAGEngine streaming semantic utilities (#2136)
  • 2007c56 feat: promote InferenceSet to v1beta1 and enable EnableInferenceSetController by default (#2112)
  • 7245974 feat: support P/D disaggregation (#2093)
  • 45266bd feat: Support streaming passthrough for RAGEngine chat completions (#2128)
  • d5b9af0 feat: model streaming (#2100)
  • 27ad3b0 feat: upgrade gpu-provisioner version to v0.4.2 for kaito (#2111)
  • ab299f9 feat: add productionstack to kaito chart (#2105)
  • 561a658 feat: expose model download bandwidth metrics in vLLM pod (#2087)
  • d34d424 feat: support base image auto-upgrade for Kaito Workspaces (#2062)
  • af0167f feat: model mirror crd + controller (#2082)
  • 70848a5 feat: add invisible text and token limit guardrail scanners (#2064)
  • f8876c4 feat: scanner pack 3 json reading time length limit (#2061)
  • f7de6d4 feat: add secrets and sensitive scanners (#2060)
  • ef5cda7 feat: MRI controller creates InferencePool + EPP plugins config (basic functionalities) (#2048)
  • 410d557 feat: Add response-path guardrails metrics (#2070)
  • 73d51ba feat: add guardrails observability metrics (#2037)
  • 5842a40 feat: enable karpenter and add e2e tests (#2041)
  • 79b2a1c feat: support hybrid Mamba model in max_concurrency calculation (#2052)
  • 6aaff7e feat: add guardrails scanner capability validation (#2039)
  • 0c4ce3e feat: ragengine guardrails reload observability (#2038)
  • e72797f feat: hot-reload output guardrails policy via watchfiles (#2025)
  • d0b2168 feat: onboard kimi and minimax models to model catalog (#2047)
  • b0002fd feat: add MultiRoleInference CRD types, controller, and status aggregation for P/D disaggregated inference (#2005)
  • 75d60ba feat: support per-scanner guardrails actions (#2042)
  • f2220cd feat: inject NixlConnector kv-transfer-config for P/D disaggregated inference (#2027)
  • 4a4a40b feat: wire default guardrails policy configmap for ragengine (#1992)
  • 464662e feat: onboard mistral 4 and qwen 3.5/3.6 models to model catalog (#2031)
  • f507b2c feat: Add guardrails fail-open config and policy ConfigMap mounting for RAGEngine (#2022)
  • ce81a5f feat: 1952 integrate karpenter provisioner (#2017)
  • 6353a00 feat: onboard Gemma 4 models to model catalog (#2021)
  • 898d91a feat: add fail-open and basic error handling for output guardrails (#1963)
  • cc371e0 feat: add AWQ quantization support (#2007)
  • ecb905c feat: onboard Nvidia Nemotron models to model catalog (#2008)
  • 23a745c feat: karpenter drift controller (#2003)
  • dcbd663 feat: support deployment name as served-mode-name for inferenceset (#2004)
  • 7b4a600 feat: add guardrails YAML policy loader to RAG runtime (#1990)
  • 557194d feat: karpenter provisioner (#1982)
  • afcdfbe feat: add RAGEngine guardrails API and policy validation (#1986)
  • d325c36 feat: [breaking] complete legacy preset to model catalog migration (#1977)
  • 4cdfaa1 feat: Migrate default EPP from GWIE to llm-d inference scheduler (#1975)
  • 12836f1 feat: add --node-provisioner startup parameter (#1974)
  • eeb5b3e feat: add karpenter crds dependencies and ensure aksnodeclass resources (#1968)
  • a60bcf1 feat: onboard more built-in models to model catalog (#1945)
  • bb5b4db feat: add non-streaming output guardrails hook for chat completions (#1962)
  • 2783b2e feat: add nodes provision interface and gpu-provisoner implementation (#1954)

Bug Fixes 🐞

  • b023ad9 fix: skip inference config validation when no ConfigMap is specified (#2171)
  • cb140a3 fix: pin inference pods to provisioned nodes (#2161)
  • 888ec57 fix: isolate inference c...
Read more

v0.9.4

Choose a tag to compare

@github-actions github-actions released this 19 Jun 02:08
c59cb49

v0.9.4 - 2026-06-19

Changelog

Maintenance πŸ”§

  • c59cb49 chore: update chart version
  • 633b48f chore: Update go version in docker file
  • de7e181 chore: bump the go version to 1.26.4

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 15 Apr 11:22
c673cad

v0.10.0 - 2026-04-15

Qdrant Vector Store for RAG
RAG Engine now supports Qdrant as a vector backend, including hybrid search. This expands storage flexibility and retrieval quality options for RAG workloads.

vLLM v0.17.1 with Smart Runtime Tuning
KAITO upgrades to vLLM v0.17.1 and introduces a 3-tier parallelism strategy that auto-configures tensor parallelism, pipeline parallelism, and data parallelism.
Runtime dtype is now selected dynamically based on GPU compute capability.
The kaito.sh/performance-mode annotation (interactivity, balanced, throughput) provides intent-based tuning and maps directly to vLLM performance mode controls.

Built-in MT-Bench Evaluation
MT-Bench integration enables out-of-the-box dialogue quality evaluation with automated benchmarking workflows.

Azure GPU Spot Instance Support
KAITO now supports Azure GPU spot instances for node pools, helping reduce inference infrastructure cost.

Improved Inference Observability
TPM benchmark metrics are now written into Workspace and InferenceSet status.
PVC metrics and preset usage tracking are also added for better operational visibility.

LoRA Adapter Volumes
LoRA adapters can now be mounted directly from PVC volumes, offering a flexible alternative to image-bundled adapters.

VS Code Copilot Plugin
The new kaito-workspace Copilot plugin adds an inference skill for richer Copilot workflows.

Changelog

Features 🌈

  • 736b5bc feat: support eval of model dialogue abilities using mt-bench (#1937)
  • 30b146a feat: hook phi-4 to microsoft/phi-4 (#1920)
  • 4dc9815 feat: add GPU spot instance support for Azure node pools #1837 (#1870)
  • bb8b061 feat: initial model catalog implementation (#1901)
  • 157f763 feat: add metadata to InferenceSetTemplate (#1881)
  • 235f733 feat: support volumes as adapter source (#1877)
  • 915e8b5 feat: dynamically determine dtype based on GPU compute capability (#1866)
  • 5bb157d feat: add proposal template doc (#1874)
  • 547890c feat: support performance-mode annotation for vLLM workload tuning (#1865)
  • dacef87 feat: add 3-tier parallelism strategy for vLLM runtime (#1867)
  • cc5ff14 feat: Writes TPM to workspace and inferenceset (#1864)
  • 1e3ba6c feat: add pvc metrics (#1869)
  • 6d94fc5 feat: add Qdrant native CRUD overrides, nest_asyncio fix, and E2E tests (#1845)
  • 67a450f feat: add kaito-workspace Copilot plugin with inference skill (#1855)
  • d864f01 feat: add model TPM benchmark test and log (#1839)
  • 1c0878c feat: add Qdrant vector store backend with hybrid search support (#1806)
  • 9062746 feat: add multi-platform (amd64/arm64) support for workspace image (#1818)
  • c240b53 feat: introduce startup probe (#1796)
  • 5f9118e feat: implement metrics tracking for preset workspace usages (#1789)

Bug Fixes 🐞

  • e35ef58 fix: correct typos in source code comments and error messages (#1944)
  • d7a649c fix: use GetTuningParameters instead of GetInferenceParameters for tuning (#1943)
  • 24770be fix: use structured key-value pairs in klog.InfoS call (#1941)
  • fdbeba1 fix: fix phi-4-mini-instruct inference via HF transformer runtime (#1927)
  • a5dcfad fix: remove duplicate split_node call (#1895)
  • 36733d0 fix: skip NodeClaim cleanup when disableNodeAutoProvisioning is true (#1918)
  • d1c97f4 fix: data-parallel-size conflict with CPU offloading (#1911)
  • a9c5bef fix: make instanceType validation case-insensitive (#1898)
  • 5c953d7 fix: pin llama-index-core to 0.14.18 to fix RAGEngine unit test failures (#1903)
  • 732eec4 fix: correct ginkgo target dependency from GOLANGCI_LINT to GINKGO (#1894)
  • 7a463ea fix: remove debug fmt.Println in tuning config validation (#1884)
  • a356f18 fix: make image background white (#1872)
  • 59ea0eb fix: use inputs.ghcr_token instead of secrets.GITHUB_TOKEN in composite action
  • e36cfe1 fix: remove CVE-2026-25537 trivy ignore and uninstall uv from image (#1854)
  • 3eb78e1 fix: disable kvcache cpu offloading in multi-node inference (#1851)
  • 1960721 fix: CVEs in usr/local/bin/uv (#1847)
  • eb5420a fix: Set GPUConfig.GPUMem to be memory per GPU * GPU Count (#1840)
  • 6004270 fix: prevent webhook panic on auto-generated vLLM presets with empty GPU params (#1824)

Code Refactoring πŸ’Ž

  • acc48d1 refactor: Remove BasicNodeEstimator and rename AdvancedNodeEstimator to NodeEstimator (#1879)
  • 2e9f9ee refactor: decouple estimator package to be usable as an external library (#1863)
  • 0f5a62a refactor: remove dead Deployment manifest code (StatefulSet migration cleanup) (#1808)

Continuous Integration πŸ’œ

  • b636547 ci: add explicit permissions blocks to workflows (#1938)
  • 530e272 ci: add stale issues and PRs GitHub Action (#1822)
  • 8d39849 ci: add nightly GHCR images for workspace and ragengine controllers (#1815)
  • cdee54c ci: pin trivy binary version to v0.69.2 in trivy workflow (#1817)

Documentation πŸ“˜

  • 95bf70f docs: document memory estimator to project page (#1961)
  • 9dea2cc docs: add proposal for migrating gpu provisioner to azure karpenter (#1928)
  • 0f85410 docs: update outdated GAIE doc (#1934)
  • 7c0cd2f docs: fix typos across website documentation (#1940)
  • 90a0267 docs: fix broken links in GOVERNANCE.md (#1939)
  • f58d260 docs: Clean up website for Get Started docs (#1929)
  • 07b7485 docs: Revise README.md (#1907)
  • fe22990 docs: add docs for supporting adapter volumes (#1888)
  • 1dc341d docs: add separate LoRA adapter usage guide (#1809)
  • d3fec08 docs: document NVIDIA GPU Operator coexistence and surface nfd.enabled toggle (#1810)
  • 0547e34 docs: Update Readme.md for the new release (#1807)
  • 4331665 docs: add versioned documentation for v0.9.x (#1805)

Maintenance πŸ”§

  • 7a8cea3 chore: skip e2e tests in release pipeline (#1931)
  • 0f8541e chore: bump github.com/onsi/gomega from 1.38.3 to 1.39.1 (#1859)
  • cadf04c chore: bump dompurify from 3.2.6 to 3.3.3 in /website (#1857)
  • ebaef0b chore: bump svgo from 3.3.2 to 3.3.3 in /website (#1825)
  • a9ef000 chore: bump path-to-regexp from 0.1.12 to 0.1.13 in /website (#1892)
  • 9ee6a78 chore: bump ajv from 8.17.1 to 8.18.0 in /website (#1778)
  • 7cfaaa4 chore: bump actions/dependency-review-action from 4.7.1 to 4.8.3 (#1786)
  • 1d64af3 chore: bump node-forge from 1.3.3 to 1.4.0 in /website (#1887)
  • 8128676 chore: bump picomatch from 2.3.1 to 2.3.2 in /website (#1889)
  • a9062cf chore: bump lodash from 4.17.23 to 4.18.1 in /website (#1913)
  • bc09c5e chore: update reasoning parser maps to match vLLM v0.17.1 (#1902)
  • 158859b chore: add JobId runner label to workflows (#1914)
  • 18a74d8 chore: bump brace-expansion from 1.1.12 to 1.1.13 in /website (#1904)
  • 93e4599 chore: Add /retrieve + Fix persistent storage docs (#1912)
  • f07ea7f chore: sync tool call parser tables with vLLM v0.17.1 (#1909)
  • c5a911b chore: bump image version in custom-model-deployment.yaml (#1906)
  • d43d4e6 chore: bump vllm to 0.17.1 (#1830)
  • ae570be chore: bump kaito base image (#1871)
  • 7713673 chore: bump google.golang.org/grpc from 1.78.0 to 1.79.3 (#1856)
  • ecf90bb chore: bump NVIDIA K8s Device Plugin to v0.18.2-1 (#1843)
  • 792986e chore: upgrade to go1.25 to fix workspace controller CVE (#1832)
  • 1e723e3 chore: make crds of kaito helm templates (#1826)
  • a0c099a chore: add deadcode CI check and remove unreachable code (#1821)
  • e6bb541 chore: implemented uni...
Read more

v0.9.3

Choose a tag to compare

@github-actions github-actions released this 19 Mar 09:34
15229f7

v0.9.3 - 2026-03-19

Changelog

Bug Fixes 🐞

Maintenance πŸ”§

  • 4ce9f87 chore: bump google.golang.org/grpc from 1.78.0 to 1.79.3 (#1856)

v0.9.2

Choose a tag to compare

@github-actions github-actions released this 16 Mar 11:52
f32b085

v0.9.2 - 2026-03-16

Changelog

Maintenance πŸ”§

v0.9.1

Choose a tag to compare

@github-actions github-actions released this 10 Mar 22:21
df31226

v0.9.1 - 2026-03-10

Changelog

Bug Fixes 🐞

  • 54ebf1e fix: prevent webhook panic on auto-generated vLLM presets with empty GPU params (#1824) (#1834)

Continuous Integration πŸ’œ

  • 4c52d47 ci: pin trivy binary version to v0.69.2 in trivy workflow (#1817)

Maintenance πŸ”§

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 27 Feb 12:07
18a0177

v0.9.0 - 2026-02-27

vLLM Runtime: Run Any vLLM-Compatible Model
KAITO now supports running arbitrary vLLM-compatible models β€” all you need is a HuggingFace repo ID. GPU memory, node count, storage, and agentic configuration (tool-call parsers, reasoning parsers) are automatically determined β€” no manual tuning required. The bundled vLLM version is bumped to v0.14.1.

Transformers Runtime: OpenAI-Compatible API
The Transformers-based serving engine now exposes an OpenAI-compatible API, while continuing to support the full breadth of HuggingFace models.

New WorkspaceStatus.State Field
A new state field has been added to WorkspaceStatus, giving users a clear, at-a-glance view of the current lifecycle state of a Workspace resource (e.g., provisioning, ready, failed).

Azure Linux Node Support
KAITO now supports Azure Linux node pools, expanding the range of AKS configurations that can be used for GPU workloads.

Retrieve API for RAG Service
A new /retrieve API has been added to the RAG engine, allowing callers to fetch retrieved document chunks directly β€” enabling more flexible, agentic RAG pipelines without a full generate step.

Changelog

Features 🌈

  • dc99157 feat: improve logs of workspace controller (#1802)
  • 0896cbb feat: update gpu-provisioner version to v0.4.1 for kaito
  • 9b1bdc2 feat: support azure linux node (#1784)
  • 353cc69 feat: generate supported model arch list supported by vLLM v0.14.1 (#1791)
  • d8c2bf6 feat: add e2e pipeline for azure linux scenario (#1792)
  • 43f3959 feat: publishing main image to GHCR (#1776)
  • cd5a67c feat: integrate transformers OpenAI-compatible serve engine (#1384) (#1765)
  • 714207c feat: update state of workspace status (#1758)
  • bf977bc feat: support tool-call-parser and reasoning-parser for more fine tuned models (#1766)
  • 5221259 feat: add retrieve API for RAG service (#1732)
  • 9fa77e1 feat: add status field into WorkspaceStatus for presenting Workspace current state. (#1745)
  • 29a58f4 feat: support generic huggingface vLLM inference model (#1727)
  • 18d7e85 feat: implement preset generator in golang (#1726)
  • e42bb04 feat: simplify vLLM inference model support flow (#1713)
  • 319419b feat: Make NVIDIA device plugin deployment optional via feature gate (#1707)

Bug Fixes 🐞

  • 9150e1a fix: remove ec2nodeclasss crd (#1803)
  • 88061de fix: ghcr service image name
  • 22fc27b fix: [transformers] log adapter name (#1790)
  • 6928398 fix: add required python packages to support generic huggingface models (#1781)
  • 35efc39 fix: remove expired VM sizes and fixed breaking references in tests (#1780)
  • a007b81 fix: Default InferenceSet replicas to 1 when unspecified (#1774)
  • 8a5fbeb fix: enlarge system storage cost overhead (#1772)
  • 67524e5 fix: trivy unknown severitis for test/kaito-base image (#1747)
  • 15ce2ce fix: use intermediate image tags to avoid race condition (#1746)
  • 6d70627 fix: install missing helm tool (#1743)
  • 52e9785 fix: conflict python deps in flaky unit test (#1741)
  • aaed80a fix: Disable flux2 NetworkPolicies blocking webhook communication (#1733)
  • e8430af fix: pin huggingface-hub dep version in UT (#1734)
  • 9f12aa3 fix: existing Workspace cannot be deleted or modified during version upgrade due to instanceType webhook validation (#1719)
  • b315bc7 fix: change the default GFD chart values (#1712)

Code Refactoring πŸ’Ž

  • 807626c refactor: rename GPUConfig.GPUMemGiB β†’ GPUMem, change type to resource.Quantity (#1779)

Documentation πŸ“˜

  • ae2c5cb docs: refine keda-autoscaler-inference doc (#1759)
  • b0980f7 chore(docs): update gwaie doc (#1757)
  • ed0fdb6 fix(docs): gwaie doc example manifests (#1755)
  • 2a4ac56 docs: provide docs for supporting generic huggingface vLLM inference model (#1756)
  • 5d8baa3 docs: fix preset_generator.py doc links due to rename (#1709)
  • 97d9c56 docs: post release doc update for v0.8.0 (#1705)
  • 3efea61 docs: add versioned documentation for v0.8.x (#1703)

Maintenance πŸ”§

  • 130351b chore: bump sentencepiece from 0.2.0 to 0.2.1 in /presets/workspace/dependencies (#1738)
  • dac0af6 chore: clean deadcode, outdated e2e tests (#1799)
  • 7880217 chore: bump vllm to 0.14.1 (#1785)
  • 6a3c0cb chore: add more tool-call-parser and reasoning-parser for a few models (#1793)
  • d5a477d chore: Bump GAIE version to v1.3.1 (#1788)
  • c5d0bbd chore: flatten oci artifact index and use temporary helm chart repository (#1753)
  • c9e4d51 chore: bump actions/setup-node from 4.3.0 to 6.2.0 (#1771)
  • 5131041 chore: bump webpack from 5.99.9 to 5.105.1 in /website (#1767)
  • 104cb50 chore: bump lodash from 4.17.21 to 4.17.23 in /website (#1737)
  • 0794168 chore: bump qs and express in /website (#1716)
  • 1fa77a7 chore: bump actions/checkout from 4 to 5 (#1644)
  • 2e5fe12 chore: force annotation and label values to be strings (#1748)
  • 27bc149 chore: upgrade ragengine crd to v1beta1 (#1701)
  • 57bdf3c chore: add more parameters to helm chart (#1724)
  • 1e351a0 chore: add estimator logging (#1715)
  • b2b8805 chore: publish helm charts as oci artifacts (#1717)

Testing πŸ’š

v0.8.1

Choose a tag to compare

@github-actions github-actions released this 24 Jan 01:17
d56734a

v0.8.1 - 2026-01-24

Changelog

Features 🌈

  • ea7c46d feat: Make NVIDIA device plugin deployment optional via feature gate (#1707) [release-0.8] (#1739)

Bug Fixes 🐞

  • e50f715 fix: conflict python deps in flaky unit test (#1741)
  • 98d8eb7 fix: existing Workspace cannot be deleted in byo node (#1719) [release-0.8] (#1736)
  • a543a90 fix: controller crash when Karpenter CRDs absent with isableNodeAutoProvisioning enabled (#1725) [release-0.8] (#1729)

Maintenance πŸ”§

Testing πŸ’š

  • 1725b51 test: add upgrade compatibility test for BYO mode (#1730) [release-0.8] (#1740)

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 20 Dec 06:36
v0.8.0
4fc5af6

v0.8.0 - 2025-12-20

This release introduces a breaking change such that the inference workload is unified to StatefulSet. The Deployment resources created by existing workspaces will be removed by the controller and new StatefulSet resources will be created instead. No manual operation is required for this migration, and it is expected that the inference server hits a short period of downtime due to the Pod recreation.

Changelog

Breaking Changes πŸ’₯

  • 3ab3f3d feat: [BREAKING] use statefulset for all workspace (#1523)

Features 🌈

  • b966484 feat: update gpu-provisioner version to v0.3.8 for kaito (#1698)
  • 91819b9 feat: preset-generator support generic model format and attn arch (#1690)

Bug Fixes 🐞

Code Refactoring πŸ’Ž

  • 47fcd2e refactor: make sku-calculation a generic preset generator (#1689)

Documentation πŸ“˜

  • 318bf01 docs: fix namespace doc issue in keda-kaito-scaler (#1699)
  • 87c9c32 docs: use kaito-workspace in keda install (#1694)
  • eefd2b8 docs: add keda-autoscaler-inference scaling example in doc (#1682)
  • bbe61d7 docs: refine naming in docs and examples (#1681)
  • c78d68b docs: add keda-autoscaler-inference doc (#1679)

Maintenance πŸ”§

  • 67deec5 chore: bump golang to 1.24.11 (#1695)
  • 89aba34 chore: use pv cleaner from localcsi manager (#1687)
  • 7911b00 chore: fix huggingface_hub version in preset_generator (#1693)
  • 0fabc5c chore: bump ray to 0.25.1 (#1684)
  • 3d33b89 chore: bump js-yaml from 3.14.1 to 3.14.2 in /website (#1647)
  • 601ad7b chore: bump mdast-util-to-hast from 13.2.0 to 13.2.1 in /website (#1657)
  • e1efaa8 chore: e2e tests for pv support in RAG engine service (#1671)

Testing πŸ’š

v0.8.0-rc.0

v0.8.0-rc.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Dec 11:07
v0.8.0-rc.0
7a718d0

v0.8.0-rc.0 - 2025-12-08

Changelog

Breaking Changes πŸ’₯

  • 57feef8 chore: [BREAKING] deprecate phi-2 model (#1667)
  • 78a76de feat: [BREAKING] remove /query api call and adding FastAPI info and Tags (#1621)

Features 🌈

  • 475f94e feat: support minor release version format (x.y.z-rc.w) (#1675)
  • f1cba23 feat: add mistral3 series models (#1668)
  • 295068f feat: add PV support to RAG service (#1660)
  • 5a8b580 feat: leverage AIKit for preset image packing (#1649)
  • a97f28d feat: add support for generic BYO nodes using NVIDIA GPU feature discovery (#1536)
  • 0a6ee77 feat: use skopeo mcr images (#1630)
  • 9b1f6bd feat: RAG benchmarking based on documents (#1615)
  • 38f6846 feat: add version info to ua and cmd (#1633)
  • 7933a2c feat: add user-agent header for RAG oai client (#1622)
  • f73f9b7 feat: add webhook validation for BYO nodes using GPU feature discovery (#1587)
  • a68bb82 feat: Provide token usage in rag service (#1605)
  • c963272 feat: update gpu-provisioner version to v0.3.7 for kaito (#1604)
  • 251d9a2 Revert "feat: support arm64 container images" (#1603)
  • 198408a feat: support arm64 container images (#1585)
  • 22afc33 feat: add a new InferenceSet CRD and Controller for scaling inference workloads automatically (#1522)
  • ff7dd8d feat: add NVIDIA GPU feature discovery Helm chart (#1586)
  • 45f85fd feat: add gemma-3 4B and 27B models (#1572)
  • 42331a4 feat: adding total_items to RAG list documents response (#1578)

Bug Fixes 🐞

  • fe21280 fix: correct csi-local-node ds label (#1672)
  • cef240d fix: move GatewayAPIInferenceExtension into InferenceSet Controller (#1656)
  • 670d30b fix: add enableInferenceSetController in helm chart config (#1651)
  • 6437e6c fix: add new label to inference pods generated by InfefenceSet (#1645)
  • 45d68fd fix: add missing inferenceset CRD in charts (#1643)
  • cd30f25 fix: add findutils as runtime dependency of skopeo image (#1632)
  • 3eeb372 fix: bump pip to 25.3 in kaito-base image (#1629)
  • fe73c4b fix: add missing steps to skopeo workflow (#1614)
  • e8d798b fix: use crypto/rand package to generate random string (#1600)
  • 173bd5a fix: switch e2e test usage of Standard_NC6s_v3 to Standard_NV36ads_A10_v5 as NC6 no longer has quota (#1581)
  • bfd6a53 fix: handle no context found with passthrough to LLM (#1542)
  • 712b2ed fix: ResourceReady condition is never set to true for BYO (#1547)

Code Refactoring πŸ’Ž

  • c46be63 refactor: move the Inferenceset controller to a top-level pkg (#1670)

Continuous Integration πŸ’œ

  • 3791175 ci: reuse pip package cache when building image (#1516)

Documentation πŸ“˜

  • dced196 docs: fix enableInferenceSetController install method (#1669)
  • 9fb4087 docs: fix gateway-api-inference-extension doc (#1662)
  • 19c1476 docs: update preset list (#1597)
  • 0150971 docs: Update the custom model deployment guide (#1592)
  • 37d928c docs: update docs for using generic BYO nodes (#1588)
  • 90c1031 docs: update gateway-api-infernece-extension setup (#1528)
  • c41057a docs: Adding proposal for AutoIndexer CRD (#1538)
  • 1a0ae1c docs: Add proposal for using NVIDIA GPU feature discovery to support generic cloud provider nodes (#1548)
  • 37a9622 docs: fix typo in model-as-oci-artifacts.md (#1557)
  • 9bb19c5 docs: add proposal for gemma 3 models (#1540)
  • 6f14e25 docs: Update rag.md (#1534)
  • 0d75ff6 docs: Introduce a new InferenceSet CRD and Controller for scaling inference workloads automatically (#1503)
  • f41784c docs: add versioned documentation for v0.7.x (#1521)

Maintenance πŸ”§

  • 819c093 chore: bump node-forge from 1.3.1 to 1.3.2 in /website (#1654)
  • cfb8e7f chore: bump vllm to 0.12.0 (#1663)
  • 68b5859 chore: migrate unit-test to self-hosted runner (#1650)
  • 93a6686 chore: use built-in GenerateName to generate random workspace name by InferenceSet (#1637)
  • 04229d0 chore: bump actions/github-script from 7 to 8 (#1639)
  • e5df64e chore: make local-csi-driver a helm dependency (#1483)
  • ca164c1 chore: bump docker/login-action from 3.5.0 to 3.6.0 (#1618)
  • ae8b6bf chore: add workflow for building and pushing skopeo image (#1613)
  • 1fe9a8f chore: bump @docusaurus/core from 3.9.1 to 3.9.2 in /website (#1601)
  • 51182cd chore: bump peter-evans/repository-dispatch from 3 to 4 (#1606)
  • b1795b6 chore: bump sigs.k8s.io/controller-runtime from 0.21.0 to 0.22.2 and k8s.io/* to 0.34.1 (#1571)
  • ec162d8 chore: disable InferenceSetController by default (#1599)
  • f6b5140 chore: bump gateway-api-inference-extension to v1.0.1 (#1566)
  • 2b8e565 Revert "chore: bump python from 3.12-slim to 3.13-slim in /docker/presets/models/tfs" (#1584)
  • f9fe6d3 chore: bump step-security/harden-runner from 2.12.0 to 2.13.1 (#1574)
  • c70caf1 chore: rename GB to GiB in GPUConfig (#1565)
  • a7b09ee chore: bump azurerm provider in terraofrm and update example (#1564)
  • b27f41c chore: bump azure/CLI from 2.1.0 to 2.2.0 (#1552)
  • a458d87 chore: bump react from 19.1.1 to 19.2.0 in /website (#1541)
  • 7560f07 chore: bump @docusaurus/module-type-aliases from 3.9.0 to 3.9.1 in /website (#1535)
  • 16e3032 chore: bump python from 3.12-slim to 3.13-slim in /docker/presets/models/tfs (#1451)
  • ab1f640 chore: bump python from 3.12-slim to 3.13-slim in /docker/ragengine/service (#1456)
  • 046b678 chore: bump actions/cache from 4.2.2 to 4.3.0 (#1530)
  • 9e7d731 chore: bump @docusaurus/core from 3.8.1 to 3.9.1 in /website (#1527)
  • 94a1fe4 chore: bump @docusaurus/types from 3.8.1 to 3.9.1 in /website (#1526)
  • 9d38499 chore: bump @docusaurus/module-type-aliases from 3.8.1 to 3.9.0 in /website (#1525)

Testing πŸ’š