Skip to content

Commit c8f674b

Browse files
committed
test: add a test for 'spin' container runtime
See siderolabs/extensions#355 Signed-off-by: Andrey Smirnov <[email protected]>
1 parent 5390ccd commit c8f674b

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

internal/integration/api/extensions_qemu.go

+35
Original file line numberDiff line numberDiff line change
@@ -788,6 +788,41 @@ func (suite *ExtensionsSuiteQEMU) TestExtensionsWasmEdge() {
788788
suite.Require().NoError(suite.WaitForPodToBeRunning(suite.ctx, 5*time.Minute, "default", "wasmedge-test"))
789789
}
790790

791+
// TestExtensionsSpin verifies spin runtime class is working.
792+
func (suite *ExtensionsSuiteQEMU) TestExtensionsSpin() {
793+
_, err := suite.Clientset.NodeV1().RuntimeClasses().Create(suite.ctx, &nodev1.RuntimeClass{
794+
ObjectMeta: metav1.ObjectMeta{
795+
Name: "wasmtime-spin-v2",
796+
},
797+
Handler: "spin",
798+
}, metav1.CreateOptions{})
799+
defer suite.Clientset.NodeV1().RuntimeClasses().Delete(suite.ctx, "wasmtime-spin-v2", metav1.DeleteOptions{}) //nolint:errcheck
800+
801+
suite.Require().NoError(err)
802+
803+
_, err = suite.Clientset.CoreV1().Pods("default").Create(suite.ctx, &corev1.Pod{
804+
ObjectMeta: metav1.ObjectMeta{
805+
Name: "spin-test",
806+
},
807+
Spec: corev1.PodSpec{
808+
Containers: []corev1.Container{
809+
{
810+
Name: "spin-test",
811+
Image: "ghcr.io/spinkube/containerd-shim-spin/examples/spin-rust-hello",
812+
Command: []string{"/"},
813+
},
814+
},
815+
RuntimeClassName: pointer.To("wasmtime-spin-v2"),
816+
},
817+
}, metav1.CreateOptions{})
818+
defer suite.Clientset.CoreV1().Pods("default").Delete(suite.ctx, "spin-test", metav1.DeleteOptions{}) //nolint:errcheck
819+
820+
suite.Require().NoError(err)
821+
822+
// wait for the pod to be ready
823+
suite.Require().NoError(suite.WaitForPodToBeRunning(suite.ctx, 5*time.Minute, "default", "spin-test"))
824+
}
825+
791826
func init() {
792827
allSuites = append(allSuites, &ExtensionsSuiteQEMU{})
793828
}

0 commit comments

Comments
 (0)