Repository navigation
Releases: inferal-oss/kimage
Release list
kimage 0.4.1
Added
- Recorded real mixed-cluster acceptance for the published 0.4.0 CLI and public Helm chart: native GHCR pulls, fresh unknown/amd64/arm64 placement cases, retained resource identities and complete OCI graph readback after uninstall/reinstall.
- Repository instructions now require Keep a Changelog entries and synchronized release documentation for future changes.
Changed
- Updated Cargo and Helm installation examples, README, website and agent essentials for 0.4.1, which includes the CLI uninstall fix.
Fixed
- CLI uninstall retries status-only resource-version conflicts when Kubernetes LIST items omit the type metadata included by GET. UID, specification and ownership checks remain enforced. This fixes an intermittent
CleanupIdentityConflictobserved while testing published 0.4.0 on a real mixed cluster. - Native installation E2E waits through transient null kubelet image reports instead of failing before installation. Regression coverage keeps the cold-cache check intact.
kimage 0.4.0
Added
- Native amd64/arm64 component images published to GHCR by the release workflow, with complete immutable OCI indexes and public-pull verification.
- A Helm chart repository at
https://kimage.dev/charts, containing the same release image pins and resource definitions as the CLI. - Eight native Kubernetes acceptance cases covering CLI and Helm, namespace and cluster scope, on both architectures, using fresh TLS registry pulls.
Changed
kimage installnow discovers nodes, generates credentials and applies ordinary Kubernetes resources. It fetches only a small verified image catalog; component executables and layers no longer travel through the Kubernetes API.- Installation defaults to the current kubeconfig application namespace, a dedicated system namespace and the default StorageClass. Reapplication preserves credentials, build policy and registry node identity.
- Releases contain four installers, the image catalog and pinned chart instead of bootstrap bundles. Legacy bootstrap commands remain available for independently retained older installations.
- Updated installation guides, quickstarts, website and agent essentials for image-pull and Helm installation.
kimage 0.3.1
Fixed
- Removed the 30-second socket read timeout from the Kubernetes client. Healthy
quiet watches and long-lived exec/port-forward streams must not expire at that
limit. A regression test covers a delayed watch event; native installation E2E
checks that a fresh Image is reconciled after a quiet catalog interval. - Release bundle verification now checks gateway/proxy against their separate
serving version, allowing patch releases to retain serving compatibility.
Added
- An explicitly enabled mixed-cluster E2E using fresh Images for unknown, amd64,
and arm64 workload placement. It checks native builds, exact variant and demand
sets, and native execution through the selected OCI index or manifest. Public
CI checks the harness; the live test requires an existing mixed cluster.
Two recorded real-cluster runs passed using
the published 0.3.0 binaries.
Changed
- Clarified README and website positioning against kpack: both provide
declarative Images; kimage integrates an included registry, immutable version
catalog, and workload image/version requests resolved during Pod admission.
kimage 0.3.0
Added
- Native Linux/amd64 and Linux/arm64 workers, architecture-specific bundles, and
Linux/macOS installers for both architectures. Installation selects bundles
from cluster Node architecture and registers native workers automatically. - Placement-aware image selection from node names, architecture selectors and
required node affinity. Unconstrained mixed-cluster workloads receive verified
multi-platform OCI indexes; every child graph and layer is checked. - Independent immutable Image UID/version/platform releases and platform status.
Aggregate indexes require consistent input captures across native variants. - Default on-demand production for automatic Images, bounded generation-scoped
ImageDemand records, and an administrator ConfigMap for optional eager builds.
Dry-run requests produce no demand; explicit platforms request direct builds. - Namespace-scoped and cluster-wide installation, runtime scope filters,
administrator exclusions, overlap checks and same-namespace image consumption. - Native Kubernetes E2E for both scopes on amd64 and arm64, required before release
publication. Coverage includes real builds/pulls, controller templates, build
policy, dry-run, RBAC, namespace boundaries and retained storage on uninstall. - Keep a Changelog structure and CI validation for future release notes.
Changed
- Omitted Image platform now selects native platforms automatically. Explicit
platformandplatformsconstrain native variants. Apply a consumer workload
before waiting for an automatic Image under the default OnDemand policy. - Schema revision 5 accepts exact shipped revision 2/3/4 definitions, preserving
data and rejecting drift or downgrades. Serving binaries report version 0.3.0;
cluster scope requires that version's namespace routing support. - Interrupted registry publication retries within a bounded deadline using fresh
upload sessions and complete byte readback. Integrity and authorization errors
still fail immediately. - Uninstall tolerates status-only resource-version races while retaining UID and
ownership checks and refusing concurrent spec edits or replacement resources. - README, tutorial, handbook and agent essentials document platform inputs,
selection, demand/eager policy, both scopes and automatic bundle delivery.
kimage 0.2.0
- Official GitHub Actions builds now produce a complete Linux/amd64 component
bundle, its inventory and checksums, and native Linux/amd64 and macOS/arm64
installers as GitHub release assets. Administrators no longer need to package
their own bundle for the supported profile. kimage installruns the standard setup phases in one resumable command. It
validates all credential directories before bootstrap writes and avoids
repeating bootstrap after a partial handover.kimage-installremains a
compatible alias with the same commands.- The installer automatically fetches the exact official release matching its
package version, verifies GitHub asset digests, inventory, static executables,
and complete OCI graphs, and caches it before Kubernetes access. bundle-fetchprepares an installation or air-gap transfer without kubeconfig;
--release,--bundle-cache, and--offlinemake selection and reuse explicit.
Local--bundlewith an independently trusted inventory remains supported.- Atomic cache installation, bounded archive extraction, process locking, and
regression coverage for corrupt, interrupted, unsafe, and incomplete downloads. - Release publishing stages verified draft assets, publishes crates through OIDC
with safe partial-release resume, then publishes GitHub assets and verifies the
real public fetch and offline path. - Updated handbook, README, quickstart, and self-contained agent guidance.
cargo install kimage-control --version 0.2.0 --locked
kimage install --helpThe supported Kubernetes/runtime, persistent storage, cached carrier, issuer
credentials, and user namespace prerequisites still apply. Automatic fetching
changes bundle delivery; it does not broaden the serving-only upgrade window or
provide an operator/schema downgrade path. See the
handbook.
kimage 0.1.0
Declare the images your Kubernetes cluster needs. kimage manages build attempts, verifies OCI content, publishes it to a retained local registry, and resolves workload selectors to digest-pinned Pod images.
Install the native tools with Rust 1.99.0 or newer:
cargo install kimage-control --version 0.1.0 --locked
kimage-install --helpThis installs seven commands, including kimage-install. Add --bin kimage-install to install only the native installer. The Cargo package is kimage-control; the unrelated kimage crate belongs to another project.
- Declarative Image production through pinned BuildKit, immutable ImageRelease records, and retained storage independent of source and worker cache.
- Readable selectors such as
platform://apps/service:^1.2.0, plus exact versions, explicit channels, and compatible query syntax. - API-only bootstrap/recovery, node-local digest pulls, compatible serving binary upgrades and rollback, operational metrics, and optional retained-release export.
- Apache 2.0 license, macOS/arm64 and Linux/amd64 musl test coverage, and scoped GitHub OIDC trusted publishing.
Handbook and tutorial · Agent essentials · Changelog · kimage-control · kimage-core
Alpha: cluster installation is a separate administrator workflow requiring the documented Linux/amd64 runtime profile, trusted component bundle, TLS credentials, persistent storage, cached carrier, and user namespace support. Cargo installs native commands; it does not provide a cluster or prebuilt component bundle. The build adapter currently supports scratch images and provisioned local inputs. Read the compatibility limits before installation.