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 <