From 13bd81e2ca09211f701143ba8673e0d906f07cd5 Mon Sep 17 00:00:00 2001 From: Richard Case Date: Mon, 26 Oct 2026 12:41:25 +0000 Subject: [PATCH 1/2] feat: update the client and the types for flintlock v0.16.0 Set the flintlock api and client modules to the v0.16.0 commit (ae2417facf95). Set the client module to Go 1.26. Add the ServerInfo method to the client. The MicroVMClient interface of v0.16.0 has this method. Add the AllowGuestAgent and CPUConfig fields to the VMSpec type. CPUConfig has the FeaturesToEnable and KVMCapabilitiesToDisable fields. Make the deepcopy code again with controller-gen. Set controller-gen to v0.23.0 and set CI to Go 1.26.x. --- .github/workflows/test.yaml | 6 ++-- Makefile | 4 +-- client/flintlock.go | 4 +++ client/go.mod | 18 ++++++------ client/go.sum | 39 +++++++++++++++----------- types/microvm/microvm.go | 23 +++++++++++++++ types/microvm/zz_generated.deepcopy.go | 31 +++++++++++++++++++- 7 files changed, 93 insertions(+), 32 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index b6a91dd..044fb7d 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -14,9 +14,9 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-go@v2 + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 with: - go-version: '1.23.1' + go-version: '1.26.x' - name: Run tests run: go test ./... diff --git a/Makefile b/Makefile index 19e33e0..953271a 100644 --- a/Makefile +++ b/Makefile @@ -21,7 +21,7 @@ fmt-%: generate-% tidy-% vet-% mocks-% cd $(subst :,/,$*); go fmt ./... tidy-%: - cd $(subst :,/,$*); go mod tidy -compat=1.19 + cd $(subst :,/,$*); go mod tidy vet-%: # "git:libgit2" is the wildcard that comes after "vet-" @@ -43,7 +43,7 @@ generate-%: controller-gen ## Generate schema CONTROLLER_GEN = $(GOBIN)/controller-gen .PHONY: controller-gen controller-gen: ## Download controller-gen locally if necessary. - $(call go-install-tool,$(CONTROLLER_GEN),sigs.k8s.io/controller-tools/cmd/controller-gen@v0.10.0) + $(call go-install-tool,$(CONTROLLER_GEN),sigs.k8s.io/controller-tools/cmd/controller-gen@v0.23.0) # go-install-tool will 'go install' any package $2 and install it to $1. PROJECT_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST)))) diff --git a/client/flintlock.go b/client/flintlock.go index ea9bc87..7db3919 100644 --- a/client/flintlock.go +++ b/client/flintlock.go @@ -38,3 +38,7 @@ func (fc *flintlockClient) ListMicroVMs(ctx context.Context, in *flintlockv1.Lis func (fc *flintlockClient) ListMicroVMsStream(ctx context.Context, in *flintlockv1.ListMicroVMsRequest, opts ...grpc.CallOption) (flintlockv1.MicroVM_ListMicroVMsStreamClient, error) { //nolint:lll // it would make it less readable return fc.c.ListMicroVMsStream(ctx, in, opts...) } + +func (fc *flintlockClient) ServerInfo(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*flintlockv1.ServerInfoResponse, error) { //nolint:lll // it would make it less readable + return fc.c.ServerInfo(ctx, in, opts...) +} diff --git a/client/go.mod b/client/go.mod index bdd7123..c16801a 100644 --- a/client/go.mod +++ b/client/go.mod @@ -1,18 +1,18 @@ module github.com/liquidmetal-dev/controller-pkg/client -go 1.19 +go 1.26.0 require ( - github.com/liquidmetal-dev/flintlock/api v0.0.0-20250205095343-755c4154ea88 - github.com/liquidmetal-dev/flintlock/client v0.0.0-20250205095343-755c4154ea88 - google.golang.org/grpc v1.64.1 - google.golang.org/protobuf v1.34.1 + github.com/liquidmetal-dev/flintlock/api v0.0.0-20261003123307-ae2417facf95 + github.com/liquidmetal-dev/flintlock/client v0.0.0-20261003123307-ae2417facf95 + google.golang.org/grpc v1.84.0 + google.golang.org/protobuf v1.36.12 ) require ( - github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect - golang.org/x/net v0.26.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/text v0.16.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.31.0 // indirect + golang.org/x/net v0.59.0 // indirect + golang.org/x/sys v0.48.0 // indirect + golang.org/x/text v0.42.0 // indirect google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect ) diff --git a/client/go.sum b/client/go.sum index 9a2b1c6..54860dc 100644 --- a/client/go.sum +++ b/client/go.sum @@ -1,19 +1,24 @@ -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k= -github.com/liquidmetal-dev/flintlock/api v0.0.0-20250205095343-755c4154ea88 h1:ABGBkcmr2xvXYNC59wuUSwOcQ9DeWyRM4rTftWaJ1vA= -github.com/liquidmetal-dev/flintlock/api v0.0.0-20250205095343-755c4154ea88/go.mod h1:aocJfIjHYMXrTvuISK75KQz3SEm1Xd+4BGIZike1jhI= -github.com/liquidmetal-dev/flintlock/client v0.0.0-20250205095343-755c4154ea88 h1:PK5YcT/ODWAKC4iO6iXVn+BJwXtiRLBeBUSKDPMyh1A= -github.com/liquidmetal-dev/flintlock/client v0.0.0-20250205095343-755c4154ea88/go.mod h1:NChE0jzlpZA1395punDaV+5hJbVeVhoCcPHriNC0SUQ= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= -golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.31.0 h1:Bd7KaOxzULLxtZ/K5s1aLbWhR0+5RToO65TXHsf3bqQ= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.31.0/go.mod h1:nN7ts3dFXKtCZWc//yfkpcQNKJABg16/uDVAZpLDalo= +github.com/liquidmetal-dev/flintlock/api v0.0.0-20261003123307-ae2417facf95 h1:NcoA5II6DdKfU0LnbVCjTgz6XmUa//hsdQvZHZYyWtc= +github.com/liquidmetal-dev/flintlock/api v0.0.0-20261003123307-ae2417facf95/go.mod h1:+MX1HsjB9LnSYysNwANCYa0bTnx2tuCzycyqa8XUG9A= +github.com/liquidmetal-dev/flintlock/client v0.0.0-20261003123307-ae2417facf95 h1:N3CfUDBhjSkym3UohuO4rQAhkKv72Mao3kMF1LFQQEY= +github.com/liquidmetal-dev/flintlock/client v0.0.0-20261003123307-ae2417facf95/go.mod h1:5yLcwzaJr9XVbDoq3KPyu8H0XvF6hqnKVPQ4hyJpBKw= +golang.org/x/net v0.59.0 h1:5zfYln+w5XCxwrnMMJPufRgNoXEaGxl0wo5GqPXyues= +golang.org/x/net v0.59.0/go.mod h1:2DA/G1UfVbCpQPeWTmMPGY7Cs2PkBkwu743bVX5PIVg= +golang.org/x/sys v0.48.0 h1:bbX/i/6MgT9BVLM9RT1thmxL04yeTAhbEz4SyadbXoo= +golang.org/x/sys v0.48.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= +golang.org/x/text v0.42.0 h1:JbOZXgfeCPU9gacVtYliJqOhD+zhrEqK4LfdpmlUZqI= +golang.org/x/text v0.42.0/go.mod h1:ojzP1Z+2QtioaF8DTtO8K5q7JWVVYwZKenzujK0Zd0E= +gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= +gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A= google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= -google.golang.org/grpc v1.64.1 h1:LKtvyfbX3UGVPFcGqJ9ItpVWW6oN/2XqTxfAnwRRXiA= -google.golang.org/grpc v1.64.1/go.mod h1:hiQF4LFZelK2WKaP6W0L92zGHtiQdZxk8CrSdvyjeP0= -google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= -google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/grpc v1.84.0 h1:soMyaPJ8pAak5PIQ0DGBUir0XRo2fRoMqhNWMLlLxO0= +google.golang.org/grpc v1.84.0/go.mod h1:ljCht0DrxQrXBDRTZp52Qxh3Ffk8CdYm2sj4O2QN2C0= +google.golang.org/protobuf v1.36.12 h1:pJOKDDOyeXErUroCihFAd5LQuwXBSpVnKGrj5o/fwxc= +google.golang.org/protobuf v1.36.12/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= diff --git a/types/microvm/microvm.go b/types/microvm/microvm.go index 88e8e64..045e9b7 100644 --- a/types/microvm/microvm.go +++ b/types/microvm/microvm.go @@ -65,6 +65,29 @@ type VMSpec struct { // Labels allow you to include extra data on the Microvm // +optional Labels map[string]string `json:"labels"` + + // AllowGuestAgent, when true, attaches a vsock device to the microvm so the in-guest + // guest-agent can communicate with the host. + // +optional + AllowGuestAgent bool `json:"allowGuestAgent,omitempty"` + + // CPUConfig allows customising the CPU features presented to the guest. + // Support and semantics vary by provider. + // +optional + CPUConfig *CPUConfig `json:"cpuConfig,omitempty"` +} + +// CPUConfig represents CPU feature configuration for a microvm. +type CPUConfig struct { + // FeaturesToEnable is a list of optional CPU features to enable. Accepted values are + // provider specific (e.g. named features such as "amx" for Cloud Hypervisor, or numeric + // KVM capability IDs for Firecracker). The "!" prefix is not allowed here. + // +optional + FeaturesToEnable []string `json:"featuresToEnable,omitempty"` + // KVMCapabilitiesToDisable is a list of KVM capability IDs to disable. Only supported by + // providers that declare the KVMCapabilitiesDisable capability (currently Firecracker only). + // +optional + KVMCapabilitiesToDisable []string `json:"kvmCapabilitiesToDisable,omitempty"` } // ContainerFileSource represents a file coming from a container image. diff --git a/types/microvm/zz_generated.deepcopy.go b/types/microvm/zz_generated.deepcopy.go index 1cdd17c..73a7008 100644 --- a/types/microvm/zz_generated.deepcopy.go +++ b/types/microvm/zz_generated.deepcopy.go @@ -1,5 +1,4 @@ //go:build !ignore_autogenerated -// +build !ignore_autogenerated /* Copyright 2022 Weaveworks. @@ -23,6 +22,31 @@ package microvm import () +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CPUConfig) DeepCopyInto(out *CPUConfig) { + *out = *in + if in.FeaturesToEnable != nil { + in, out := &in.FeaturesToEnable, &out.FeaturesToEnable + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.KVMCapabilitiesToDisable != nil { + in, out := &in.KVMCapabilitiesToDisable, &out.KVMCapabilitiesToDisable + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CPUConfig. +func (in *CPUConfig) DeepCopy() *CPUConfig { + if in == nil { + return nil + } + out := new(CPUConfig) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ContainerFileSource) DeepCopyInto(out *ContainerFileSource) { *out = *in @@ -122,6 +146,11 @@ func (in *VMSpec) DeepCopyInto(out *VMSpec) { (*out)[key] = val } } + if in.CPUConfig != nil { + in, out := &in.CPUConfig, &out.CPUConfig + *out = new(CPUConfig) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMSpec. From be8660ff687d2c28b5e587b6192e791477bdef88 Mon Sep 17 00:00:00 2001 From: Richard Case Date: Mon, 26 Oct 2026 12:42:06 +0000 Subject: [PATCH 2/2] feat: support flintlock v0.16.0 in the microvm service Set the microvm service to Go 1.26 and to the v0.16.0 flintlock api and client modules. Set the controller-pkg client and types modules to commit 13bd81e. Send the AllowGuestAgent and CPUConfig fields to the flintlock API. Add tests for the new fields. --- services/microvm/convert.go | 23 ++++++++++- services/microvm/convert_test.go | 37 ++++++++++++++++- services/microvm/go.mod | 30 +++++++------- services/microvm/go.sum | 68 +++++++++++++++----------------- 4 files changed, 102 insertions(+), 56 deletions(-) diff --git a/services/microvm/convert.go b/services/microvm/convert.go index 57ef33e..680fbc8 100644 --- a/services/microvm/convert.go +++ b/services/microvm/convert.go @@ -23,6 +23,8 @@ func convertToFlintlockAPI(mvmScope Scope) *flintlocktypes.MicroVMSpec { withAdditionalVolumes(mvmSpec.AdditionalVolumes), withKernel(mvmSpec.Kernel, mvmSpec.KernelCmdLine), withRootVolume(mvmSpec.RootVolume), + withGuestAgent(mvmSpec.AllowGuestAgent), + withCPUConfig(mvmSpec.CPUConfig), ) return apiVM @@ -116,7 +118,7 @@ func withAdditionalVolumes(volumes []types.Volume) specOption { addVol := &flintlocktypes.Volume{ Id: volume.ID, IsReadOnly: volume.ReadOnly, - Source: &flintlocktypes.VolumeSource{}, + Source: &flintlocktypes.VolumeSource{}, } if volume.Image != "" { addVol.Source.ContainerSource = &volume.Image @@ -155,3 +157,22 @@ func withRootVolume(rv types.Volume) specOption { } } } + +func withGuestAgent(allow bool) specOption { + return func(s *flintlocktypes.MicroVMSpec) { + s.AllowGuestAgent = allow + } +} + +func withCPUConfig(cfg *types.CPUConfig) specOption { + return func(s *flintlocktypes.MicroVMSpec) { + if cfg == nil { + return + } + + s.CpuConfig = &flintlocktypes.CPUConfig{ + FeaturesToEnable: cfg.FeaturesToEnable, + KvmCapabilitiesToDisable: cfg.KVMCapabilitiesToDisable, + } + } +} diff --git a/services/microvm/convert_test.go b/services/microvm/convert_test.go index 1e07480..b79aed3 100644 --- a/services/microvm/convert_test.go +++ b/services/microvm/convert_test.go @@ -150,8 +150,8 @@ func Test_convertToFlintlockAPI(t *testing.T) { input: microvm.VMSpec{ AdditionalVolumes: []microvm.Volume{ { - ID: strVal1, - ReadOnly: false, + ID: strVal1, + ReadOnly: false, VirtioFSPath: strVal2, }, { @@ -220,6 +220,39 @@ func Test_convertToFlintlockAPI(t *testing.T) { g.Expect(converted.RootVolume.IsReadOnly).To(BeFalse()) }, }, + { + name: "withGuestAgent, default is false", + input: microvm.VMSpec{}, + expected: func(g *WithT, converted *flintlocktypes.MicroVMSpec) { + g.Expect(converted.AllowGuestAgent).To(BeFalse()) + }, + }, + { + name: "withGuestAgent", + input: microvm.VMSpec{AllowGuestAgent: true}, + expected: func(g *WithT, converted *flintlocktypes.MicroVMSpec) { + g.Expect(converted.AllowGuestAgent).To(BeTrue()) + }, + }, + { + name: "withCPUConfig, not set", + input: microvm.VMSpec{}, + expected: func(g *WithT, converted *flintlocktypes.MicroVMSpec) { + g.Expect(converted.CpuConfig).To(BeNil()) + }, + }, + { + name: "withCPUConfig", + input: microvm.VMSpec{CPUConfig: µvm.CPUConfig{ + FeaturesToEnable: []string{strVal1, strVal2}, + KVMCapabilitiesToDisable: []string{strVal3}, + }}, + expected: func(g *WithT, converted *flintlocktypes.MicroVMSpec) { + g.Expect(converted.CpuConfig).ToNot(BeNil()) + g.Expect(converted.CpuConfig.FeaturesToEnable).To(Equal([]string{strVal1, strVal2})) + g.Expect(converted.CpuConfig.KvmCapabilitiesToDisable).To(Equal([]string{strVal3})) + }, + }, } for _, tc := range tt { diff --git a/services/microvm/go.mod b/services/microvm/go.mod index 6f8ab87..5dcf194 100644 --- a/services/microvm/go.mod +++ b/services/microvm/go.mod @@ -1,29 +1,27 @@ module github.com/liquidmetal-dev/controller-pkg/services/microvm -go 1.23 +go 1.26.0 require ( - github.com/liquidmetal-dev/controller-pkg/client v0.0.0-20250206153520-fa7b57540c18 - github.com/liquidmetal-dev/controller-pkg/types/microvm v0.0.0-20250207115528-f599d8cc9a1d - github.com/liquidmetal-dev/flintlock/api v0.0.0-20250205095343-755c4154ea88 - github.com/liquidmetal-dev/flintlock/client v0.0.0-20250205095343-755c4154ea88 - github.com/onsi/gomega v1.24.1 + github.com/liquidmetal-dev/controller-pkg/client v0.0.0-20261026124125-13bd81e2ca09 + github.com/liquidmetal-dev/controller-pkg/types/microvm v0.0.0-20261026124125-13bd81e2ca09 + github.com/liquidmetal-dev/flintlock/api v0.0.0-20261003123307-ae2417facf95 + github.com/liquidmetal-dev/flintlock/client v0.0.0-20261003123307-ae2417facf95 + github.com/onsi/gomega v1.44.0 github.com/yitsushi/macpot v1.0.2 - google.golang.org/protobuf v1.34.1 + google.golang.org/protobuf v1.36.12 gopkg.in/yaml.v2 v2.4.0 k8s.io/utils v0.0.0-20221108210102-8e77b1f39fe2 ) require ( - github.com/google/go-cmp v0.6.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect - github.com/kr/text v0.2.0 // indirect - github.com/rogpeppe/go-internal v1.13.1 // indirect + github.com/google/go-cmp v0.7.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.31.0 // indirect github.com/stretchr/testify v1.8.0 // indirect - golang.org/x/net v0.26.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/text v0.16.0 // indirect + go.yaml.in/yaml/v3 v3.0.5 // indirect + golang.org/x/net v0.59.0 // indirect + golang.org/x/sys v0.48.0 // indirect + golang.org/x/text v0.42.0 // indirect google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect - google.golang.org/grpc v1.64.1 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect + google.golang.org/grpc v1.84.0 // indirect ) diff --git a/services/microvm/go.sum b/services/microvm/go.sum index b130c70..e506bd1 100644 --- a/services/microvm/go.sum +++ b/services/microvm/go.sum @@ -1,33 +1,24 @@ -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= -github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k= -github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/liquidmetal-dev/controller-pkg/client v0.0.0-20250206153520-fa7b57540c18 h1:dPlUm7HTauzVpKMSO2+hvfftIv3gRfirGNWncEeTAFs= -github.com/liquidmetal-dev/controller-pkg/client v0.0.0-20250206153520-fa7b57540c18/go.mod h1:oCeJDvq7d5RaW/uPc08KQRHbCQdBbkuE9w/XXhMnXDM= -github.com/liquidmetal-dev/controller-pkg/types/microvm v0.0.0-20250207115528-f599d8cc9a1d h1:cSeIHGazh7eq5LIUK2mwNQWbXo5muMhmSCP5JcZAO7k= -github.com/liquidmetal-dev/controller-pkg/types/microvm v0.0.0-20250207115528-f599d8cc9a1d/go.mod h1:WtVMaW23bVAY5G5Gv2h4PKMQ6+MEyAX/runKS1uEgEQ= -github.com/liquidmetal-dev/flintlock/api v0.0.0-20250205095343-755c4154ea88 h1:ABGBkcmr2xvXYNC59wuUSwOcQ9DeWyRM4rTftWaJ1vA= -github.com/liquidmetal-dev/flintlock/api v0.0.0-20250205095343-755c4154ea88/go.mod h1:aocJfIjHYMXrTvuISK75KQz3SEm1Xd+4BGIZike1jhI= -github.com/liquidmetal-dev/flintlock/client v0.0.0-20250205095343-755c4154ea88 h1:PK5YcT/ODWAKC4iO6iXVn+BJwXtiRLBeBUSKDPMyh1A= -github.com/liquidmetal-dev/flintlock/client v0.0.0-20250205095343-755c4154ea88/go.mod h1:NChE0jzlpZA1395punDaV+5hJbVeVhoCcPHriNC0SUQ= -github.com/onsi/ginkgo/v2 v2.5.0 h1:TRtrvv2vdQqzkwrQ1ke6vtXf7IK34RBUJafIy1wMwls= -github.com/onsi/ginkgo/v2 v2.5.0/go.mod h1:Luc4sArBICYCS8THh8v3i3i5CuSZO+RaQRaJoeNwomw= -github.com/onsi/gomega v1.24.1 h1:KORJXNNTzJXzu4ScJWssJfJMnJ+2QJqhoQSRwNlze9E= -github.com/onsi/gomega v1.24.1/go.mod h1:3AOiACssS3/MajrniINInwbfOOtfZvplPzuRSmvt1jM= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.31.0 h1:Bd7KaOxzULLxtZ/K5s1aLbWhR0+5RToO65TXHsf3bqQ= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.31.0/go.mod h1:nN7ts3dFXKtCZWc//yfkpcQNKJABg16/uDVAZpLDalo= +github.com/liquidmetal-dev/controller-pkg/client v0.0.0-20261026124125-13bd81e2ca09 h1:HKZZJeSlVlGefju92d5MQXhlAR/55sYTYt0BlEWwZj8= +github.com/liquidmetal-dev/controller-pkg/client v0.0.0-20261026124125-13bd81e2ca09/go.mod h1:7Blh7X/ks1uy9r5nm0UbAQf5KNl7P0FK64fZcOijqWI= +github.com/liquidmetal-dev/controller-pkg/types/microvm v0.0.0-20261026124125-13bd81e2ca09 h1:Lwqtv1JWAusQqci0eiI+DAmngVPbINm5zmQND4nNuFQ= +github.com/liquidmetal-dev/controller-pkg/types/microvm v0.0.0-20261026124125-13bd81e2ca09/go.mod h1:WtVMaW23bVAY5G5Gv2h4PKMQ6+MEyAX/runKS1uEgEQ= +github.com/liquidmetal-dev/flintlock/api v0.0.0-20261003123307-ae2417facf95 h1:NcoA5II6DdKfU0LnbVCjTgz6XmUa//hsdQvZHZYyWtc= +github.com/liquidmetal-dev/flintlock/api v0.0.0-20261003123307-ae2417facf95/go.mod h1:+MX1HsjB9LnSYysNwANCYa0bTnx2tuCzycyqa8XUG9A= +github.com/liquidmetal-dev/flintlock/client v0.0.0-20261003123307-ae2417facf95 h1:N3CfUDBhjSkym3UohuO4rQAhkKv72Mao3kMF1LFQQEY= +github.com/liquidmetal-dev/flintlock/client v0.0.0-20261003123307-ae2417facf95/go.mod h1:5yLcwzaJr9XVbDoq3KPyu8H0XvF6hqnKVPQ4hyJpBKw= +github.com/onsi/gomega v1.44.0 h1:eAiGl3Pw5jz5GQdDff0BcxYpAX1JxW8xD7mFUuwNfZQ= +github.com/onsi/gomega v1.44.0/go.mod h1:e/C2HwaZ1DhvjzXXuFhcR7hY7Sh9pl7MmoWKEjzwcdA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= -github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= @@ -35,21 +26,24 @@ github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PK github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/yitsushi/macpot v1.0.2 h1:LSiBfVKRhzrvUTBDO2GZYAQvS+gG9wdzPaaiNeR29KM= github.com/yitsushi/macpot v1.0.2/go.mod h1:7KBzokvUNbcsR1VcmKwmYRWB2FyAWcIll4L93b2A8q4= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= -golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= +go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +golang.org/x/net v0.59.0 h1:5zfYln+w5XCxwrnMMJPufRgNoXEaGxl0wo5GqPXyues= +golang.org/x/net v0.59.0/go.mod h1:2DA/G1UfVbCpQPeWTmMPGY7Cs2PkBkwu743bVX5PIVg= +golang.org/x/sys v0.48.0 h1:bbX/i/6MgT9BVLM9RT1thmxL04yeTAhbEz4SyadbXoo= +golang.org/x/sys v0.48.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= +golang.org/x/text v0.42.0 h1:JbOZXgfeCPU9gacVtYliJqOhD+zhrEqK4LfdpmlUZqI= +golang.org/x/text v0.42.0/go.mod h1:ojzP1Z+2QtioaF8DTtO8K5q7JWVVYwZKenzujK0Zd0E= +gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= +gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A= google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= -google.golang.org/grpc v1.64.1 h1:LKtvyfbX3UGVPFcGqJ9ItpVWW6oN/2XqTxfAnwRRXiA= -google.golang.org/grpc v1.64.1/go.mod h1:hiQF4LFZelK2WKaP6W0L92zGHtiQdZxk8CrSdvyjeP0= -google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= -google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/grpc v1.84.0 h1:soMyaPJ8pAak5PIQ0DGBUir0XRo2fRoMqhNWMLlLxO0= +google.golang.org/grpc v1.84.0/go.mod h1:ljCht0DrxQrXBDRTZp52Qxh3Ffk8CdYm2sj4O2QN2C0= +google.golang.org/protobuf v1.36.12 h1:pJOKDDOyeXErUroCihFAd5LQuwXBSpVnKGrj5o/fwxc= +google.golang.org/protobuf v1.36.12/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=