Skip to content

Releases: dsx-ai-factory/nvke

nktp 0.1.1-rc.3

nktp 0.1.1-rc.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Oct 19:35
nktp/v0.1.1-rc.3
4b33692

The NKTP Helm chart, version 0.1.1-rc.3.

kubectl create namespace nktp
kubectl label namespace nktp pod-security.kubernetes.io/enforce=privileged
helm install nktp oci://ghcr.io/dsx-ai-factory/nvke/charts/nktp \
  --version 0.1.1-rc.3 --namespace nktp

checksums.txt.sigstore.json is the build-provenance attestation
over checksums.txt; see RELEASE.md.

cli/v0.3.0-rc.2

cli/v0.3.0-rc.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Oct 15:27
cli/v0.3.0-rc.2
34f021e

See CHANGELOG.md for details.

cli/v0.3.0-rc.1

cli/v0.3.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Oct 00:23
cli/v0.3.0-rc.1
229df84

See CHANGELOG.md for details.

NVKE v0.22.0

Choose a tag to compare

@Lazzer64 Lazzer64 released this 21 Oct 16:38
400c24f

NVKE v0.22.0 is the first public preview release of NVIDIA Kubernetes Engine (NVKE). This release enables OIDC authentication with multiple providers, node pool labels and taints, and enhances NVKE management plane resilience and observability.

Component Version
nvkectl v0.2.0
NVKE controller v0.2.0
OS image v0.2.0
NVKE node-agent v0.3.0
CAPI provisioned provider v0.2.0

Highlights

  • OIDC authentication: A cluster can authenticate users through several OIDC providers, each with its own discovery URL, pinned when the cluster is created. nvkectl generates interactive or headless oidc-login kubeconfigs, deploys OIDC providers during site bootstrap, and mints a breakglass admin kubeconfig, published as nvke:breakglass.
  • Node pool labels and taints: Node pools carry labels and taints in the API. NVKE validates them against a configurable label allowlist and applies them to the pool's nodes.
  • Controller configuration: The controller reads its settings from the nke-controller-config ConfigMap, which the Helm chart renders.
  • Cluster defaults: OVN-Kubernetes is the default CNI. Generated site specs default to Kubernetes 1.36.3, and the node OS image supports Ubuntu 26.04 and 24.04.
  • Resilience: Control-plane machines are spread across failure domains, and a stalled soft reboot escalates to a hard reboot. A node waits for another node's certificate renewal instead of failing, and a node whose kubeadm join fails is reset before the join is retried.
  • Security: The API server allows anonymous access only to the probe endpoints. Join credentials and generated passwords are kept out of logs and command output, and every released artifact ships with an SBOM.
  • Observability: Each nvkectl command carries a single trace ID, and trace context follows requests through Temporal workflows. nvkectl get providers shows NicoIdentity credential health.
  • Documentation: The documentation includes a generated REST API reference and nvkectl command reference, plus guides for OIDC, bootstrap troubleshooting, OVN-Kubernetes networking, and building your own node image.

Appendix A: Controller and Bootstrap Dependencies

Images

Image Chart Version Digest Source
server temporal 1.30.3 sha256:a3d0f727caad0ecca5dc6e94766135aab448551f2c6c0d33d3c67576458e6a0d Source
admin-tools temporal 1.30.3 sha256:2c2272b008f1af295b3719963e6feeef64f838d1105d895cf6acfcf96dd31741 Source
ui temporal 2.48.1 sha256:edb5dd1b3e0ddb35611939dde9b573533afd6fbafbbf077b73c7131a30ca91ff Source
postgres n/a 18.6 sha256:06cad38a5d9f5d24b4d83d86def30795d5e4b757fedbf5281172b576dedcd941 Source
spire-server spire 1.15.3 sha256:4082f30d3e0ddc4000a171392c4ea174345ee44d161ee917c70b97b2ecfba141 Source
spire-agent spire 1.15.3 sha256:41b0dcd8b258a69db9e2768292a060766fb76fd866e4bc925849981ea1b825ff Source
spire-controller-manager spire 0.7.0 sha256:d7b9e710f5428ea25daa35a07083fe517ed70c23df902d21c54a0f444455a84b Source
spiffe-csi-driver spire 0.2.7 sha256:9dfe4f0caff096164fd921aa7f15319804df2fc0325f1d90bc793ef3256ab1cd Source
csi-node-driver-registrar spire v2.15.0 sha256:11f199f6bec47403b03cb49c79a41f445884b213b382582a60710b8c6fdc316a Source
busybox spire 1.37.0-uclibc sha256:8d7b1636e974e0adfd8d945955fca609304f0a56c18799dfd032d6e661382d84 Source
bash spire latest sha256:90041f375e30f41aa7e0390075d8a69dc61900771d52fa98d63ee5d03d866a58 Source
spire-tpm-plugin-tpm-attestor-server spire v1.9.0 sha256:9d3c69f9a9a59b274e7d6d9f8e75d89691d7d9204f2063d7917685a17b8828dc Source
controller n/a v0.0.45 sha256:bca9d77a25e605a5c39faf0a71b45b484d363edc4535f8a37aa811a639738595 Source

Helm Charts

Chart Version SHA-256 Source
temporal 0.74.0 14a8efe1cc92c91befac151db91f20f9a13962788e9d710c86655add6d966d37 Source
spire-crds 0.6.1 ce982e63fc375e392b014fc99e621a55442ab886052413e9bb052f72d66580a8 Source
spire 0.30.1 7c32126bb1909076cdf9fd0419dbf9e5b012f152bb09a96a4259917d70581fac Source

Appendix B: OS Dependency Versions

Component Version Digest Source
calico 3.30.1 n/a OS source
quay.io/tigera/operator 1.38.1 amd64: sha256:692a8bc462a0fa1849264d9c6b33c34714259d50fbc889bdb64b174b259dd1ce
arm64: sha256:f3f0d50f7847435f969e285ab479e35ecf2ca874724a294a87c2dd00c7cee49e
[amd64](https://github....
Read more

os-image v0.2.0-rc.2

os-image v0.2.0-rc.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Oct 12:22
os-image/v0.2.0-rc.2
7845898

os-image v0.2.0-rc.2: the FDE and non-FDE Packer
node images for amd64 and arm64, built and validated against nvke-agent
v0.3.0-rc.2 (built from source at this
commit). Each is published in two Ubuntu flavors: 26.04 under the
plain tag, and 24.04 under a -ubuntu24.04 tag.

Pull the qcow2s with oras (not docker):

oras pull ghcr.io/dsx-ai-factory/nvke/os-image-fde:v0.2.0-rc.2-amd64 --platform linux/amd64
oras pull ghcr.io/dsx-ai-factory/nvke/os-image-fde:v0.2.0-rc.2-arm64 --platform linux/arm64
oras pull ghcr.io/dsx-ai-factory/nvke/os-image-non-fde:v0.2.0-rc.2-amd64 --platform linux/amd64
oras pull ghcr.io/dsx-ai-factory/nvke/os-image-non-fde:v0.2.0-rc.2-arm64 --platform linux/arm64

For the Ubuntu 24.04 flavor, insert -ubuntu24.04 before the
architecture, for example
os-image-fde:v0.2.0-rc.2-ubuntu24.04-amd64.

FDE security note: this image's LUKS_PASSPHRASE is the shared,
documented build-time placeholder (changeit), baked into both a LUKS
passphrase slot and GRUB's luks.key= kernel parameter until a node's
first real boot completes a verified TPM bind (see
os-image/docs/full-disk-encryption.md). Anyone with console/physical
access to an unbound node can read it and unlock the volume with it.
Verify a node closed that window with luks-tpm-verify before trusting
TPM-only unlock in production.

checksums.txt covers all eight qcow2s, their SBOMs and the checker
binary. The disks themselves are the OCI artifacts above; they are
too large to attach here.

Each disk has an SPDX 2.3 SBOM attached beside it, named after the
disk it describes -- nvke-node-fde-ubuntu-26.04.1-amd64.spdx.json
for nvke-node-fde-ubuntu-26.04.1-amd64.qcow2, and so on. It lists
the image's dpkg package set, read out of the built disk rather
than derived from the Packer templates.

checksums.txt.sigstore.json is the build-provenance attestation
over checksums.txt; see RELEASE.md for the verify
commands.

nktp 0.1.1-rc.2

nktp 0.1.1-rc.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Oct 11:50
nktp/v0.1.1-rc.2
7845898

The NKTP Helm chart, version 0.1.1-rc.2.

kubectl create namespace nktp
kubectl label namespace nktp pod-security.kubernetes.io/enforce=privileged
helm install nktp oci://ghcr.io/dsx-ai-factory/nvke/charts/nktp \
  --version 0.1.1-rc.2 --namespace nktp

checksums.txt.sigstore.json is the build-provenance attestation
over checksums.txt; see RELEASE.md.

controller/v0.2.0-rc.3

Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Oct 11:53
controller/v0.2.0-rc.3
7845898

See CHANGELOG.md for details.

cli/v0.2.0-rc.2

cli/v0.2.0-rc.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Oct 12:00
cli/v0.2.0-rc.2
7845898

See CHANGELOG.md for details.

agent v0.3.0-rc.2

agent v0.3.0-rc.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Oct 11:53
agent/v0.3.0-rc.2
7845898

nvke-agent v0.3.0-rc.2 Debian packages (amd64 and arm64).

Apt install path is the apt-publisher intake from this same workflow; these assets are the same .debs attached for direct download.

Verify checksums.txt against its build-provenance attestation,
then sha256sum -c checksums.txt. See RELEASE.md for
the commands.

controller/v0.2.0-rc.2

Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Oct 23:54
controller/v0.2.0-rc.2
8c6e47f

Second release candidate for controller v0.2.0, built from 8c6e47fc1. These notes cover everything since controller/v0.1.2-rc.1, including the changes first shipped in controller/v0.2.0-rc.1, which had no notes of its own.

Breaking changes and upgrade actions

  • Settings come only from nke-controller-config (#1527, new in rc.2). The controller no longer reads the 61 environment variables those settings used to come from, and CONTROLLER_CONFIG_PATH is required. A chart-based install needs no change: the chart renders and mounts the file. Anything outside the chart that sets one of those variables on the controller now has no effect; set the chart value instead.
  • nodeLabels is a map, and node labels and taints cannot be patched (#1306). On control-plane and node-pool create and read, nodeLabels changes from a list of key=value strings to an object, and node pools gain nodeTaints. A PATCH that sends nodeLabels or nodeTaints now returns 400. The migration clears stored label values, which were never applied to nodes.
  • Metrics are renamed (#1458). nke_controller_* and nke_auth_* become nvke_controller_* and nvke_auth_*, with no dual emission. Update alerts and recording rules. The reference dashboards query both names for one release.
  • Images, chart and Go module moved (#1449, #1520). The default image is ghcr.io/dsx-ai-factory/nvke/nke-controller. NVCR publishes nvke-controller and nvke-controller-chart. API client consumers import github.com/dsx-ai-factory/nvke/controller/api.
  • Legacy flat provider columns are dropped (#692, new in rc.2). This migration cannot be undone.

Rollback: after #1306's migration has run, a controller older than v0.2.0-rc.1 cannot read the database, so roll forward only. Between rc.1 and rc.2, roll the chart and the image back together, as helm rollback does: an rc.1 image under the rc.2 chart runs on defaults for every setting the chart no longer passes as an environment variable.

OIDC

  • Fleet-wide OIDC providers (#1426, #1425, #1355). Up to five providers in oidc.providers of nke-controller-config are pinned on each cluster when it is created. kubeadm init, kubeadm join and the OIDC enablement rollout build the API server's authentication configuration from the shared provider plus the pinned ones, so a control-plane node that joins later gets the same providers as the first. Clusters below Kubernetes 1.34 are pinned with no providers, and the skip is logged.
  • The controller refuses to start when a fleet-wide provider uses the enabled shared provider's issuer URL, which kube-apiserver would reject on every control-plane node.
  • A failed OIDC rollout now restores each updated node's previous authentication configuration, its pinned providers or, on 1.34 and later, the anonymous-only restriction, instead of removing it (#1425).
  • The shared provider's settings (oidc.managementOIDCAuth) are read from nke-controller-config at startup, so editing them in the ConfigMap and restarting the controller takes effect (#1527).

Other changes

  • Provider handling is consolidated behind a root provider client (#1308), and node-pool and control-plane payload validation moved into the capability clients (#1387).
  • ProvisionNode workflow identifiers are logged (#1541).
  • Tracing: with no tracing.endpoint, the controller falls back to the OTEL_EXPORTER_OTLP_* variables the OpenTelemetry Operator injects, and the endpoint's http:// or https:// scheme decides its transport (#1527). Spans written inside database transactions keep the request as their parent again (#1491).
  • The chart accepts spiffe.controllerSubject for the tenant RBAC subject; spiffe.cweSubject still works (#1383).
  • osprofiles-to-crs reads deprecated OS profiles from osProfiles/deprecated/ (#1421), and the release CRDs gain a hidden field (#1351).
  • Dependency updates, including bun 1.3.0 (#1494) and the SPIFFE exec-auth helper 1.0.0 in the CAPI overlay (#1570).