diff --git a/CHANGELOG.md b/CHANGELOG.md index a008be3c8..858f78bac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ NOTE: As semantic versioning states all 0.y.z releases can contain breaking chan ### Changed - [#30](https://github.com/kobsio/kobs/pull/30): Support multiple versions of a CRD and allow the specification of namespaces in the Applications resources list. +- [#35](https://github.com/kobsio/kobs/pull/35): Add new field `displayName` for plugins, to overwrite the name which is displayed for a plugin tab in the frontend. ## [v0.1.0](https://github.com/kobsio/kobs/releases/tag/v0.1.0) (2021-04-04) diff --git a/app/src/components/applications/ApplicationTabs.tsx b/app/src/components/applications/ApplicationTabs.tsx index b17affaa4..18f77a6cc 100644 --- a/app/src/components/applications/ApplicationTabs.tsx +++ b/app/src/components/applications/ApplicationTabs.tsx @@ -38,7 +38,7 @@ const ApplicationTabs: React.FunctionComponent = ({ {plugin.name}} + title={{plugin.displayname ? plugin.displayname : plugin.name}} tabContentId={`refPlugin-${index}`} tabContentRef={refPluginsContent ? refPluginsContent[index] : undefined} /> diff --git a/app/src/components/resources/ResourceDetails.tsx b/app/src/components/resources/ResourceDetails.tsx index c746bc875..9a81c3dd5 100644 --- a/app/src/components/resources/ResourceDetails.tsx +++ b/app/src/components/resources/ResourceDetails.tsx @@ -266,7 +266,11 @@ const ResourceDetails: React.FunctionComponent = ({ ) : plugins.length > 0 ? ( plugins.map((plugin, index) => ( - {plugin.name}}> + {plugin.displayname ? plugin.displayname : plugin.name}} + >
diff --git a/app/src/plugins/elasticsearch/helpers.ts b/app/src/plugins/elasticsearch/helpers.ts index 00ee13dd6..c880090c5 100644 --- a/app/src/plugins/elasticsearch/helpers.ts +++ b/app/src/plugins/elasticsearch/helpers.ts @@ -113,6 +113,7 @@ export const jsonToProto = (json: any): Plugin.AsObject | undefined => { const plugin = new Plugin(); plugin.setName(json.name); + plugin.setDisplayname(json.displayName ? json.displayName : ''); plugin.setElasticsearch(elasticsearch); return plugin.toObject(); diff --git a/app/src/plugins/jaeger/helpers.ts b/app/src/plugins/jaeger/helpers.ts index 8d020f76d..0f8919292 100644 --- a/app/src/plugins/jaeger/helpers.ts +++ b/app/src/plugins/jaeger/helpers.ts @@ -263,6 +263,7 @@ export const jsonToProto = (json: any): Plugin.AsObject | undefined => { const plugin = new Plugin(); plugin.setName(json.name); + plugin.setDisplayname(json.displayName ? json.displayName : ''); plugin.setJaeger(jaeger); return plugin.toObject(); diff --git a/app/src/plugins/prometheus/helpers.ts b/app/src/plugins/prometheus/helpers.ts index 094f3ae32..a958c7c2c 100644 --- a/app/src/plugins/prometheus/helpers.ts +++ b/app/src/plugins/prometheus/helpers.ts @@ -101,6 +101,7 @@ export const jsonToProto = (json: any): Plugin.AsObject | undefined => { const plugin = new Plugin(); plugin.setName(json.name); + plugin.setDisplayname(json.displayName ? json.displayName : ''); plugin.setPrometheus(prometheus); return plugin.toObject(); diff --git a/app/src/proto/plugins_pb.d.ts b/app/src/proto/plugins_pb.d.ts index 6043bfb02..b9bc105c5 100644 --- a/app/src/proto/plugins_pb.d.ts +++ b/app/src/proto/plugins_pb.d.ts @@ -76,6 +76,9 @@ export class Plugin extends jspb.Message { getName(): string; setName(value: string): void; + getDisplayname(): string; + setDisplayname(value: string): void; + hasPrometheus(): boolean; clearPrometheus(): void; getPrometheus(): prometheus_pb.Spec | undefined; @@ -104,6 +107,7 @@ export class Plugin extends jspb.Message { export namespace Plugin { export type AsObject = { name: string, + displayname: string, prometheus?: prometheus_pb.Spec.AsObject, elasticsearch?: elasticsearch_pb.Spec.AsObject, jaeger?: jaeger_pb.Spec.AsObject, diff --git a/app/src/proto/plugins_pb.js b/app/src/proto/plugins_pb.js index 45efd6d4a..db396bc7b 100644 --- a/app/src/proto/plugins_pb.js +++ b/app/src/proto/plugins_pb.js @@ -592,6 +592,7 @@ proto.plugins.Plugin.prototype.toObject = function(opt_includeInstance) { proto.plugins.Plugin.toObject = function(includeInstance, msg) { var f, obj = { name: jspb.Message.getFieldWithDefault(msg, 1, ""), + displayname: jspb.Message.getFieldWithDefault(msg, 2, ""), prometheus: (f = msg.getPrometheus()) && prometheus_pb.Spec.toObject(includeInstance, f), elasticsearch: (f = msg.getElasticsearch()) && elasticsearch_pb.Spec.toObject(includeInstance, f), jaeger: (f = msg.getJaeger()) && jaeger_pb.Spec.toObject(includeInstance, f) @@ -636,16 +637,20 @@ proto.plugins.Plugin.deserializeBinaryFromReader = function(msg, reader) { msg.setName(value); break; case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setDisplayname(value); + break; + case 3: var value = new prometheus_pb.Spec; reader.readMessage(value,prometheus_pb.Spec.deserializeBinaryFromReader); msg.setPrometheus(value); break; - case 3: + case 4: var value = new elasticsearch_pb.Spec; reader.readMessage(value,elasticsearch_pb.Spec.deserializeBinaryFromReader); msg.setElasticsearch(value); break; - case 4: + case 5: var value = new jaeger_pb.Spec; reader.readMessage(value,jaeger_pb.Spec.deserializeBinaryFromReader); msg.setJaeger(value); @@ -686,10 +691,17 @@ proto.plugins.Plugin.serializeBinaryToWriter = function(message, writer) { f ); } + f = message.getDisplayname(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } f = message.getPrometheus(); if (f != null) { writer.writeMessage( - 2, + 3, f, prometheus_pb.Spec.serializeBinaryToWriter ); @@ -697,7 +709,7 @@ proto.plugins.Plugin.serializeBinaryToWriter = function(message, writer) { f = message.getElasticsearch(); if (f != null) { writer.writeMessage( - 3, + 4, f, elasticsearch_pb.Spec.serializeBinaryToWriter ); @@ -705,7 +717,7 @@ proto.plugins.Plugin.serializeBinaryToWriter = function(message, writer) { f = message.getJaeger(); if (f != null) { writer.writeMessage( - 4, + 5, f, jaeger_pb.Spec.serializeBinaryToWriter ); @@ -732,12 +744,30 @@ proto.plugins.Plugin.prototype.setName = function(value) { /** - * optional prometheus.Spec prometheus = 2; + * optional string displayName = 2; + * @return {string} + */ +proto.plugins.Plugin.prototype.getDisplayname = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.plugins.Plugin} returns this + */ +proto.plugins.Plugin.prototype.setDisplayname = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional prometheus.Spec prometheus = 3; * @return {?proto.plugins.prometheus.Spec} */ proto.plugins.Plugin.prototype.getPrometheus = function() { return /** @type{?proto.plugins.prometheus.Spec} */ ( - jspb.Message.getWrapperField(this, prometheus_pb.Spec, 2)); + jspb.Message.getWrapperField(this, prometheus_pb.Spec, 3)); }; @@ -746,7 +776,7 @@ proto.plugins.Plugin.prototype.getPrometheus = function() { * @return {!proto.plugins.Plugin} returns this */ proto.plugins.Plugin.prototype.setPrometheus = function(value) { - return jspb.Message.setWrapperField(this, 2, value); + return jspb.Message.setWrapperField(this, 3, value); }; @@ -764,17 +794,17 @@ proto.plugins.Plugin.prototype.clearPrometheus = function() { * @return {boolean} */ proto.plugins.Plugin.prototype.hasPrometheus = function() { - return jspb.Message.getField(this, 2) != null; + return jspb.Message.getField(this, 3) != null; }; /** - * optional elasticsearch.Spec elasticsearch = 3; + * optional elasticsearch.Spec elasticsearch = 4; * @return {?proto.plugins.elasticsearch.Spec} */ proto.plugins.Plugin.prototype.getElasticsearch = function() { return /** @type{?proto.plugins.elasticsearch.Spec} */ ( - jspb.Message.getWrapperField(this, elasticsearch_pb.Spec, 3)); + jspb.Message.getWrapperField(this, elasticsearch_pb.Spec, 4)); }; @@ -783,7 +813,7 @@ proto.plugins.Plugin.prototype.getElasticsearch = function() { * @return {!proto.plugins.Plugin} returns this */ proto.plugins.Plugin.prototype.setElasticsearch = function(value) { - return jspb.Message.setWrapperField(this, 3, value); + return jspb.Message.setWrapperField(this, 4, value); }; @@ -801,17 +831,17 @@ proto.plugins.Plugin.prototype.clearElasticsearch = function() { * @return {boolean} */ proto.plugins.Plugin.prototype.hasElasticsearch = function() { - return jspb.Message.getField(this, 3) != null; + return jspb.Message.getField(this, 4) != null; }; /** - * optional jaeger.Spec jaeger = 4; + * optional jaeger.Spec jaeger = 5; * @return {?proto.plugins.jaeger.Spec} */ proto.plugins.Plugin.prototype.getJaeger = function() { return /** @type{?proto.plugins.jaeger.Spec} */ ( - jspb.Message.getWrapperField(this, jaeger_pb.Spec, 4)); + jspb.Message.getWrapperField(this, jaeger_pb.Spec, 5)); }; @@ -820,7 +850,7 @@ proto.plugins.Plugin.prototype.getJaeger = function() { * @return {!proto.plugins.Plugin} returns this */ proto.plugins.Plugin.prototype.setJaeger = function(value) { - return jspb.Message.setWrapperField(this, 4, value); + return jspb.Message.setWrapperField(this, 5, value); }; @@ -838,7 +868,7 @@ proto.plugins.Plugin.prototype.clearJaeger = function() { * @return {boolean} */ proto.plugins.Plugin.prototype.hasJaeger = function() { - return jspb.Message.getField(this, 4) != null; + return jspb.Message.getField(this, 5) != null; }; diff --git a/deploy/helm/kobs/Chart.yaml b/deploy/helm/kobs/Chart.yaml index 326cbdefa..90b3170b2 100644 --- a/deploy/helm/kobs/Chart.yaml +++ b/deploy/helm/kobs/Chart.yaml @@ -4,5 +4,5 @@ description: Kubernetes Observability Platform type: application home: https://kobs.io icon: https://kobs.io/assets/images/logo.svg -version: 0.2.0 +version: 0.2.1 appVersion: v0.1.0 diff --git a/deploy/helm/kobs/templates/customresourcedefinition.yaml b/deploy/helm/kobs/templates/customresourcedefinition.yaml index 0530410f1..57180d42d 100644 --- a/deploy/helm/kobs/templates/customresourcedefinition.yaml +++ b/deploy/helm/kobs/templates/customresourcedefinition.yaml @@ -93,6 +93,8 @@ spec: are mutually exclusive and containing the data, which is needed to use the plugin within a Application CR. properties: + displayName: + type: string elasticsearch: description: Spec implements the specification for an application. This field is then used in the Application CR and contains, @@ -228,6 +230,8 @@ spec: exclusive and containing the data, which is needed to use the plugin within a Application CR. properties: + displayName: + type: string elasticsearch: description: Spec implements the specification for an application. This field is then used in the Application CR and contains, diff --git a/deploy/kustomize/crds/kobs.io_applications.yaml b/deploy/kustomize/crds/kobs.io_applications.yaml index 132b8808a..b281d338d 100644 --- a/deploy/kustomize/crds/kobs.io_applications.yaml +++ b/deploy/kustomize/crds/kobs.io_applications.yaml @@ -93,6 +93,8 @@ spec: are mutually exclusive and containing the data, which is needed to use the plugin within a Application CR. properties: + displayName: + type: string elasticsearch: description: Spec implements the specification for an application. This field is then used in the Application CR and contains, @@ -228,6 +230,8 @@ spec: exclusive and containing the data, which is needed to use the plugin within a Application CR. properties: + displayName: + type: string elasticsearch: description: Spec implements the specification for an application. This field is then used in the Application CR and contains, diff --git a/docs/plugins/getting-started.md b/docs/plugins/getting-started.md index e0c00ec68..9795bac76 100644 --- a/docs/plugins/getting-started.md +++ b/docs/plugins/getting-started.md @@ -13,6 +13,7 @@ Plugins can also be used within an Application CR to enhance the information for | Field | Type | Description | Required | | ----- | ---- | ----------- | -------- | | name | string | The name of the plugin as it is defined in the [configuration file](../configuration/plugins.md). | Yes | +| displayName | string | An optional name for the plugin tab, which should be displayed instead of the plugin name. | No | | elasticsearch | [Elasticsearch](elasticsearch.md#specification) (oneof) | Elasticsearch configuration for the application. | Yes | | jaeger | [Jaeger](jaeger.md#specification) (oneof) | Jaeger configuration for the application. | Yes | | prometheus | [Prometheus](prometheus.md#specification) (oneof) | Prometheus configuration for the application. | Yes | diff --git a/pkg/api/plugins/plugins/proto/plugins.pb.go b/pkg/api/plugins/plugins/proto/plugins.pb.go index 6d9bd4528..bb8246ae6 100644 --- a/pkg/api/plugins/plugins/proto/plugins.pb.go +++ b/pkg/api/plugins/plugins/proto/plugins.pb.go @@ -190,9 +190,10 @@ type Plugin struct { unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Prometheus *proto1.Spec `protobuf:"bytes,2,opt,name=prometheus,proto3" json:"prometheus,omitempty"` - Elasticsearch *proto2.Spec `protobuf:"bytes,3,opt,name=elasticsearch,proto3" json:"elasticsearch,omitempty"` - Jaeger *proto3.Spec `protobuf:"bytes,4,opt,name=jaeger,proto3" json:"jaeger,omitempty"` + DisplayName string `protobuf:"bytes,2,opt,name=displayName,proto3" json:"displayName,omitempty"` + Prometheus *proto1.Spec `protobuf:"bytes,3,opt,name=prometheus,proto3" json:"prometheus,omitempty"` + Elasticsearch *proto2.Spec `protobuf:"bytes,4,opt,name=elasticsearch,proto3" json:"elasticsearch,omitempty"` + Jaeger *proto3.Spec `protobuf:"bytes,5,opt,name=jaeger,proto3" json:"jaeger,omitempty"` } func (x *Plugin) Reset() { @@ -234,6 +235,13 @@ func (x *Plugin) GetName() string { return "" } +func (x *Plugin) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + func (x *Plugin) GetPrometheus() *proto1.Spec { if x != nil { return x.Prometheus @@ -274,28 +282,31 @@ var file_plugins_proto_rawDesc = []byte{ 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x22, 0xc7, 0x01, 0x0a, 0x06, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, + 0x65, 0x22, 0xe9, 0x01, 0x0a, 0x06, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x38, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0a, - 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x12, 0x41, 0x0a, 0x0d, 0x65, 0x6c, - 0x61, 0x73, 0x74, 0x69, 0x63, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2e, 0x65, 0x6c, 0x61, 0x73, - 0x74, 0x69, 0x63, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0d, - 0x65, 0x6c, 0x61, 0x73, 0x74, 0x69, 0x63, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x2c, 0x0a, - 0x06, 0x6a, 0x61, 0x65, 0x67, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2e, 0x6a, 0x61, 0x65, 0x67, 0x65, 0x72, 0x2e, 0x53, - 0x70, 0x65, 0x63, 0x52, 0x06, 0x6a, 0x61, 0x65, 0x67, 0x65, 0x72, 0x32, 0x52, 0x0a, 0x07, 0x50, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2e, 0x47, - 0x65, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1b, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, - 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6b, 0x6f, - 0x62, 0x73, 0x69, 0x6f, 0x2f, 0x6b, 0x6f, 0x62, 0x73, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x53, 0x70, 0x65, 0x63, + 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x12, 0x41, 0x0a, 0x0d, + 0x65, 0x6c, 0x61, 0x73, 0x74, 0x69, 0x63, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2e, 0x65, 0x6c, + 0x61, 0x73, 0x74, 0x69, 0x63, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x53, 0x70, 0x65, 0x63, + 0x52, 0x0d, 0x65, 0x6c, 0x61, 0x73, 0x74, 0x69, 0x63, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, + 0x2c, 0x0a, 0x06, 0x6a, 0x61, 0x65, 0x67, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2e, 0x6a, 0x61, 0x65, 0x67, 0x65, 0x72, + 0x2e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x06, 0x6a, 0x61, 0x65, 0x67, 0x65, 0x72, 0x32, 0x52, 0x0a, + 0x07, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x50, + 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, + 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2e, 0x47, 0x65, 0x74, + 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x6b, 0x6f, 0x62, 0x73, 0x69, 0x6f, 0x2f, 0x6b, 0x6f, 0x62, 0x73, 0x2f, 0x70, 0x6b, 0x67, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x70, 0x6c, 0x75, 0x67, + 0x69, 0x6e, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/proto/plugins.proto b/proto/plugins.proto index fc3dc908b..969e75747 100644 --- a/proto/plugins.proto +++ b/proto/plugins.proto @@ -34,7 +34,8 @@ message PluginShort { // is needed to use the plugin within a Application CR. message Plugin { string name = 1; - prometheus.Spec prometheus = 2; - elasticsearch.Spec elasticsearch = 3; - jaeger.Spec jaeger = 4; + string displayName = 2; + prometheus.Spec prometheus = 3; + elasticsearch.Spec elasticsearch = 4; + jaeger.Spec jaeger = 5; }