From b834bb82b673d1212eb9edcd3c021277415160cd Mon Sep 17 00:00:00 2001 From: Yuto Nishida Date: Sat, 6 Jun 2026 17:56:26 -0700 Subject: [PATCH] [milky-way][orion-system] Move kata runtimeclass --- .../stage00/orion-system/main.jsonnet | 2 ++ milky-way/lib/kata-microvm-test.libsonnet | 20 ++++--------------- milky-way/lib/kata-runtime-class.libsonnet | 17 ++++++++++++++++ 3 files changed, 23 insertions(+), 16 deletions(-) create mode 100644 milky-way/lib/kata-runtime-class.libsonnet diff --git a/milky-way/environments/stage00/orion-system/main.jsonnet b/milky-way/environments/stage00/orion-system/main.jsonnet index abefad7..77fbb4c 100644 --- a/milky-way/environments/stage00/orion-system/main.jsonnet +++ b/milky-way/environments/stage00/orion-system/main.jsonnet @@ -3,6 +3,7 @@ local zfsNfsDriverConfig = import 'milky-way/environments/stage00/orion-system/m local charts = import 'milky-way/charts.jsonnet'; local httpEcho = import 'milky-way/lib/http-echo.libsonnet'; local exampleZfsGenericIscsi = import 'milky-way/lib/example-zfs-generic-iscsi.libsonnet'; +local kataRuntimeClass = import 'milky-way/lib/kata-runtime-class.libsonnet'; local kataMicrovmTest = import 'milky-way/lib/kata-microvm-test.libsonnet'; local calibreWebAuto = import 'milky-way/lib/calibre-web-automated.libsonnet'; local ddnsUpdater = import 'milky-way/lib/ddns-updater.libsonnet'; @@ -57,6 +58,7 @@ local secrets = import 'milky-way/secrets/k8s-secret-values.jsonnet'; storageClassName="my-custom-zfs-generic-nfs-csi", name="nfs-test", ), + kataRuntimeClass: kataRuntimeClass.runtimeClass, kataMicrovmTest: kataMicrovmTest.new(), calibreWebAuto: calibreWebAuto.new(domain="cwa-methanol.local"), diff --git a/milky-way/lib/kata-microvm-test.libsonnet b/milky-way/lib/kata-microvm-test.libsonnet index 29b5bee..c027bb4 100644 --- a/milky-way/lib/kata-microvm-test.libsonnet +++ b/milky-way/lib/kata-microvm-test.libsonnet @@ -1,5 +1,4 @@ -local utils = import "milky-way/lib/utils.libsonnet"; -local runtimeClassName = "kata"; +local kataRuntimeClass = import "milky-way/lib/kata-runtime-class.libsonnet"; { new( name="kata-microvm-test", @@ -8,17 +7,6 @@ local runtimeClassName = "kata"; ):: { local this = self, - // Cluster-scoped RuntimeClass that maps to the `kata` containerd runtime - // registered on the node via methanol.nix's config-v3.toml.tmpl. - runtimeClass: { - apiVersion: "node.k8s.io/v1", - kind: "RuntimeClass", - metadata: { - name: runtimeClassName, - }, - handler: runtimeClassName, - }, - deployment: { apiVersion: "apps/v1", kind: "Deployment", @@ -38,9 +26,9 @@ local runtimeClassName = "kata"; labels: {} + this.deployment.spec.selector.matchLabels, }, spec: { - // Route this pod through the kata microVM runtime. Assert the name - // matches the RuntimeClass above so they can never drift apart. - runtimeClassName: utils.assertEqualAndReturn(this.runtimeClass.metadata.name, runtimeClassName), + // Route this pod through the kata microVM runtime (see + // lib/kata-runtime-class.libsonnet for the RuntimeClass itself). + runtimeClassName: kataRuntimeClass.name, tolerations: [ { key: "ephemeral", diff --git a/milky-way/lib/kata-runtime-class.libsonnet b/milky-way/lib/kata-runtime-class.libsonnet new file mode 100644 index 0000000..8867828 --- /dev/null +++ b/milky-way/lib/kata-runtime-class.libsonnet @@ -0,0 +1,17 @@ +// Cluster-scoped RuntimeClass mapping the `kata` handler to the kata-containers +// (QEMU) containerd runtime registered on the node via venus's methanol.nix +// (config-v3.toml.tmpl). Workloads opt in with `runtimeClassName: kata`. +local name = "kata"; +{ + // Exposed so workloads set their runtimeClassName from one source of truth. + name:: name, + + runtimeClass: { + apiVersion: "node.k8s.io/v1", + kind: "RuntimeClass", + metadata: { + name: name, + }, + handler: name, + }, +} -- 2.51.2