From 8d7f2e8f5571327fd350e4110645de8a75d8ef24 Mon Sep 17 00:00:00 2001 From: Utku Ozdemir Date: Tue, 12 Nov 2024 15:08:07 +0100 Subject: [PATCH] feat: add all firmware extensions into the agent boot assets Grab all the firmware extensions in the extensions repo, and make them part of the boot assets image (which is mainly used for local development). Also: - Add a simple hello (ping) endpoint to the GRPC server. - Replace some of the temporary settings in .kres.yaml to their final ones. - Bump Talos version references to `v1.9.0-alpha.2`. - Bump Go to 1.23.3. Signed-off-by: Utku Ozdemir --- .kres.yaml | 13 +- Dockerfile | 4 +- Makefile | 17 +- README.md | 2 +- api/agent/agent.pb.go | 403 ++++++++++++++++++++-------------- api/agent/agent.proto | 11 +- api/agent/agent_grpc.pb.go | 52 ++++- api/agent/agent_vtproto.pb.go | 308 +++++++++++++++++++++++--- go.mod | 27 +-- go.sum | 58 ++--- hack/boot-assets/build.sh | 38 +++- internal/service/service.go | 9 +- internal/version/data/tag | 2 +- 13 files changed, 681 insertions(+), 263 deletions(-) diff --git a/.kres.yaml b/.kres.yaml index d91277a..c654a81 100644 --- a/.kres.yaml +++ b/.kres.yaml @@ -44,6 +44,7 @@ spec: EXTENSIONS_REPO=$(EXTENSIONS_REPO) EXTENSIONS_REF=$(EXTENSIONS_REF) EXTENSIONS_PATH=$(EXTENSIONS_PATH) + EXTENSION_DIGESTS_IMAGE=$(EXTENSION_DIGESTS_IMAGE) IMAGER_REGISTRY_AND_USERNAME=$(IMAGER_REGISTRY_AND_USERNAME) IMAGER_TAG=$(IMAGER_TAG) PUSH_TAG=$(PUSH_TAG) @@ -53,19 +54,19 @@ spec: hack/boot-assets/build.sh variables: # MAKE SURE to have the same values in the push-boot-assets step as well - name: EXTENSIONS_REPO - defaultValue: https://github.com/utkuozdemir/sidero-extensions.git # # todo: temporary, revert to the value below after https://github.com/siderolabs/extensions/pull/491 is merged - #defaultValue: https://github.com/siderolabs/extensions.git + defaultValue: https://github.com/siderolabs/extensions.git - name: EXTENSIONS_REF - defaultValue: metal-agent-mode # todo: temporary, revert to the value below after https://github.com/siderolabs/extensions/pull/491 is merged - #defaultValue: main + defaultValue: v1.9.0-alpha.2 - name: EXTENSIONS_PATH defaultValue: guest-agents/metal-agent + - name: EXTENSION_DIGESTS_IMAGE + defaultValue: ghcr.io/siderolabs/extensions - name: IMAGER_REGISTRY_AND_USERNAME defaultValue: ghcr.io/siderolabs - name: IMAGER_TAG # this must point to a commit where Talos agent mode logic was introduced, # i.e., not older than https://github.com/siderolabs/talos/commit/2136358d65ddf6ad040ed62c835b335f99a59399 - defaultValue: v1.9.0-alpha.0-53-g05c620957 + defaultValue: v1.9.0-alpha.2 - name: PUSH_TAG defaultValue: "" # if specified, needs to be a semver tag for the extension validation to not fail - name: OUTPUT_REGISTRY_AND_USERNAME @@ -91,7 +92,7 @@ spec: hack/boot-assets/push.sh variables: # MAKE SURE to have the same values in the image-boot-assets step as well - name: IMAGER_TAG - defaultValue: v1.9.0-alpha.0-53-g05c620957 # point to the same one above + defaultValue: v1.9.0-alpha.2 # point to the same one above - name: PUSH_TAG defaultValue: "" # point to the same one above - name: OUTPUT_REGISTRY_AND_USERNAME diff --git a/Dockerfile b/Dockerfile index d91a0cb..95cb3a4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,8 @@ -# syntax = docker/dockerfile-upstream:1.11.0-labs +# syntax = docker/dockerfile-upstream:1.11.1-labs # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2024-11-05T11:43:39Z by kres 398a599. +# Generated on 2024-11-12T13:39:39Z by kres b6443eb. ARG TOOLCHAIN diff --git a/Makefile b/Makefile index 5cdf365..994e6c8 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2024-11-06T14:42:38Z by kres 1fc767a. +# Generated on 2024-11-12T14:03:44Z by kres b6443eb. # common variables @@ -21,11 +21,11 @@ PROTOBUF_GO_VERSION ?= 1.35.1 GRPC_GO_VERSION ?= 1.5.1 GRPC_GATEWAY_VERSION ?= 2.23.0 VTPROTOBUF_VERSION ?= 0.6.0 -GOIMPORTS_VERSION ?= 0.26.0 +GOIMPORTS_VERSION ?= 0.27.0 DEEPCOPY_VERSION ?= v0.5.6 -GOLANGCILINT_VERSION ?= v1.61.0 +GOLANGCILINT_VERSION ?= v1.62.0 GOFUMPT_VERSION ?= v0.7.0 -GO_VERSION ?= 1.23.2 +GO_VERSION ?= 1.23.3 GO_BUILDFLAGS ?= GO_LDFLAGS ?= CGO_ENABLED ?= 0 @@ -72,11 +72,12 @@ TOOLCHAIN ?= docker.io/golang:1.23-alpine # extra variables -EXTENSIONS_REPO ?= https://github.com/utkuozdemir/sidero-extensions.git -EXTENSIONS_REF ?= metal-agent-mode +EXTENSIONS_REPO ?= https://github.com/siderolabs/extensions.git +EXTENSIONS_REF ?= v1.9.0-alpha.2 EXTENSIONS_PATH ?= guest-agents/metal-agent +EXTENSION_DIGESTS_IMAGE ?= ghcr.io/siderolabs/extensions IMAGER_REGISTRY_AND_USERNAME ?= ghcr.io/siderolabs -IMAGER_TAG ?= v1.9.0-alpha.0-53-g05c620957 +IMAGER_TAG ?= v1.9.0-alpha.2 PUSH_TAG ?= OUTPUT_REGISTRY_AND_USERNAME ?= ghcr.io/siderolabs TEMP_REGISTRY ?= 127.0.0.1:5005 @@ -229,7 +230,7 @@ image-talos-metal-agent: ## Builds image for talos-metal-agent. .PHONY: image-boot-assets image-boot-assets: - EXTENSIONS_REPO=$(EXTENSIONS_REPO) EXTENSIONS_REF=$(EXTENSIONS_REF) EXTENSIONS_PATH=$(EXTENSIONS_PATH) IMAGER_REGISTRY_AND_USERNAME=$(IMAGER_REGISTRY_AND_USERNAME) IMAGER_TAG=$(IMAGER_TAG) PUSH_TAG=$(PUSH_TAG) BUILD_TAG=$(TAG) OUTPUT_REGISTRY_AND_USERNAME=$(OUTPUT_REGISTRY_AND_USERNAME) TEMP_REGISTRY=$(TEMP_REGISTRY) hack/boot-assets/build.sh + EXTENSIONS_REPO=$(EXTENSIONS_REPO) EXTENSIONS_REF=$(EXTENSIONS_REF) EXTENSIONS_PATH=$(EXTENSIONS_PATH) EXTENSION_DIGESTS_IMAGE=$(EXTENSION_DIGESTS_IMAGE) IMAGER_REGISTRY_AND_USERNAME=$(IMAGER_REGISTRY_AND_USERNAME) IMAGER_TAG=$(IMAGER_TAG) PUSH_TAG=$(PUSH_TAG) BUILD_TAG=$(TAG) OUTPUT_REGISTRY_AND_USERNAME=$(OUTPUT_REGISTRY_AND_USERNAME) TEMP_REGISTRY=$(TEMP_REGISTRY) hack/boot-assets/build.sh .PHONY: push-boot-assets push-boot-assets: diff --git a/README.md b/README.md index f239e6a..123f280 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ When developing the agent, after doing your changes, run the following command t - You can build against a different Talos version using the `IMAGER_TAG` variable. - You can customize the extensions repo references using `EXTENSIONS_*` variables. - This command will build a container image with a tag like `127.0.0.1:5005/siderolabs/talos-metal-agent-boot-assets:v1.9.0-alpha.0-53-g05c620957-agent-198cabf-dirty`, with the following structure: + This command will build a container image with a tag like `127.0.0.1:5005/siderolabs/talos-metal-agent-boot-assets:v1.9.0-alpha.2-agent-198cabf-dirty`, with the following structure: ```text Permission UID:GID Size Filetree diff --git a/api/agent/agent.pb.go b/api/agent/agent.pb.go index 4e61cf9..8b2bfc1 100644 --- a/api/agent/agent.pb.go +++ b/api/agent/agent.pb.go @@ -24,6 +24,78 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type HelloRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *HelloRequest) Reset() { + *x = HelloRequest{} + mi := &file_agent_agent_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *HelloRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HelloRequest) ProtoMessage() {} + +func (x *HelloRequest) ProtoReflect() protoreflect.Message { + mi := &file_agent_agent_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HelloRequest.ProtoReflect.Descriptor instead. +func (*HelloRequest) Descriptor() ([]byte, []int) { + return file_agent_agent_proto_rawDescGZIP(), []int{0} +} + +type HelloResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *HelloResponse) Reset() { + *x = HelloResponse{} + mi := &file_agent_agent_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *HelloResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HelloResponse) ProtoMessage() {} + +func (x *HelloResponse) ProtoReflect() protoreflect.Message { + mi := &file_agent_agent_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HelloResponse.ProtoReflect.Descriptor instead. +func (*HelloResponse) Descriptor() ([]byte, []int) { + return file_agent_agent_proto_rawDescGZIP(), []int{1} +} + type GetPowerManagementRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -35,7 +107,7 @@ type GetPowerManagementRequest struct { func (x *GetPowerManagementRequest) Reset() { *x = GetPowerManagementRequest{} - mi := &file_agent_agent_proto_msgTypes[0] + mi := &file_agent_agent_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -47,7 +119,7 @@ func (x *GetPowerManagementRequest) String() string { func (*GetPowerManagementRequest) ProtoMessage() {} func (x *GetPowerManagementRequest) ProtoReflect() protoreflect.Message { - mi := &file_agent_agent_proto_msgTypes[0] + mi := &file_agent_agent_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -60,7 +132,7 @@ func (x *GetPowerManagementRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPowerManagementRequest.ProtoReflect.Descriptor instead. func (*GetPowerManagementRequest) Descriptor() ([]byte, []int) { - return file_agent_agent_proto_rawDescGZIP(), []int{0} + return file_agent_agent_proto_rawDescGZIP(), []int{2} } func (x *GetPowerManagementRequest) GetIpmi() *GetPowerManagementRequest_IPMI { @@ -88,7 +160,7 @@ type GetPowerManagementResponse struct { func (x *GetPowerManagementResponse) Reset() { *x = GetPowerManagementResponse{} - mi := &file_agent_agent_proto_msgTypes[1] + mi := &file_agent_agent_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -100,7 +172,7 @@ func (x *GetPowerManagementResponse) String() string { func (*GetPowerManagementResponse) ProtoMessage() {} func (x *GetPowerManagementResponse) ProtoReflect() protoreflect.Message { - mi := &file_agent_agent_proto_msgTypes[1] + mi := &file_agent_agent_proto_msgTypes[3] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113,7 +185,7 @@ func (x *GetPowerManagementResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPowerManagementResponse.ProtoReflect.Descriptor instead. func (*GetPowerManagementResponse) Descriptor() ([]byte, []int) { - return file_agent_agent_proto_rawDescGZIP(), []int{1} + return file_agent_agent_proto_rawDescGZIP(), []int{3} } func (x *GetPowerManagementResponse) GetIpmi() *GetPowerManagementResponse_IPMI { @@ -141,7 +213,7 @@ type SetPowerManagementRequest struct { func (x *SetPowerManagementRequest) Reset() { *x = SetPowerManagementRequest{} - mi := &file_agent_agent_proto_msgTypes[2] + mi := &file_agent_agent_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -153,7 +225,7 @@ func (x *SetPowerManagementRequest) String() string { func (*SetPowerManagementRequest) ProtoMessage() {} func (x *SetPowerManagementRequest) ProtoReflect() protoreflect.Message { - mi := &file_agent_agent_proto_msgTypes[2] + mi := &file_agent_agent_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -166,7 +238,7 @@ func (x *SetPowerManagementRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetPowerManagementRequest.ProtoReflect.Descriptor instead. func (*SetPowerManagementRequest) Descriptor() ([]byte, []int) { - return file_agent_agent_proto_rawDescGZIP(), []int{2} + return file_agent_agent_proto_rawDescGZIP(), []int{4} } func (x *SetPowerManagementRequest) GetIpmi() *SetPowerManagementRequest_IPMI { @@ -191,7 +263,7 @@ type SetPowerManagementResponse struct { func (x *SetPowerManagementResponse) Reset() { *x = SetPowerManagementResponse{} - mi := &file_agent_agent_proto_msgTypes[3] + mi := &file_agent_agent_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -203,7 +275,7 @@ func (x *SetPowerManagementResponse) String() string { func (*SetPowerManagementResponse) ProtoMessage() {} func (x *SetPowerManagementResponse) ProtoReflect() protoreflect.Message { - mi := &file_agent_agent_proto_msgTypes[3] + mi := &file_agent_agent_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -216,7 +288,7 @@ func (x *SetPowerManagementResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SetPowerManagementResponse.ProtoReflect.Descriptor instead. func (*SetPowerManagementResponse) Descriptor() ([]byte, []int) { - return file_agent_agent_proto_rawDescGZIP(), []int{3} + return file_agent_agent_proto_rawDescGZIP(), []int{5} } type RebootRequest struct { @@ -227,7 +299,7 @@ type RebootRequest struct { func (x *RebootRequest) Reset() { *x = RebootRequest{} - mi := &file_agent_agent_proto_msgTypes[4] + mi := &file_agent_agent_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -239,7 +311,7 @@ func (x *RebootRequest) String() string { func (*RebootRequest) ProtoMessage() {} func (x *RebootRequest) ProtoReflect() protoreflect.Message { - mi := &file_agent_agent_proto_msgTypes[4] + mi := &file_agent_agent_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -252,7 +324,7 @@ func (x *RebootRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RebootRequest.ProtoReflect.Descriptor instead. func (*RebootRequest) Descriptor() ([]byte, []int) { - return file_agent_agent_proto_rawDescGZIP(), []int{4} + return file_agent_agent_proto_rawDescGZIP(), []int{6} } type RebootResponse struct { @@ -263,7 +335,7 @@ type RebootResponse struct { func (x *RebootResponse) Reset() { *x = RebootResponse{} - mi := &file_agent_agent_proto_msgTypes[5] + mi := &file_agent_agent_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -275,7 +347,7 @@ func (x *RebootResponse) String() string { func (*RebootResponse) ProtoMessage() {} func (x *RebootResponse) ProtoReflect() protoreflect.Message { - mi := &file_agent_agent_proto_msgTypes[5] + mi := &file_agent_agent_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -288,30 +360,30 @@ func (x *RebootResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RebootResponse.ProtoReflect.Descriptor instead. func (*RebootResponse) Descriptor() ([]byte, []int) { - return file_agent_agent_proto_rawDescGZIP(), []int{5} + return file_agent_agent_proto_rawDescGZIP(), []int{7} } -type WipeRequest struct { +type WipeDisksRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *WipeRequest) Reset() { - *x = WipeRequest{} - mi := &file_agent_agent_proto_msgTypes[6] +func (x *WipeDisksRequest) Reset() { + *x = WipeDisksRequest{} + mi := &file_agent_agent_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *WipeRequest) String() string { +func (x *WipeDisksRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WipeRequest) ProtoMessage() {} +func (*WipeDisksRequest) ProtoMessage() {} -func (x *WipeRequest) ProtoReflect() protoreflect.Message { - mi := &file_agent_agent_proto_msgTypes[6] +func (x *WipeDisksRequest) ProtoReflect() protoreflect.Message { + mi := &file_agent_agent_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -322,32 +394,32 @@ func (x *WipeRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use WipeRequest.ProtoReflect.Descriptor instead. -func (*WipeRequest) Descriptor() ([]byte, []int) { - return file_agent_agent_proto_rawDescGZIP(), []int{6} +// Deprecated: Use WipeDisksRequest.ProtoReflect.Descriptor instead. +func (*WipeDisksRequest) Descriptor() ([]byte, []int) { + return file_agent_agent_proto_rawDescGZIP(), []int{8} } -type WipeResponse struct { +type WipeDisksResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *WipeResponse) Reset() { - *x = WipeResponse{} - mi := &file_agent_agent_proto_msgTypes[7] +func (x *WipeDisksResponse) Reset() { + *x = WipeDisksResponse{} + mi := &file_agent_agent_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *WipeResponse) String() string { +func (x *WipeDisksResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WipeResponse) ProtoMessage() {} +func (*WipeDisksResponse) ProtoMessage() {} -func (x *WipeResponse) ProtoReflect() protoreflect.Message { - mi := &file_agent_agent_proto_msgTypes[7] +func (x *WipeDisksResponse) ProtoReflect() protoreflect.Message { + mi := &file_agent_agent_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -358,9 +430,9 @@ func (x *WipeResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use WipeResponse.ProtoReflect.Descriptor instead. -func (*WipeResponse) Descriptor() ([]byte, []int) { - return file_agent_agent_proto_rawDescGZIP(), []int{7} +// Deprecated: Use WipeDisksResponse.ProtoReflect.Descriptor instead. +func (*WipeDisksResponse) Descriptor() ([]byte, []int) { + return file_agent_agent_proto_rawDescGZIP(), []int{9} } type GetPowerManagementRequest_IPMI struct { @@ -373,7 +445,7 @@ type GetPowerManagementRequest_IPMI struct { func (x *GetPowerManagementRequest_IPMI) Reset() { *x = GetPowerManagementRequest_IPMI{} - mi := &file_agent_agent_proto_msgTypes[8] + mi := &file_agent_agent_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -385,7 +457,7 @@ func (x *GetPowerManagementRequest_IPMI) String() string { func (*GetPowerManagementRequest_IPMI) ProtoMessage() {} func (x *GetPowerManagementRequest_IPMI) ProtoReflect() protoreflect.Message { - mi := &file_agent_agent_proto_msgTypes[8] + mi := &file_agent_agent_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -398,7 +470,7 @@ func (x *GetPowerManagementRequest_IPMI) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPowerManagementRequest_IPMI.ProtoReflect.Descriptor instead. func (*GetPowerManagementRequest_IPMI) Descriptor() ([]byte, []int) { - return file_agent_agent_proto_rawDescGZIP(), []int{0, 0} + return file_agent_agent_proto_rawDescGZIP(), []int{2, 0} } func (x *GetPowerManagementRequest_IPMI) GetCheckUsername() string { @@ -416,7 +488,7 @@ type GetPowerManagementRequest_API struct { func (x *GetPowerManagementRequest_API) Reset() { *x = GetPowerManagementRequest_API{} - mi := &file_agent_agent_proto_msgTypes[9] + mi := &file_agent_agent_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -428,7 +500,7 @@ func (x *GetPowerManagementRequest_API) String() string { func (*GetPowerManagementRequest_API) ProtoMessage() {} func (x *GetPowerManagementRequest_API) ProtoReflect() protoreflect.Message { - mi := &file_agent_agent_proto_msgTypes[9] + mi := &file_agent_agent_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -441,7 +513,7 @@ func (x *GetPowerManagementRequest_API) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPowerManagementRequest_API.ProtoReflect.Descriptor instead. func (*GetPowerManagementRequest_API) Descriptor() ([]byte, []int) { - return file_agent_agent_proto_rawDescGZIP(), []int{0, 1} + return file_agent_agent_proto_rawDescGZIP(), []int{2, 1} } type GetPowerManagementResponse_IPMI struct { @@ -456,7 +528,7 @@ type GetPowerManagementResponse_IPMI struct { func (x *GetPowerManagementResponse_IPMI) Reset() { *x = GetPowerManagementResponse_IPMI{} - mi := &file_agent_agent_proto_msgTypes[10] + mi := &file_agent_agent_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -468,7 +540,7 @@ func (x *GetPowerManagementResponse_IPMI) String() string { func (*GetPowerManagementResponse_IPMI) ProtoMessage() {} func (x *GetPowerManagementResponse_IPMI) ProtoReflect() protoreflect.Message { - mi := &file_agent_agent_proto_msgTypes[10] + mi := &file_agent_agent_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -481,7 +553,7 @@ func (x *GetPowerManagementResponse_IPMI) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPowerManagementResponse_IPMI.ProtoReflect.Descriptor instead. func (*GetPowerManagementResponse_IPMI) Descriptor() ([]byte, []int) { - return file_agent_agent_proto_rawDescGZIP(), []int{1, 0} + return file_agent_agent_proto_rawDescGZIP(), []int{3, 0} } func (x *GetPowerManagementResponse_IPMI) GetAddress() string { @@ -513,7 +585,7 @@ type GetPowerManagementResponse_API struct { func (x *GetPowerManagementResponse_API) Reset() { *x = GetPowerManagementResponse_API{} - mi := &file_agent_agent_proto_msgTypes[11] + mi := &file_agent_agent_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -525,7 +597,7 @@ func (x *GetPowerManagementResponse_API) String() string { func (*GetPowerManagementResponse_API) ProtoMessage() {} func (x *GetPowerManagementResponse_API) ProtoReflect() protoreflect.Message { - mi := &file_agent_agent_proto_msgTypes[11] + mi := &file_agent_agent_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -538,7 +610,7 @@ func (x *GetPowerManagementResponse_API) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPowerManagementResponse_API.ProtoReflect.Descriptor instead. func (*GetPowerManagementResponse_API) Descriptor() ([]byte, []int) { - return file_agent_agent_proto_rawDescGZIP(), []int{1, 1} + return file_agent_agent_proto_rawDescGZIP(), []int{3, 1} } type SetPowerManagementRequest_IPMI struct { @@ -552,7 +624,7 @@ type SetPowerManagementRequest_IPMI struct { func (x *SetPowerManagementRequest_IPMI) Reset() { *x = SetPowerManagementRequest_IPMI{} - mi := &file_agent_agent_proto_msgTypes[12] + mi := &file_agent_agent_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -564,7 +636,7 @@ func (x *SetPowerManagementRequest_IPMI) String() string { func (*SetPowerManagementRequest_IPMI) ProtoMessage() {} func (x *SetPowerManagementRequest_IPMI) ProtoReflect() protoreflect.Message { - mi := &file_agent_agent_proto_msgTypes[12] + mi := &file_agent_agent_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -577,7 +649,7 @@ func (x *SetPowerManagementRequest_IPMI) ProtoReflect() protoreflect.Message { // Deprecated: Use SetPowerManagementRequest_IPMI.ProtoReflect.Descriptor instead. func (*SetPowerManagementRequest_IPMI) Descriptor() ([]byte, []int) { - return file_agent_agent_proto_rawDescGZIP(), []int{2, 0} + return file_agent_agent_proto_rawDescGZIP(), []int{4, 0} } func (x *SetPowerManagementRequest_IPMI) GetUsername() string { @@ -602,7 +674,7 @@ type SetPowerManagementRequest_API struct { func (x *SetPowerManagementRequest_API) Reset() { *x = SetPowerManagementRequest_API{} - mi := &file_agent_agent_proto_msgTypes[13] + mi := &file_agent_agent_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -614,7 +686,7 @@ func (x *SetPowerManagementRequest_API) String() string { func (*SetPowerManagementRequest_API) ProtoMessage() {} func (x *SetPowerManagementRequest_API) ProtoReflect() protoreflect.Message { - mi := &file_agent_agent_proto_msgTypes[13] + mi := &file_agent_agent_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -627,7 +699,7 @@ func (x *SetPowerManagementRequest_API) ProtoReflect() protoreflect.Message { // Deprecated: Use SetPowerManagementRequest_API.ProtoReflect.Descriptor instead. func (*SetPowerManagementRequest_API) Descriptor() ([]byte, []int) { - return file_agent_agent_proto_rawDescGZIP(), []int{2, 1} + return file_agent_agent_proto_rawDescGZIP(), []int{4, 1} } var File_agent_agent_proto protoreflect.FileDescriptor @@ -640,82 +712,89 @@ var file_agent_agent_proto_rawDesc = []byte{ 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xce, 0x01, - 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x69, - 0x70, 0x6d, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x61, 0x6e, 0x61, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x0e, 0x0a, + 0x0c, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x0f, 0x0a, + 0x0d, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xce, + 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, + 0x69, 0x70, 0x6d, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, + 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x49, 0x50, 0x4d, 0x49, 0x52, 0x04, 0x69, 0x70, 0x6d, 0x69, 0x12, 0x3b, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x49, 0x50, 0x4d, 0x49, 0x52, 0x04, 0x69, 0x70, 0x6d, 0x69, 0x12, 0x3b, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, - 0x41, 0x50, 0x49, 0x52, 0x03, 0x61, 0x70, 0x69, 0x1a, 0x2d, 0x0a, 0x04, 0x49, 0x50, 0x4d, 0x49, - 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x55, - 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x05, 0x0a, 0x03, 0x41, 0x50, 0x49, 0x22, 0xf9, - 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, - 0x04, 0x69, 0x70, 0x6d, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, - 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x50, 0x4d, 0x49, 0x52, 0x04, 0x69, 0x70, 0x6d, 0x69, 0x12, 0x3c, - 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, - 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x50, 0x49, 0x52, 0x03, 0x61, 0x70, 0x69, 0x1a, 0x55, 0x0a, 0x04, - 0x49, 0x50, 0x4d, 0x49, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, - 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, - 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x69, - 0x73, 0x74, 0x73, 0x1a, 0x05, 0x0a, 0x03, 0x41, 0x50, 0x49, 0x22, 0xdf, 0x01, 0x0a, 0x19, 0x53, - 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x69, 0x70, 0x6d, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x50, - 0x4d, 0x49, 0x52, 0x04, 0x69, 0x70, 0x6d, 0x69, 0x12, 0x3b, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x50, 0x49, - 0x52, 0x03, 0x61, 0x70, 0x69, 0x1a, 0x3e, 0x0a, 0x04, 0x49, 0x50, 0x4d, 0x49, 0x12, 0x1a, 0x0a, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x1a, 0x05, 0x0a, 0x03, 0x41, 0x50, 0x49, 0x22, 0x1c, 0x0a, 0x1a, + 0x2e, 0x41, 0x50, 0x49, 0x52, 0x03, 0x61, 0x70, 0x69, 0x1a, 0x2d, 0x0a, 0x04, 0x49, 0x50, 0x4d, + 0x49, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x05, 0x0a, 0x03, 0x41, 0x50, 0x49, 0x22, + 0xf9, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, + 0x0a, 0x04, 0x69, 0x70, 0x6d, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x77, + 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x50, 0x4d, 0x49, 0x52, 0x04, 0x69, 0x70, 0x6d, 0x69, 0x12, + 0x3c, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x77, + 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x50, 0x49, 0x52, 0x03, 0x61, 0x70, 0x69, 0x1a, 0x55, 0x0a, + 0x04, 0x49, 0x50, 0x4d, 0x49, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, + 0x6f, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x69, 0x73, + 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, + 0x69, 0x73, 0x74, 0x73, 0x1a, 0x05, 0x0a, 0x03, 0x41, 0x50, 0x49, 0x22, 0xdf, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, - 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x10, 0x0a, 0x0e, 0x52, - 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0d, 0x0a, - 0x0b, 0x57, 0x69, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x0e, 0x0a, 0x0c, - 0x57, 0x69, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xd9, 0x02, 0x0a, - 0x0c, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x63, 0x0a, - 0x12, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x25, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x69, 0x70, 0x6d, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, + 0x50, 0x4d, 0x49, 0x52, 0x04, 0x69, 0x70, 0x6d, 0x69, 0x12, 0x3b, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x50, + 0x49, 0x52, 0x03, 0x61, 0x70, 0x69, 0x1a, 0x3e, 0x0a, 0x04, 0x49, 0x50, 0x4d, 0x49, 0x12, 0x1a, + 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x1a, 0x05, 0x0a, 0x03, 0x41, 0x50, 0x49, 0x22, 0x1c, 0x0a, + 0x1a, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x52, + 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x10, 0x0a, 0x0e, + 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x12, + 0x0a, 0x10, 0x57, 0x69, 0x70, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x13, 0x0a, 0x11, 0x57, 0x69, 0x70, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xa1, 0x03, 0x0a, 0x0c, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x48, 0x65, 0x6c, 0x6c, + 0x6f, 0x12, 0x18, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x48, + 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x77, + 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x2e, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x77, + 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, - 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x63, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x12, 0x53, + 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x25, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, + 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x26, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, - 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x06, 0x52, 0x65, 0x62, 0x6f, 0x6f, - 0x74, 0x12, 0x19, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x52, - 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6d, - 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x09, 0x57, 0x69, 0x70, 0x65, - 0x44, 0x69, 0x73, 0x6b, 0x73, 0x12, 0x17, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3f, 0x0a, 0x06, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x12, 0x19, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x48, 0x0a, 0x09, 0x57, 0x69, 0x70, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x73, 0x12, 0x1c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x70, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x64, 0x65, 0x72, 0x6f, 0x6c, 0x61, 0x62, - 0x73, 0x2f, 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x2d, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x2d, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x44, 0x69, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x70, 0x65, 0x44, 0x69, + 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x3a, 0x5a, 0x38, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x64, 0x65, 0x72, 0x6f, + 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x2d, 0x6d, 0x65, 0x74, 0x61, 0x6c, + 0x2d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -730,40 +809,44 @@ func file_agent_agent_proto_rawDescGZIP() []byte { return file_agent_agent_proto_rawDescData } -var file_agent_agent_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_agent_agent_proto_msgTypes = make([]protoimpl.MessageInfo, 16) var file_agent_agent_proto_goTypes = []any{ - (*GetPowerManagementRequest)(nil), // 0: management.GetPowerManagementRequest - (*GetPowerManagementResponse)(nil), // 1: management.GetPowerManagementResponse - (*SetPowerManagementRequest)(nil), // 2: management.SetPowerManagementRequest - (*SetPowerManagementResponse)(nil), // 3: management.SetPowerManagementResponse - (*RebootRequest)(nil), // 4: management.RebootRequest - (*RebootResponse)(nil), // 5: management.RebootResponse - (*WipeRequest)(nil), // 6: management.WipeRequest - (*WipeResponse)(nil), // 7: management.WipeResponse - (*GetPowerManagementRequest_IPMI)(nil), // 8: management.GetPowerManagementRequest.IPMI - (*GetPowerManagementRequest_API)(nil), // 9: management.GetPowerManagementRequest.API - (*GetPowerManagementResponse_IPMI)(nil), // 10: management.GetPowerManagementResponse.IPMI - (*GetPowerManagementResponse_API)(nil), // 11: management.GetPowerManagementResponse.API - (*SetPowerManagementRequest_IPMI)(nil), // 12: management.SetPowerManagementRequest.IPMI - (*SetPowerManagementRequest_API)(nil), // 13: management.SetPowerManagementRequest.API + (*HelloRequest)(nil), // 0: management.HelloRequest + (*HelloResponse)(nil), // 1: management.HelloResponse + (*GetPowerManagementRequest)(nil), // 2: management.GetPowerManagementRequest + (*GetPowerManagementResponse)(nil), // 3: management.GetPowerManagementResponse + (*SetPowerManagementRequest)(nil), // 4: management.SetPowerManagementRequest + (*SetPowerManagementResponse)(nil), // 5: management.SetPowerManagementResponse + (*RebootRequest)(nil), // 6: management.RebootRequest + (*RebootResponse)(nil), // 7: management.RebootResponse + (*WipeDisksRequest)(nil), // 8: management.WipeDisksRequest + (*WipeDisksResponse)(nil), // 9: management.WipeDisksResponse + (*GetPowerManagementRequest_IPMI)(nil), // 10: management.GetPowerManagementRequest.IPMI + (*GetPowerManagementRequest_API)(nil), // 11: management.GetPowerManagementRequest.API + (*GetPowerManagementResponse_IPMI)(nil), // 12: management.GetPowerManagementResponse.IPMI + (*GetPowerManagementResponse_API)(nil), // 13: management.GetPowerManagementResponse.API + (*SetPowerManagementRequest_IPMI)(nil), // 14: management.SetPowerManagementRequest.IPMI + (*SetPowerManagementRequest_API)(nil), // 15: management.SetPowerManagementRequest.API } var file_agent_agent_proto_depIdxs = []int32{ - 8, // 0: management.GetPowerManagementRequest.ipmi:type_name -> management.GetPowerManagementRequest.IPMI - 9, // 1: management.GetPowerManagementRequest.api:type_name -> management.GetPowerManagementRequest.API - 10, // 2: management.GetPowerManagementResponse.ipmi:type_name -> management.GetPowerManagementResponse.IPMI - 11, // 3: management.GetPowerManagementResponse.api:type_name -> management.GetPowerManagementResponse.API - 12, // 4: management.SetPowerManagementRequest.ipmi:type_name -> management.SetPowerManagementRequest.IPMI - 13, // 5: management.SetPowerManagementRequest.api:type_name -> management.SetPowerManagementRequest.API - 0, // 6: management.AgentService.GetPowerManagement:input_type -> management.GetPowerManagementRequest - 2, // 7: management.AgentService.SetPowerManagement:input_type -> management.SetPowerManagementRequest - 4, // 8: management.AgentService.Reboot:input_type -> management.RebootRequest - 6, // 9: management.AgentService.WipeDisks:input_type -> management.WipeRequest - 1, // 10: management.AgentService.GetPowerManagement:output_type -> management.GetPowerManagementResponse - 3, // 11: management.AgentService.SetPowerManagement:output_type -> management.SetPowerManagementResponse - 5, // 12: management.AgentService.Reboot:output_type -> management.RebootResponse - 7, // 13: management.AgentService.WipeDisks:output_type -> management.WipeResponse - 10, // [10:14] is the sub-list for method output_type - 6, // [6:10] is the sub-list for method input_type + 10, // 0: management.GetPowerManagementRequest.ipmi:type_name -> management.GetPowerManagementRequest.IPMI + 11, // 1: management.GetPowerManagementRequest.api:type_name -> management.GetPowerManagementRequest.API + 12, // 2: management.GetPowerManagementResponse.ipmi:type_name -> management.GetPowerManagementResponse.IPMI + 13, // 3: management.GetPowerManagementResponse.api:type_name -> management.GetPowerManagementResponse.API + 14, // 4: management.SetPowerManagementRequest.ipmi:type_name -> management.SetPowerManagementRequest.IPMI + 15, // 5: management.SetPowerManagementRequest.api:type_name -> management.SetPowerManagementRequest.API + 0, // 6: management.AgentService.Hello:input_type -> management.HelloRequest + 2, // 7: management.AgentService.GetPowerManagement:input_type -> management.GetPowerManagementRequest + 4, // 8: management.AgentService.SetPowerManagement:input_type -> management.SetPowerManagementRequest + 6, // 9: management.AgentService.Reboot:input_type -> management.RebootRequest + 8, // 10: management.AgentService.WipeDisks:input_type -> management.WipeDisksRequest + 1, // 11: management.AgentService.Hello:output_type -> management.HelloResponse + 3, // 12: management.AgentService.GetPowerManagement:output_type -> management.GetPowerManagementResponse + 5, // 13: management.AgentService.SetPowerManagement:output_type -> management.SetPowerManagementResponse + 7, // 14: management.AgentService.Reboot:output_type -> management.RebootResponse + 9, // 15: management.AgentService.WipeDisks:output_type -> management.WipeDisksResponse + 11, // [11:16] is the sub-list for method output_type + 6, // [6:11] is the sub-list for method input_type 6, // [6:6] is the sub-list for extension type_name 6, // [6:6] is the sub-list for extension extendee 0, // [0:6] is the sub-list for field type_name @@ -780,7 +863,7 @@ func file_agent_agent_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_agent_agent_proto_rawDesc, NumEnums: 0, - NumMessages: 14, + NumMessages: 16, NumExtensions: 0, NumServices: 1, }, diff --git a/api/agent/agent.proto b/api/agent/agent.proto index d53ad2f..1b0f221 100644 --- a/api/agent/agent.proto +++ b/api/agent/agent.proto @@ -7,6 +7,10 @@ import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; import "google/protobuf/duration.proto"; +message HelloRequest {} + +message HelloResponse {} + message GetPowerManagementRequest { message IPMI { string check_username = 1; @@ -49,13 +53,14 @@ message RebootRequest {} message RebootResponse {} -message WipeRequest {} +message WipeDisksRequest {} -message WipeResponse {} +message WipeDisksResponse {} service AgentService { + rpc Hello(HelloRequest) returns (HelloResponse); rpc GetPowerManagement(GetPowerManagementRequest) returns (GetPowerManagementResponse); rpc SetPowerManagement(SetPowerManagementRequest) returns (SetPowerManagementResponse); rpc Reboot(RebootRequest) returns (RebootResponse); - rpc WipeDisks(WipeRequest) returns (WipeResponse); + rpc WipeDisks(WipeDisksRequest) returns (WipeDisksResponse); } diff --git a/api/agent/agent_grpc.pb.go b/api/agent/agent_grpc.pb.go index 4a94ba1..46a84f3 100644 --- a/api/agent/agent_grpc.pb.go +++ b/api/agent/agent_grpc.pb.go @@ -20,6 +20,7 @@ import ( const _ = grpc.SupportPackageIsVersion9 const ( + AgentService_Hello_FullMethodName = "/management.AgentService/Hello" AgentService_GetPowerManagement_FullMethodName = "/management.AgentService/GetPowerManagement" AgentService_SetPowerManagement_FullMethodName = "/management.AgentService/SetPowerManagement" AgentService_Reboot_FullMethodName = "/management.AgentService/Reboot" @@ -30,10 +31,11 @@ const ( // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type AgentServiceClient interface { + Hello(ctx context.Context, in *HelloRequest, opts ...grpc.CallOption) (*HelloResponse, error) GetPowerManagement(ctx context.Context, in *GetPowerManagementRequest, opts ...grpc.CallOption) (*GetPowerManagementResponse, error) SetPowerManagement(ctx context.Context, in *SetPowerManagementRequest, opts ...grpc.CallOption) (*SetPowerManagementResponse, error) Reboot(ctx context.Context, in *RebootRequest, opts ...grpc.CallOption) (*RebootResponse, error) - WipeDisks(ctx context.Context, in *WipeRequest, opts ...grpc.CallOption) (*WipeResponse, error) + WipeDisks(ctx context.Context, in *WipeDisksRequest, opts ...grpc.CallOption) (*WipeDisksResponse, error) } type agentServiceClient struct { @@ -44,6 +46,16 @@ func NewAgentServiceClient(cc grpc.ClientConnInterface) AgentServiceClient { return &agentServiceClient{cc} } +func (c *agentServiceClient) Hello(ctx context.Context, in *HelloRequest, opts ...grpc.CallOption) (*HelloResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(HelloResponse) + err := c.cc.Invoke(ctx, AgentService_Hello_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *agentServiceClient) GetPowerManagement(ctx context.Context, in *GetPowerManagementRequest, opts ...grpc.CallOption) (*GetPowerManagementResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(GetPowerManagementResponse) @@ -74,9 +86,9 @@ func (c *agentServiceClient) Reboot(ctx context.Context, in *RebootRequest, opts return out, nil } -func (c *agentServiceClient) WipeDisks(ctx context.Context, in *WipeRequest, opts ...grpc.CallOption) (*WipeResponse, error) { +func (c *agentServiceClient) WipeDisks(ctx context.Context, in *WipeDisksRequest, opts ...grpc.CallOption) (*WipeDisksResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(WipeResponse) + out := new(WipeDisksResponse) err := c.cc.Invoke(ctx, AgentService_WipeDisks_FullMethodName, in, out, cOpts...) if err != nil { return nil, err @@ -88,10 +100,11 @@ func (c *agentServiceClient) WipeDisks(ctx context.Context, in *WipeRequest, opt // All implementations must embed UnimplementedAgentServiceServer // for forward compatibility. type AgentServiceServer interface { + Hello(context.Context, *HelloRequest) (*HelloResponse, error) GetPowerManagement(context.Context, *GetPowerManagementRequest) (*GetPowerManagementResponse, error) SetPowerManagement(context.Context, *SetPowerManagementRequest) (*SetPowerManagementResponse, error) Reboot(context.Context, *RebootRequest) (*RebootResponse, error) - WipeDisks(context.Context, *WipeRequest) (*WipeResponse, error) + WipeDisks(context.Context, *WipeDisksRequest) (*WipeDisksResponse, error) mustEmbedUnimplementedAgentServiceServer() } @@ -102,6 +115,9 @@ type AgentServiceServer interface { // pointer dereference when methods are called. type UnimplementedAgentServiceServer struct{} +func (UnimplementedAgentServiceServer) Hello(context.Context, *HelloRequest) (*HelloResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Hello not implemented") +} func (UnimplementedAgentServiceServer) GetPowerManagement(context.Context, *GetPowerManagementRequest) (*GetPowerManagementResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetPowerManagement not implemented") } @@ -111,7 +127,7 @@ func (UnimplementedAgentServiceServer) SetPowerManagement(context.Context, *SetP func (UnimplementedAgentServiceServer) Reboot(context.Context, *RebootRequest) (*RebootResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Reboot not implemented") } -func (UnimplementedAgentServiceServer) WipeDisks(context.Context, *WipeRequest) (*WipeResponse, error) { +func (UnimplementedAgentServiceServer) WipeDisks(context.Context, *WipeDisksRequest) (*WipeDisksResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method WipeDisks not implemented") } func (UnimplementedAgentServiceServer) mustEmbedUnimplementedAgentServiceServer() {} @@ -135,6 +151,24 @@ func RegisterAgentServiceServer(s grpc.ServiceRegistrar, srv AgentServiceServer) s.RegisterService(&AgentService_ServiceDesc, srv) } +func _AgentService_Hello_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HelloRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AgentServiceServer).Hello(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AgentService_Hello_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AgentServiceServer).Hello(ctx, req.(*HelloRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _AgentService_GetPowerManagement_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetPowerManagementRequest) if err := dec(in); err != nil { @@ -190,7 +224,7 @@ func _AgentService_Reboot_Handler(srv interface{}, ctx context.Context, dec func } func _AgentService_WipeDisks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(WipeRequest) + in := new(WipeDisksRequest) if err := dec(in); err != nil { return nil, err } @@ -202,7 +236,7 @@ func _AgentService_WipeDisks_Handler(srv interface{}, ctx context.Context, dec f FullMethod: AgentService_WipeDisks_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AgentServiceServer).WipeDisks(ctx, req.(*WipeRequest)) + return srv.(AgentServiceServer).WipeDisks(ctx, req.(*WipeDisksRequest)) } return interceptor(ctx, in, info, handler) } @@ -214,6 +248,10 @@ var AgentService_ServiceDesc = grpc.ServiceDesc{ ServiceName: "management.AgentService", HandlerType: (*AgentServiceServer)(nil), Methods: []grpc.MethodDesc{ + { + MethodName: "Hello", + Handler: _AgentService_Hello_Handler, + }, { MethodName: "GetPowerManagement", Handler: _AgentService_GetPowerManagement_Handler, diff --git a/api/agent/agent_vtproto.pb.go b/api/agent/agent_vtproto.pb.go index 27cddc7..7ecdb7a 100644 --- a/api/agent/agent_vtproto.pb.go +++ b/api/agent/agent_vtproto.pb.go @@ -20,6 +20,38 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +func (m *HelloRequest) CloneVT() *HelloRequest { + if m == nil { + return (*HelloRequest)(nil) + } + r := new(HelloRequest) + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *HelloRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *HelloResponse) CloneVT() *HelloResponse { + if m == nil { + return (*HelloResponse)(nil) + } + r := new(HelloResponse) + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *HelloResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + func (m *GetPowerManagementRequest_IPMI) CloneVT() *GetPowerManagementRequest_IPMI { if m == nil { return (*GetPowerManagementRequest_IPMI)(nil) @@ -224,11 +256,11 @@ func (m *RebootResponse) CloneMessageVT() proto.Message { return m.CloneVT() } -func (m *WipeRequest) CloneVT() *WipeRequest { +func (m *WipeDisksRequest) CloneVT() *WipeDisksRequest { if m == nil { - return (*WipeRequest)(nil) + return (*WipeDisksRequest)(nil) } - r := new(WipeRequest) + r := new(WipeDisksRequest) if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -236,15 +268,15 @@ func (m *WipeRequest) CloneVT() *WipeRequest { return r } -func (m *WipeRequest) CloneMessageVT() proto.Message { +func (m *WipeDisksRequest) CloneMessageVT() proto.Message { return m.CloneVT() } -func (m *WipeResponse) CloneVT() *WipeResponse { +func (m *WipeDisksResponse) CloneVT() *WipeDisksResponse { if m == nil { - return (*WipeResponse)(nil) + return (*WipeDisksResponse)(nil) } - r := new(WipeResponse) + r := new(WipeDisksResponse) if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -252,10 +284,42 @@ func (m *WipeResponse) CloneVT() *WipeResponse { return r } -func (m *WipeResponse) CloneMessageVT() proto.Message { +func (m *WipeDisksResponse) CloneMessageVT() proto.Message { return m.CloneVT() } +func (this *HelloRequest) EqualVT(that *HelloRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *HelloRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*HelloRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *HelloResponse) EqualVT(that *HelloResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *HelloResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*HelloResponse) + if !ok { + return false + } + return this.EqualVT(that) +} func (this *GetPowerManagementRequest_IPMI) EqualVT(that *GetPowerManagementRequest_IPMI) bool { if this == that { return true @@ -484,7 +548,7 @@ func (this *RebootResponse) EqualMessageVT(thatMsg proto.Message) bool { } return this.EqualVT(that) } -func (this *WipeRequest) EqualVT(that *WipeRequest) bool { +func (this *WipeDisksRequest) EqualVT(that *WipeDisksRequest) bool { if this == that { return true } else if this == nil || that == nil { @@ -493,14 +557,14 @@ func (this *WipeRequest) EqualVT(that *WipeRequest) bool { return string(this.unknownFields) == string(that.unknownFields) } -func (this *WipeRequest) EqualMessageVT(thatMsg proto.Message) bool { - that, ok := thatMsg.(*WipeRequest) +func (this *WipeDisksRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*WipeDisksRequest) if !ok { return false } return this.EqualVT(that) } -func (this *WipeResponse) EqualVT(that *WipeResponse) bool { +func (this *WipeDisksResponse) EqualVT(that *WipeDisksResponse) bool { if this == that { return true } else if this == nil || that == nil { @@ -509,13 +573,79 @@ func (this *WipeResponse) EqualVT(that *WipeResponse) bool { return string(this.unknownFields) == string(that.unknownFields) } -func (this *WipeResponse) EqualMessageVT(thatMsg proto.Message) bool { - that, ok := thatMsg.(*WipeResponse) +func (this *WipeDisksResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*WipeDisksResponse) if !ok { return false } return this.EqualVT(that) } +func (m *HelloRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *HelloRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *HelloRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *HelloResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *HelloResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *HelloResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + func (m *GetPowerManagementRequest_IPMI) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil @@ -1015,7 +1145,7 @@ func (m *RebootResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *WipeRequest) MarshalVT() (dAtA []byte, err error) { +func (m *WipeDisksRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -1028,12 +1158,12 @@ func (m *WipeRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *WipeRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *WipeDisksRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *WipeRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *WipeDisksRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1048,7 +1178,7 @@ func (m *WipeRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *WipeResponse) MarshalVT() (dAtA []byte, err error) { +func (m *WipeDisksResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -1061,12 +1191,12 @@ func (m *WipeResponse) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *WipeResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *WipeDisksResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *WipeResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *WipeDisksResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1081,6 +1211,26 @@ func (m *WipeResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *HelloRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += len(m.unknownFields) + return n +} + +func (m *HelloResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += len(m.unknownFields) + return n +} + func (m *GetPowerManagementRequest_IPMI) SizeVT() (n int) { if m == nil { return 0 @@ -1247,7 +1397,7 @@ func (m *RebootResponse) SizeVT() (n int) { return n } -func (m *WipeRequest) SizeVT() (n int) { +func (m *WipeDisksRequest) SizeVT() (n int) { if m == nil { return 0 } @@ -1257,7 +1407,7 @@ func (m *WipeRequest) SizeVT() (n int) { return n } -func (m *WipeResponse) SizeVT() (n int) { +func (m *WipeDisksResponse) SizeVT() (n int) { if m == nil { return 0 } @@ -1267,6 +1417,108 @@ func (m *WipeResponse) SizeVT() (n int) { return n } +func (m *HelloRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: HelloRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: HelloRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *HelloResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: HelloResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: HelloResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *GetPowerManagementRequest_IPMI) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -2262,7 +2514,7 @@ func (m *RebootResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *WipeRequest) UnmarshalVT(dAtA []byte) error { +func (m *WipeDisksRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2285,10 +2537,10 @@ func (m *WipeRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: WipeRequest: wiretype end group for non-group") + return fmt.Errorf("proto: WipeDisksRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: WipeRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: WipeDisksRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -2313,7 +2565,7 @@ func (m *WipeRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *WipeResponse) UnmarshalVT(dAtA []byte) error { +func (m *WipeDisksResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2336,10 +2588,10 @@ func (m *WipeResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: WipeResponse: wiretype end group for non-group") + return fmt.Errorf("proto: WipeDisksResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: WipeResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: WipeDisksResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: diff --git a/go.mod b/go.mod index 29888a7..25e6e07 100644 --- a/go.mod +++ b/go.mod @@ -1,17 +1,17 @@ module github.com/siderolabs/talos-metal-agent -go 1.23.2 +go 1.23.3 replace github.com/pensando/goipmi v0.0.0-20240603174436-eb122d901c23 => github.com/siderolabs/goipmi v0.0.0-20211214143420-35f956689e67 require ( - github.com/cosi-project/runtime v0.6.4 + github.com/cosi-project/runtime v0.7.1 github.com/jhump/grpctunnel v0.3.0 github.com/pensando/goipmi v0.0.0-20240603174436-eb122d901c23 - github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 + github.com/planetscale/vtprotobuf v0.6.1-0.20240917153116-6f2963f01587 github.com/siderolabs/go-procfs v0.1.2 - github.com/siderolabs/talos v1.8.1 - github.com/siderolabs/talos/pkg/machinery v1.8.1 + github.com/siderolabs/talos v1.9.0-alpha.2 + github.com/siderolabs/talos/pkg/machinery v1.9.0-alpha.2 github.com/spf13/cobra v1.8.1 go.uber.org/zap v1.27.0 google.golang.org/grpc v1.67.1 @@ -24,6 +24,7 @@ require ( github.com/ProtonMail/gopenpgp/v2 v2.7.5 // indirect github.com/adrg/xdg v0.5.0 // indirect github.com/antlr4-go/antlr/v4 v4.13.0 // indirect + github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cloudflare/circl v1.3.9 // indirect github.com/containerd/go-cni v1.1.10 // indirect github.com/containernetworking/cni v1.2.3 // indirect @@ -39,7 +40,7 @@ require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/josharian/native v1.1.0 // indirect github.com/jsimonetti/rtnetlink/v2 v2.0.2 // indirect - github.com/mdlayher/ethtool v0.1.0 // indirect + github.com/mdlayher/ethtool v0.2.0 // indirect github.com/mdlayher/genetlink v1.3.2 // indirect github.com/mdlayher/netlink v1.7.2 // indirect github.com/mdlayher/socket v0.5.1 // indirect @@ -47,10 +48,10 @@ require ( github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/pkg/errors v0.9.1 // indirect github.com/ryanuber/go-glob v1.0.0 // indirect - github.com/siderolabs/crypto v0.4.4 // indirect - github.com/siderolabs/gen v0.5.0 // indirect + github.com/siderolabs/crypto v0.5.0 // indirect + github.com/siderolabs/gen v0.7.0 // indirect github.com/siderolabs/go-api-signature v0.3.6 // indirect - github.com/siderolabs/go-blockdevice v0.4.7 // indirect + github.com/siderolabs/go-blockdevice v0.4.8 // indirect github.com/siderolabs/go-blockdevice/v2 v2.0.3 // indirect github.com/siderolabs/go-pointer v1.0.0 // indirect github.com/siderolabs/net v0.4.0 // indirect @@ -60,13 +61,13 @@ require ( github.com/stretchr/objx v0.5.2 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.28.0 // indirect - golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 // indirect + golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect golang.org/x/net v0.30.0 // indirect golang.org/x/sync v0.8.0 // indirect golang.org/x/sys v0.26.0 // indirect golang.org/x/text v0.19.0 // indirect - golang.org/x/time v0.6.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241015192408-796eee8c2d53 // indirect + golang.org/x/time v0.7.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index deaa3b9..f52cc0a 100644 --- a/go.sum +++ b/go.sum @@ -16,9 +16,11 @@ github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2y github.com/brianvoe/gofakeit/v6 v6.24.0 h1:74yq7RRz/noddscZHRS2T84oHZisW9muwbb8sRnU52A= github.com/brianvoe/gofakeit/v6 v6.24.0/go.mod h1:Ow6qC71xtwm79anlwKRlWZW6zVq9D2XHE4QSSMP/rU8= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= +github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= +github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cilium/ebpf v0.12.3 h1:8ht6F9MquybnY97at+VDZb3eQQr8ev79RueWeVaEcG4= -github.com/cilium/ebpf v0.12.3/go.mod h1:TctK1ivibvI3znr66ljgi4hqOT8EYQjz1KWBfb1UVgM= +github.com/cilium/ebpf v0.16.0 h1:+BiEnHL6Z7lXnlGUsXQPPAE7+kenAd4ES8MQ5min0Ok= +github.com/cilium/ebpf v0.16.0/go.mod h1:L7u2Blt2jMM/vLAVgjxluxtBKlz3/GWjB0dMOEngfwE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= github.com/cloudflare/circl v1.3.9 h1:QFrlgFYf2Qpi8bSpVPK1HBvWpx16v/1TZivyo7pGuBE= @@ -28,8 +30,8 @@ github.com/containerd/go-cni v1.1.10 h1:c2U73nld7spSWfiJwSh/8W9DK+/qQwYM2rngIhCy github.com/containerd/go-cni v1.1.10/go.mod h1:/Y/sL8yqYQn1ZG1om1OncJB1W4zN3YmjfP/ShCzG/OY= github.com/containernetworking/cni v1.2.3 h1:hhOcjNVUQTnzdRJ6alC5XF+wd9mfGIUaj8FuJbEslXM= github.com/containernetworking/cni v1.2.3/go.mod h1:DuLgF+aPd3DzcTQTtp/Nvl1Kim23oFKdm2okJzBQA5M= -github.com/cosi-project/runtime v0.6.4 h1:roifc5e+Q1+72EI36BYSRT9aXyskU+coiKHeoBBWkMg= -github.com/cosi-project/runtime v0.6.4/go.mod h1:EMLs8a55tJ6zA4UyDbRsTvXBd6UIlNwZfCVGvCyiXK8= +github.com/cosi-project/runtime v0.7.1 h1:cOF2/ljLa0NPQV6/S1RZHcSUXM0UyOlD5F3fwwYSQEg= +github.com/cosi-project/runtime v0.7.1/go.mod h1:EMLs8a55tJ6zA4UyDbRsTvXBd6UIlNwZfCVGvCyiXK8= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -109,8 +111,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/mdlayher/ethtool v0.1.0 h1:XAWHsmKhyPOo42qq/yTPb0eFBGUKKTR1rE0dVrWVQ0Y= -github.com/mdlayher/ethtool v0.1.0/go.mod h1:fBMLn2UhfRGtcH5ZFjr+6GUiHEjZsItFD7fSn7jbZVQ= +github.com/mdlayher/ethtool v0.2.0 h1:akcA4WZVWozzirPASeMq8qgLkxpF3ykftVXwnrMKrhY= +github.com/mdlayher/ethtool v0.2.0/go.mod h1:W0pIBrNPK1TslIN4Z9wt1EVbay66Kbvek2z2f29VBfw= github.com/mdlayher/genetlink v1.3.2 h1:KdrNKe+CTu+IbZnm/GVUMXSqBBLqcGpRDa0xkQy56gw= github.com/mdlayher/genetlink v1.3.2/go.mod h1:tcC3pkCrPUGIKKsCsp0B3AdaaKuHtaxoJRz3cc+528o= github.com/mdlayher/netlink v1.7.2 h1:/UtM3ofJap7Vl4QWCPDGXY8d3GIY2UGSDbK+QWmY8/g= @@ -127,8 +129,8 @@ github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmd github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= -github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= +github.com/planetscale/vtprotobuf v0.6.1-0.20240917153116-6f2963f01587 h1:xzZOeCMQLA/W198ZkdVdt4EKFKJtS26B773zNU377ZY= +github.com/planetscale/vtprotobuf v0.6.1-0.20240917153116-6f2963f01587/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -138,14 +140,14 @@ github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99 github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkBk= github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= -github.com/siderolabs/crypto v0.4.4 h1:Q6EDBMR2Ub2oAZW5Xl8lrKB27bM3Sn8Gkfw3rngco5U= -github.com/siderolabs/crypto v0.4.4/go.mod h1:hsR3tJ3aaeuhCChsLF4dBd9vlJVPvmhg4vvx2ez4aD4= -github.com/siderolabs/gen v0.5.0 h1:Afdjx+zuZDf53eH5DB+E+T2JeCwBXGinV66A6osLgQI= -github.com/siderolabs/gen v0.5.0/go.mod h1:1GUMBNliW98Xeq8GPQeVMYqQE09LFItE8enR3wgMh3Q= +github.com/siderolabs/crypto v0.5.0 h1:+Sox0aYLCcD0PAH2cbEcx557zUrONLtuj1Ws+2MFXGc= +github.com/siderolabs/crypto v0.5.0/go.mod h1:hsR3tJ3aaeuhCChsLF4dBd9vlJVPvmhg4vvx2ez4aD4= +github.com/siderolabs/gen v0.7.0 h1:uHAt3WD0dof28NHFuguWBbDokaXQraR/HyVxCLw2QCU= +github.com/siderolabs/gen v0.7.0/go.mod h1:an3a2Y53O7kUjnnK8Bfu3gewtvnIOu5RTU6HalFtXQQ= github.com/siderolabs/go-api-signature v0.3.6 h1:wDIsXbpl7Oa/FXvxB6uz4VL9INA9fmr3EbmjEZYFJrU= github.com/siderolabs/go-api-signature v0.3.6/go.mod h1:hoH13AfunHflxbXfh+NoploqV13ZTDfQ1mQJWNVSW9U= -github.com/siderolabs/go-blockdevice v0.4.7 h1:2bk4WpEEflGxjrNwp57ye24Pr+cYgAiAeNMWiQOuWbQ= -github.com/siderolabs/go-blockdevice v0.4.7/go.mod h1:4PeOuk71pReJj1JQEXDE7kIIQJPVe8a+HZQa+qjxSEA= +github.com/siderolabs/go-blockdevice v0.4.8 h1:KfdWvIx0Jft5YVuCsFIJFwjWEF1oqtzkgX9PeU9cX4c= +github.com/siderolabs/go-blockdevice v0.4.8/go.mod h1:4PeOuk71pReJj1JQEXDE7kIIQJPVe8a+HZQa+qjxSEA= github.com/siderolabs/go-blockdevice/v2 v2.0.3 h1:IEgDqd3H3gPphahrdvfAzU8RmD4r5eQdWC+vgFQQoEg= github.com/siderolabs/go-blockdevice/v2 v2.0.3/go.mod h1:74htzCV913UzaLZ4H+NBXkwWlYnBJIq5m/379ZEcu8w= github.com/siderolabs/go-pointer v1.0.0 h1:6TshPKep2doDQJAAtHUuHWXbca8ZfyRySjSBT/4GsMU= @@ -160,10 +162,10 @@ github.com/siderolabs/net v0.4.0 h1:1bOgVay/ijPkJz4qct98nHsiB/ysLQU0KLoBC4qLm7I= github.com/siderolabs/net v0.4.0/go.mod h1:/ibG+Hm9HU27agp5r9Q3eZicEfjquzNzQNux5uEk0kM= github.com/siderolabs/protoenc v0.2.1 h1:BqxEmeWQeMpNP3R6WrPqDatX8sM/r4t97OP8mFmg6GA= github.com/siderolabs/protoenc v0.2.1/go.mod h1:StTHxjet1g11GpNAWiATgc8K0HMKiFSEVVFOa/H0otc= -github.com/siderolabs/talos v1.8.1 h1:lA5QKOEs4yYbtQYJeQtyNSVdOJ0nZWTbWSwmgly7+fM= -github.com/siderolabs/talos v1.8.1/go.mod h1:3EXtLpBBAUEjfA8N0mtapG2Ei/7uhmX3d6H2mw+eFos= -github.com/siderolabs/talos/pkg/machinery v1.8.1 h1:oeJQmkLNjEG5jxrzPiC2XMQS5dcg1qZ17p5LKcaCbRM= -github.com/siderolabs/talos/pkg/machinery v1.8.1/go.mod h1:mWTmuUk8G6CdkhUfDmsrIkgPo0G6J5hC/zGazgnyzBg= +github.com/siderolabs/talos v1.9.0-alpha.2 h1:NVHv9lIln/YLlBo9Kpoejw5KBhYHbWcRezSE2lLin4U= +github.com/siderolabs/talos v1.9.0-alpha.2/go.mod h1:2pohl4a+g50TDHDt/osfYsCbQZUqB/kLoVdkn6urQl8= +github.com/siderolabs/talos/pkg/machinery v1.9.0-alpha.2 h1:46lEVcgBXD9SNXawdawhhmQbOezuTCMfeV8ndnVVinY= +github.com/siderolabs/talos/pkg/machinery v1.9.0-alpha.2/go.mod h1:Wv0juzt8A0P0BRaEANyRtl3qfoZQ81yDrQ/g7zzX6vk= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= @@ -200,8 +202,8 @@ golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 h1:vr/HnozRka3pE4EsMEg1lgkXJkTFJCVUX+S/ZT6wYzM= -golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= +golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= +golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -259,8 +261,8 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= -golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= -golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ= +golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -269,8 +271,8 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24= -golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ= +golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= +golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -278,10 +280,10 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 h1:hjSy6tcFQZ171igDaN5QHOw2n6vx40juYbC/x67CEhc= -google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:qpvKtACPCQhAdu3PyQgV4l3LMXZEtft7y8QcarRsp9I= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241015192408-796eee8c2d53 h1:X58yt85/IXCx0Y3ZwN6sEIKZzQtDEYaBWrDvErdXrRE= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241015192408-796eee8c2d53/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= diff --git a/hack/boot-assets/build.sh b/hack/boot-assets/build.sh index b856686..76cc22c 100755 --- a/hack/boot-assets/build.sh +++ b/hack/boot-assets/build.sh @@ -33,7 +33,7 @@ cd "$TEMP_DIR" git clone "$EXTENSIONS_REPO" extensions cd extensions -git checkout "$EXTENSIONS_REF" +git -c advice.detachedHead=false checkout "$EXTENSIONS_REF" yq e -i ".IMAGE_PREFIX = \"$TEMP_REGISTRY/$TEMP_USERNAME\"" "$EXTENSIONS_PATH/vars.yaml" yq e -i ".VERSION = \"$PUSH_TAG\"" "$EXTENSIONS_PATH/vars.yaml" @@ -43,16 +43,43 @@ make metal-agent PUSH=true REGISTRY="$TEMP_REGISTRY" USERNAME="$TEMP_USERNAME" T EXTENSION_IMAGE="$TEMP_REGISTRY/$TEMP_USERNAME/metal-agent:$PUSH_TAG" IMAGER_IMAGE="$IMAGER_REGISTRY_AND_USERNAME/imager:$IMAGER_TAG" +mapfile -t FIRMWARE_EXTENSIONS <<'EOF' +siderolabs/amd-ucode +siderolabs/amdgpu-firmware +siderolabs/bnx2-bnx2x +siderolabs/chelsio-firmware +siderolabs/i915-ucode +siderolabs/intel-ice-firmware +siderolabs/intel-ucode +siderolabs/qlogic-firmware +siderolabs/realtek-firmware +EOF + # build talos boot artifacts with the extension we built above using imager, for both amd64 and arm64 -# todo: -# here, also add the firmware extensions to make it more similar to the final production version (a real bare-metal server booted over image factory) -# to do that, we need here the image digests based on the talos version (so `IMAGER_TAG` needs to point to a release version), -# use something like this to get the extension image digests: crane export ghcr.io/siderolabs/extensions:v1.8.0-beta.1 | tar x -O image-digests +function filter_firmware_extensions() { + # Read input from stdin and process each line + while IFS= read -r line; do + # Check if any directory name matches in the line + for dir in "${FIRMWARE_EXTENSIONS[@]}"; do + if [[ $line == *"$dir"* ]]; then + echo "$line" + break + fi + done + done +} function build_image_profile() { local arch=$1 local kind=$2 + local extensions + + # prepare extensions list with proper indentation + extensions=$(crane export "$EXTENSION_DIGESTS_IMAGE:$IMAGER_TAG" | + tar x -O image-digests | + filter_firmware_extensions | + sed 's/^/ - imageRef: /') cat <