From de144e3f6bb7beb3c1b0e4ebebe729ef446f0ba4 Mon Sep 17 00:00:00 2001 From: Artem Chernyshev Date: Tue, 26 Aug 2025 18:22:54 +0300 Subject: [PATCH] feat: support Userpilot reports Omni now has `--user-pilot-app-token` flag. When set it will enable `Userpilot` integration in the UI. Signed-off-by: Artem Chernyshev --- client/api/omni/specs/omni.pb.go | 686 ++++++++++-------- client/api/omni/specs/omni.proto | 7 + client/api/omni/specs/omni_vtproto.pb.go | 227 ++++++ client/api/omni/specs/virtual.pb.go | 13 +- client/api/omni/specs/virtual.proto | 1 + client/api/omni/specs/virtual_vtproto.pb.go | 47 ++ cmd/omni/cmd/cmd.go | 1 + frontend/package-lock.json | 64 ++ frontend/package.json | 1 + frontend/src/api/omni/specs/omni.pb.ts | 5 + frontend/src/api/omni/specs/virtual.pb.ts | 1 + frontend/src/methods/auth.ts | 4 + frontend/src/methods/features.ts | 38 +- frontend/src/router/index.ts | 5 + .../backend/runtime/omni/virtual/state.go | 11 + internal/frontend/handler.go | 4 +- internal/pkg/config/config.go | 10 + internal/pkg/features/features.go | 3 + 18 files changed, 809 insertions(+), 319 deletions(-) diff --git a/client/api/omni/specs/omni.pb.go b/client/api/omni/specs/omni.pb.go index f836f610..fb5372ac 100644 --- a/client/api/omni/specs/omni.pb.go +++ b/client/api/omni/specs/omni.pb.go @@ -970,7 +970,7 @@ func (x ExtensionsConfigurationStatusSpec_Phase) Number() protoreflect.EnumNumbe // Deprecated: Use ExtensionsConfigurationStatusSpec_Phase.Descriptor instead. func (ExtensionsConfigurationStatusSpec_Phase) EnumDescriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{69, 0} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{70, 0} } type MachineExtensionsStatusSpec_Item_Phase int32 @@ -1019,7 +1019,7 @@ func (x MachineExtensionsStatusSpec_Item_Phase) Number() protoreflect.EnumNumber // Deprecated: Use MachineExtensionsStatusSpec_Item_Phase.Descriptor instead. func (MachineExtensionsStatusSpec_Item_Phase) EnumDescriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{71, 0, 0} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{72, 0, 0} } type ClusterMachineRequestStatusSpec_Stage int32 @@ -1077,7 +1077,7 @@ func (x ClusterMachineRequestStatusSpec_Stage) Number() protoreflect.EnumNumber // Deprecated: Use ClusterMachineRequestStatusSpec_Stage.Descriptor instead. func (ClusterMachineRequestStatusSpec_Stage) EnumDescriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{80, 0} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{81, 0} } type InfraMachineConfigSpec_AcceptanceStatus int32 @@ -1126,7 +1126,7 @@ func (x InfraMachineConfigSpec_AcceptanceStatus) Number() protoreflect.EnumNumbe // Deprecated: Use InfraMachineConfigSpec_AcceptanceStatus.Descriptor instead. func (InfraMachineConfigSpec_AcceptanceStatus) EnumDescriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{81, 0} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{82, 0} } type InfraMachineConfigSpec_MachinePowerState int32 @@ -1175,7 +1175,7 @@ func (x InfraMachineConfigSpec_MachinePowerState) Number() protoreflect.EnumNumb // Deprecated: Use InfraMachineConfigSpec_MachinePowerState.Descriptor instead. func (InfraMachineConfigSpec_MachinePowerState) EnumDescriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{81, 1} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{82, 1} } // MachineSpec describes a Machine. @@ -4921,8 +4921,10 @@ type FeaturesConfigSpec struct { AuditLogEnabled bool `protobuf:"varint,4,opt,name=audit_log_enabled,json=auditLogEnabled,proto3" json:"audit_log_enabled,omitempty"` // ImageFactoryBaseUrl is the base URL of the image factory. ImageFactoryBaseUrl string `protobuf:"bytes,5,opt,name=image_factory_base_url,json=imageFactoryBaseUrl,proto3" json:"image_factory_base_url,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + // UserPilotSettings enables UserPilot on the frontend side. + UserPilotSettings *UserPilotSettings `protobuf:"bytes,6,opt,name=user_pilot_settings,json=userPilotSettings,proto3" json:"user_pilot_settings,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *FeaturesConfigSpec) Reset() { @@ -4990,6 +4992,57 @@ func (x *FeaturesConfigSpec) GetImageFactoryBaseUrl() string { return "" } +func (x *FeaturesConfigSpec) GetUserPilotSettings() *UserPilotSettings { + if x != nil { + return x.UserPilotSettings + } + return nil +} + +type UserPilotSettings struct { + state protoimpl.MessageState `protogen:"open.v1"` + AppToken string `protobuf:"bytes,1,opt,name=app_token,json=appToken,proto3" json:"app_token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UserPilotSettings) Reset() { + *x = UserPilotSettings{} + mi := &file_omni_specs_omni_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UserPilotSettings) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserPilotSettings) ProtoMessage() {} + +func (x *UserPilotSettings) ProtoReflect() protoreflect.Message { + mi := &file_omni_specs_omni_proto_msgTypes[57] + 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 UserPilotSettings.ProtoReflect.Descriptor instead. +func (*UserPilotSettings) Descriptor() ([]byte, []int) { + return file_omni_specs_omni_proto_rawDescGZIP(), []int{57} +} + +func (x *UserPilotSettings) GetAppToken() string { + if x != nil { + return x.AppToken + } + return "" +} + type EtcdBackupSettings struct { state protoimpl.MessageState `protogen:"open.v1"` // TickInterval is the interval between checking for backups in controller. @@ -5004,7 +5057,7 @@ type EtcdBackupSettings struct { func (x *EtcdBackupSettings) Reset() { *x = EtcdBackupSettings{} - mi := &file_omni_specs_omni_proto_msgTypes[57] + mi := &file_omni_specs_omni_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5016,7 +5069,7 @@ func (x *EtcdBackupSettings) String() string { func (*EtcdBackupSettings) ProtoMessage() {} func (x *EtcdBackupSettings) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[57] + mi := &file_omni_specs_omni_proto_msgTypes[58] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5029,7 +5082,7 @@ func (x *EtcdBackupSettings) ProtoReflect() protoreflect.Message { // Deprecated: Use EtcdBackupSettings.ProtoReflect.Descriptor instead. func (*EtcdBackupSettings) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{57} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{58} } func (x *EtcdBackupSettings) GetTickInterval() *durationpb.Duration { @@ -5066,7 +5119,7 @@ type MachineClassSpec struct { func (x *MachineClassSpec) Reset() { *x = MachineClassSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[58] + mi := &file_omni_specs_omni_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5078,7 +5131,7 @@ func (x *MachineClassSpec) String() string { func (*MachineClassSpec) ProtoMessage() {} func (x *MachineClassSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[58] + mi := &file_omni_specs_omni_proto_msgTypes[59] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5091,7 +5144,7 @@ func (x *MachineClassSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use MachineClassSpec.ProtoReflect.Descriptor instead. func (*MachineClassSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{58} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{59} } func (x *MachineClassSpec) GetMatchLabels() []string { @@ -5120,7 +5173,7 @@ type MachineConfigGenOptionsSpec struct { func (x *MachineConfigGenOptionsSpec) Reset() { *x = MachineConfigGenOptionsSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[59] + mi := &file_omni_specs_omni_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5132,7 +5185,7 @@ func (x *MachineConfigGenOptionsSpec) String() string { func (*MachineConfigGenOptionsSpec) ProtoMessage() {} func (x *MachineConfigGenOptionsSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[59] + mi := &file_omni_specs_omni_proto_msgTypes[60] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5145,7 +5198,7 @@ func (x *MachineConfigGenOptionsSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use MachineConfigGenOptionsSpec.ProtoReflect.Descriptor instead. func (*MachineConfigGenOptionsSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{59} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{60} } func (x *MachineConfigGenOptionsSpec) GetInstallDisk() string { @@ -5176,7 +5229,7 @@ type EtcdAuditResultSpec struct { func (x *EtcdAuditResultSpec) Reset() { *x = EtcdAuditResultSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[60] + mi := &file_omni_specs_omni_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5188,7 +5241,7 @@ func (x *EtcdAuditResultSpec) String() string { func (*EtcdAuditResultSpec) ProtoMessage() {} func (x *EtcdAuditResultSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[60] + mi := &file_omni_specs_omni_proto_msgTypes[61] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5201,7 +5254,7 @@ func (x *EtcdAuditResultSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use EtcdAuditResultSpec.ProtoReflect.Descriptor instead. func (*EtcdAuditResultSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{60} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{61} } func (x *EtcdAuditResultSpec) GetEtcdMemberIds() []uint64 { @@ -5222,7 +5275,7 @@ type KubeconfigSpec struct { func (x *KubeconfigSpec) Reset() { *x = KubeconfigSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[61] + mi := &file_omni_specs_omni_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5234,7 +5287,7 @@ func (x *KubeconfigSpec) String() string { func (*KubeconfigSpec) ProtoMessage() {} func (x *KubeconfigSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[61] + mi := &file_omni_specs_omni_proto_msgTypes[62] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5247,7 +5300,7 @@ func (x *KubeconfigSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use KubeconfigSpec.ProtoReflect.Descriptor instead. func (*KubeconfigSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{61} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{62} } func (x *KubeconfigSpec) GetData() []byte { @@ -5270,7 +5323,7 @@ type KubernetesUsageSpec struct { func (x *KubernetesUsageSpec) Reset() { *x = KubernetesUsageSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[62] + mi := &file_omni_specs_omni_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5282,7 +5335,7 @@ func (x *KubernetesUsageSpec) String() string { func (*KubernetesUsageSpec) ProtoMessage() {} func (x *KubernetesUsageSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[62] + mi := &file_omni_specs_omni_proto_msgTypes[63] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5295,7 +5348,7 @@ func (x *KubernetesUsageSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use KubernetesUsageSpec.ProtoReflect.Descriptor instead. func (*KubernetesUsageSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{62} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{63} } func (x *KubernetesUsageSpec) GetCpu() *KubernetesUsageSpec_Quantity { @@ -5337,7 +5390,7 @@ type ImagePullRequestSpec struct { func (x *ImagePullRequestSpec) Reset() { *x = ImagePullRequestSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[63] + mi := &file_omni_specs_omni_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5349,7 +5402,7 @@ func (x *ImagePullRequestSpec) String() string { func (*ImagePullRequestSpec) ProtoMessage() {} func (x *ImagePullRequestSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[63] + mi := &file_omni_specs_omni_proto_msgTypes[64] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5362,7 +5415,7 @@ func (x *ImagePullRequestSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use ImagePullRequestSpec.ProtoReflect.Descriptor instead. func (*ImagePullRequestSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{63} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{64} } func (x *ImagePullRequestSpec) GetNodeImageList() []*ImagePullRequestSpec_NodeImageList { @@ -5388,7 +5441,7 @@ type ImagePullStatusSpec struct { func (x *ImagePullStatusSpec) Reset() { *x = ImagePullStatusSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[64] + mi := &file_omni_specs_omni_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5400,7 +5453,7 @@ func (x *ImagePullStatusSpec) String() string { func (*ImagePullStatusSpec) ProtoMessage() {} func (x *ImagePullStatusSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[64] + mi := &file_omni_specs_omni_proto_msgTypes[65] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5413,7 +5466,7 @@ func (x *ImagePullStatusSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use ImagePullStatusSpec.ProtoReflect.Descriptor instead. func (*ImagePullStatusSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{64} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{65} } func (x *ImagePullStatusSpec) GetLastProcessedNode() string { @@ -5468,7 +5521,7 @@ type SchematicSpec struct { func (x *SchematicSpec) Reset() { *x = SchematicSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[65] + mi := &file_omni_specs_omni_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5480,7 +5533,7 @@ func (x *SchematicSpec) String() string { func (*SchematicSpec) ProtoMessage() {} func (x *SchematicSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[65] + mi := &file_omni_specs_omni_proto_msgTypes[66] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5493,7 +5546,7 @@ func (x *SchematicSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use SchematicSpec.ProtoReflect.Descriptor instead. func (*SchematicSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{65} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{66} } // TalosExtensionsSpec represents all available extensions for a particular Talos version. @@ -5506,7 +5559,7 @@ type TalosExtensionsSpec struct { func (x *TalosExtensionsSpec) Reset() { *x = TalosExtensionsSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[66] + mi := &file_omni_specs_omni_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5518,7 +5571,7 @@ func (x *TalosExtensionsSpec) String() string { func (*TalosExtensionsSpec) ProtoMessage() {} func (x *TalosExtensionsSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[66] + mi := &file_omni_specs_omni_proto_msgTypes[67] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5531,7 +5584,7 @@ func (x *TalosExtensionsSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use TalosExtensionsSpec.ProtoReflect.Descriptor instead. func (*TalosExtensionsSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{66} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{67} } func (x *TalosExtensionsSpec) GetItems() []*TalosExtensionsSpec_Info { @@ -5552,7 +5605,7 @@ type SchematicConfigurationSpec struct { func (x *SchematicConfigurationSpec) Reset() { *x = SchematicConfigurationSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[67] + mi := &file_omni_specs_omni_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5564,7 +5617,7 @@ func (x *SchematicConfigurationSpec) String() string { func (*SchematicConfigurationSpec) ProtoMessage() {} func (x *SchematicConfigurationSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[67] + mi := &file_omni_specs_omni_proto_msgTypes[68] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5577,7 +5630,7 @@ func (x *SchematicConfigurationSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use SchematicConfigurationSpec.ProtoReflect.Descriptor instead. func (*SchematicConfigurationSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{67} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{68} } func (x *SchematicConfigurationSpec) GetSchematicId() string { @@ -5604,7 +5657,7 @@ type ExtensionsConfigurationSpec struct { func (x *ExtensionsConfigurationSpec) Reset() { *x = ExtensionsConfigurationSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[68] + mi := &file_omni_specs_omni_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5616,7 +5669,7 @@ func (x *ExtensionsConfigurationSpec) String() string { func (*ExtensionsConfigurationSpec) ProtoMessage() {} func (x *ExtensionsConfigurationSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[68] + mi := &file_omni_specs_omni_proto_msgTypes[69] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5629,7 +5682,7 @@ func (x *ExtensionsConfigurationSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use ExtensionsConfigurationSpec.ProtoReflect.Descriptor instead. func (*ExtensionsConfigurationSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{68} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{69} } func (x *ExtensionsConfigurationSpec) GetExtensions() []string { @@ -5652,7 +5705,7 @@ type ExtensionsConfigurationStatusSpec struct { func (x *ExtensionsConfigurationStatusSpec) Reset() { *x = ExtensionsConfigurationStatusSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[69] + mi := &file_omni_specs_omni_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5664,7 +5717,7 @@ func (x *ExtensionsConfigurationStatusSpec) String() string { func (*ExtensionsConfigurationStatusSpec) ProtoMessage() {} func (x *ExtensionsConfigurationStatusSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[69] + mi := &file_omni_specs_omni_proto_msgTypes[70] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5677,7 +5730,7 @@ func (x *ExtensionsConfigurationStatusSpec) ProtoReflect() protoreflect.Message // Deprecated: Use ExtensionsConfigurationStatusSpec.ProtoReflect.Descriptor instead. func (*ExtensionsConfigurationStatusSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{69} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{70} } func (x *ExtensionsConfigurationStatusSpec) GetPhase() ExtensionsConfigurationStatusSpec_Phase { @@ -5711,7 +5764,7 @@ type MachineExtensionsSpec struct { func (x *MachineExtensionsSpec) Reset() { *x = MachineExtensionsSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[70] + mi := &file_omni_specs_omni_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5723,7 +5776,7 @@ func (x *MachineExtensionsSpec) String() string { func (*MachineExtensionsSpec) ProtoMessage() {} func (x *MachineExtensionsSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[70] + mi := &file_omni_specs_omni_proto_msgTypes[71] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5736,7 +5789,7 @@ func (x *MachineExtensionsSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use MachineExtensionsSpec.ProtoReflect.Descriptor instead. func (*MachineExtensionsSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{70} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{71} } func (x *MachineExtensionsSpec) GetExtensions() []string { @@ -5757,7 +5810,7 @@ type MachineExtensionsStatusSpec struct { func (x *MachineExtensionsStatusSpec) Reset() { *x = MachineExtensionsStatusSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[71] + mi := &file_omni_specs_omni_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5769,7 +5822,7 @@ func (x *MachineExtensionsStatusSpec) String() string { func (*MachineExtensionsStatusSpec) ProtoMessage() {} func (x *MachineExtensionsStatusSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[71] + mi := &file_omni_specs_omni_proto_msgTypes[72] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5782,7 +5835,7 @@ func (x *MachineExtensionsStatusSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use MachineExtensionsStatusSpec.ProtoReflect.Descriptor instead. func (*MachineExtensionsStatusSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{71} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{72} } func (x *MachineExtensionsStatusSpec) GetExtensions() []*MachineExtensionsStatusSpec_Item { @@ -5812,7 +5865,7 @@ type MachineStatusMetricsSpec struct { func (x *MachineStatusMetricsSpec) Reset() { *x = MachineStatusMetricsSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[72] + mi := &file_omni_specs_omni_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5824,7 +5877,7 @@ func (x *MachineStatusMetricsSpec) String() string { func (*MachineStatusMetricsSpec) ProtoMessage() {} func (x *MachineStatusMetricsSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[72] + mi := &file_omni_specs_omni_proto_msgTypes[73] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5837,7 +5890,7 @@ func (x *MachineStatusMetricsSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use MachineStatusMetricsSpec.ProtoReflect.Descriptor instead. func (*MachineStatusMetricsSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{72} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{73} } func (x *MachineStatusMetricsSpec) GetRegisteredMachinesCount() uint32 { @@ -5880,7 +5933,7 @@ type ClusterStatusMetricsSpec struct { func (x *ClusterStatusMetricsSpec) Reset() { *x = ClusterStatusMetricsSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[73] + mi := &file_omni_specs_omni_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5892,7 +5945,7 @@ func (x *ClusterStatusMetricsSpec) String() string { func (*ClusterStatusMetricsSpec) ProtoMessage() {} func (x *ClusterStatusMetricsSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[73] + mi := &file_omni_specs_omni_proto_msgTypes[74] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5905,7 +5958,7 @@ func (x *ClusterStatusMetricsSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use ClusterStatusMetricsSpec.ProtoReflect.Descriptor instead. func (*ClusterStatusMetricsSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{73} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{74} } func (x *ClusterStatusMetricsSpec) GetNotReadyCount() uint32 { @@ -5935,7 +5988,7 @@ type ClusterKubernetesNodesSpec struct { func (x *ClusterKubernetesNodesSpec) Reset() { *x = ClusterKubernetesNodesSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[74] + mi := &file_omni_specs_omni_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5947,7 +6000,7 @@ func (x *ClusterKubernetesNodesSpec) String() string { func (*ClusterKubernetesNodesSpec) ProtoMessage() {} func (x *ClusterKubernetesNodesSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[74] + mi := &file_omni_specs_omni_proto_msgTypes[75] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5960,7 +6013,7 @@ func (x *ClusterKubernetesNodesSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use ClusterKubernetesNodesSpec.ProtoReflect.Descriptor instead. func (*ClusterKubernetesNodesSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{74} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{75} } func (x *ClusterKubernetesNodesSpec) GetNodes() []string { @@ -5983,7 +6036,7 @@ type KubernetesNodeAuditResultSpec struct { func (x *KubernetesNodeAuditResultSpec) Reset() { *x = KubernetesNodeAuditResultSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[75] + mi := &file_omni_specs_omni_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5995,7 +6048,7 @@ func (x *KubernetesNodeAuditResultSpec) String() string { func (*KubernetesNodeAuditResultSpec) ProtoMessage() {} func (x *KubernetesNodeAuditResultSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[75] + mi := &file_omni_specs_omni_proto_msgTypes[76] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6008,7 +6061,7 @@ func (x *KubernetesNodeAuditResultSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use KubernetesNodeAuditResultSpec.ProtoReflect.Descriptor instead. func (*KubernetesNodeAuditResultSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{75} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{76} } func (x *KubernetesNodeAuditResultSpec) GetDeletedNodes() []string { @@ -6036,7 +6089,7 @@ type MachineRequestSetSpec struct { func (x *MachineRequestSetSpec) Reset() { *x = MachineRequestSetSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[76] + mi := &file_omni_specs_omni_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6048,7 +6101,7 @@ func (x *MachineRequestSetSpec) String() string { func (*MachineRequestSetSpec) ProtoMessage() {} func (x *MachineRequestSetSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[76] + mi := &file_omni_specs_omni_proto_msgTypes[77] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6061,7 +6114,7 @@ func (x *MachineRequestSetSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use MachineRequestSetSpec.ProtoReflect.Descriptor instead. func (*MachineRequestSetSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{76} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{77} } func (x *MachineRequestSetSpec) GetProviderId() string { @@ -6129,7 +6182,7 @@ type MachineRequestSetStatusSpec struct { func (x *MachineRequestSetStatusSpec) Reset() { *x = MachineRequestSetStatusSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[77] + mi := &file_omni_specs_omni_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6141,7 +6194,7 @@ func (x *MachineRequestSetStatusSpec) String() string { func (*MachineRequestSetStatusSpec) ProtoMessage() {} func (x *MachineRequestSetStatusSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[77] + mi := &file_omni_specs_omni_proto_msgTypes[78] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6154,7 +6207,7 @@ func (x *MachineRequestSetStatusSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use MachineRequestSetStatusSpec.ProtoReflect.Descriptor instead. func (*MachineRequestSetStatusSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{77} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{78} } // ClusterDiagnosticSpec describes the nodes in a cluster with diagnostics information available (indicating potential problems). @@ -6167,7 +6220,7 @@ type ClusterDiagnosticsSpec struct { func (x *ClusterDiagnosticsSpec) Reset() { *x = ClusterDiagnosticsSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[78] + mi := &file_omni_specs_omni_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6179,7 +6232,7 @@ func (x *ClusterDiagnosticsSpec) String() string { func (*ClusterDiagnosticsSpec) ProtoMessage() {} func (x *ClusterDiagnosticsSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[78] + mi := &file_omni_specs_omni_proto_msgTypes[79] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6192,7 +6245,7 @@ func (x *ClusterDiagnosticsSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use ClusterDiagnosticsSpec.ProtoReflect.Descriptor instead. func (*ClusterDiagnosticsSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{78} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{79} } func (x *ClusterDiagnosticsSpec) GetNodes() []*ClusterDiagnosticsSpec_Node { @@ -6213,7 +6266,7 @@ type MachineRequestSetPressureSpec struct { func (x *MachineRequestSetPressureSpec) Reset() { *x = MachineRequestSetPressureSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[79] + mi := &file_omni_specs_omni_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6225,7 +6278,7 @@ func (x *MachineRequestSetPressureSpec) String() string { func (*MachineRequestSetPressureSpec) ProtoMessage() {} func (x *MachineRequestSetPressureSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[79] + mi := &file_omni_specs_omni_proto_msgTypes[80] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6238,7 +6291,7 @@ func (x *MachineRequestSetPressureSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use MachineRequestSetPressureSpec.ProtoReflect.Descriptor instead. func (*MachineRequestSetPressureSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{79} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{80} } func (x *MachineRequestSetPressureSpec) GetRequiredMachines() uint32 { @@ -6262,7 +6315,7 @@ type ClusterMachineRequestStatusSpec struct { func (x *ClusterMachineRequestStatusSpec) Reset() { *x = ClusterMachineRequestStatusSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[80] + mi := &file_omni_specs_omni_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6274,7 +6327,7 @@ func (x *ClusterMachineRequestStatusSpec) String() string { func (*ClusterMachineRequestStatusSpec) ProtoMessage() {} func (x *ClusterMachineRequestStatusSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[80] + mi := &file_omni_specs_omni_proto_msgTypes[81] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6287,7 +6340,7 @@ func (x *ClusterMachineRequestStatusSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use ClusterMachineRequestStatusSpec.ProtoReflect.Descriptor instead. func (*ClusterMachineRequestStatusSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{80} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{81} } func (x *ClusterMachineRequestStatusSpec) GetStatus() string { @@ -6332,7 +6385,7 @@ type InfraMachineConfigSpec struct { func (x *InfraMachineConfigSpec) Reset() { *x = InfraMachineConfigSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[81] + mi := &file_omni_specs_omni_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6344,7 +6397,7 @@ func (x *InfraMachineConfigSpec) String() string { func (*InfraMachineConfigSpec) ProtoMessage() {} func (x *InfraMachineConfigSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[81] + mi := &file_omni_specs_omni_proto_msgTypes[82] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6357,7 +6410,7 @@ func (x *InfraMachineConfigSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use InfraMachineConfigSpec.ProtoReflect.Descriptor instead. func (*InfraMachineConfigSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{81} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{82} } func (x *InfraMachineConfigSpec) GetPowerState() InfraMachineConfigSpec_MachinePowerState { @@ -6405,7 +6458,7 @@ type InfraMachineBMCConfigSpec struct { func (x *InfraMachineBMCConfigSpec) Reset() { *x = InfraMachineBMCConfigSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[82] + mi := &file_omni_specs_omni_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6417,7 +6470,7 @@ func (x *InfraMachineBMCConfigSpec) String() string { func (*InfraMachineBMCConfigSpec) ProtoMessage() {} func (x *InfraMachineBMCConfigSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[82] + mi := &file_omni_specs_omni_proto_msgTypes[83] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6430,7 +6483,7 @@ func (x *InfraMachineBMCConfigSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use InfraMachineBMCConfigSpec.ProtoReflect.Descriptor instead. func (*InfraMachineBMCConfigSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{82} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{83} } func (x *InfraMachineBMCConfigSpec) GetIpmi() *InfraMachineBMCConfigSpec_IPMI { @@ -6457,7 +6510,7 @@ type MaintenanceConfigStatusSpec struct { func (x *MaintenanceConfigStatusSpec) Reset() { *x = MaintenanceConfigStatusSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[83] + mi := &file_omni_specs_omni_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6469,7 +6522,7 @@ func (x *MaintenanceConfigStatusSpec) String() string { func (*MaintenanceConfigStatusSpec) ProtoMessage() {} func (x *MaintenanceConfigStatusSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[83] + mi := &file_omni_specs_omni_proto_msgTypes[84] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6482,7 +6535,7 @@ func (x *MaintenanceConfigStatusSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use MaintenanceConfigStatusSpec.ProtoReflect.Descriptor instead. func (*MaintenanceConfigStatusSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{83} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{84} } func (x *MaintenanceConfigStatusSpec) GetPublicKeyAtLastApply() string { @@ -6501,7 +6554,7 @@ type NodeForceDestroyRequestSpec struct { func (x *NodeForceDestroyRequestSpec) Reset() { *x = NodeForceDestroyRequestSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[84] + mi := &file_omni_specs_omni_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6513,7 +6566,7 @@ func (x *NodeForceDestroyRequestSpec) String() string { func (*NodeForceDestroyRequestSpec) ProtoMessage() {} func (x *NodeForceDestroyRequestSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[84] + mi := &file_omni_specs_omni_proto_msgTypes[85] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6526,7 +6579,7 @@ func (x *NodeForceDestroyRequestSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use NodeForceDestroyRequestSpec.ProtoReflect.Descriptor instead. func (*NodeForceDestroyRequestSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{84} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{85} } type DiscoveryAffiliateDeleteTaskSpec struct { @@ -6539,7 +6592,7 @@ type DiscoveryAffiliateDeleteTaskSpec struct { func (x *DiscoveryAffiliateDeleteTaskSpec) Reset() { *x = DiscoveryAffiliateDeleteTaskSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[85] + mi := &file_omni_specs_omni_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6551,7 +6604,7 @@ func (x *DiscoveryAffiliateDeleteTaskSpec) String() string { func (*DiscoveryAffiliateDeleteTaskSpec) ProtoMessage() {} func (x *DiscoveryAffiliateDeleteTaskSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[85] + mi := &file_omni_specs_omni_proto_msgTypes[86] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6564,7 +6617,7 @@ func (x *DiscoveryAffiliateDeleteTaskSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use DiscoveryAffiliateDeleteTaskSpec.ProtoReflect.Descriptor instead. func (*DiscoveryAffiliateDeleteTaskSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{85} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{86} } func (x *DiscoveryAffiliateDeleteTaskSpec) GetClusterId() string { @@ -6594,7 +6647,7 @@ type InfraProviderCombinedStatusSpec struct { func (x *InfraProviderCombinedStatusSpec) Reset() { *x = InfraProviderCombinedStatusSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[86] + mi := &file_omni_specs_omni_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6606,7 +6659,7 @@ func (x *InfraProviderCombinedStatusSpec) String() string { func (*InfraProviderCombinedStatusSpec) ProtoMessage() {} func (x *InfraProviderCombinedStatusSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[86] + mi := &file_omni_specs_omni_proto_msgTypes[87] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6619,7 +6672,7 @@ func (x *InfraProviderCombinedStatusSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use InfraProviderCombinedStatusSpec.ProtoReflect.Descriptor instead. func (*InfraProviderCombinedStatusSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{86} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{87} } func (x *InfraProviderCombinedStatusSpec) GetName() string { @@ -6659,7 +6712,7 @@ type MachineConfigDiffSpec struct { func (x *MachineConfigDiffSpec) Reset() { *x = MachineConfigDiffSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[87] + mi := &file_omni_specs_omni_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6671,7 +6724,7 @@ func (x *MachineConfigDiffSpec) String() string { func (*MachineConfigDiffSpec) ProtoMessage() {} func (x *MachineConfigDiffSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[87] + mi := &file_omni_specs_omni_proto_msgTypes[88] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6684,7 +6737,7 @@ func (x *MachineConfigDiffSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use MachineConfigDiffSpec.ProtoReflect.Descriptor instead. func (*MachineConfigDiffSpec) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{87} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{88} } func (x *MachineConfigDiffSpec) GetDiff() string { @@ -6711,7 +6764,7 @@ type MachineStatusSpec_HardwareStatus struct { func (x *MachineStatusSpec_HardwareStatus) Reset() { *x = MachineStatusSpec_HardwareStatus{} - mi := &file_omni_specs_omni_proto_msgTypes[88] + mi := &file_omni_specs_omni_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6723,7 +6776,7 @@ func (x *MachineStatusSpec_HardwareStatus) String() string { func (*MachineStatusSpec_HardwareStatus) ProtoMessage() {} func (x *MachineStatusSpec_HardwareStatus) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[88] + mi := &file_omni_specs_omni_proto_msgTypes[89] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6786,7 +6839,7 @@ type MachineStatusSpec_NetworkStatus struct { func (x *MachineStatusSpec_NetworkStatus) Reset() { *x = MachineStatusSpec_NetworkStatus{} - mi := &file_omni_specs_omni_proto_msgTypes[89] + mi := &file_omni_specs_omni_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6798,7 +6851,7 @@ func (x *MachineStatusSpec_NetworkStatus) String() string { func (*MachineStatusSpec_NetworkStatus) ProtoMessage() {} func (x *MachineStatusSpec_NetworkStatus) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[89] + mi := &file_omni_specs_omni_proto_msgTypes[90] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6874,7 +6927,7 @@ type MachineStatusSpec_PlatformMetadata struct { func (x *MachineStatusSpec_PlatformMetadata) Reset() { *x = MachineStatusSpec_PlatformMetadata{} - mi := &file_omni_specs_omni_proto_msgTypes[90] + mi := &file_omni_specs_omni_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6886,7 +6939,7 @@ func (x *MachineStatusSpec_PlatformMetadata) String() string { func (*MachineStatusSpec_PlatformMetadata) ProtoMessage() {} func (x *MachineStatusSpec_PlatformMetadata) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[90] + mi := &file_omni_specs_omni_proto_msgTypes[91] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6992,7 +7045,7 @@ type MachineStatusSpec_Schematic struct { func (x *MachineStatusSpec_Schematic) Reset() { *x = MachineStatusSpec_Schematic{} - mi := &file_omni_specs_omni_proto_msgTypes[91] + mi := &file_omni_specs_omni_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7004,7 +7057,7 @@ func (x *MachineStatusSpec_Schematic) String() string { func (*MachineStatusSpec_Schematic) ProtoMessage() {} func (x *MachineStatusSpec_Schematic) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[91] + mi := &file_omni_specs_omni_proto_msgTypes[92] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7094,7 +7147,7 @@ type MachineStatusSpec_Diagnostic struct { func (x *MachineStatusSpec_Diagnostic) Reset() { *x = MachineStatusSpec_Diagnostic{} - mi := &file_omni_specs_omni_proto_msgTypes[92] + mi := &file_omni_specs_omni_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7106,7 +7159,7 @@ func (x *MachineStatusSpec_Diagnostic) String() string { func (*MachineStatusSpec_Diagnostic) ProtoMessage() {} func (x *MachineStatusSpec_Diagnostic) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[92] + mi := &file_omni_specs_omni_proto_msgTypes[93] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7162,7 +7215,7 @@ type MachineStatusSpec_HardwareStatus_Processor struct { func (x *MachineStatusSpec_HardwareStatus_Processor) Reset() { *x = MachineStatusSpec_HardwareStatus_Processor{} - mi := &file_omni_specs_omni_proto_msgTypes[94] + mi := &file_omni_specs_omni_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7174,7 +7227,7 @@ func (x *MachineStatusSpec_HardwareStatus_Processor) String() string { func (*MachineStatusSpec_HardwareStatus_Processor) ProtoMessage() {} func (x *MachineStatusSpec_HardwareStatus_Processor) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[94] + mi := &file_omni_specs_omni_proto_msgTypes[95] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7238,7 +7291,7 @@ type MachineStatusSpec_HardwareStatus_MemoryModule struct { func (x *MachineStatusSpec_HardwareStatus_MemoryModule) Reset() { *x = MachineStatusSpec_HardwareStatus_MemoryModule{} - mi := &file_omni_specs_omni_proto_msgTypes[95] + mi := &file_omni_specs_omni_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7250,7 +7303,7 @@ func (x *MachineStatusSpec_HardwareStatus_MemoryModule) String() string { func (*MachineStatusSpec_HardwareStatus_MemoryModule) ProtoMessage() {} func (x *MachineStatusSpec_HardwareStatus_MemoryModule) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[95] + mi := &file_omni_specs_omni_proto_msgTypes[96] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7313,7 +7366,7 @@ type MachineStatusSpec_HardwareStatus_BlockDevice struct { func (x *MachineStatusSpec_HardwareStatus_BlockDevice) Reset() { *x = MachineStatusSpec_HardwareStatus_BlockDevice{} - mi := &file_omni_specs_omni_proto_msgTypes[96] + mi := &file_omni_specs_omni_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7325,7 +7378,7 @@ func (x *MachineStatusSpec_HardwareStatus_BlockDevice) String() string { func (*MachineStatusSpec_HardwareStatus_BlockDevice) ProtoMessage() {} func (x *MachineStatusSpec_HardwareStatus_BlockDevice) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[96] + mi := &file_omni_specs_omni_proto_msgTypes[97] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7444,7 +7497,7 @@ type MachineStatusSpec_NetworkStatus_NetworkLinkStatus struct { func (x *MachineStatusSpec_NetworkStatus_NetworkLinkStatus) Reset() { *x = MachineStatusSpec_NetworkStatus_NetworkLinkStatus{} - mi := &file_omni_specs_omni_proto_msgTypes[97] + mi := &file_omni_specs_omni_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7456,7 +7509,7 @@ func (x *MachineStatusSpec_NetworkStatus_NetworkLinkStatus) String() string { func (*MachineStatusSpec_NetworkStatus_NetworkLinkStatus) ProtoMessage() {} func (x *MachineStatusSpec_NetworkStatus_NetworkLinkStatus) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[97] + mi := &file_omni_specs_omni_proto_msgTypes[98] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7521,7 +7574,7 @@ type ClusterSpec_Features struct { func (x *ClusterSpec_Features) Reset() { *x = ClusterSpec_Features{} - mi := &file_omni_specs_omni_proto_msgTypes[98] + mi := &file_omni_specs_omni_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7533,7 +7586,7 @@ func (x *ClusterSpec_Features) String() string { func (*ClusterSpec_Features) ProtoMessage() {} func (x *ClusterSpec_Features) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[98] + mi := &file_omni_specs_omni_proto_msgTypes[99] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7580,7 +7633,7 @@ type ClusterMachineStatusSpec_ProvisionStatus struct { func (x *ClusterMachineStatusSpec_ProvisionStatus) Reset() { *x = ClusterMachineStatusSpec_ProvisionStatus{} - mi := &file_omni_specs_omni_proto_msgTypes[99] + mi := &file_omni_specs_omni_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7592,7 +7645,7 @@ func (x *ClusterMachineStatusSpec_ProvisionStatus) String() string { func (*ClusterMachineStatusSpec_ProvisionStatus) ProtoMessage() {} func (x *ClusterMachineStatusSpec_ProvisionStatus) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[99] + mi := &file_omni_specs_omni_proto_msgTypes[100] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7637,7 +7690,7 @@ type MachineSetSpec_MachineClass struct { func (x *MachineSetSpec_MachineClass) Reset() { *x = MachineSetSpec_MachineClass{} - mi := &file_omni_specs_omni_proto_msgTypes[100] + mi := &file_omni_specs_omni_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7649,7 +7702,7 @@ func (x *MachineSetSpec_MachineClass) String() string { func (*MachineSetSpec_MachineClass) ProtoMessage() {} func (x *MachineSetSpec_MachineClass) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[100] + mi := &file_omni_specs_omni_proto_msgTypes[101] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7701,7 +7754,7 @@ type MachineSetSpec_MachineAllocation struct { func (x *MachineSetSpec_MachineAllocation) Reset() { *x = MachineSetSpec_MachineAllocation{} - mi := &file_omni_specs_omni_proto_msgTypes[101] + mi := &file_omni_specs_omni_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7713,7 +7766,7 @@ func (x *MachineSetSpec_MachineAllocation) String() string { func (*MachineSetSpec_MachineAllocation) ProtoMessage() {} func (x *MachineSetSpec_MachineAllocation) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[101] + mi := &file_omni_specs_omni_proto_msgTypes[102] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7764,7 +7817,7 @@ type MachineSetSpec_BootstrapSpec struct { func (x *MachineSetSpec_BootstrapSpec) Reset() { *x = MachineSetSpec_BootstrapSpec{} - mi := &file_omni_specs_omni_proto_msgTypes[102] + mi := &file_omni_specs_omni_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7776,7 +7829,7 @@ func (x *MachineSetSpec_BootstrapSpec) String() string { func (*MachineSetSpec_BootstrapSpec) ProtoMessage() {} func (x *MachineSetSpec_BootstrapSpec) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[102] + mi := &file_omni_specs_omni_proto_msgTypes[103] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7818,7 +7871,7 @@ type MachineSetSpec_RollingUpdateStrategyConfig struct { func (x *MachineSetSpec_RollingUpdateStrategyConfig) Reset() { *x = MachineSetSpec_RollingUpdateStrategyConfig{} - mi := &file_omni_specs_omni_proto_msgTypes[103] + mi := &file_omni_specs_omni_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7830,7 +7883,7 @@ func (x *MachineSetSpec_RollingUpdateStrategyConfig) String() string { func (*MachineSetSpec_RollingUpdateStrategyConfig) ProtoMessage() {} func (x *MachineSetSpec_RollingUpdateStrategyConfig) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[103] + mi := &file_omni_specs_omni_proto_msgTypes[104] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7865,7 +7918,7 @@ type MachineSetSpec_UpdateStrategyConfig struct { func (x *MachineSetSpec_UpdateStrategyConfig) Reset() { *x = MachineSetSpec_UpdateStrategyConfig{} - mi := &file_omni_specs_omni_proto_msgTypes[104] + mi := &file_omni_specs_omni_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7877,7 +7930,7 @@ func (x *MachineSetSpec_UpdateStrategyConfig) String() string { func (*MachineSetSpec_UpdateStrategyConfig) ProtoMessage() {} func (x *MachineSetSpec_UpdateStrategyConfig) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[104] + mi := &file_omni_specs_omni_proto_msgTypes[105] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7912,7 +7965,7 @@ type ControlPlaneStatusSpec_Condition struct { func (x *ControlPlaneStatusSpec_Condition) Reset() { *x = ControlPlaneStatusSpec_Condition{} - mi := &file_omni_specs_omni_proto_msgTypes[105] + mi := &file_omni_specs_omni_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7924,7 +7977,7 @@ func (x *ControlPlaneStatusSpec_Condition) String() string { func (*ControlPlaneStatusSpec_Condition) ProtoMessage() {} func (x *ControlPlaneStatusSpec_Condition) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[105] + mi := &file_omni_specs_omni_proto_msgTypes[106] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7979,7 +8032,7 @@ type KubernetesStatusSpec_NodeStatus struct { func (x *KubernetesStatusSpec_NodeStatus) Reset() { *x = KubernetesStatusSpec_NodeStatus{} - mi := &file_omni_specs_omni_proto_msgTypes[106] + mi := &file_omni_specs_omni_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7991,7 +8044,7 @@ func (x *KubernetesStatusSpec_NodeStatus) String() string { func (*KubernetesStatusSpec_NodeStatus) ProtoMessage() {} func (x *KubernetesStatusSpec_NodeStatus) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[106] + mi := &file_omni_specs_omni_proto_msgTypes[107] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8039,7 +8092,7 @@ type KubernetesStatusSpec_StaticPodStatus struct { func (x *KubernetesStatusSpec_StaticPodStatus) Reset() { *x = KubernetesStatusSpec_StaticPodStatus{} - mi := &file_omni_specs_omni_proto_msgTypes[107] + mi := &file_omni_specs_omni_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8051,7 +8104,7 @@ func (x *KubernetesStatusSpec_StaticPodStatus) String() string { func (*KubernetesStatusSpec_StaticPodStatus) ProtoMessage() {} func (x *KubernetesStatusSpec_StaticPodStatus) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[107] + mi := &file_omni_specs_omni_proto_msgTypes[108] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8098,7 +8151,7 @@ type KubernetesStatusSpec_NodeStaticPods struct { func (x *KubernetesStatusSpec_NodeStaticPods) Reset() { *x = KubernetesStatusSpec_NodeStaticPods{} - mi := &file_omni_specs_omni_proto_msgTypes[108] + mi := &file_omni_specs_omni_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8110,7 +8163,7 @@ func (x *KubernetesStatusSpec_NodeStaticPods) String() string { func (*KubernetesStatusSpec_NodeStaticPods) ProtoMessage() {} func (x *KubernetesStatusSpec_NodeStaticPods) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[108] + mi := &file_omni_specs_omni_proto_msgTypes[109] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8154,7 +8207,7 @@ type MachineClassSpec_Provision struct { func (x *MachineClassSpec_Provision) Reset() { *x = MachineClassSpec_Provision{} - mi := &file_omni_specs_omni_proto_msgTypes[109] + mi := &file_omni_specs_omni_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8166,7 +8219,7 @@ func (x *MachineClassSpec_Provision) String() string { func (*MachineClassSpec_Provision) ProtoMessage() {} func (x *MachineClassSpec_Provision) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[109] + mi := &file_omni_specs_omni_proto_msgTypes[110] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8179,7 +8232,7 @@ func (x *MachineClassSpec_Provision) ProtoReflect() protoreflect.Message { // Deprecated: Use MachineClassSpec_Provision.ProtoReflect.Descriptor instead. func (*MachineClassSpec_Provision) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{58, 0} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{59, 0} } func (x *MachineClassSpec_Provision) GetProviderId() string { @@ -8237,7 +8290,7 @@ type MachineConfigGenOptionsSpec_InstallImage struct { func (x *MachineConfigGenOptionsSpec_InstallImage) Reset() { *x = MachineConfigGenOptionsSpec_InstallImage{} - mi := &file_omni_specs_omni_proto_msgTypes[110] + mi := &file_omni_specs_omni_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8249,7 +8302,7 @@ func (x *MachineConfigGenOptionsSpec_InstallImage) String() string { func (*MachineConfigGenOptionsSpec_InstallImage) ProtoMessage() {} func (x *MachineConfigGenOptionsSpec_InstallImage) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[110] + mi := &file_omni_specs_omni_proto_msgTypes[111] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8262,7 +8315,7 @@ func (x *MachineConfigGenOptionsSpec_InstallImage) ProtoReflect() protoreflect.M // Deprecated: Use MachineConfigGenOptionsSpec_InstallImage.ProtoReflect.Descriptor instead. func (*MachineConfigGenOptionsSpec_InstallImage) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{59, 0} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{60, 0} } func (x *MachineConfigGenOptionsSpec_InstallImage) GetTalosVersion() string { @@ -8318,7 +8371,7 @@ type KubernetesUsageSpec_Quantity struct { func (x *KubernetesUsageSpec_Quantity) Reset() { *x = KubernetesUsageSpec_Quantity{} - mi := &file_omni_specs_omni_proto_msgTypes[111] + mi := &file_omni_specs_omni_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8330,7 +8383,7 @@ func (x *KubernetesUsageSpec_Quantity) String() string { func (*KubernetesUsageSpec_Quantity) ProtoMessage() {} func (x *KubernetesUsageSpec_Quantity) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[111] + mi := &file_omni_specs_omni_proto_msgTypes[112] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8343,7 +8396,7 @@ func (x *KubernetesUsageSpec_Quantity) ProtoReflect() protoreflect.Message { // Deprecated: Use KubernetesUsageSpec_Quantity.ProtoReflect.Descriptor instead. func (*KubernetesUsageSpec_Quantity) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{62, 0} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{63, 0} } func (x *KubernetesUsageSpec_Quantity) GetRequests() float64 { @@ -8377,7 +8430,7 @@ type KubernetesUsageSpec_Pod struct { func (x *KubernetesUsageSpec_Pod) Reset() { *x = KubernetesUsageSpec_Pod{} - mi := &file_omni_specs_omni_proto_msgTypes[112] + mi := &file_omni_specs_omni_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8389,7 +8442,7 @@ func (x *KubernetesUsageSpec_Pod) String() string { func (*KubernetesUsageSpec_Pod) ProtoMessage() {} func (x *KubernetesUsageSpec_Pod) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[112] + mi := &file_omni_specs_omni_proto_msgTypes[113] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8402,7 +8455,7 @@ func (x *KubernetesUsageSpec_Pod) ProtoReflect() protoreflect.Message { // Deprecated: Use KubernetesUsageSpec_Pod.ProtoReflect.Descriptor instead. func (*KubernetesUsageSpec_Pod) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{62, 1} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{63, 1} } func (x *KubernetesUsageSpec_Pod) GetCount() int32 { @@ -8429,7 +8482,7 @@ type ImagePullRequestSpec_NodeImageList struct { func (x *ImagePullRequestSpec_NodeImageList) Reset() { *x = ImagePullRequestSpec_NodeImageList{} - mi := &file_omni_specs_omni_proto_msgTypes[113] + mi := &file_omni_specs_omni_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8441,7 +8494,7 @@ func (x *ImagePullRequestSpec_NodeImageList) String() string { func (*ImagePullRequestSpec_NodeImageList) ProtoMessage() {} func (x *ImagePullRequestSpec_NodeImageList) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[113] + mi := &file_omni_specs_omni_proto_msgTypes[114] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8454,7 +8507,7 @@ func (x *ImagePullRequestSpec_NodeImageList) ProtoReflect() protoreflect.Message // Deprecated: Use ImagePullRequestSpec_NodeImageList.ProtoReflect.Descriptor instead. func (*ImagePullRequestSpec_NodeImageList) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{63, 0} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{64, 0} } func (x *ImagePullRequestSpec_NodeImageList) GetNode() string { @@ -8486,7 +8539,7 @@ type TalosExtensionsSpec_Info struct { func (x *TalosExtensionsSpec_Info) Reset() { *x = TalosExtensionsSpec_Info{} - mi := &file_omni_specs_omni_proto_msgTypes[114] + mi := &file_omni_specs_omni_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8498,7 +8551,7 @@ func (x *TalosExtensionsSpec_Info) String() string { func (*TalosExtensionsSpec_Info) ProtoMessage() {} func (x *TalosExtensionsSpec_Info) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[114] + mi := &file_omni_specs_omni_proto_msgTypes[115] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8511,7 +8564,7 @@ func (x *TalosExtensionsSpec_Info) ProtoReflect() protoreflect.Message { // Deprecated: Use TalosExtensionsSpec_Info.ProtoReflect.Descriptor instead. func (*TalosExtensionsSpec_Info) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{66, 0} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{67, 0} } func (x *TalosExtensionsSpec_Info) GetName() string { @@ -8567,7 +8620,7 @@ type MachineExtensionsStatusSpec_Item struct { func (x *MachineExtensionsStatusSpec_Item) Reset() { *x = MachineExtensionsStatusSpec_Item{} - mi := &file_omni_specs_omni_proto_msgTypes[115] + mi := &file_omni_specs_omni_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8579,7 +8632,7 @@ func (x *MachineExtensionsStatusSpec_Item) String() string { func (*MachineExtensionsStatusSpec_Item) ProtoMessage() {} func (x *MachineExtensionsStatusSpec_Item) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[115] + mi := &file_omni_specs_omni_proto_msgTypes[116] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8592,7 +8645,7 @@ func (x *MachineExtensionsStatusSpec_Item) ProtoReflect() protoreflect.Message { // Deprecated: Use MachineExtensionsStatusSpec_Item.ProtoReflect.Descriptor instead. func (*MachineExtensionsStatusSpec_Item) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{71, 0} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{72, 0} } func (x *MachineExtensionsStatusSpec_Item) GetName() string { @@ -8626,7 +8679,7 @@ type ClusterDiagnosticsSpec_Node struct { func (x *ClusterDiagnosticsSpec_Node) Reset() { *x = ClusterDiagnosticsSpec_Node{} - mi := &file_omni_specs_omni_proto_msgTypes[117] + mi := &file_omni_specs_omni_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8638,7 +8691,7 @@ func (x *ClusterDiagnosticsSpec_Node) String() string { func (*ClusterDiagnosticsSpec_Node) ProtoMessage() {} func (x *ClusterDiagnosticsSpec_Node) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[117] + mi := &file_omni_specs_omni_proto_msgTypes[118] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8651,7 +8704,7 @@ func (x *ClusterDiagnosticsSpec_Node) ProtoReflect() protoreflect.Message { // Deprecated: Use ClusterDiagnosticsSpec_Node.ProtoReflect.Descriptor instead. func (*ClusterDiagnosticsSpec_Node) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{78, 0} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{79, 0} } func (x *ClusterDiagnosticsSpec_Node) GetId() string { @@ -8680,7 +8733,7 @@ type InfraMachineBMCConfigSpec_IPMI struct { func (x *InfraMachineBMCConfigSpec_IPMI) Reset() { *x = InfraMachineBMCConfigSpec_IPMI{} - mi := &file_omni_specs_omni_proto_msgTypes[118] + mi := &file_omni_specs_omni_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8692,7 +8745,7 @@ func (x *InfraMachineBMCConfigSpec_IPMI) String() string { func (*InfraMachineBMCConfigSpec_IPMI) ProtoMessage() {} func (x *InfraMachineBMCConfigSpec_IPMI) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[118] + mi := &file_omni_specs_omni_proto_msgTypes[119] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8705,7 +8758,7 @@ func (x *InfraMachineBMCConfigSpec_IPMI) ProtoReflect() protoreflect.Message { // Deprecated: Use InfraMachineBMCConfigSpec_IPMI.ProtoReflect.Descriptor instead. func (*InfraMachineBMCConfigSpec_IPMI) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{82, 0} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{83, 0} } func (x *InfraMachineBMCConfigSpec_IPMI) GetAddress() string { @@ -8745,7 +8798,7 @@ type InfraMachineBMCConfigSpec_API struct { func (x *InfraMachineBMCConfigSpec_API) Reset() { *x = InfraMachineBMCConfigSpec_API{} - mi := &file_omni_specs_omni_proto_msgTypes[119] + mi := &file_omni_specs_omni_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8757,7 +8810,7 @@ func (x *InfraMachineBMCConfigSpec_API) String() string { func (*InfraMachineBMCConfigSpec_API) ProtoMessage() {} func (x *InfraMachineBMCConfigSpec_API) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[119] + mi := &file_omni_specs_omni_proto_msgTypes[120] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8770,7 +8823,7 @@ func (x *InfraMachineBMCConfigSpec_API) ProtoReflect() protoreflect.Message { // Deprecated: Use InfraMachineBMCConfigSpec_API.ProtoReflect.Descriptor instead. func (*InfraMachineBMCConfigSpec_API) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{82, 1} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{83, 1} } func (x *InfraMachineBMCConfigSpec_API) GetAddress() string { @@ -8791,7 +8844,7 @@ type InfraProviderCombinedStatusSpec_Health struct { func (x *InfraProviderCombinedStatusSpec_Health) Reset() { *x = InfraProviderCombinedStatusSpec_Health{} - mi := &file_omni_specs_omni_proto_msgTypes[120] + mi := &file_omni_specs_omni_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8803,7 +8856,7 @@ func (x *InfraProviderCombinedStatusSpec_Health) String() string { func (*InfraProviderCombinedStatusSpec_Health) ProtoMessage() {} func (x *InfraProviderCombinedStatusSpec_Health) ProtoReflect() protoreflect.Message { - mi := &file_omni_specs_omni_proto_msgTypes[120] + mi := &file_omni_specs_omni_proto_msgTypes[121] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8816,7 +8869,7 @@ func (x *InfraProviderCombinedStatusSpec_Health) ProtoReflect() protoreflect.Mes // Deprecated: Use InfraProviderCombinedStatusSpec_Health.ProtoReflect.Descriptor instead. func (*InfraProviderCombinedStatusSpec_Health) Descriptor() ([]byte, []int) { - return file_omni_specs_omni_proto_rawDescGZIP(), []int{86, 0} + return file_omni_specs_omni_proto_rawDescGZIP(), []int{87, 0} } func (x *InfraProviderCombinedStatusSpec_Health) GetConnected() bool { @@ -9304,13 +9357,16 @@ const file_omni_specs_omni_proto_rawDesc = "" + "\x05error\x18\x05 \x01(\tR\x05error\x12,\n" + "\x12has_explicit_alias\x18\x06 \x01(\bR\x10hasExplicitAlias\"R\n" + "\x1eClusterWorkloadProxyStatusSpec\x120\n" + - "\x14num_exposed_services\x18\x01 \x01(\rR\x12numExposedServices\"\xba\x02\n" + + "\x14num_exposed_services\x18\x01 \x01(\rR\x12numExposedServices\"\x84\x03\n" + "\x12FeaturesConfigSpec\x128\n" + "\x18enable_workload_proxying\x18\x01 \x01(\bR\x16enableWorkloadProxying\x12K\n" + "\x14etcd_backup_settings\x18\x02 \x01(\v2\x19.specs.EtcdBackupSettingsR\x12etcdBackupSettings\x12<\n" + "\x1aembedded_discovery_service\x18\x03 \x01(\bR\x18embeddedDiscoveryService\x12*\n" + "\x11audit_log_enabled\x18\x04 \x01(\bR\x0fauditLogEnabled\x123\n" + - "\x16image_factory_base_url\x18\x05 \x01(\tR\x13imageFactoryBaseUrl\"\xd6\x01\n" + + "\x16image_factory_base_url\x18\x05 \x01(\tR\x13imageFactoryBaseUrl\x12H\n" + + "\x13user_pilot_settings\x18\x06 \x01(\v2\x18.specs.UserPilotSettingsR\x11userPilotSettings\"0\n" + + "\x11UserPilotSettings\x12\x1b\n" + + "\tapp_token\x18\x01 \x01(\tR\bappToken\"\xd6\x01\n" + "\x12EtcdBackupSettings\x12>\n" + "\rtick_interval\x18\x01 \x01(\v2\x19.google.protobuf.DurationR\ftickInterval\x12<\n" + "\fmin_interval\x18\x02 \x01(\v2\x19.google.protobuf.DurationR\vminInterval\x12<\n" + @@ -9546,7 +9602,7 @@ func file_omni_specs_omni_proto_rawDescGZIP() []byte { } var file_omni_specs_omni_proto_enumTypes = make([]protoimpl.EnumInfo, 22) -var file_omni_specs_omni_proto_msgTypes = make([]protoimpl.MessageInfo, 121) +var file_omni_specs_omni_proto_msgTypes = make([]protoimpl.MessageInfo, 122) var file_omni_specs_omni_proto_goTypes = []any{ (ConfigApplyStatus)(0), // 0: specs.ConfigApplyStatus (MachineSetPhase)(0), // 1: specs.MachineSetPhase @@ -9627,165 +9683,167 @@ var file_omni_specs_omni_proto_goTypes = []any{ (*ExposedServiceSpec)(nil), // 76: specs.ExposedServiceSpec (*ClusterWorkloadProxyStatusSpec)(nil), // 77: specs.ClusterWorkloadProxyStatusSpec (*FeaturesConfigSpec)(nil), // 78: specs.FeaturesConfigSpec - (*EtcdBackupSettings)(nil), // 79: specs.EtcdBackupSettings - (*MachineClassSpec)(nil), // 80: specs.MachineClassSpec - (*MachineConfigGenOptionsSpec)(nil), // 81: specs.MachineConfigGenOptionsSpec - (*EtcdAuditResultSpec)(nil), // 82: specs.EtcdAuditResultSpec - (*KubeconfigSpec)(nil), // 83: specs.KubeconfigSpec - (*KubernetesUsageSpec)(nil), // 84: specs.KubernetesUsageSpec - (*ImagePullRequestSpec)(nil), // 85: specs.ImagePullRequestSpec - (*ImagePullStatusSpec)(nil), // 86: specs.ImagePullStatusSpec - (*SchematicSpec)(nil), // 87: specs.SchematicSpec - (*TalosExtensionsSpec)(nil), // 88: specs.TalosExtensionsSpec - (*SchematicConfigurationSpec)(nil), // 89: specs.SchematicConfigurationSpec - (*ExtensionsConfigurationSpec)(nil), // 90: specs.ExtensionsConfigurationSpec - (*ExtensionsConfigurationStatusSpec)(nil), // 91: specs.ExtensionsConfigurationStatusSpec - (*MachineExtensionsSpec)(nil), // 92: specs.MachineExtensionsSpec - (*MachineExtensionsStatusSpec)(nil), // 93: specs.MachineExtensionsStatusSpec - (*MachineStatusMetricsSpec)(nil), // 94: specs.MachineStatusMetricsSpec - (*ClusterStatusMetricsSpec)(nil), // 95: specs.ClusterStatusMetricsSpec - (*ClusterKubernetesNodesSpec)(nil), // 96: specs.ClusterKubernetesNodesSpec - (*KubernetesNodeAuditResultSpec)(nil), // 97: specs.KubernetesNodeAuditResultSpec - (*MachineRequestSetSpec)(nil), // 98: specs.MachineRequestSetSpec - (*MachineRequestSetStatusSpec)(nil), // 99: specs.MachineRequestSetStatusSpec - (*ClusterDiagnosticsSpec)(nil), // 100: specs.ClusterDiagnosticsSpec - (*MachineRequestSetPressureSpec)(nil), // 101: specs.MachineRequestSetPressureSpec - (*ClusterMachineRequestStatusSpec)(nil), // 102: specs.ClusterMachineRequestStatusSpec - (*InfraMachineConfigSpec)(nil), // 103: specs.InfraMachineConfigSpec - (*InfraMachineBMCConfigSpec)(nil), // 104: specs.InfraMachineBMCConfigSpec - (*MaintenanceConfigStatusSpec)(nil), // 105: specs.MaintenanceConfigStatusSpec - (*NodeForceDestroyRequestSpec)(nil), // 106: specs.NodeForceDestroyRequestSpec - (*DiscoveryAffiliateDeleteTaskSpec)(nil), // 107: specs.DiscoveryAffiliateDeleteTaskSpec - (*InfraProviderCombinedStatusSpec)(nil), // 108: specs.InfraProviderCombinedStatusSpec - (*MachineConfigDiffSpec)(nil), // 109: specs.MachineConfigDiffSpec - (*MachineStatusSpec_HardwareStatus)(nil), // 110: specs.MachineStatusSpec.HardwareStatus - (*MachineStatusSpec_NetworkStatus)(nil), // 111: specs.MachineStatusSpec.NetworkStatus - (*MachineStatusSpec_PlatformMetadata)(nil), // 112: specs.MachineStatusSpec.PlatformMetadata - (*MachineStatusSpec_Schematic)(nil), // 113: specs.MachineStatusSpec.Schematic - (*MachineStatusSpec_Diagnostic)(nil), // 114: specs.MachineStatusSpec.Diagnostic - nil, // 115: specs.MachineStatusSpec.ImageLabelsEntry - (*MachineStatusSpec_HardwareStatus_Processor)(nil), // 116: specs.MachineStatusSpec.HardwareStatus.Processor - (*MachineStatusSpec_HardwareStatus_MemoryModule)(nil), // 117: specs.MachineStatusSpec.HardwareStatus.MemoryModule - (*MachineStatusSpec_HardwareStatus_BlockDevice)(nil), // 118: specs.MachineStatusSpec.HardwareStatus.BlockDevice - (*MachineStatusSpec_NetworkStatus_NetworkLinkStatus)(nil), // 119: specs.MachineStatusSpec.NetworkStatus.NetworkLinkStatus - (*ClusterSpec_Features)(nil), // 120: specs.ClusterSpec.Features - (*ClusterMachineStatusSpec_ProvisionStatus)(nil), // 121: specs.ClusterMachineStatusSpec.ProvisionStatus - (*MachineSetSpec_MachineClass)(nil), // 122: specs.MachineSetSpec.MachineClass - (*MachineSetSpec_MachineAllocation)(nil), // 123: specs.MachineSetSpec.MachineAllocation - (*MachineSetSpec_BootstrapSpec)(nil), // 124: specs.MachineSetSpec.BootstrapSpec - (*MachineSetSpec_RollingUpdateStrategyConfig)(nil), // 125: specs.MachineSetSpec.RollingUpdateStrategyConfig - (*MachineSetSpec_UpdateStrategyConfig)(nil), // 126: specs.MachineSetSpec.UpdateStrategyConfig - (*ControlPlaneStatusSpec_Condition)(nil), // 127: specs.ControlPlaneStatusSpec.Condition - (*KubernetesStatusSpec_NodeStatus)(nil), // 128: specs.KubernetesStatusSpec.NodeStatus - (*KubernetesStatusSpec_StaticPodStatus)(nil), // 129: specs.KubernetesStatusSpec.StaticPodStatus - (*KubernetesStatusSpec_NodeStaticPods)(nil), // 130: specs.KubernetesStatusSpec.NodeStaticPods - (*MachineClassSpec_Provision)(nil), // 131: specs.MachineClassSpec.Provision - (*MachineConfigGenOptionsSpec_InstallImage)(nil), // 132: specs.MachineConfigGenOptionsSpec.InstallImage - (*KubernetesUsageSpec_Quantity)(nil), // 133: specs.KubernetesUsageSpec.Quantity - (*KubernetesUsageSpec_Pod)(nil), // 134: specs.KubernetesUsageSpec.Pod - (*ImagePullRequestSpec_NodeImageList)(nil), // 135: specs.ImagePullRequestSpec.NodeImageList - (*TalosExtensionsSpec_Info)(nil), // 136: specs.TalosExtensionsSpec.Info - (*MachineExtensionsStatusSpec_Item)(nil), // 137: specs.MachineExtensionsStatusSpec.Item - nil, // 138: specs.ClusterStatusMetricsSpec.PhasesEntry - (*ClusterDiagnosticsSpec_Node)(nil), // 139: specs.ClusterDiagnosticsSpec.Node - (*InfraMachineBMCConfigSpec_IPMI)(nil), // 140: specs.InfraMachineBMCConfigSpec.IPMI - (*InfraMachineBMCConfigSpec_API)(nil), // 141: specs.InfraMachineBMCConfigSpec.API - (*InfraProviderCombinedStatusSpec_Health)(nil), // 142: specs.InfraProviderCombinedStatusSpec.Health - (*durationpb.Duration)(nil), // 143: google.protobuf.Duration - (*timestamppb.Timestamp)(nil), // 144: google.protobuf.Timestamp - (*machine.MachineStatusEvent)(nil), // 145: machine.MachineStatusEvent + (*UserPilotSettings)(nil), // 79: specs.UserPilotSettings + (*EtcdBackupSettings)(nil), // 80: specs.EtcdBackupSettings + (*MachineClassSpec)(nil), // 81: specs.MachineClassSpec + (*MachineConfigGenOptionsSpec)(nil), // 82: specs.MachineConfigGenOptionsSpec + (*EtcdAuditResultSpec)(nil), // 83: specs.EtcdAuditResultSpec + (*KubeconfigSpec)(nil), // 84: specs.KubeconfigSpec + (*KubernetesUsageSpec)(nil), // 85: specs.KubernetesUsageSpec + (*ImagePullRequestSpec)(nil), // 86: specs.ImagePullRequestSpec + (*ImagePullStatusSpec)(nil), // 87: specs.ImagePullStatusSpec + (*SchematicSpec)(nil), // 88: specs.SchematicSpec + (*TalosExtensionsSpec)(nil), // 89: specs.TalosExtensionsSpec + (*SchematicConfigurationSpec)(nil), // 90: specs.SchematicConfigurationSpec + (*ExtensionsConfigurationSpec)(nil), // 91: specs.ExtensionsConfigurationSpec + (*ExtensionsConfigurationStatusSpec)(nil), // 92: specs.ExtensionsConfigurationStatusSpec + (*MachineExtensionsSpec)(nil), // 93: specs.MachineExtensionsSpec + (*MachineExtensionsStatusSpec)(nil), // 94: specs.MachineExtensionsStatusSpec + (*MachineStatusMetricsSpec)(nil), // 95: specs.MachineStatusMetricsSpec + (*ClusterStatusMetricsSpec)(nil), // 96: specs.ClusterStatusMetricsSpec + (*ClusterKubernetesNodesSpec)(nil), // 97: specs.ClusterKubernetesNodesSpec + (*KubernetesNodeAuditResultSpec)(nil), // 98: specs.KubernetesNodeAuditResultSpec + (*MachineRequestSetSpec)(nil), // 99: specs.MachineRequestSetSpec + (*MachineRequestSetStatusSpec)(nil), // 100: specs.MachineRequestSetStatusSpec + (*ClusterDiagnosticsSpec)(nil), // 101: specs.ClusterDiagnosticsSpec + (*MachineRequestSetPressureSpec)(nil), // 102: specs.MachineRequestSetPressureSpec + (*ClusterMachineRequestStatusSpec)(nil), // 103: specs.ClusterMachineRequestStatusSpec + (*InfraMachineConfigSpec)(nil), // 104: specs.InfraMachineConfigSpec + (*InfraMachineBMCConfigSpec)(nil), // 105: specs.InfraMachineBMCConfigSpec + (*MaintenanceConfigStatusSpec)(nil), // 106: specs.MaintenanceConfigStatusSpec + (*NodeForceDestroyRequestSpec)(nil), // 107: specs.NodeForceDestroyRequestSpec + (*DiscoveryAffiliateDeleteTaskSpec)(nil), // 108: specs.DiscoveryAffiliateDeleteTaskSpec + (*InfraProviderCombinedStatusSpec)(nil), // 109: specs.InfraProviderCombinedStatusSpec + (*MachineConfigDiffSpec)(nil), // 110: specs.MachineConfigDiffSpec + (*MachineStatusSpec_HardwareStatus)(nil), // 111: specs.MachineStatusSpec.HardwareStatus + (*MachineStatusSpec_NetworkStatus)(nil), // 112: specs.MachineStatusSpec.NetworkStatus + (*MachineStatusSpec_PlatformMetadata)(nil), // 113: specs.MachineStatusSpec.PlatformMetadata + (*MachineStatusSpec_Schematic)(nil), // 114: specs.MachineStatusSpec.Schematic + (*MachineStatusSpec_Diagnostic)(nil), // 115: specs.MachineStatusSpec.Diagnostic + nil, // 116: specs.MachineStatusSpec.ImageLabelsEntry + (*MachineStatusSpec_HardwareStatus_Processor)(nil), // 117: specs.MachineStatusSpec.HardwareStatus.Processor + (*MachineStatusSpec_HardwareStatus_MemoryModule)(nil), // 118: specs.MachineStatusSpec.HardwareStatus.MemoryModule + (*MachineStatusSpec_HardwareStatus_BlockDevice)(nil), // 119: specs.MachineStatusSpec.HardwareStatus.BlockDevice + (*MachineStatusSpec_NetworkStatus_NetworkLinkStatus)(nil), // 120: specs.MachineStatusSpec.NetworkStatus.NetworkLinkStatus + (*ClusterSpec_Features)(nil), // 121: specs.ClusterSpec.Features + (*ClusterMachineStatusSpec_ProvisionStatus)(nil), // 122: specs.ClusterMachineStatusSpec.ProvisionStatus + (*MachineSetSpec_MachineClass)(nil), // 123: specs.MachineSetSpec.MachineClass + (*MachineSetSpec_MachineAllocation)(nil), // 124: specs.MachineSetSpec.MachineAllocation + (*MachineSetSpec_BootstrapSpec)(nil), // 125: specs.MachineSetSpec.BootstrapSpec + (*MachineSetSpec_RollingUpdateStrategyConfig)(nil), // 126: specs.MachineSetSpec.RollingUpdateStrategyConfig + (*MachineSetSpec_UpdateStrategyConfig)(nil), // 127: specs.MachineSetSpec.UpdateStrategyConfig + (*ControlPlaneStatusSpec_Condition)(nil), // 128: specs.ControlPlaneStatusSpec.Condition + (*KubernetesStatusSpec_NodeStatus)(nil), // 129: specs.KubernetesStatusSpec.NodeStatus + (*KubernetesStatusSpec_StaticPodStatus)(nil), // 130: specs.KubernetesStatusSpec.StaticPodStatus + (*KubernetesStatusSpec_NodeStaticPods)(nil), // 131: specs.KubernetesStatusSpec.NodeStaticPods + (*MachineClassSpec_Provision)(nil), // 132: specs.MachineClassSpec.Provision + (*MachineConfigGenOptionsSpec_InstallImage)(nil), // 133: specs.MachineConfigGenOptionsSpec.InstallImage + (*KubernetesUsageSpec_Quantity)(nil), // 134: specs.KubernetesUsageSpec.Quantity + (*KubernetesUsageSpec_Pod)(nil), // 135: specs.KubernetesUsageSpec.Pod + (*ImagePullRequestSpec_NodeImageList)(nil), // 136: specs.ImagePullRequestSpec.NodeImageList + (*TalosExtensionsSpec_Info)(nil), // 137: specs.TalosExtensionsSpec.Info + (*MachineExtensionsStatusSpec_Item)(nil), // 138: specs.MachineExtensionsStatusSpec.Item + nil, // 139: specs.ClusterStatusMetricsSpec.PhasesEntry + (*ClusterDiagnosticsSpec_Node)(nil), // 140: specs.ClusterDiagnosticsSpec.Node + (*InfraMachineBMCConfigSpec_IPMI)(nil), // 141: specs.InfraMachineBMCConfigSpec.IPMI + (*InfraMachineBMCConfigSpec_API)(nil), // 142: specs.InfraMachineBMCConfigSpec.API + (*InfraProviderCombinedStatusSpec_Health)(nil), // 143: specs.InfraProviderCombinedStatusSpec.Health + (*durationpb.Duration)(nil), // 144: google.protobuf.Duration + (*timestamppb.Timestamp)(nil), // 145: google.protobuf.Timestamp + (*machine.MachineStatusEvent)(nil), // 146: machine.MachineStatusEvent } var file_omni_specs_omni_proto_depIdxs = []int32{ - 110, // 0: specs.MachineStatusSpec.hardware:type_name -> specs.MachineStatusSpec.HardwareStatus - 111, // 1: specs.MachineStatusSpec.network:type_name -> specs.MachineStatusSpec.NetworkStatus + 111, // 0: specs.MachineStatusSpec.hardware:type_name -> specs.MachineStatusSpec.HardwareStatus + 112, // 1: specs.MachineStatusSpec.network:type_name -> specs.MachineStatusSpec.NetworkStatus 4, // 2: specs.MachineStatusSpec.role:type_name -> specs.MachineStatusSpec.Role - 112, // 3: specs.MachineStatusSpec.platform_metadata:type_name -> specs.MachineStatusSpec.PlatformMetadata - 115, // 4: specs.MachineStatusSpec.image_labels:type_name -> specs.MachineStatusSpec.ImageLabelsEntry - 113, // 5: specs.MachineStatusSpec.schematic:type_name -> specs.MachineStatusSpec.Schematic - 114, // 6: specs.MachineStatusSpec.diagnostics:type_name -> specs.MachineStatusSpec.Diagnostic + 113, // 3: specs.MachineStatusSpec.platform_metadata:type_name -> specs.MachineStatusSpec.PlatformMetadata + 116, // 4: specs.MachineStatusSpec.image_labels:type_name -> specs.MachineStatusSpec.ImageLabelsEntry + 114, // 5: specs.MachineStatusSpec.schematic:type_name -> specs.MachineStatusSpec.Schematic + 115, // 6: specs.MachineStatusSpec.diagnostics:type_name -> specs.MachineStatusSpec.Diagnostic 5, // 7: specs.MachineStatusSpec.power_state:type_name -> specs.MachineStatusSpec.PowerState 23, // 8: specs.MachineStatusSpec.security_state:type_name -> specs.SecurityState - 120, // 9: specs.ClusterSpec.features:type_name -> specs.ClusterSpec.Features + 121, // 9: specs.ClusterSpec.features:type_name -> specs.ClusterSpec.Features 30, // 10: specs.ClusterSpec.backup_configuration:type_name -> specs.EtcdBackupConf - 143, // 11: specs.EtcdBackupConf.interval:type_name -> google.protobuf.Duration - 144, // 12: specs.EtcdBackupSpec.created_at:type_name -> google.protobuf.Timestamp - 143, // 13: specs.BackupDataSpec.interval:type_name -> google.protobuf.Duration + 144, // 11: specs.EtcdBackupConf.interval:type_name -> google.protobuf.Duration + 145, // 12: specs.EtcdBackupSpec.created_at:type_name -> google.protobuf.Timestamp + 144, // 13: specs.BackupDataSpec.interval:type_name -> google.protobuf.Duration 6, // 14: specs.EtcdBackupStatusSpec.status:type_name -> specs.EtcdBackupStatusSpec.Status - 144, // 15: specs.EtcdBackupStatusSpec.last_backup_time:type_name -> google.protobuf.Timestamp - 144, // 16: specs.EtcdBackupStatusSpec.last_backup_attempt:type_name -> google.protobuf.Timestamp - 144, // 17: specs.EtcdManualBackupSpec.backup_at:type_name -> google.protobuf.Timestamp + 145, // 15: specs.EtcdBackupStatusSpec.last_backup_time:type_name -> google.protobuf.Timestamp + 145, // 16: specs.EtcdBackupStatusSpec.last_backup_attempt:type_name -> google.protobuf.Timestamp + 145, // 17: specs.EtcdManualBackupSpec.backup_at:type_name -> google.protobuf.Timestamp 36, // 18: specs.EtcdBackupOverallStatusSpec.last_backup_status:type_name -> specs.EtcdBackupStatusSpec 7, // 19: specs.ClusterMachineStatusSpec.stage:type_name -> specs.ClusterMachineStatusSpec.Stage 0, // 20: specs.ClusterMachineStatusSpec.config_apply_status:type_name -> specs.ConfigApplyStatus - 121, // 21: specs.ClusterMachineStatusSpec.provision_status:type_name -> specs.ClusterMachineStatusSpec.ProvisionStatus + 122, // 21: specs.ClusterMachineStatusSpec.provision_status:type_name -> specs.ClusterMachineStatusSpec.ProvisionStatus 48, // 22: specs.ClusterStatusSpec.machines:type_name -> specs.Machines 8, // 23: specs.ClusterStatusSpec.phase:type_name -> specs.ClusterStatusSpec.Phase 9, // 24: specs.MachineSetSpec.update_strategy:type_name -> specs.MachineSetSpec.UpdateStrategy - 123, // 25: specs.MachineSetSpec.machine_class:type_name -> specs.MachineSetSpec.MachineAllocation - 124, // 26: specs.MachineSetSpec.bootstrap_spec:type_name -> specs.MachineSetSpec.BootstrapSpec + 124, // 25: specs.MachineSetSpec.machine_class:type_name -> specs.MachineSetSpec.MachineAllocation + 125, // 26: specs.MachineSetSpec.bootstrap_spec:type_name -> specs.MachineSetSpec.BootstrapSpec 9, // 27: specs.MachineSetSpec.delete_strategy:type_name -> specs.MachineSetSpec.UpdateStrategy - 126, // 28: specs.MachineSetSpec.update_strategy_config:type_name -> specs.MachineSetSpec.UpdateStrategyConfig - 126, // 29: specs.MachineSetSpec.delete_strategy_config:type_name -> specs.MachineSetSpec.UpdateStrategyConfig - 123, // 30: specs.MachineSetSpec.machine_allocation:type_name -> specs.MachineSetSpec.MachineAllocation + 127, // 28: specs.MachineSetSpec.update_strategy_config:type_name -> specs.MachineSetSpec.UpdateStrategyConfig + 127, // 29: specs.MachineSetSpec.delete_strategy_config:type_name -> specs.MachineSetSpec.UpdateStrategyConfig + 124, // 30: specs.MachineSetSpec.machine_allocation:type_name -> specs.MachineSetSpec.MachineAllocation 12, // 31: specs.TalosUpgradeStatusSpec.phase:type_name -> specs.TalosUpgradeStatusSpec.Phase 1, // 32: specs.MachineSetStatusSpec.phase:type_name -> specs.MachineSetPhase 48, // 33: specs.MachineSetStatusSpec.machines:type_name -> specs.Machines - 123, // 34: specs.MachineSetStatusSpec.machine_allocation:type_name -> specs.MachineSetSpec.MachineAllocation - 145, // 35: specs.MachineStatusSnapshotSpec.machine_status:type_name -> machine.MachineStatusEvent + 124, // 34: specs.MachineSetStatusSpec.machine_allocation:type_name -> specs.MachineSetSpec.MachineAllocation + 146, // 35: specs.MachineStatusSnapshotSpec.machine_status:type_name -> machine.MachineStatusEvent 13, // 36: specs.MachineStatusSnapshotSpec.power_stage:type_name -> specs.MachineStatusSnapshotSpec.PowerStage - 127, // 37: specs.ControlPlaneStatusSpec.conditions:type_name -> specs.ControlPlaneStatusSpec.Condition - 128, // 38: specs.KubernetesStatusSpec.nodes:type_name -> specs.KubernetesStatusSpec.NodeStatus - 130, // 39: specs.KubernetesStatusSpec.static_pods:type_name -> specs.KubernetesStatusSpec.NodeStaticPods + 128, // 37: specs.ControlPlaneStatusSpec.conditions:type_name -> specs.ControlPlaneStatusSpec.Condition + 129, // 38: specs.KubernetesStatusSpec.nodes:type_name -> specs.KubernetesStatusSpec.NodeStatus + 131, // 39: specs.KubernetesStatusSpec.static_pods:type_name -> specs.KubernetesStatusSpec.NodeStaticPods 16, // 40: specs.KubernetesUpgradeStatusSpec.phase:type_name -> specs.KubernetesUpgradeStatusSpec.Phase 63, // 41: specs.OngoingTaskSpec.talos_upgrade:type_name -> specs.TalosUpgradeStatusSpec 71, // 42: specs.OngoingTaskSpec.kubernetes_upgrade:type_name -> specs.KubernetesUpgradeStatusSpec 73, // 43: specs.OngoingTaskSpec.destroy:type_name -> specs.DestroyStatusSpec - 79, // 44: specs.FeaturesConfigSpec.etcd_backup_settings:type_name -> specs.EtcdBackupSettings - 143, // 45: specs.EtcdBackupSettings.tick_interval:type_name -> google.protobuf.Duration - 143, // 46: specs.EtcdBackupSettings.min_interval:type_name -> google.protobuf.Duration - 143, // 47: specs.EtcdBackupSettings.max_interval:type_name -> google.protobuf.Duration - 131, // 48: specs.MachineClassSpec.auto_provision:type_name -> specs.MachineClassSpec.Provision - 132, // 49: specs.MachineConfigGenOptionsSpec.install_image:type_name -> specs.MachineConfigGenOptionsSpec.InstallImage - 133, // 50: specs.KubernetesUsageSpec.cpu:type_name -> specs.KubernetesUsageSpec.Quantity - 133, // 51: specs.KubernetesUsageSpec.mem:type_name -> specs.KubernetesUsageSpec.Quantity - 133, // 52: specs.KubernetesUsageSpec.storage:type_name -> specs.KubernetesUsageSpec.Quantity - 134, // 53: specs.KubernetesUsageSpec.pods:type_name -> specs.KubernetesUsageSpec.Pod - 135, // 54: specs.ImagePullRequestSpec.node_image_list:type_name -> specs.ImagePullRequestSpec.NodeImageList - 136, // 55: specs.TalosExtensionsSpec.items:type_name -> specs.TalosExtensionsSpec.Info - 17, // 56: specs.ExtensionsConfigurationStatusSpec.phase:type_name -> specs.ExtensionsConfigurationStatusSpec.Phase - 137, // 57: specs.MachineExtensionsStatusSpec.extensions:type_name -> specs.MachineExtensionsStatusSpec.Item - 138, // 58: specs.ClusterStatusMetricsSpec.phases:type_name -> specs.ClusterStatusMetricsSpec.PhasesEntry - 25, // 59: specs.MachineRequestSetSpec.meta_values:type_name -> specs.MetaValue - 3, // 60: specs.MachineRequestSetSpec.grpc_tunnel:type_name -> specs.GrpcTunnelMode - 139, // 61: specs.ClusterDiagnosticsSpec.nodes:type_name -> specs.ClusterDiagnosticsSpec.Node - 19, // 62: specs.ClusterMachineRequestStatusSpec.stage:type_name -> specs.ClusterMachineRequestStatusSpec.Stage - 21, // 63: specs.InfraMachineConfigSpec.power_state:type_name -> specs.InfraMachineConfigSpec.MachinePowerState - 20, // 64: specs.InfraMachineConfigSpec.acceptance_status:type_name -> specs.InfraMachineConfigSpec.AcceptanceStatus - 140, // 65: specs.InfraMachineBMCConfigSpec.ipmi:type_name -> specs.InfraMachineBMCConfigSpec.IPMI - 141, // 66: specs.InfraMachineBMCConfigSpec.api:type_name -> specs.InfraMachineBMCConfigSpec.API - 142, // 67: specs.InfraProviderCombinedStatusSpec.health:type_name -> specs.InfraProviderCombinedStatusSpec.Health - 116, // 68: specs.MachineStatusSpec.HardwareStatus.processors:type_name -> specs.MachineStatusSpec.HardwareStatus.Processor - 117, // 69: specs.MachineStatusSpec.HardwareStatus.memory_modules:type_name -> specs.MachineStatusSpec.HardwareStatus.MemoryModule - 118, // 70: specs.MachineStatusSpec.HardwareStatus.blockdevices:type_name -> specs.MachineStatusSpec.HardwareStatus.BlockDevice - 119, // 71: specs.MachineStatusSpec.NetworkStatus.network_links:type_name -> specs.MachineStatusSpec.NetworkStatus.NetworkLinkStatus - 24, // 72: specs.MachineStatusSpec.Schematic.overlay:type_name -> specs.Overlay - 25, // 73: specs.MachineStatusSpec.Schematic.meta_values:type_name -> specs.MetaValue - 10, // 74: specs.MachineSetSpec.MachineClass.allocation_type:type_name -> specs.MachineSetSpec.MachineClass.Type - 11, // 75: specs.MachineSetSpec.MachineAllocation.allocation_type:type_name -> specs.MachineSetSpec.MachineAllocation.Type - 125, // 76: specs.MachineSetSpec.UpdateStrategyConfig.rolling:type_name -> specs.MachineSetSpec.RollingUpdateStrategyConfig - 2, // 77: specs.ControlPlaneStatusSpec.Condition.type:type_name -> specs.ConditionType - 14, // 78: specs.ControlPlaneStatusSpec.Condition.status:type_name -> specs.ControlPlaneStatusSpec.Condition.Status - 15, // 79: specs.ControlPlaneStatusSpec.Condition.severity:type_name -> specs.ControlPlaneStatusSpec.Condition.Severity - 129, // 80: specs.KubernetesStatusSpec.NodeStaticPods.static_pods:type_name -> specs.KubernetesStatusSpec.StaticPodStatus - 25, // 81: specs.MachineClassSpec.Provision.meta_values:type_name -> specs.MetaValue - 3, // 82: specs.MachineClassSpec.Provision.grpc_tunnel:type_name -> specs.GrpcTunnelMode - 23, // 83: specs.MachineConfigGenOptionsSpec.InstallImage.security_state:type_name -> specs.SecurityState - 18, // 84: specs.MachineExtensionsStatusSpec.Item.phase:type_name -> specs.MachineExtensionsStatusSpec.Item.Phase - 85, // [85:85] is the sub-list for method output_type - 85, // [85:85] is the sub-list for method input_type - 85, // [85:85] is the sub-list for extension type_name - 85, // [85:85] is the sub-list for extension extendee - 0, // [0:85] is the sub-list for field type_name + 80, // 44: specs.FeaturesConfigSpec.etcd_backup_settings:type_name -> specs.EtcdBackupSettings + 79, // 45: specs.FeaturesConfigSpec.user_pilot_settings:type_name -> specs.UserPilotSettings + 144, // 46: specs.EtcdBackupSettings.tick_interval:type_name -> google.protobuf.Duration + 144, // 47: specs.EtcdBackupSettings.min_interval:type_name -> google.protobuf.Duration + 144, // 48: specs.EtcdBackupSettings.max_interval:type_name -> google.protobuf.Duration + 132, // 49: specs.MachineClassSpec.auto_provision:type_name -> specs.MachineClassSpec.Provision + 133, // 50: specs.MachineConfigGenOptionsSpec.install_image:type_name -> specs.MachineConfigGenOptionsSpec.InstallImage + 134, // 51: specs.KubernetesUsageSpec.cpu:type_name -> specs.KubernetesUsageSpec.Quantity + 134, // 52: specs.KubernetesUsageSpec.mem:type_name -> specs.KubernetesUsageSpec.Quantity + 134, // 53: specs.KubernetesUsageSpec.storage:type_name -> specs.KubernetesUsageSpec.Quantity + 135, // 54: specs.KubernetesUsageSpec.pods:type_name -> specs.KubernetesUsageSpec.Pod + 136, // 55: specs.ImagePullRequestSpec.node_image_list:type_name -> specs.ImagePullRequestSpec.NodeImageList + 137, // 56: specs.TalosExtensionsSpec.items:type_name -> specs.TalosExtensionsSpec.Info + 17, // 57: specs.ExtensionsConfigurationStatusSpec.phase:type_name -> specs.ExtensionsConfigurationStatusSpec.Phase + 138, // 58: specs.MachineExtensionsStatusSpec.extensions:type_name -> specs.MachineExtensionsStatusSpec.Item + 139, // 59: specs.ClusterStatusMetricsSpec.phases:type_name -> specs.ClusterStatusMetricsSpec.PhasesEntry + 25, // 60: specs.MachineRequestSetSpec.meta_values:type_name -> specs.MetaValue + 3, // 61: specs.MachineRequestSetSpec.grpc_tunnel:type_name -> specs.GrpcTunnelMode + 140, // 62: specs.ClusterDiagnosticsSpec.nodes:type_name -> specs.ClusterDiagnosticsSpec.Node + 19, // 63: specs.ClusterMachineRequestStatusSpec.stage:type_name -> specs.ClusterMachineRequestStatusSpec.Stage + 21, // 64: specs.InfraMachineConfigSpec.power_state:type_name -> specs.InfraMachineConfigSpec.MachinePowerState + 20, // 65: specs.InfraMachineConfigSpec.acceptance_status:type_name -> specs.InfraMachineConfigSpec.AcceptanceStatus + 141, // 66: specs.InfraMachineBMCConfigSpec.ipmi:type_name -> specs.InfraMachineBMCConfigSpec.IPMI + 142, // 67: specs.InfraMachineBMCConfigSpec.api:type_name -> specs.InfraMachineBMCConfigSpec.API + 143, // 68: specs.InfraProviderCombinedStatusSpec.health:type_name -> specs.InfraProviderCombinedStatusSpec.Health + 117, // 69: specs.MachineStatusSpec.HardwareStatus.processors:type_name -> specs.MachineStatusSpec.HardwareStatus.Processor + 118, // 70: specs.MachineStatusSpec.HardwareStatus.memory_modules:type_name -> specs.MachineStatusSpec.HardwareStatus.MemoryModule + 119, // 71: specs.MachineStatusSpec.HardwareStatus.blockdevices:type_name -> specs.MachineStatusSpec.HardwareStatus.BlockDevice + 120, // 72: specs.MachineStatusSpec.NetworkStatus.network_links:type_name -> specs.MachineStatusSpec.NetworkStatus.NetworkLinkStatus + 24, // 73: specs.MachineStatusSpec.Schematic.overlay:type_name -> specs.Overlay + 25, // 74: specs.MachineStatusSpec.Schematic.meta_values:type_name -> specs.MetaValue + 10, // 75: specs.MachineSetSpec.MachineClass.allocation_type:type_name -> specs.MachineSetSpec.MachineClass.Type + 11, // 76: specs.MachineSetSpec.MachineAllocation.allocation_type:type_name -> specs.MachineSetSpec.MachineAllocation.Type + 126, // 77: specs.MachineSetSpec.UpdateStrategyConfig.rolling:type_name -> specs.MachineSetSpec.RollingUpdateStrategyConfig + 2, // 78: specs.ControlPlaneStatusSpec.Condition.type:type_name -> specs.ConditionType + 14, // 79: specs.ControlPlaneStatusSpec.Condition.status:type_name -> specs.ControlPlaneStatusSpec.Condition.Status + 15, // 80: specs.ControlPlaneStatusSpec.Condition.severity:type_name -> specs.ControlPlaneStatusSpec.Condition.Severity + 130, // 81: specs.KubernetesStatusSpec.NodeStaticPods.static_pods:type_name -> specs.KubernetesStatusSpec.StaticPodStatus + 25, // 82: specs.MachineClassSpec.Provision.meta_values:type_name -> specs.MetaValue + 3, // 83: specs.MachineClassSpec.Provision.grpc_tunnel:type_name -> specs.GrpcTunnelMode + 23, // 84: specs.MachineConfigGenOptionsSpec.InstallImage.security_state:type_name -> specs.SecurityState + 18, // 85: specs.MachineExtensionsStatusSpec.Item.phase:type_name -> specs.MachineExtensionsStatusSpec.Item.Phase + 86, // [86:86] is the sub-list for method output_type + 86, // [86:86] is the sub-list for method input_type + 86, // [86:86] is the sub-list for extension type_name + 86, // [86:86] is the sub-list for extension extendee + 0, // [0:86] is the sub-list for field type_name } func init() { file_omni_specs_omni_proto_init() } @@ -9804,7 +9862,7 @@ func file_omni_specs_omni_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_omni_specs_omni_proto_rawDesc), len(file_omni_specs_omni_proto_rawDesc)), NumEnums: 22, - NumMessages: 121, + NumMessages: 122, NumExtensions: 0, NumServices: 0, }, diff --git a/client/api/omni/specs/omni.proto b/client/api/omni/specs/omni.proto index 2521fd36..4914657e 100644 --- a/client/api/omni/specs/omni.proto +++ b/client/api/omni/specs/omni.proto @@ -1023,6 +1023,13 @@ message FeaturesConfigSpec { // ImageFactoryBaseUrl is the base URL of the image factory. string image_factory_base_url = 5; + + // UserPilotSettings enables UserPilot on the frontend side. + UserPilotSettings user_pilot_settings = 6; +} + +message UserPilotSettings { + string app_token = 1; } message EtcdBackupSettings { diff --git a/client/api/omni/specs/omni_vtproto.pb.go b/client/api/omni/specs/omni_vtproto.pb.go index d663d5fb..93d2a676 100644 --- a/client/api/omni/specs/omni_vtproto.pb.go +++ b/client/api/omni/specs/omni_vtproto.pb.go @@ -1708,6 +1708,7 @@ func (m *FeaturesConfigSpec) CloneVT() *FeaturesConfigSpec { r.EmbeddedDiscoveryService = m.EmbeddedDiscoveryService r.AuditLogEnabled = m.AuditLogEnabled r.ImageFactoryBaseUrl = m.ImageFactoryBaseUrl + r.UserPilotSettings = m.UserPilotSettings.CloneVT() if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -1719,6 +1720,23 @@ func (m *FeaturesConfigSpec) CloneMessageVT() proto.Message { return m.CloneVT() } +func (m *UserPilotSettings) CloneVT() *UserPilotSettings { + if m == nil { + return (*UserPilotSettings)(nil) + } + r := new(UserPilotSettings) + r.AppToken = m.AppToken + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *UserPilotSettings) CloneMessageVT() proto.Message { + return m.CloneVT() +} + func (m *EtcdBackupSettings) CloneVT() *EtcdBackupSettings { if m == nil { return (*EtcdBackupSettings)(nil) @@ -4925,6 +4943,9 @@ func (this *FeaturesConfigSpec) EqualVT(that *FeaturesConfigSpec) bool { if this.ImageFactoryBaseUrl != that.ImageFactoryBaseUrl { return false } + if !this.UserPilotSettings.EqualVT(that.UserPilotSettings) { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -4935,6 +4956,25 @@ func (this *FeaturesConfigSpec) EqualMessageVT(thatMsg proto.Message) bool { } return this.EqualVT(that) } +func (this *UserPilotSettings) EqualVT(that *UserPilotSettings) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.AppToken != that.AppToken { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *UserPilotSettings) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*UserPilotSettings) + if !ok { + return false + } + return this.EqualVT(that) +} func (this *EtcdBackupSettings) EqualVT(that *EtcdBackupSettings) bool { if this == that { return true @@ -10727,6 +10767,16 @@ func (m *FeaturesConfigSpec) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.UserPilotSettings != nil { + size, err := m.UserPilotSettings.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } if len(m.ImageFactoryBaseUrl) > 0 { i -= len(m.ImageFactoryBaseUrl) copy(dAtA[i:], m.ImageFactoryBaseUrl) @@ -10777,6 +10827,46 @@ func (m *FeaturesConfigSpec) MarshalToSizedBufferVT(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *UserPilotSettings) 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 *UserPilotSettings) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *UserPilotSettings) 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) + } + if len(m.AppToken) > 0 { + i -= len(m.AppToken) + copy(dAtA[i:], m.AppToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AppToken))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *EtcdBackupSettings) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil @@ -14824,6 +14914,24 @@ func (m *FeaturesConfigSpec) SizeVT() (n int) { if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } + if m.UserPilotSettings != nil { + l = m.UserPilotSettings.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *UserPilotSettings) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.AppToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } n += len(m.unknownFields) return n } @@ -27499,6 +27607,125 @@ func (m *FeaturesConfigSpec) UnmarshalVT(dAtA []byte) error { } m.ImageFactoryBaseUrl = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UserPilotSettings", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.UserPilotSettings == nil { + m.UserPilotSettings = &UserPilotSettings{} + } + if err := m.UserPilotSettings.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + 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 *UserPilotSettings) 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: UserPilotSettings: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UserPilotSettings: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AppToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AppToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/client/api/omni/specs/virtual.pb.go b/client/api/omni/specs/virtual.pb.go index 03bea8da..437b3783 100644 --- a/client/api/omni/specs/virtual.pb.go +++ b/client/api/omni/specs/virtual.pb.go @@ -26,6 +26,7 @@ type CurrentUserSpec struct { state protoimpl.MessageState `protogen:"open.v1"` Identity string `protobuf:"bytes,1,opt,name=identity,proto3" json:"identity,omitempty"` Role string `protobuf:"bytes,3,opt,name=role,proto3" json:"role,omitempty"` + UserId string `protobuf:"bytes,4,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -74,6 +75,13 @@ func (x *CurrentUserSpec) GetRole() string { return "" } +func (x *CurrentUserSpec) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + type PermissionsSpec struct { state protoimpl.MessageState `protogen:"open.v1"` CanReadClusters bool `protobuf:"varint,1,opt,name=can_read_clusters,json=canReadClusters,proto3" json:"can_read_clusters,omitempty"` @@ -466,10 +474,11 @@ var File_omni_specs_virtual_proto protoreflect.FileDescriptor const file_omni_specs_virtual_proto_rawDesc = "" + "\n" + - "\x18omni/specs/virtual.proto\x12\x05specs\"G\n" + + "\x18omni/specs/virtual.proto\x12\x05specs\"`\n" + "\x0fCurrentUserSpec\x12\x1a\n" + "\bidentity\x18\x01 \x01(\tR\bidentity\x12\x12\n" + - "\x04role\x18\x03 \x01(\tR\x04roleJ\x04\b\x02\x10\x03\"\xdb\x04\n" + + "\x04role\x18\x03 \x01(\tR\x04role\x12\x17\n" + + "\auser_id\x18\x04 \x01(\tR\x06userIdJ\x04\b\x02\x10\x03\"\xdb\x04\n" + "\x0fPermissionsSpec\x12*\n" + "\x11can_read_clusters\x18\x01 \x01(\bR\x0fcanReadClusters\x12.\n" + "\x13can_create_clusters\x18\x02 \x01(\bR\x11canCreateClusters\x12(\n" + diff --git a/client/api/omni/specs/virtual.proto b/client/api/omni/specs/virtual.proto index 22ab12b0..ba3965fc 100644 --- a/client/api/omni/specs/virtual.proto +++ b/client/api/omni/specs/virtual.proto @@ -7,6 +7,7 @@ message CurrentUserSpec { string identity = 1; reserved 2; string role = 3; + string user_id = 4; } message PermissionsSpec { diff --git a/client/api/omni/specs/virtual_vtproto.pb.go b/client/api/omni/specs/virtual_vtproto.pb.go index 15e45be7..a870e845 100644 --- a/client/api/omni/specs/virtual_vtproto.pb.go +++ b/client/api/omni/specs/virtual_vtproto.pb.go @@ -27,6 +27,7 @@ func (m *CurrentUserSpec) CloneVT() *CurrentUserSpec { r := new(CurrentUserSpec) r.Identity = m.Identity r.Role = m.Role + r.UserId = m.UserId if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -166,6 +167,9 @@ func (this *CurrentUserSpec) EqualVT(that *CurrentUserSpec) bool { if this.Role != that.Role { return false } + if this.UserId != that.UserId { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -387,6 +391,13 @@ func (m *CurrentUserSpec) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if len(m.UserId) > 0 { + i -= len(m.UserId) + copy(dAtA[i:], m.UserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.UserId))) + i-- + dAtA[i] = 0x22 + } if len(m.Role) > 0 { i -= len(m.Role) copy(dAtA[i:], m.Role) @@ -851,6 +862,10 @@ func (m *CurrentUserSpec) SizeVT() (n int) { if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } + l = len(m.UserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } n += len(m.unknownFields) return n } @@ -1090,6 +1105,38 @@ func (m *CurrentUserSpec) UnmarshalVT(dAtA []byte) error { } m.Role = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.UserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/cmd/omni/cmd/cmd.go b/cmd/omni/cmd/cmd.go index 11c8ef59..d6ad1f5a 100644 --- a/cmd/omni/cmd/cmd.go +++ b/cmd/omni/cmd/cmd.go @@ -138,6 +138,7 @@ func newCommand() *cobra.Command { rootCmd.Flags().StringVar(&cmdConfig.Account.ID, "account-id", cmdConfig.Account.ID, "instance account ID, should never be changed.") rootCmd.Flags().StringVar(&cmdConfig.Account.Name, "name", cmdConfig.Account.Name, "instance user-facing name.") + rootCmd.Flags().StringVar(&cmdConfig.Account.UserPilot.AppToken, "user-pilot-app-token", cmdConfig.Account.UserPilot.AppToken, "user pilot app token.") defineServiceFlags() defineAuthFlags() diff --git a/frontend/package-lock.json b/frontend/package-lock.json index e226b72a..bdb598df 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -21,6 +21,7 @@ "monaco-editor": "^0.52.2", "monaco-yaml": "^5.3.1", "pluralize": "^8.0.0", + "userpilot": "^1.4.1", "uuid": "^11.1.0", "vue": "^3.5.13", "vue-router": "^4.5.1", @@ -1572,6 +1573,36 @@ "vue": "^3.2.26" } }, + "node_modules/@ndhoule/each": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@ndhoule/each/-/each-2.0.1.tgz", + "integrity": "sha512-wHuJw6x+rF6Q9Skgra++KccjBozCr9ymtna0FhxmV/8xT/hZ2ExGYR8SV8prg8x4AH/7mzDYErNGIVHuzHeybw==", + "license": "MIT", + "dependencies": { + "@ndhoule/keys": "^2.0.0" + } + }, + "node_modules/@ndhoule/includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@ndhoule/includes/-/includes-2.0.1.tgz", + "integrity": "sha512-Q8zN6f3yIhxgBwZ5ldLozHqJlc/fRQ5+hFFsPMFeC9SJvz0nq8vG9hoRXL1c1iaNFQd7yAZIy2igQpERoFqxqg==", + "license": "MIT", + "dependencies": { + "@ndhoule/each": "^2.0.1" + } + }, + "node_modules/@ndhoule/keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@ndhoule/keys/-/keys-2.0.0.tgz", + "integrity": "sha512-vtCqKBC1Av6dsBA8xpAO+cgk051nfaI+PnmTZep2Px0vYrDvpUmLxv7z40COlWH5yCpu3gzNhepk+02yiQiZNw==", + "license": "MIT" + }, + "node_modules/@ndhoule/pick": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@ndhoule/pick/-/pick-2.0.0.tgz", + "integrity": "sha512-xkYtpf1pRd8egwvl5tJcdGu+GBd6ZZH3S/zoIQ9txEI+pHF9oTIlxMC9G4CB3sRugAeLgu8qYJGl3tnxWq74Qw==", + "license": "MIT" + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -3937,6 +3968,11 @@ "dev": true, "license": "MIT" }, + "node_modules/component-indexof": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-indexof/-/component-indexof-0.0.3.tgz", + "integrity": "sha512-puDQKvx/64HZXb4hBwIcvQLaLgux8o1CbWl39s41hrIIZDl1lJiD5jc22gj3RBeGK0ovxALDYpIbyjqDUUl0rw==" + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -5488,6 +5524,15 @@ "dev": true, "license": "ISC" }, + "node_modules/is": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/is/-/is-3.3.2.tgz", + "integrity": "sha512-a2xr4E3s1PjDS8ORcGgXpWx6V+liNs+O3JRD2mb9aeugD7rtkkZ0zgLdYgw0tWsKhsdiezGYptSiMlVazCBTuQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/is-arguments": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", @@ -6608,6 +6653,12 @@ "dev": true, "license": "MIT" }, + "node_modules/obj-case": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/obj-case/-/obj-case-0.2.1.tgz", + "integrity": "sha512-PquYBBTy+Y6Ob/O2574XHhDtHJlV1cJHMCgW+rDRc9J5hhmRelJB3k5dTK/3cVmFVtzvAKuENeuLpoyTzMzkOg==", + "license": "MIT" + }, "node_modules/object-inspect": { "version": "1.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", @@ -8321,6 +8372,19 @@ "node": ">= 0.4" } }, + "node_modules/userpilot": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/userpilot/-/userpilot-1.4.1.tgz", + "integrity": "sha512-I6tYwPCbOAhqZsdIDWmOdxHKtDvxnCLa1cIO4Lcy/qZG1kXhTiHYaoHA58xpbh6I1wmkOn3hbkIs71f+/JRvWg==", + "license": "MIT", + "dependencies": { + "@ndhoule/includes": "^2.0.1", + "@ndhoule/pick": "^2.0.0", + "component-indexof": "0.0.3", + "is": "^3.1.0", + "obj-case": "^0.2.0" + } + }, "node_modules/util": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", diff --git a/frontend/package.json b/frontend/package.json index 260f4be0..9d83c0fc 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -28,6 +28,7 @@ "monaco-editor": "^0.52.2", "monaco-yaml": "^5.3.1", "pluralize": "^8.0.0", + "userpilot": "^1.4.1", "uuid": "^11.1.0", "vue": "^3.5.13", "vue-router": "^4.5.1", diff --git a/frontend/src/api/omni/specs/omni.pb.ts b/frontend/src/api/omni/specs/omni.pb.ts index 047140b8..54276917 100644 --- a/frontend/src/api/omni/specs/omni.pb.ts +++ b/frontend/src/api/omni/specs/omni.pb.ts @@ -671,6 +671,11 @@ export type FeaturesConfigSpec = { embedded_discovery_service?: boolean audit_log_enabled?: boolean image_factory_base_url?: string + user_pilot_settings?: UserPilotSettings +} + +export type UserPilotSettings = { + app_token?: string } export type EtcdBackupSettings = { diff --git a/frontend/src/api/omni/specs/virtual.pb.ts b/frontend/src/api/omni/specs/virtual.pb.ts index 9f9fb9e6..5058c379 100644 --- a/frontend/src/api/omni/specs/virtual.pb.ts +++ b/frontend/src/api/omni/specs/virtual.pb.ts @@ -6,6 +6,7 @@ export type CurrentUserSpec = { identity?: string role?: string + user_id?: string } export type PermissionsSpec = { diff --git a/frontend/src/methods/auth.ts b/frontend/src/methods/auth.ts index b3194527..7c204289 100644 --- a/frontend/src/methods/auth.ts +++ b/frontend/src/methods/auth.ts @@ -27,6 +27,8 @@ import { VirtualNamespace, } from '@/api/resources' +import { initializeUserPilot } from './features' + export const currentUser: Ref | undefined> = ref() export const permissions: Ref | undefined> = ref() @@ -166,6 +168,8 @@ const refreshCurrentUser = async () => { }, withRuntime(Runtime.Omni), ) + + await initializeUserPilot(currentUser.value) } catch { currentUser.value = undefined } diff --git a/frontend/src/methods/features.ts b/frontend/src/methods/features.ts index 8ebf5e2b..43739966 100644 --- a/frontend/src/methods/features.ts +++ b/frontend/src/methods/features.ts @@ -3,6 +3,7 @@ // Use of this software is governed by the Business Source License // included in the LICENSE file. +import { Userpilot } from 'userpilot' import type { Ref } from 'vue' import { computed, ref } from 'vue' @@ -10,7 +11,8 @@ import { Runtime } from '@/api/common/omni.pb' import type { Resource } from '@/api/grpc' import { ResourceService } from '@/api/grpc' import type { FeaturesConfigSpec } from '@/api/omni/specs/omni.pb' -import { withRuntime } from '@/api/options' +import type { CurrentUserSpec } from '@/api/omni/specs/virtual.pb' +import { withAbortController, withRuntime } from '@/api/options' import { DefaultNamespace, FeaturesConfigID, FeaturesConfigType } from '@/api/resources' import Watch from '@/api/watch' @@ -31,6 +33,40 @@ export const setupWorkloadProxyingEnabledFeatureWatch = (): Ref => { }) } +let userPilotInitialized = false +let userPilotInitializeAbortController: AbortController | null = null + +export const initializeUserPilot = async (user: Resource) => { + if (!userPilotInitialized) { + userPilotInitializeAbortController?.abort() + + userPilotInitializeAbortController = new AbortController() + + const featuresConfig = await ResourceService.Get>( + { + type: FeaturesConfigType, + namespace: DefaultNamespace, + id: FeaturesConfigID, + }, + withRuntime(Runtime.Omni), + withAbortController(userPilotInitializeAbortController), + ) + + const token = featuresConfig.spec?.user_pilot_settings?.app_token + if (!token) { + return + } + + Userpilot.initialize(token) + + userPilotInitialized = true + } + + Userpilot.identify(user.spec.user_id!, { + role: user.spec.role!, + }) +} + let cachedFeaturesConfig: Resource | undefined export const embeddedDiscoveryServiceFeatureAvailable = async (): Promise => { diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts index 32bfc86d..f01e6e43 100644 --- a/frontend/src/router/index.ts +++ b/frontend/src/router/index.ts @@ -4,6 +4,7 @@ // included in the LICENSE file. import { authGuard } from '@auth0/auth0-vue' +import { Userpilot } from 'userpilot' import type { RouteLocation, RouteLocationRaw, RouteMeta, RouteRecordRaw } from 'vue-router' import { createRouter, createWebHistory } from 'vue-router' @@ -462,6 +463,10 @@ router.beforeEach((to) => { return true }) +router.afterEach(() => { + Userpilot.reload() +}) + const modals = { reboot: NodeReboot, shutdown: NodeShutdown, diff --git a/internal/backend/runtime/omni/virtual/state.go b/internal/backend/runtime/omni/virtual/state.go index cf0ec8d7..05d0809b 100644 --- a/internal/backend/runtime/omni/virtual/state.go +++ b/internal/backend/runtime/omni/virtual/state.go @@ -185,6 +185,17 @@ func (v *State) currentUser(ctx context.Context) (*virtual.CurrentUser, error) { user.Metadata().SetVersion(version) + identity, err := safe.ReaderGetByID[*authres.Identity](ctx, v.PrimaryState, identityVal.Identity) + if err != nil { + if state.IsNotFoundError(err) { + return user, nil + } + + return nil, err + } + + user.TypedSpec().Value.UserId = identity.TypedSpec().Value.UserId + return user, nil } diff --git a/internal/frontend/handler.go b/internal/frontend/handler.go index 63ee0b3f..02d9e8f3 100644 --- a/internal/frontend/handler.go +++ b/internal/frontend/handler.go @@ -110,8 +110,8 @@ func (handler *StaticHandler) serveFile(w http.ResponseWriter, r *http.Request, } else { w.Header().Set("Referrer-Policy", "strict-origin-when-cross-origin") - w.Header().Set("Content-Security-Policy", "default-src 'self'; img-src * data: ; "+ - ";connect-src 'self' https://*.auth0.com ;font-src 'self' data: "+ + w.Header().Set("Content-Security-Policy", "default-src 'self' https://*.userpilot.io; img-src * data: ; "+ + ";connect-src 'self' https://*.auth0.com https://*.userpilot.io wss://*.userpilot.io ;font-src 'self' data: "+ ";style-src 'self' 'unsafe-inline' https://fonts.googleapis.com data: ;upgrade-insecure-requests;"+ ";frame-src https://*.auth0.com", ) diff --git a/internal/pkg/config/config.go b/internal/pkg/config/config.go index f551fef3..46d98afc 100644 --- a/internal/pkg/config/config.go +++ b/internal/pkg/config/config.go @@ -297,6 +297,16 @@ type Account struct { // Omni will use to present some information to the user. // Name can be changed at any time. Name string `yaml:"name" validate:"required"` + + // UserPilot configuration. + UserPilot UserPilot `yaml:"userPilot"` +} + +// UserPilot describes user pilot credentials. +// If not set it is disabled. +type UserPilot struct { + // AppToken is the token used to report metrics to the userpilot service. + AppToken string `yaml:"appToken"` } // Registries configures docker registries to be used for the Talos and Kubernetes images. diff --git a/internal/pkg/features/features.go b/internal/pkg/features/features.go index fc6cbf5d..da60f13a 100644 --- a/internal/pkg/features/features.go +++ b/internal/pkg/features/features.go @@ -34,6 +34,9 @@ func UpdateResources(ctx context.Context, st state.State, logger *zap.Logger) er res.TypedSpec().Value.AuditLogEnabled = config.Config.Logs.Audit.Path != "" res.TypedSpec().Value.ImageFactoryBaseUrl = config.Config.Registries.ImageFactoryBaseURL + res.TypedSpec().Value.UserPilotSettings = &specs.UserPilotSettings{ + AppToken: config.Config.Account.UserPilot.AppToken, + } return nil }