diff --git a/Makefile b/Makefile
index 79571b63..008b6f49 100644
--- a/Makefile
+++ b/Makefile
@@ -11,9 +11,12 @@ gen-protoc:
mkdir -p capten/agent/internal/pb/captenpluginspb
mkdir -p server/pkg/pb/agentpb
mkdir -p server/pkg/pb/captenpluginspb
+ mkdir -p server/pkg/pb/pluginstorepb
mkdir -p capten/agent/internal/pb/captensdkpb
mkdir -p capten/common-pkg/vault-cred/vaultcredpb
mkdir -p capten/common-pkg/capten-sdk/captensdkpb
+ mkdir -p capten/common-pkg/vault-cred/vaultcredpb
+ mkdir -p capten/common-pkg/cluster-plugins/clusterpluginspb
cd proto && protoc --go_out=../server/pkg/pb/serverpb/ --go_opt=paths=source_relative \
--go-grpc_out=../server/pkg/pb/serverpb --go-grpc_opt=paths=source_relative \
@@ -55,6 +58,14 @@ gen-protoc:
--go-grpc_out=../capten/common-pkg/vault-cred/vaultcredpb --go-grpc_opt=paths=source_relative \
./vault_cred.proto
+ cd proto && protoc --go_out=../server/pkg/pb/pluginstorepb --go_opt=paths=source_relative \
+ --go-grpc_out=../server/pkg/pb/pluginstorepb --go-grpc_opt=paths=source_relative \
+ ./plugin_store.proto
+
+ cd proto && protoc --go_out=../capten/common-pkg/cluster-plugins/clusterpluginspb --go_opt=paths=source_relative \
+ --go-grpc_out=../capten/common-pkg/cluster-plugins/clusterpluginspb --go-grpc_opt=paths=source_relative \
+ ./cluster_plugins.proto
+
docker-build-server:
# The prefix for server to changed either as server or intelops-kad-server
docker build --platform=linux/amd64 -f dockerfiles/server/Dockerfile -t ${PREFIX}-${SERVER_APP_NAME}:${BUILD} .
diff --git a/capten/agent/internal/api/agent.go b/capten/agent/internal/api/agent.go
index 54d94e5e..038589f6 100644
--- a/capten/agent/internal/api/agent.go
+++ b/capten/agent/internal/api/agent.go
@@ -11,6 +11,7 @@ import (
"github.com/kube-tarian/kad/capten/agent/internal/pb/captenpluginspb"
"github.com/kube-tarian/kad/capten/agent/internal/pb/captensdkpb"
"github.com/kube-tarian/kad/capten/agent/internal/temporalclient"
+ "github.com/kube-tarian/kad/capten/common-pkg/cluster-plugins/clusterpluginspb"
)
var _ agentpb.AgentServer = &Agent{}
@@ -19,6 +20,7 @@ type Agent struct {
agentpb.UnimplementedAgentServer
captenpluginspb.UnimplementedCaptenPluginsServer
captensdkpb.UnimplementedCaptenSdkServer
+ clusterpluginspb.UnimplementedClusterPluginsServer
tc *temporalclient.Client
as *captenstore.Store
log logging.Logger
diff --git a/capten/agent/internal/api/cluster_plugin_apis.go b/capten/agent/internal/api/cluster_plugin_apis.go
new file mode 100644
index 00000000..eb8b2b1b
--- /dev/null
+++ b/capten/agent/internal/api/cluster_plugin_apis.go
@@ -0,0 +1,25 @@
+package api
+
+import (
+ "context"
+
+ "github.com/kube-tarian/kad/capten/common-pkg/cluster-plugins/clusterpluginspb"
+)
+
+func (a *Agent) GetClusterPlugins(ctx context.Context, request *clusterpluginspb.GetClusterPluginsRequest) (
+ *clusterpluginspb.GetClusterPluginsResponse, error) {
+ return &clusterpluginspb.GetClusterPluginsResponse{
+ Status: clusterpluginspb.StatusCode_OK}, nil
+}
+
+func (a *Agent) DeployClusterPlugin(ctx context.Context, request *clusterpluginspb.DeployClusterPluginRequest) (
+ *clusterpluginspb.DeployClusterPluginResponse, error) {
+ return &clusterpluginspb.DeployClusterPluginResponse{
+ Status: clusterpluginspb.StatusCode_OK}, nil
+}
+
+func (a *Agent) UnDeployClusterPlugin(ctx context.Context, request *clusterpluginspb.UnDeployClusterPluginRequest) (
+ *clusterpluginspb.UnDeployClusterPluginResponse, error) {
+ return &clusterpluginspb.UnDeployClusterPluginResponse{
+ Status: clusterpluginspb.StatusCode_OK}, nil
+}
diff --git a/capten/agent/internal/pb/agentpb/agent.pb.go b/capten/agent/internal/pb/agentpb/agent.pb.go
index afc54ca6..f9e70baa 100644
--- a/capten/agent/internal/pb/agentpb/agent.pb.go
+++ b/capten/agent/internal/pb/agentpb/agent.pb.go
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.32.0
+// protoc-gen-go v1.30.0
// protoc v3.12.4
// source: agent.proto
diff --git a/capten/agent/internal/pb/captenpluginspb/capten_plugins.pb.go b/capten/agent/internal/pb/captenpluginspb/capten_plugins.pb.go
index 5408956c..80d492b9 100644
--- a/capten/agent/internal/pb/captenpluginspb/capten_plugins.pb.go
+++ b/capten/agent/internal/pb/captenpluginspb/capten_plugins.pb.go
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.32.0
+// protoc-gen-go v1.30.0
// protoc v3.12.4
// source: capten_plugins.proto
diff --git a/capten/agent/internal/pb/captensdkpb/capten_sdk.pb.go b/capten/agent/internal/pb/captensdkpb/capten_sdk.pb.go
index f4c2dadc..c833dfd4 100644
--- a/capten/agent/internal/pb/captensdkpb/capten_sdk.pb.go
+++ b/capten/agent/internal/pb/captensdkpb/capten_sdk.pb.go
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.32.0
+// protoc-gen-go v1.30.0
// protoc v3.12.4
// source: capten_sdk.proto
diff --git a/capten/common-pkg/capten-sdk/captensdkpb/capten_sdk.pb.go b/capten/common-pkg/capten-sdk/captensdkpb/capten_sdk.pb.go
index f4c2dadc..c833dfd4 100644
--- a/capten/common-pkg/capten-sdk/captensdkpb/capten_sdk.pb.go
+++ b/capten/common-pkg/capten-sdk/captensdkpb/capten_sdk.pb.go
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.32.0
+// protoc-gen-go v1.30.0
// protoc v3.12.4
// source: capten_sdk.proto
diff --git a/capten/common-pkg/cluster-plugins/clusterpluginspb/cluster_plugins.pb.go b/capten/common-pkg/cluster-plugins/clusterpluginspb/cluster_plugins.pb.go
new file mode 100644
index 00000000..05e5a877
--- /dev/null
+++ b/capten/common-pkg/cluster-plugins/clusterpluginspb/cluster_plugins.pb.go
@@ -0,0 +1,960 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.30.0
+// protoc v3.12.4
+// source: cluster_plugins.proto
+
+package clusterpluginspb
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type StatusCode int32
+
+const (
+ StatusCode_OK StatusCode = 0
+ StatusCode_INTERNRAL_ERROR StatusCode = 1
+ StatusCode_INVALID_ARGUMENT StatusCode = 2
+ StatusCode_NOT_FOUND StatusCode = 3
+)
+
+// Enum value maps for StatusCode.
+var (
+ StatusCode_name = map[int32]string{
+ 0: "OK",
+ 1: "INTERNRAL_ERROR",
+ 2: "INVALID_ARGUMENT",
+ 3: "NOT_FOUND",
+ }
+ StatusCode_value = map[string]int32{
+ "OK": 0,
+ "INTERNRAL_ERROR": 1,
+ "INVALID_ARGUMENT": 2,
+ "NOT_FOUND": 3,
+ }
+)
+
+func (x StatusCode) Enum() *StatusCode {
+ p := new(StatusCode)
+ *p = x
+ return p
+}
+
+func (x StatusCode) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (StatusCode) Descriptor() protoreflect.EnumDescriptor {
+ return file_cluster_plugins_proto_enumTypes[0].Descriptor()
+}
+
+func (StatusCode) Type() protoreflect.EnumType {
+ return &file_cluster_plugins_proto_enumTypes[0]
+}
+
+func (x StatusCode) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use StatusCode.Descriptor instead.
+func (StatusCode) EnumDescriptor() ([]byte, []int) {
+ return file_cluster_plugins_proto_rawDescGZIP(), []int{0}
+}
+
+type StoreType int32
+
+const (
+ StoreType_CENTRAL_CAPTEN_STORE StoreType = 0
+ StoreType_LOCAL_CAPTEN_STORE StoreType = 1
+)
+
+// Enum value maps for StoreType.
+var (
+ StoreType_name = map[int32]string{
+ 0: "CENTRAL_CAPTEN_STORE",
+ 1: "LOCAL_CAPTEN_STORE",
+ }
+ StoreType_value = map[string]int32{
+ "CENTRAL_CAPTEN_STORE": 0,
+ "LOCAL_CAPTEN_STORE": 1,
+ }
+)
+
+func (x StoreType) Enum() *StoreType {
+ p := new(StoreType)
+ *p = x
+ return p
+}
+
+func (x StoreType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (StoreType) Descriptor() protoreflect.EnumDescriptor {
+ return file_cluster_plugins_proto_enumTypes[1].Descriptor()
+}
+
+func (StoreType) Type() protoreflect.EnumType {
+ return &file_cluster_plugins_proto_enumTypes[1]
+}
+
+func (x StoreType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use StoreType.Descriptor instead.
+func (StoreType) EnumDescriptor() ([]byte, []int) {
+ return file_cluster_plugins_proto_rawDescGZIP(), []int{1}
+}
+
+type Plugin struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ StoreType StoreType `protobuf:"varint,1,opt,name=storeType,proto3,enum=clusterpluginspb.StoreType" json:"storeType,omitempty"`
+ PluginName string `protobuf:"bytes,2,opt,name=pluginName,proto3" json:"pluginName,omitempty"`
+ Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
+ Category string `protobuf:"bytes,4,opt,name=category,proto3" json:"category,omitempty"`
+ Version string `protobuf:"bytes,5,opt,name=version,proto3" json:"version,omitempty"`
+ Icon []byte `protobuf:"bytes,6,opt,name=icon,proto3" json:"icon,omitempty"`
+ ChartName string `protobuf:"bytes,7,opt,name=chartName,proto3" json:"chartName,omitempty"`
+ ChartRepo string `protobuf:"bytes,8,opt,name=chartRepo,proto3" json:"chartRepo,omitempty"`
+ DefaultNamespace string `protobuf:"bytes,9,opt,name=defaultNamespace,proto3" json:"defaultNamespace,omitempty"`
+ PrivilegedNamespace bool `protobuf:"varint,10,opt,name=privilegedNamespace,proto3" json:"privilegedNamespace,omitempty"`
+ PluginEndpoint string `protobuf:"bytes,11,opt,name=pluginEndpoint,proto3" json:"pluginEndpoint,omitempty"`
+ Capabilities []string `protobuf:"bytes,12,rep,name=capabilities,proto3" json:"capabilities,omitempty"`
+ Values []byte `protobuf:"bytes,13,opt,name=values,proto3" json:"values,omitempty"`
+}
+
+func (x *Plugin) Reset() {
+ *x = Plugin{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cluster_plugins_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Plugin) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Plugin) ProtoMessage() {}
+
+func (x *Plugin) ProtoReflect() protoreflect.Message {
+ mi := &file_cluster_plugins_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Plugin.ProtoReflect.Descriptor instead.
+func (*Plugin) Descriptor() ([]byte, []int) {
+ return file_cluster_plugins_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *Plugin) GetStoreType() StoreType {
+ if x != nil {
+ return x.StoreType
+ }
+ return StoreType_CENTRAL_CAPTEN_STORE
+}
+
+func (x *Plugin) GetPluginName() string {
+ if x != nil {
+ return x.PluginName
+ }
+ return ""
+}
+
+func (x *Plugin) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *Plugin) GetCategory() string {
+ if x != nil {
+ return x.Category
+ }
+ return ""
+}
+
+func (x *Plugin) GetVersion() string {
+ if x != nil {
+ return x.Version
+ }
+ return ""
+}
+
+func (x *Plugin) GetIcon() []byte {
+ if x != nil {
+ return x.Icon
+ }
+ return nil
+}
+
+func (x *Plugin) GetChartName() string {
+ if x != nil {
+ return x.ChartName
+ }
+ return ""
+}
+
+func (x *Plugin) GetChartRepo() string {
+ if x != nil {
+ return x.ChartRepo
+ }
+ return ""
+}
+
+func (x *Plugin) GetDefaultNamespace() string {
+ if x != nil {
+ return x.DefaultNamespace
+ }
+ return ""
+}
+
+func (x *Plugin) GetPrivilegedNamespace() bool {
+ if x != nil {
+ return x.PrivilegedNamespace
+ }
+ return false
+}
+
+func (x *Plugin) GetPluginEndpoint() string {
+ if x != nil {
+ return x.PluginEndpoint
+ }
+ return ""
+}
+
+func (x *Plugin) GetCapabilities() []string {
+ if x != nil {
+ return x.Capabilities
+ }
+ return nil
+}
+
+func (x *Plugin) GetValues() []byte {
+ if x != nil {
+ return x.Values
+ }
+ return nil
+}
+
+type DeployClusterPluginRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Plugin *Plugin `protobuf:"bytes,1,opt,name=plugin,proto3" json:"plugin,omitempty"`
+}
+
+func (x *DeployClusterPluginRequest) Reset() {
+ *x = DeployClusterPluginRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cluster_plugins_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeployClusterPluginRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeployClusterPluginRequest) ProtoMessage() {}
+
+func (x *DeployClusterPluginRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_cluster_plugins_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeployClusterPluginRequest.ProtoReflect.Descriptor instead.
+func (*DeployClusterPluginRequest) Descriptor() ([]byte, []int) {
+ return file_cluster_plugins_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *DeployClusterPluginRequest) GetPlugin() *Plugin {
+ if x != nil {
+ return x.Plugin
+ }
+ return nil
+}
+
+type DeployClusterPluginResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Status StatusCode `protobuf:"varint,1,opt,name=status,proto3,enum=clusterpluginspb.StatusCode" json:"status,omitempty"`
+ StatusMessage string `protobuf:"bytes,2,opt,name=statusMessage,proto3" json:"statusMessage,omitempty"`
+}
+
+func (x *DeployClusterPluginResponse) Reset() {
+ *x = DeployClusterPluginResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cluster_plugins_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeployClusterPluginResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeployClusterPluginResponse) ProtoMessage() {}
+
+func (x *DeployClusterPluginResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_cluster_plugins_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeployClusterPluginResponse.ProtoReflect.Descriptor instead.
+func (*DeployClusterPluginResponse) Descriptor() ([]byte, []int) {
+ return file_cluster_plugins_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *DeployClusterPluginResponse) GetStatus() StatusCode {
+ if x != nil {
+ return x.Status
+ }
+ return StatusCode_OK
+}
+
+func (x *DeployClusterPluginResponse) GetStatusMessage() string {
+ if x != nil {
+ return x.StatusMessage
+ }
+ return ""
+}
+
+type UnDeployClusterPluginRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ StoreType StoreType `protobuf:"varint,1,opt,name=storeType,proto3,enum=clusterpluginspb.StoreType" json:"storeType,omitempty"`
+ PluginName string `protobuf:"bytes,2,opt,name=pluginName,proto3" json:"pluginName,omitempty"`
+}
+
+func (x *UnDeployClusterPluginRequest) Reset() {
+ *x = UnDeployClusterPluginRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cluster_plugins_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UnDeployClusterPluginRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UnDeployClusterPluginRequest) ProtoMessage() {}
+
+func (x *UnDeployClusterPluginRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_cluster_plugins_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UnDeployClusterPluginRequest.ProtoReflect.Descriptor instead.
+func (*UnDeployClusterPluginRequest) Descriptor() ([]byte, []int) {
+ return file_cluster_plugins_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *UnDeployClusterPluginRequest) GetStoreType() StoreType {
+ if x != nil {
+ return x.StoreType
+ }
+ return StoreType_CENTRAL_CAPTEN_STORE
+}
+
+func (x *UnDeployClusterPluginRequest) GetPluginName() string {
+ if x != nil {
+ return x.PluginName
+ }
+ return ""
+}
+
+type UnDeployClusterPluginResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Status StatusCode `protobuf:"varint,1,opt,name=status,proto3,enum=clusterpluginspb.StatusCode" json:"status,omitempty"`
+ StatusMessage string `protobuf:"bytes,2,opt,name=statusMessage,proto3" json:"statusMessage,omitempty"`
+}
+
+func (x *UnDeployClusterPluginResponse) Reset() {
+ *x = UnDeployClusterPluginResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cluster_plugins_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UnDeployClusterPluginResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UnDeployClusterPluginResponse) ProtoMessage() {}
+
+func (x *UnDeployClusterPluginResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_cluster_plugins_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UnDeployClusterPluginResponse.ProtoReflect.Descriptor instead.
+func (*UnDeployClusterPluginResponse) Descriptor() ([]byte, []int) {
+ return file_cluster_plugins_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *UnDeployClusterPluginResponse) GetStatus() StatusCode {
+ if x != nil {
+ return x.Status
+ }
+ return StatusCode_OK
+}
+
+func (x *UnDeployClusterPluginResponse) GetStatusMessage() string {
+ if x != nil {
+ return x.StatusMessage
+ }
+ return ""
+}
+
+type ClusterPlugin struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ StoreType StoreType `protobuf:"varint,1,opt,name=storeType,proto3,enum=clusterpluginspb.StoreType" json:"storeType,omitempty"`
+ PluginName string `protobuf:"bytes,2,opt,name=pluginName,proto3" json:"pluginName,omitempty"`
+ Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
+ Category string `protobuf:"bytes,4,opt,name=category,proto3" json:"category,omitempty"`
+ Version string `protobuf:"bytes,5,opt,name=version,proto3" json:"version,omitempty"`
+ Icon []byte `protobuf:"bytes,6,opt,name=icon,proto3" json:"icon,omitempty"`
+}
+
+func (x *ClusterPlugin) Reset() {
+ *x = ClusterPlugin{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cluster_plugins_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ClusterPlugin) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ClusterPlugin) ProtoMessage() {}
+
+func (x *ClusterPlugin) ProtoReflect() protoreflect.Message {
+ mi := &file_cluster_plugins_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ClusterPlugin.ProtoReflect.Descriptor instead.
+func (*ClusterPlugin) Descriptor() ([]byte, []int) {
+ return file_cluster_plugins_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *ClusterPlugin) GetStoreType() StoreType {
+ if x != nil {
+ return x.StoreType
+ }
+ return StoreType_CENTRAL_CAPTEN_STORE
+}
+
+func (x *ClusterPlugin) GetPluginName() string {
+ if x != nil {
+ return x.PluginName
+ }
+ return ""
+}
+
+func (x *ClusterPlugin) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *ClusterPlugin) GetCategory() string {
+ if x != nil {
+ return x.Category
+ }
+ return ""
+}
+
+func (x *ClusterPlugin) GetVersion() string {
+ if x != nil {
+ return x.Version
+ }
+ return ""
+}
+
+func (x *ClusterPlugin) GetIcon() []byte {
+ if x != nil {
+ return x.Icon
+ }
+ return nil
+}
+
+type GetClusterPluginsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *GetClusterPluginsRequest) Reset() {
+ *x = GetClusterPluginsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cluster_plugins_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetClusterPluginsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetClusterPluginsRequest) ProtoMessage() {}
+
+func (x *GetClusterPluginsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_cluster_plugins_proto_msgTypes[6]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetClusterPluginsRequest.ProtoReflect.Descriptor instead.
+func (*GetClusterPluginsRequest) Descriptor() ([]byte, []int) {
+ return file_cluster_plugins_proto_rawDescGZIP(), []int{6}
+}
+
+type GetClusterPluginsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Status StatusCode `protobuf:"varint,1,opt,name=status,proto3,enum=clusterpluginspb.StatusCode" json:"status,omitempty"`
+ StatusMessage string `protobuf:"bytes,2,opt,name=statusMessage,proto3" json:"statusMessage,omitempty"`
+ Plugins []*ClusterPlugin `protobuf:"bytes,3,rep,name=plugins,proto3" json:"plugins,omitempty"`
+}
+
+func (x *GetClusterPluginsResponse) Reset() {
+ *x = GetClusterPluginsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cluster_plugins_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetClusterPluginsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetClusterPluginsResponse) ProtoMessage() {}
+
+func (x *GetClusterPluginsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_cluster_plugins_proto_msgTypes[7]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetClusterPluginsResponse.ProtoReflect.Descriptor instead.
+func (*GetClusterPluginsResponse) Descriptor() ([]byte, []int) {
+ return file_cluster_plugins_proto_rawDescGZIP(), []int{7}
+}
+
+func (x *GetClusterPluginsResponse) GetStatus() StatusCode {
+ if x != nil {
+ return x.Status
+ }
+ return StatusCode_OK
+}
+
+func (x *GetClusterPluginsResponse) GetStatusMessage() string {
+ if x != nil {
+ return x.StatusMessage
+ }
+ return ""
+}
+
+func (x *GetClusterPluginsResponse) GetPlugins() []*ClusterPlugin {
+ if x != nil {
+ return x.Plugins
+ }
+ return nil
+}
+
+var File_cluster_plugins_proto protoreflect.FileDescriptor
+
+var file_cluster_plugins_proto_rawDesc = []byte{
+ 0x0a, 0x15, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e,
+ 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
+ 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x70, 0x62, 0x22, 0xcd, 0x03, 0x0a, 0x06, 0x50, 0x6c,
+ 0x75, 0x67, 0x69, 0x6e, 0x12, 0x39, 0x0a, 0x09, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
+ 0x72, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65,
+ 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
+ 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12,
+ 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x18, 0x0a,
+ 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
+ 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63,
+ 0x68, 0x61, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
+ 0x63, 0x68, 0x61, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61,
+ 0x72, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x68,
+ 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x2a, 0x0a, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75,
+ 0x6c, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70,
+ 0x61, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65,
+ 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x13, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65,
+ 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x45,
+ 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70,
+ 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x22, 0x0a,
+ 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20,
+ 0x03, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65,
+ 0x73, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28,
+ 0x0c, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x4e, 0x0a, 0x1a, 0x44, 0x65, 0x70,
+ 0x6c, 0x6f, 0x79, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x06, 0x70, 0x6c, 0x75, 0x67, 0x69,
+ 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
+ 0x72, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x70, 0x62, 0x2e, 0x50, 0x6c, 0x75, 0x67, 0x69,
+ 0x6e, 0x52, 0x06, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x22, 0x79, 0x0a, 0x1b, 0x44, 0x65, 0x70,
+ 0x6c, 0x6f, 0x79, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74,
+ 0x65, 0x72, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24,
+ 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x22, 0x79, 0x0a, 0x1c, 0x55, 0x6e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79,
+ 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
+ 0x72, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65,
+ 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
+ 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22,
+ 0x7b, 0x0a, 0x1d, 0x55, 0x6e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x43, 0x6c, 0x75, 0x73, 0x74,
+ 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x12, 0x34, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
+ 0x32, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e,
+ 0x73, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06,
+ 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xd6, 0x01, 0x0a,
+ 0x0d, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12, 0x39,
+ 0x0a, 0x09, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0e, 0x32, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x70, 0x6c, 0x75, 0x67, 0x69,
+ 0x6e, 0x73, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09,
+ 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x75,
+ 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70,
+ 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73,
+ 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
+ 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63,
+ 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63,
+ 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69,
+ 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
+ 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52,
+ 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x22, 0x1a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73,
+ 0x74, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x22, 0xb2, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
+ 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x34, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
+ 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73,
+ 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x73,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x07, 0x70,
+ 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63,
+ 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x70, 0x62, 0x2e,
+ 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x07, 0x70,
+ 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2a, 0x4e, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
+ 0x43, 0x6f, 0x64, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f,
+ 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x52, 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10,
+ 0x01, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x41, 0x52, 0x47,
+ 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x46,
+ 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x03, 0x2a, 0x3d, 0x0a, 0x09, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x54,
+ 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x45, 0x4e, 0x54, 0x52, 0x41, 0x4c, 0x5f, 0x43,
+ 0x41, 0x50, 0x54, 0x45, 0x4e, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x10, 0x00, 0x12, 0x16, 0x0a,
+ 0x12, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x43, 0x41, 0x50, 0x54, 0x45, 0x4e, 0x5f, 0x53, 0x54,
+ 0x4f, 0x52, 0x45, 0x10, 0x01, 0x32, 0xf2, 0x02, 0x0a, 0x0e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
+ 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x12, 0x74, 0x0a, 0x13, 0x44, 0x65, 0x70, 0x6c,
+ 0x6f, 0x79, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12,
+ 0x2c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73,
+ 0x70, 0x62, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
+ 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e,
+ 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x70, 0x62,
+ 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x6c,
+ 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7a,
+ 0x0a, 0x15, 0x55, 0x6e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
+ 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12, 0x2e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
+ 0x72, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x70, 0x62, 0x2e, 0x55, 0x6e, 0x44, 0x65, 0x70,
+ 0x6c, 0x6f, 0x79, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
+ 0x72, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x70, 0x62, 0x2e, 0x55, 0x6e, 0x44, 0x65, 0x70,
+ 0x6c, 0x6f, 0x79, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x11, 0x47, 0x65,
+ 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x12,
+ 0x2a, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73,
+ 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x6c, 0x75,
+ 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x6c,
+ 0x75, 0x73, 0x74, 0x65, 0x72, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x70, 0x62, 0x2e, 0x47,
+ 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x13, 0x5a, 0x11, 0x2f, 0x63,
+ 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x70, 0x62, 0x62,
+ 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_cluster_plugins_proto_rawDescOnce sync.Once
+ file_cluster_plugins_proto_rawDescData = file_cluster_plugins_proto_rawDesc
+)
+
+func file_cluster_plugins_proto_rawDescGZIP() []byte {
+ file_cluster_plugins_proto_rawDescOnce.Do(func() {
+ file_cluster_plugins_proto_rawDescData = protoimpl.X.CompressGZIP(file_cluster_plugins_proto_rawDescData)
+ })
+ return file_cluster_plugins_proto_rawDescData
+}
+
+var file_cluster_plugins_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
+var file_cluster_plugins_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
+var file_cluster_plugins_proto_goTypes = []interface{}{
+ (StatusCode)(0), // 0: clusterpluginspb.StatusCode
+ (StoreType)(0), // 1: clusterpluginspb.StoreType
+ (*Plugin)(nil), // 2: clusterpluginspb.Plugin
+ (*DeployClusterPluginRequest)(nil), // 3: clusterpluginspb.DeployClusterPluginRequest
+ (*DeployClusterPluginResponse)(nil), // 4: clusterpluginspb.DeployClusterPluginResponse
+ (*UnDeployClusterPluginRequest)(nil), // 5: clusterpluginspb.UnDeployClusterPluginRequest
+ (*UnDeployClusterPluginResponse)(nil), // 6: clusterpluginspb.UnDeployClusterPluginResponse
+ (*ClusterPlugin)(nil), // 7: clusterpluginspb.ClusterPlugin
+ (*GetClusterPluginsRequest)(nil), // 8: clusterpluginspb.GetClusterPluginsRequest
+ (*GetClusterPluginsResponse)(nil), // 9: clusterpluginspb.GetClusterPluginsResponse
+}
+var file_cluster_plugins_proto_depIdxs = []int32{
+ 1, // 0: clusterpluginspb.Plugin.storeType:type_name -> clusterpluginspb.StoreType
+ 2, // 1: clusterpluginspb.DeployClusterPluginRequest.plugin:type_name -> clusterpluginspb.Plugin
+ 0, // 2: clusterpluginspb.DeployClusterPluginResponse.status:type_name -> clusterpluginspb.StatusCode
+ 1, // 3: clusterpluginspb.UnDeployClusterPluginRequest.storeType:type_name -> clusterpluginspb.StoreType
+ 0, // 4: clusterpluginspb.UnDeployClusterPluginResponse.status:type_name -> clusterpluginspb.StatusCode
+ 1, // 5: clusterpluginspb.ClusterPlugin.storeType:type_name -> clusterpluginspb.StoreType
+ 0, // 6: clusterpluginspb.GetClusterPluginsResponse.status:type_name -> clusterpluginspb.StatusCode
+ 7, // 7: clusterpluginspb.GetClusterPluginsResponse.plugins:type_name -> clusterpluginspb.ClusterPlugin
+ 3, // 8: clusterpluginspb.ClusterPlugins.DeployClusterPlugin:input_type -> clusterpluginspb.DeployClusterPluginRequest
+ 5, // 9: clusterpluginspb.ClusterPlugins.UnDeployClusterPlugin:input_type -> clusterpluginspb.UnDeployClusterPluginRequest
+ 8, // 10: clusterpluginspb.ClusterPlugins.GetClusterPlugins:input_type -> clusterpluginspb.GetClusterPluginsRequest
+ 4, // 11: clusterpluginspb.ClusterPlugins.DeployClusterPlugin:output_type -> clusterpluginspb.DeployClusterPluginResponse
+ 6, // 12: clusterpluginspb.ClusterPlugins.UnDeployClusterPlugin:output_type -> clusterpluginspb.UnDeployClusterPluginResponse
+ 9, // 13: clusterpluginspb.ClusterPlugins.GetClusterPlugins:output_type -> clusterpluginspb.GetClusterPluginsResponse
+ 11, // [11:14] is the sub-list for method output_type
+ 8, // [8:11] is the sub-list for method input_type
+ 8, // [8:8] is the sub-list for extension type_name
+ 8, // [8:8] is the sub-list for extension extendee
+ 0, // [0:8] is the sub-list for field type_name
+}
+
+func init() { file_cluster_plugins_proto_init() }
+func file_cluster_plugins_proto_init() {
+ if File_cluster_plugins_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_cluster_plugins_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Plugin); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cluster_plugins_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeployClusterPluginRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cluster_plugins_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeployClusterPluginResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cluster_plugins_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UnDeployClusterPluginRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cluster_plugins_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UnDeployClusterPluginResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cluster_plugins_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ClusterPlugin); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cluster_plugins_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetClusterPluginsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cluster_plugins_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetClusterPluginsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_cluster_plugins_proto_rawDesc,
+ NumEnums: 2,
+ NumMessages: 8,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_cluster_plugins_proto_goTypes,
+ DependencyIndexes: file_cluster_plugins_proto_depIdxs,
+ EnumInfos: file_cluster_plugins_proto_enumTypes,
+ MessageInfos: file_cluster_plugins_proto_msgTypes,
+ }.Build()
+ File_cluster_plugins_proto = out.File
+ file_cluster_plugins_proto_rawDesc = nil
+ file_cluster_plugins_proto_goTypes = nil
+ file_cluster_plugins_proto_depIdxs = nil
+}
diff --git a/capten/common-pkg/cluster-plugins/clusterpluginspb/cluster_plugins_grpc.pb.go b/capten/common-pkg/cluster-plugins/clusterpluginspb/cluster_plugins_grpc.pb.go
new file mode 100644
index 00000000..f984c037
--- /dev/null
+++ b/capten/common-pkg/cluster-plugins/clusterpluginspb/cluster_plugins_grpc.pb.go
@@ -0,0 +1,183 @@
+// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
+// versions:
+// - protoc-gen-go-grpc v1.3.0
+// - protoc v3.12.4
+// source: cluster_plugins.proto
+
+package clusterpluginspb
+
+import (
+ context "context"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+)
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+// Requires gRPC-Go v1.32.0 or later.
+const _ = grpc.SupportPackageIsVersion7
+
+const (
+ ClusterPlugins_DeployClusterPlugin_FullMethodName = "/clusterpluginspb.ClusterPlugins/DeployClusterPlugin"
+ ClusterPlugins_UnDeployClusterPlugin_FullMethodName = "/clusterpluginspb.ClusterPlugins/UnDeployClusterPlugin"
+ ClusterPlugins_GetClusterPlugins_FullMethodName = "/clusterpluginspb.ClusterPlugins/GetClusterPlugins"
+)
+
+// ClusterPluginsClient is the client API for ClusterPlugins service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
+type ClusterPluginsClient interface {
+ DeployClusterPlugin(ctx context.Context, in *DeployClusterPluginRequest, opts ...grpc.CallOption) (*DeployClusterPluginResponse, error)
+ UnDeployClusterPlugin(ctx context.Context, in *UnDeployClusterPluginRequest, opts ...grpc.CallOption) (*UnDeployClusterPluginResponse, error)
+ GetClusterPlugins(ctx context.Context, in *GetClusterPluginsRequest, opts ...grpc.CallOption) (*GetClusterPluginsResponse, error)
+}
+
+type clusterPluginsClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewClusterPluginsClient(cc grpc.ClientConnInterface) ClusterPluginsClient {
+ return &clusterPluginsClient{cc}
+}
+
+func (c *clusterPluginsClient) DeployClusterPlugin(ctx context.Context, in *DeployClusterPluginRequest, opts ...grpc.CallOption) (*DeployClusterPluginResponse, error) {
+ out := new(DeployClusterPluginResponse)
+ err := c.cc.Invoke(ctx, ClusterPlugins_DeployClusterPlugin_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *clusterPluginsClient) UnDeployClusterPlugin(ctx context.Context, in *UnDeployClusterPluginRequest, opts ...grpc.CallOption) (*UnDeployClusterPluginResponse, error) {
+ out := new(UnDeployClusterPluginResponse)
+ err := c.cc.Invoke(ctx, ClusterPlugins_UnDeployClusterPlugin_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *clusterPluginsClient) GetClusterPlugins(ctx context.Context, in *GetClusterPluginsRequest, opts ...grpc.CallOption) (*GetClusterPluginsResponse, error) {
+ out := new(GetClusterPluginsResponse)
+ err := c.cc.Invoke(ctx, ClusterPlugins_GetClusterPlugins_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// ClusterPluginsServer is the server API for ClusterPlugins service.
+// All implementations must embed UnimplementedClusterPluginsServer
+// for forward compatibility
+type ClusterPluginsServer interface {
+ DeployClusterPlugin(context.Context, *DeployClusterPluginRequest) (*DeployClusterPluginResponse, error)
+ UnDeployClusterPlugin(context.Context, *UnDeployClusterPluginRequest) (*UnDeployClusterPluginResponse, error)
+ GetClusterPlugins(context.Context, *GetClusterPluginsRequest) (*GetClusterPluginsResponse, error)
+ mustEmbedUnimplementedClusterPluginsServer()
+}
+
+// UnimplementedClusterPluginsServer must be embedded to have forward compatible implementations.
+type UnimplementedClusterPluginsServer struct {
+}
+
+func (UnimplementedClusterPluginsServer) DeployClusterPlugin(context.Context, *DeployClusterPluginRequest) (*DeployClusterPluginResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method DeployClusterPlugin not implemented")
+}
+func (UnimplementedClusterPluginsServer) UnDeployClusterPlugin(context.Context, *UnDeployClusterPluginRequest) (*UnDeployClusterPluginResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method UnDeployClusterPlugin not implemented")
+}
+func (UnimplementedClusterPluginsServer) GetClusterPlugins(context.Context, *GetClusterPluginsRequest) (*GetClusterPluginsResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetClusterPlugins not implemented")
+}
+func (UnimplementedClusterPluginsServer) mustEmbedUnimplementedClusterPluginsServer() {}
+
+// UnsafeClusterPluginsServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to ClusterPluginsServer will
+// result in compilation errors.
+type UnsafeClusterPluginsServer interface {
+ mustEmbedUnimplementedClusterPluginsServer()
+}
+
+func RegisterClusterPluginsServer(s grpc.ServiceRegistrar, srv ClusterPluginsServer) {
+ s.RegisterService(&ClusterPlugins_ServiceDesc, srv)
+}
+
+func _ClusterPlugins_DeployClusterPlugin_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(DeployClusterPluginRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ClusterPluginsServer).DeployClusterPlugin(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: ClusterPlugins_DeployClusterPlugin_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ClusterPluginsServer).DeployClusterPlugin(ctx, req.(*DeployClusterPluginRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ClusterPlugins_UnDeployClusterPlugin_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(UnDeployClusterPluginRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ClusterPluginsServer).UnDeployClusterPlugin(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: ClusterPlugins_UnDeployClusterPlugin_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ClusterPluginsServer).UnDeployClusterPlugin(ctx, req.(*UnDeployClusterPluginRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ClusterPlugins_GetClusterPlugins_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GetClusterPluginsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ClusterPluginsServer).GetClusterPlugins(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: ClusterPlugins_GetClusterPlugins_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ClusterPluginsServer).GetClusterPlugins(ctx, req.(*GetClusterPluginsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+// ClusterPlugins_ServiceDesc is the grpc.ServiceDesc for ClusterPlugins service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var ClusterPlugins_ServiceDesc = grpc.ServiceDesc{
+ ServiceName: "clusterpluginspb.ClusterPlugins",
+ HandlerType: (*ClusterPluginsServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "DeployClusterPlugin",
+ Handler: _ClusterPlugins_DeployClusterPlugin_Handler,
+ },
+ {
+ MethodName: "UnDeployClusterPlugin",
+ Handler: _ClusterPlugins_UnDeployClusterPlugin_Handler,
+ },
+ {
+ MethodName: "GetClusterPlugins",
+ Handler: _ClusterPlugins_GetClusterPlugins_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "cluster_plugins.proto",
+}
diff --git a/capten/common-pkg/vault-cred/vaultcredpb/vault_cred.pb.go b/capten/common-pkg/vault-cred/vaultcredpb/vault_cred.pb.go
index 4abfdae4..57a56e31 100644
--- a/capten/common-pkg/vault-cred/vaultcredpb/vault_cred.pb.go
+++ b/capten/common-pkg/vault-cred/vaultcredpb/vault_cred.pb.go
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.32.0
+// protoc-gen-go v1.30.0
// protoc v3.12.4
// source: vault_cred.proto
diff --git a/capten/go.mod b/capten/go.mod
index 3cd5f7ec..39c513c7 100644
--- a/capten/go.mod
+++ b/capten/go.mod
@@ -15,8 +15,10 @@ require (
github.com/kube-tarian/kad/integrator v0.0.0-20230520105805-73f03d9dcfcc
github.com/ory/client-go v1.1.49
github.com/pkg/errors v0.9.1
+ github.com/sigstore/sigstore v1.8.2
github.com/spf13/pflag v1.0.5
github.com/stretchr/testify v1.8.4
+ github.com/theupdateframework/go-tuf v0.7.0
go.temporal.io/api v1.13.0
go.temporal.io/sdk v1.19.0
go.uber.org/atomic v1.9.0
@@ -42,7 +44,6 @@ require (
github.com/cloudflare/circl v1.3.3 // indirect
github.com/coreos/go-oidc/v3 v3.9.0 // indirect
github.com/go-redis/cache/v9 v9.0.0 // indirect
- github.com/go-test/deep v1.1.0 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.3 // indirect
github.com/google/go-github/v53 v53.0.0 // indirect
@@ -57,16 +58,19 @@ require (
github.com/jinzhu/inflection v1.0.0 // indirect
github.com/jinzhu/now v1.1.1 // indirect
github.com/json-iterator/go v1.1.12 // indirect
+ github.com/letsencrypt/boulder v0.0.0-20230907030200-6d76a0f91e1e // indirect
github.com/pjbgf/sha1cd v0.3.0 // indirect
- github.com/poy/onpar v1.1.2 // indirect
github.com/redis/go-redis/v9 v9.1.0 // indirect
+ github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect
github.com/skeema/knownhosts v1.2.1 // indirect
+ github.com/titanous/rocacheck v0.0.0-20171023193734-afe73141d399 // indirect
go.opentelemetry.io/otel/metric v1.17.0 // indirect
golang.org/x/mod v0.12.0 // indirect
golang.org/x/tools v0.13.0 // indirect
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect
+ gopkg.in/go-jose/go-jose.v2 v2.6.1 // indirect
oras.land/oras-go/v2 v2.2.0 // indirect
)
@@ -114,7 +118,7 @@ require (
github.com/go-git/go-billy/v5 v5.5.0 // indirect
github.com/go-git/go-git/v5 v5.11.0
github.com/go-gorp/gorp/v3 v3.0.2 // indirect
- github.com/go-jose/go-jose/v3 v3.0.1 // indirect
+ github.com/go-jose/go-jose/v3 v3.0.2 // indirect
github.com/go-logr/logr v1.2.4 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-openapi/jsonpointer v0.19.5 // indirect
@@ -218,12 +222,12 @@ require (
go.opentelemetry.io/otel v1.17.0 // indirect
go.opentelemetry.io/otel/trace v1.17.0 // indirect
go.starlark.net v0.0.0-20220928063852-5fccb4daaf6d // indirect
- golang.org/x/crypto v0.18.0 // indirect
- golang.org/x/net v0.20.0 // indirect
- golang.org/x/oauth2 v0.16.0 // indirect
+ golang.org/x/crypto v0.20.0 // indirect
+ golang.org/x/net v0.21.0 // indirect
+ golang.org/x/oauth2 v0.17.0 // indirect
golang.org/x/sync v0.3.0 // indirect
- golang.org/x/sys v0.16.0 // indirect
- golang.org/x/term v0.16.0 // indirect
+ golang.org/x/sys v0.17.0 // indirect
+ golang.org/x/term v0.17.0 // indirect
golang.org/x/text v0.14.0 // indirect
golang.org/x/time v0.3.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
diff --git a/capten/go.sum b/capten/go.sum
index 199c7048..9b1125af 100644
--- a/capten/go.sum
+++ b/capten/go.sum
@@ -464,7 +464,6 @@ github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbt
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d h1:UrqY+r/OJnIp5u0s1SbQ8dVfLCZJsnvazdBP5hS4iRs=
github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ=
-github.com/a8m/expect v1.0.0/go.mod h1:4IwSCMumY49ScypDnjNbYEjgVeqy1/U2cEs3Lat96eA=
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
@@ -855,7 +854,6 @@ github.com/facebookgo/clock v0.0.0-20150410010913-600d898af40a/go.mod h1:7Ga40eg
github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8=
github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
-github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
@@ -909,8 +907,8 @@ github.com/go-gorp/gorp/v3 v3.0.2 h1:ULqJXIekoqMx29FI5ekXXFoH1dT2Vc8UhnRzBg+Emz4
github.com/go-gorp/gorp/v3 v3.0.2/go.mod h1:BJ3q1ejpV8cVALtcXvXaXyTOlMmJhWDxTmncaR6rwBY=
github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=
github.com/go-jose/go-jose/v3 v3.0.0/go.mod h1:RNkWWRld676jZEYoV3+XK8L2ZnNSvIsxFMht0mSX+u8=
-github.com/go-jose/go-jose/v3 v3.0.1 h1:pWmKFVtt+Jl0vBZTIpz/eAKwsm6LkIxDVVbFHKkchhA=
-github.com/go-jose/go-jose/v3 v3.0.1/go.mod h1:RNkWWRld676jZEYoV3+XK8L2ZnNSvIsxFMht0mSX+u8=
+github.com/go-jose/go-jose/v3 v3.0.2 h1:2Edjn8Nrb44UvTdp84KU0bBPs1cO7noRCybtS3eJEUQ=
+github.com/go-jose/go-jose/v3 v3.0.2/go.mod h1:5b+7YgP7ZICgJDBdfjZaIt+H/9L9T/YQrVfLAMboGkQ=
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
@@ -1323,6 +1321,8 @@ github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
+github.com/jmhodges/clock v1.2.0 h1:eq4kys+NI0PLngzaHEe7AmPT90XMGIEySD1JfV1PDIs=
+github.com/jmhodges/clock v1.2.0/go.mod h1:qKjhA7x7u/lQpPB1XAqX1b1lCI/w3/fNuYpI/ZjLynI=
github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks=
github.com/jmoiron/sqlx v1.3.1/go.mod h1:2BljVx/86SuTyjE+aPYlHCTNvZrnJXghYGpNiXLBMCQ=
github.com/jmoiron/sqlx v1.3.5 h1:vFFPA71p1o5gAeqtEAwLU4dnX2napprKtHr7PYIcN3g=
@@ -1400,6 +1400,8 @@ github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 h1:SOEGU9fKiNWd/HOJuq
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0/go.mod h1:dXGbAdH5GtBTC4WfIxhKZfyBF/HBFgRZSWwZ9g/He9o=
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 h1:P6pPBnrTSX3DEVR4fDembhRWSsG5rVo6hYhAB/ADZrk=
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0/go.mod h1:vmVJ0l/dxyfGW6FmdpVm2joNMFikkuWg0EoCKLGUMNw=
+github.com/letsencrypt/boulder v0.0.0-20230907030200-6d76a0f91e1e h1:RLTpX495BXToqxpM90Ws4hXEo4Wfh81jr9DX1n/4WOo=
+github.com/letsencrypt/boulder v0.0.0-20230907030200-6d76a0f91e1e/go.mod h1:EAuqr9VFWxBi9nD5jc/EA2MT1RFty9288TF6zdtYoCU=
github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
@@ -1448,7 +1450,6 @@ github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hd
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ=
github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84=
-github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
@@ -1544,7 +1545,6 @@ github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRW
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
github.com/nakagami/firebirdsql v0.0.0-20190310045651-3c02a58cfed8/go.mod h1:86wM1zFnC6/uDBfZGNwB65O+pR2OFi5q/YQaEUid1qA=
github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM=
-github.com/nelsam/hel/v2 v2.3.2/go.mod h1:1ZTGfU2PFTOd5mx22i5O0Lc2GY933lQ2wb/ggy+rL3w=
github.com/neo4j/neo4j-go-driver v1.8.1-0.20200803113522-b626aa943eba/go.mod h1:ncO5VaFWh0Nrt+4KT4mOZboaczBZcLuHrG+/sUeP8gI=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
@@ -1664,7 +1664,6 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
github.com/poy/onpar v0.0.0-20190519213022-ee068f8ea4d1/go.mod h1:nSbFQvMj97ZyhFRSJYtut+msi4sOY6zJDGCdSc+/rZU=
-github.com/poy/onpar v0.0.0-20200406201722-06f95a1c68e8/go.mod h1:nSbFQvMj97ZyhFRSJYtut+msi4sOY6zJDGCdSc+/rZU=
github.com/poy/onpar v1.1.2 h1:QaNrNiZx0+Nar5dLgTVp5mXkyoVFIbepjyEoGSnhbAY=
github.com/poy/onpar v1.1.2/go.mod h1:6X8FLNoxyr9kkmnlqpK6LSoiOtrO6MICtWwEuWkLjzg=
github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA=
@@ -1760,6 +1759,8 @@ github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo=
github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg=
+github.com/secure-systems-lab/go-securesystemslib v0.8.0 h1:mr5An6X45Kb2nddcFlbmfHkLguCE9laoZCUzEEpIZXA=
+github.com/secure-systems-lab/go-securesystemslib v0.8.0/go.mod h1:UH2VZVuJfCYR8WgMlCU1uFsOUU+KeyrTWcSS73NBOzU=
github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4=
@@ -1770,6 +1771,8 @@ github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFR
github.com/showa-93/go-mask v0.6.0 h1:nNW3dgEocYB7QCGzgRx9wlYrepEg+tRw/keg7u1ftY8=
github.com/showa-93/go-mask v0.6.0/go.mod h1:aswIj007gm0EPAzOGES9ACy1jDm3QT08/LPSClMp410=
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
+github.com/sigstore/sigstore v1.8.2 h1:0Ttjcn3V0fVQXlYq7+oHaaHkGFIt3ywm7SF4JTU/l8c=
+github.com/sigstore/sigstore v1.8.2/go.mod h1:CHVcSyknCcjI4K2ZhS1SI28r0tcQyBlwtALG536x1DY=
github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
@@ -1802,7 +1805,6 @@ github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
-github.com/spf13/cobra v0.0.6/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo=
github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk=
@@ -1846,7 +1848,11 @@ github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG
github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I=
+github.com/theupdateframework/go-tuf v0.7.0 h1:CqbQFrWo1ae3/I0UCblSbczevCCbS31Qvs5LdxRWqRI=
+github.com/theupdateframework/go-tuf v0.7.0/go.mod h1:uEB7WSY+7ZIugK6R1hiBMBjQftaFzn7ZCDJcp1tCUug=
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
+github.com/titanous/rocacheck v0.0.0-20171023193734-afe73141d399 h1:e/5i7d4oYZ+C1wj2THlRK+oAhjeS/TRQwMfkIuet3w0=
+github.com/titanous/rocacheck v0.0.0-20171023193734-afe73141d399/go.mod h1:LdwHTNJT99C5fTAzDz0ud328OgXz+gierycbcIx2fRs=
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM=
@@ -2026,8 +2032,9 @@ golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0=
golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I=
-golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc=
-golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg=
+golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
+golang.org/x/crypto v0.20.0 h1:jmAMJJZXr5KiCw05dfYK9QnqaqKLYXijU23lsEdcQqg=
+golang.org/x/crypto v0.20.0/go.mod h1:Xwo95rrVNIoSMx9wa1JroENMToLWn3RNVrTBpLHgZPQ=
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@@ -2175,8 +2182,8 @@ golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ=
-golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo=
-golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY=
+golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4=
+golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
golang.org/x/oauth2 v0.0.0-20180227000427-d7d64896b5ff/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
@@ -2207,8 +2214,8 @@ golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri
golang.org/x/oauth2 v0.0.0-20221006150949-b44042a4b9c1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE=
-golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ=
-golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o=
+golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ=
+golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -2380,8 +2387,8 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU=
-golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y=
+golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@@ -2394,8 +2401,8 @@ golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo=
-golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE=
-golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY=
+golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U=
+golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -2478,7 +2485,6 @@ golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapK
golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
-golang.org/x/tools v0.0.0-20200313205530-4303120df7d8/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
@@ -2802,6 +2808,8 @@ gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o=
gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo=
+gopkg.in/go-jose/go-jose.v2 v2.6.1 h1:qEzJlIDmG9q5VO0M/o8tGS65QMHMS1w01TQJB1VPJ4U=
+gopkg.in/go-jose/go-jose.v2 v2.6.1/go.mod h1:zzZDPkNNw/c9IE7Z9jr11mBZQhKQTMzoEEIoEdZlFBI=
gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s=
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
diff --git a/proto/cluster_plugins.proto b/proto/cluster_plugins.proto
new file mode 100644
index 00000000..06244ea6
--- /dev/null
+++ b/proto/cluster_plugins.proto
@@ -0,0 +1,79 @@
+
+syntax = "proto3";
+
+option go_package = "/clusterpluginspb";
+
+package clusterpluginspb;
+
+// The greeting service definition.
+service ClusterPlugins {
+ rpc DeployClusterPlugin (DeployClusterPluginRequest) returns (DeployClusterPluginResponse) {}
+ rpc UnDeployClusterPlugin (UnDeployClusterPluginRequest) returns (UnDeployClusterPluginResponse) {}
+ rpc GetClusterPlugins (GetClusterPluginsRequest) returns (GetClusterPluginsResponse) {}
+}
+
+enum StatusCode {
+ OK = 0;
+ INTERNRAL_ERROR = 1;
+ INVALID_ARGUMENT = 2;
+ NOT_FOUND = 3;
+}
+
+enum StoreType {
+ CENTRAL_CAPTEN_STORE = 0;
+ LOCAL_CAPTEN_STORE = 1;
+}
+
+message Plugin {
+ StoreType storeType = 1;
+ string pluginName = 2;
+ string description = 3;
+ string category = 4;
+ string version = 5;
+ bytes icon = 6;
+ string chartName = 7;
+ string chartRepo = 8;
+ string defaultNamespace = 9;
+ bool privilegedNamespace = 10;
+ string pluginEndpoint = 11;
+ repeated string capabilities = 12;
+ bytes values = 13;
+}
+
+message DeployClusterPluginRequest {
+ Plugin plugin = 1;
+}
+
+message DeployClusterPluginResponse {
+ StatusCode status = 1;
+ string statusMessage = 2;
+}
+
+message UnDeployClusterPluginRequest {
+ StoreType storeType = 1;
+ string pluginName = 2;
+}
+
+message UnDeployClusterPluginResponse {
+ StatusCode status = 1;
+ string statusMessage = 2;
+}
+
+message ClusterPlugin {
+ StoreType storeType = 1;
+ string pluginName = 2;
+ string description = 3;
+ string category = 4;
+ string version = 5;
+ bytes icon = 6;
+}
+
+message GetClusterPluginsRequest {
+}
+
+message GetClusterPluginsResponse {
+ StatusCode status = 1;
+ string statusMessage = 2;
+ repeated ClusterPlugin plugins = 3;
+}
+
diff --git a/proto/plugin_store.proto b/proto/plugin_store.proto
new file mode 100644
index 00000000..8239f640
--- /dev/null
+++ b/proto/plugin_store.proto
@@ -0,0 +1,99 @@
+
+syntax = "proto3";
+
+option go_package = "/pluginstorepb";
+
+package pluginstorepb;
+
+service PluginStore {
+ rpc ConfigPluginStore(ConfigPluginStoreRequest) returns (ConfigPluginStoreResponse) {}
+ rpc SyncPluginStore(SyncPluginStoreRequest) returns (SyncPluginStoreResponse) {}
+ rpc GetPlugins(GetPluginsRequest) returns (GetPluginsResponse) {}
+ rpc GetPluginValues(GetPluginValuesRequest) returns (GetPluginValuesResponse) {}
+
+ rpc DeployPlugin(DeployPluginRequest) returns (DeployPluginResponse) {}
+ rpc UnDeployPlugin(UnDeployPluginRequest) returns (UnDeployPluginResponse) {}
+}
+
+enum StatusCode {
+ OK = 0;
+ INTERNRAL_ERROR = 1;
+ INVALID_ARGUMENT = 2;
+ NOT_FOUND = 3;
+}
+
+enum StoreType {
+ CENTRAL_CAPTEN_STORE = 0;
+ LOCAL_CAPTEN_STORE = 1;
+}
+
+message ConfigPluginStoreRequest {
+ StoreType storeType = 1;
+ string gitProjectId = 2;
+}
+
+message ConfigPluginStoreResponse {
+ StatusCode status = 1;
+ string statusMessage = 2;
+}
+
+message Plugin {
+ StoreType storeType = 1;
+ string pluginName = 2;
+ string description = 3;
+ string category = 4;
+ repeated string versions = 5;
+ bytes icon = 6;
+}
+
+message SyncPluginStoreRequest {
+}
+
+message SyncPluginStoreResponse {
+ StatusCode status = 1;
+ string statusMessage = 2;
+}
+
+message GetPluginsRequest {
+ StoreType storeType = 1;
+}
+
+message GetPluginsResponse {
+ StatusCode status = 1;
+ string statusMessage = 2;
+ repeated Plugin plugins = 3;
+}
+
+message GetPluginValuesRequest {
+ StoreType storeType = 1;
+ string pluginName = 2;
+ string version = 3;
+}
+
+message GetPluginValuesResponse {
+ StatusCode status = 1;
+ string statusMessage = 2;
+ bytes values = 3;
+}
+
+message DeployPluginRequest {
+ StoreType storeType = 1;
+ string pluginName = 2;
+ string version = 3;
+ bytes values = 4;
+}
+
+message DeployPluginResponse{
+ StatusCode status = 1;
+ string statusMessage = 2;
+}
+
+message UnDeployPluginRequest {
+ StoreType storeType = 1;
+ string pluginName = 2;
+}
+
+message UnDeployPluginResponse{
+ StatusCode status = 1;
+ string statusMessage = 2;
+}
\ No newline at end of file
diff --git a/proto/server.proto b/proto/server.proto
index 8968f020..ed20efd4 100644
--- a/proto/server.proto
+++ b/proto/server.proto
@@ -344,4 +344,4 @@ message DBMigrationRequest {
message DBMigrationResponse {
StatusCode status = 1;
string statusMessage = 2;
-}
+}
\ No newline at end of file
diff --git a/server/cmd/server/main.go b/server/cmd/server/main.go
index 6853d4f1..905c82b8 100644
--- a/server/cmd/server/main.go
+++ b/server/cmd/server/main.go
@@ -18,6 +18,7 @@ import (
storeapps "github.com/kube-tarian/kad/server/pkg/store-apps"
"github.com/kube-tarian/kad/server/pkg/pb/captenpluginspb"
+ "github.com/kube-tarian/kad/server/pkg/pb/pluginstorepb"
"github.com/kube-tarian/kad/server/pkg/pb/serverpb"
"github.com/kube-tarian/kad/server/pkg/store"
)
@@ -100,6 +101,7 @@ func main() {
serverpb.RegisterServerServer(grpcServer, rpcServer)
captenpluginspb.RegisterCaptenPluginsServer(grpcServer, rpcServer)
+ pluginstorepb.RegisterPluginStoreServer(grpcServer, rpcServer)
log.Info("Server listening at ", listener.Addr())
reflection.Register(grpcServer)
diff --git a/server/data/plugin-store/data/argo-cd/plugin.yaml b/server/data/plugin-store/data/argo-cd/plugin.yaml
new file mode 100644
index 00000000..100a1432
--- /dev/null
+++ b/server/data/plugin-store/data/argo-cd/plugin.yaml
@@ -0,0 +1,17 @@
+name: "argo-cd"
+description: ""
+category: "CI/CD"
+icon: "argocd.svg"
+deploymentConfig:
+ chartName: "argo-cd"
+ chartRepo: "https://kube-tarian.github.io/helmrepo-supporting-tools"
+ versions:
+ - "v1.0.2"
+ defaultNamespace: "argo-cd"
+ privilegedNamespace: false
+pluginConfig:
+ pluginAccessEndpoint: https://argo.{{.domainName}}
+ capabilities:
+ - name: capten-sdk
+ - name: postgress-store
+ - name: vault-store
diff --git a/server/data/plugin-store/data/argo-cd/v1.0.2/argocd.svg b/server/data/plugin-store/data/argo-cd/v1.0.2/argocd.svg
new file mode 100644
index 00000000..fb7bc6fe
--- /dev/null
+++ b/server/data/plugin-store/data/argo-cd/v1.0.2/argocd.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/server/data/plugin-store/data/argo-cd/v1.0.2/values.yaml b/server/data/plugin-store/data/argo-cd/v1.0.2/values.yaml
new file mode 100644
index 00000000..e0c85187
--- /dev/null
+++ b/server/data/plugin-store/data/argo-cd/v1.0.2/values.yaml
@@ -0,0 +1,24 @@
+server:
+ extraArgs:
+ - --insecure
+ ingress:
+ enabled: true
+ annotations:
+ cert-manager.io/cluster-issuer: letsencrypt-prod-cluster
+ kubernetes.io/force-ssl-redirect: "true"
+ kubernetes.io/ssl-redirect: "true"
+ kubernetes.io/tls-acme: "true"
+ hosts:
+ - argo.{{.DomainName}}
+ paths:
+ - /
+ pathType: Prefix
+ tls:
+ - secretName: argocd-cert
+ hosts:
+ - argo.{{.DomainName}}
+webhooks:
+ enabled: true
+configs:
+ cm:
+ url: "https://argocd.{{.DomainName}}"
diff --git a/server/data/plugin-store/data/crossplane/plugin.yaml b/server/data/plugin-store/data/crossplane/plugin.yaml
new file mode 100644
index 00000000..5120f6a0
--- /dev/null
+++ b/server/data/plugin-store/data/crossplane/plugin.yaml
@@ -0,0 +1,15 @@
+name: "crossplane"
+description: ""
+category: "iaas"
+deploymentConfig:
+ chartName: "crossplane"
+ chartRepo: "https://kube-tarian.github.io/helmrepo-supporting-tools"
+ versions: ["1.0.2"]
+ defaultNamespace: "crossplane-system"
+ privilegedNamespace: true
+pluginConfig:
+ pluginAccessEndpoint: https://crossplane.{{.domainName}}
+ capabilities:
+ - name: capten-sdk
+ - name: postgress-store
+ - name: vault-store
diff --git a/server/data/plugin-store/data/crossplane/v1.0.2/values.yaml b/server/data/plugin-store/data/crossplane/v1.0.2/values.yaml
new file mode 100644
index 00000000..ed612806
--- /dev/null
+++ b/server/data/plugin-store/data/crossplane/v1.0.2/values.yaml
@@ -0,0 +1,2 @@
+webhooks:
+ enabled: true
diff --git a/server/data/plugin-store/data/plugins.yaml b/server/data/plugin-store/data/plugins.yaml
new file mode 100644
index 00000000..ade90218
--- /dev/null
+++ b/server/data/plugin-store/data/plugins.yaml
@@ -0,0 +1,5 @@
+plugins:
+ - argo-cd
+ - crossplane
+ - testkube
+ - tekton
diff --git a/server/data/plugin-store/data/tekton/plugin.yaml b/server/data/plugin-store/data/tekton/plugin.yaml
new file mode 100644
index 00000000..7b9ada27
--- /dev/null
+++ b/server/data/plugin-store/data/tekton/plugin.yaml
@@ -0,0 +1,18 @@
+name: "tekton"
+description: ""
+category: "CI/CD"
+icon: "tekton.svg"
+deploymentConfig:
+ chartName: "tekton"
+ chartRepo: "https://kube-tarian.github.io/helmrepo-supporting-tools"
+ versions: ["0.1.9"]
+ defaultNamespace: "tekton"
+ privilegedNamespace: false
+pluginConfig:
+ pluginAccessEndpoint: https://tekton.{{.domainName}}
+ capabilities:
+ - name: capten-sdk
+ - name: postgress-store
+ - name: vault-store
+ attributes:
+ storePath: tektonplg
diff --git a/server/data/plugin-store/data/tekton/v0.1.9/tekton.svg b/server/data/plugin-store/data/tekton/v0.1.9/tekton.svg
new file mode 100644
index 00000000..04fae8b3
--- /dev/null
+++ b/server/data/plugin-store/data/tekton/v0.1.9/tekton.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/server/data/plugin-store/data/tekton/v0.1.9/values.yaml b/server/data/plugin-store/data/tekton/v0.1.9/values.yaml
new file mode 100644
index 00000000..f308f9bf
--- /dev/null
+++ b/server/data/plugin-store/data/tekton/v0.1.9/values.yaml
@@ -0,0 +1,14 @@
+dashboard:
+ ingress:
+ enabled: true
+ annotations:
+ cert-manager.io/cluster-issuer: letsencrypt-prod-cluster
+ kubernetes.io/force-ssl-redirect: "true"
+ kubernetes.io/ssl-redirect: "true"
+ kubernetes.io/tls-acme: "true"
+ hosts:
+ - tekton.{{.DomainName}}
+ tls:
+ - hosts:
+ - tekton.{{.DomainName}}
+ secretName: tekton-dashboard-cert
diff --git a/server/go.mod b/server/go.mod
index 633e8098..3b91d4d5 100644
--- a/server/go.mod
+++ b/server/go.mod
@@ -4,7 +4,6 @@ go 1.21
require (
github.com/gocql/gocql v1.3.1
- github.com/golang-migrate/migrate/v4 v4.17.0
github.com/google/uuid v1.4.0
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.0.1
github.com/intelops/go-common v1.0.20
@@ -20,8 +19,12 @@ require (
)
require (
+ github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect
github.com/cenkalti/backoff/v3 v3.0.0 // indirect
github.com/containerd/containerd v1.7.13 // indirect
+ github.com/docker/distribution v2.8.2+incompatible // indirect
+ github.com/docker/docker v24.0.7+incompatible // indirect
+ github.com/docker/go-units v0.5.0 // indirect
github.com/fatih/color v1.13.0 // indirect
github.com/go-jose/go-jose/v3 v3.0.0 // indirect
github.com/golang/protobuf v1.5.3 // indirect
@@ -42,10 +45,13 @@ require (
github.com/klauspost/compress v1.16.0 // indirect
github.com/kr/pretty v0.3.0 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
+ github.com/mattn/go-isatty v0.0.16 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/moby/patternmatcher v0.6.0 // indirect
github.com/moby/sys/sequential v0.5.0 // indirect
+ github.com/moby/term v0.5.0 // indirect
+ github.com/morikuni/aec v1.0.0 // indirect
github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b // indirect
github.com/rogpeppe/go-internal v1.8.0 // indirect
github.com/ryanuber/go-glob v1.0.0 // indirect
diff --git a/server/go.sum b/server/go.sum
index 15192b4f..3ed85ae5 100644
--- a/server/go.sum
+++ b/server/go.sum
@@ -37,8 +37,6 @@ github.com/gocql/gocql v1.3.1 h1:BTwM4rux+ah5G3oH6/MQa+tur/TDd/XAAOXDxBBs7rg=
github.com/gocql/gocql v1.3.1/go.mod h1:3gM2c4D3AnkISwBxGnMMsS8Oy4y2lhbPRsH4xnJrHG8=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
-github.com/golang-migrate/migrate/v4 v4.17.0 h1:rd40H3QXU0AA4IoLllFcEAEo9dYKRHYND2gB4p7xcaU=
-github.com/golang-migrate/migrate/v4 v4.17.0/go.mod h1:+Cp2mtLP4/aXDTKb9wmXYitdrNx2HGs45rbWAo6OsKM=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
@@ -199,6 +197,7 @@ golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
diff --git a/server/pkg/api/plugin_store_apis.go b/server/pkg/api/plugin_store_apis.go
new file mode 100644
index 00000000..d990b581
--- /dev/null
+++ b/server/pkg/api/plugin_store_apis.go
@@ -0,0 +1,57 @@
+package api
+
+import (
+ "context"
+
+ "github.com/kube-tarian/kad/server/pkg/pb/pluginstorepb"
+ pluginstore "github.com/kube-tarian/kad/server/pkg/plugin-store"
+)
+
+func (s *Server) ConfigPluginStore(ctx context.Context, request *pluginstorepb.ConfigPluginStoreRequest) (
+ *pluginstorepb.ConfigPluginStoreResponse, error) {
+ return &pluginstorepb.ConfigPluginStoreResponse{
+ Status: pluginstorepb.StatusCode_OK,
+ }, nil
+}
+
+func (s *Server) SyncPluginStore(ctx context.Context, request *pluginstorepb.SyncPluginStoreRequest) (
+ *pluginstorepb.SyncPluginStoreResponse, error) {
+ err := pluginstore.SyncPluginApps(s.log, s.serverStore)
+ if err != nil {
+ return &pluginstorepb.SyncPluginStoreResponse{
+ Status: pluginstorepb.StatusCode_INTERNRAL_ERROR,
+ StatusMessage: err.Error(),
+ }, err
+ }
+ return &pluginstorepb.SyncPluginStoreResponse{
+ Status: pluginstorepb.StatusCode_OK,
+ }, nil
+}
+
+func (s *Server) GetPlugins(ctx context.Context, request *pluginstorepb.GetPluginsRequest) (
+ *pluginstorepb.GetPluginsResponse, error) {
+ return &pluginstorepb.GetPluginsResponse{
+ Status: pluginstorepb.StatusCode_OK,
+ }, nil
+}
+
+func (s *Server) GetPluginValues(ctx context.Context, request *pluginstorepb.GetPluginValuesRequest) (
+ *pluginstorepb.GetPluginValuesResponse, error) {
+ return &pluginstorepb.GetPluginValuesResponse{
+ Status: pluginstorepb.StatusCode_OK,
+ }, nil
+}
+
+func (s *Server) DeployPlugin(ctx context.Context, request *pluginstorepb.DeployPluginRequest) (
+ *pluginstorepb.DeployPluginResponse, error) {
+ return &pluginstorepb.DeployPluginResponse{
+ Status: pluginstorepb.StatusCode_OK,
+ }, nil
+}
+
+func (s *Server) UnDeployPlugin(ctx context.Context, request *pluginstorepb.UnDeployPluginRequest) (
+ *pluginstorepb.UnDeployPluginResponse, error) {
+ return &pluginstorepb.UnDeployPluginResponse{
+ Status: pluginstorepb.StatusCode_OK,
+ }, nil
+}
diff --git a/server/pkg/api/server.go b/server/pkg/api/server.go
index 8c82dc57..dacfb980 100644
--- a/server/pkg/api/server.go
+++ b/server/pkg/api/server.go
@@ -11,6 +11,7 @@ import (
iamclient "github.com/kube-tarian/kad/server/pkg/iam-client"
oryclient "github.com/kube-tarian/kad/server/pkg/ory-client"
"github.com/kube-tarian/kad/server/pkg/pb/captenpluginspb"
+ "github.com/kube-tarian/kad/server/pkg/pb/pluginstorepb"
"github.com/kube-tarian/kad/server/pkg/pb/serverpb"
"github.com/kube-tarian/kad/server/pkg/store"
"google.golang.org/grpc/metadata"
@@ -26,6 +27,7 @@ const (
type Server struct {
serverpb.UnimplementedServerServer
captenpluginspb.UnimplementedCaptenPluginsServer
+ pluginstorepb.UnimplementedPluginStoreServer
serverStore store.ServerStore
agentHandeler *agent.AgentHandler
log logging.Logger
diff --git a/server/pkg/pb/agentpb/agent.pb.go b/server/pkg/pb/agentpb/agent.pb.go
index afc54ca6..f9e70baa 100644
--- a/server/pkg/pb/agentpb/agent.pb.go
+++ b/server/pkg/pb/agentpb/agent.pb.go
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.32.0
+// protoc-gen-go v1.30.0
// protoc v3.12.4
// source: agent.proto
diff --git a/server/pkg/pb/captenpluginspb/capten_plugins.pb.go b/server/pkg/pb/captenpluginspb/capten_plugins.pb.go
index 5408956c..80d492b9 100644
--- a/server/pkg/pb/captenpluginspb/capten_plugins.pb.go
+++ b/server/pkg/pb/captenpluginspb/capten_plugins.pb.go
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.32.0
+// protoc-gen-go v1.30.0
// protoc v3.12.4
// source: capten_plugins.proto
diff --git a/server/pkg/pb/pluginstorepb/plugin_store.pb.go b/server/pkg/pb/pluginstorepb/plugin_store.pb.go
new file mode 100644
index 00000000..74ab7943
--- /dev/null
+++ b/server/pkg/pb/pluginstorepb/plugin_store.pb.go
@@ -0,0 +1,1285 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.30.0
+// protoc v3.12.4
+// source: plugin_store.proto
+
+package pluginstorepb
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type StatusCode int32
+
+const (
+ StatusCode_OK StatusCode = 0
+ StatusCode_INTERNRAL_ERROR StatusCode = 1
+ StatusCode_INVALID_ARGUMENT StatusCode = 2
+ StatusCode_NOT_FOUND StatusCode = 3
+)
+
+// Enum value maps for StatusCode.
+var (
+ StatusCode_name = map[int32]string{
+ 0: "OK",
+ 1: "INTERNRAL_ERROR",
+ 2: "INVALID_ARGUMENT",
+ 3: "NOT_FOUND",
+ }
+ StatusCode_value = map[string]int32{
+ "OK": 0,
+ "INTERNRAL_ERROR": 1,
+ "INVALID_ARGUMENT": 2,
+ "NOT_FOUND": 3,
+ }
+)
+
+func (x StatusCode) Enum() *StatusCode {
+ p := new(StatusCode)
+ *p = x
+ return p
+}
+
+func (x StatusCode) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (StatusCode) Descriptor() protoreflect.EnumDescriptor {
+ return file_plugin_store_proto_enumTypes[0].Descriptor()
+}
+
+func (StatusCode) Type() protoreflect.EnumType {
+ return &file_plugin_store_proto_enumTypes[0]
+}
+
+func (x StatusCode) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use StatusCode.Descriptor instead.
+func (StatusCode) EnumDescriptor() ([]byte, []int) {
+ return file_plugin_store_proto_rawDescGZIP(), []int{0}
+}
+
+type StoreType int32
+
+const (
+ StoreType_CENTRAL_CAPTEN_STORE StoreType = 0
+ StoreType_LOCAL_CAPTEN_STORE StoreType = 1
+)
+
+// Enum value maps for StoreType.
+var (
+ StoreType_name = map[int32]string{
+ 0: "CENTRAL_CAPTEN_STORE",
+ 1: "LOCAL_CAPTEN_STORE",
+ }
+ StoreType_value = map[string]int32{
+ "CENTRAL_CAPTEN_STORE": 0,
+ "LOCAL_CAPTEN_STORE": 1,
+ }
+)
+
+func (x StoreType) Enum() *StoreType {
+ p := new(StoreType)
+ *p = x
+ return p
+}
+
+func (x StoreType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (StoreType) Descriptor() protoreflect.EnumDescriptor {
+ return file_plugin_store_proto_enumTypes[1].Descriptor()
+}
+
+func (StoreType) Type() protoreflect.EnumType {
+ return &file_plugin_store_proto_enumTypes[1]
+}
+
+func (x StoreType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use StoreType.Descriptor instead.
+func (StoreType) EnumDescriptor() ([]byte, []int) {
+ return file_plugin_store_proto_rawDescGZIP(), []int{1}
+}
+
+type ConfigPluginStoreRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ StoreType StoreType `protobuf:"varint,1,opt,name=storeType,proto3,enum=pluginstorepb.StoreType" json:"storeType,omitempty"`
+ GitProjectId string `protobuf:"bytes,2,opt,name=gitProjectId,proto3" json:"gitProjectId,omitempty"`
+}
+
+func (x *ConfigPluginStoreRequest) Reset() {
+ *x = ConfigPluginStoreRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_plugin_store_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ConfigPluginStoreRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ConfigPluginStoreRequest) ProtoMessage() {}
+
+func (x *ConfigPluginStoreRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_plugin_store_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ConfigPluginStoreRequest.ProtoReflect.Descriptor instead.
+func (*ConfigPluginStoreRequest) Descriptor() ([]byte, []int) {
+ return file_plugin_store_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *ConfigPluginStoreRequest) GetStoreType() StoreType {
+ if x != nil {
+ return x.StoreType
+ }
+ return StoreType_CENTRAL_CAPTEN_STORE
+}
+
+func (x *ConfigPluginStoreRequest) GetGitProjectId() string {
+ if x != nil {
+ return x.GitProjectId
+ }
+ return ""
+}
+
+type ConfigPluginStoreResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Status StatusCode `protobuf:"varint,1,opt,name=status,proto3,enum=pluginstorepb.StatusCode" json:"status,omitempty"`
+ StatusMessage string `protobuf:"bytes,2,opt,name=statusMessage,proto3" json:"statusMessage,omitempty"`
+}
+
+func (x *ConfigPluginStoreResponse) Reset() {
+ *x = ConfigPluginStoreResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_plugin_store_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ConfigPluginStoreResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ConfigPluginStoreResponse) ProtoMessage() {}
+
+func (x *ConfigPluginStoreResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_plugin_store_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ConfigPluginStoreResponse.ProtoReflect.Descriptor instead.
+func (*ConfigPluginStoreResponse) Descriptor() ([]byte, []int) {
+ return file_plugin_store_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *ConfigPluginStoreResponse) GetStatus() StatusCode {
+ if x != nil {
+ return x.Status
+ }
+ return StatusCode_OK
+}
+
+func (x *ConfigPluginStoreResponse) GetStatusMessage() string {
+ if x != nil {
+ return x.StatusMessage
+ }
+ return ""
+}
+
+type Plugin struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ StoreType StoreType `protobuf:"varint,1,opt,name=storeType,proto3,enum=pluginstorepb.StoreType" json:"storeType,omitempty"`
+ PluginName string `protobuf:"bytes,2,opt,name=pluginName,proto3" json:"pluginName,omitempty"`
+ Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
+ Category string `protobuf:"bytes,4,opt,name=category,proto3" json:"category,omitempty"`
+ Versions []string `protobuf:"bytes,5,rep,name=versions,proto3" json:"versions,omitempty"`
+ Icon []byte `protobuf:"bytes,6,opt,name=icon,proto3" json:"icon,omitempty"`
+}
+
+func (x *Plugin) Reset() {
+ *x = Plugin{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_plugin_store_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Plugin) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Plugin) ProtoMessage() {}
+
+func (x *Plugin) ProtoReflect() protoreflect.Message {
+ mi := &file_plugin_store_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Plugin.ProtoReflect.Descriptor instead.
+func (*Plugin) Descriptor() ([]byte, []int) {
+ return file_plugin_store_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *Plugin) GetStoreType() StoreType {
+ if x != nil {
+ return x.StoreType
+ }
+ return StoreType_CENTRAL_CAPTEN_STORE
+}
+
+func (x *Plugin) GetPluginName() string {
+ if x != nil {
+ return x.PluginName
+ }
+ return ""
+}
+
+func (x *Plugin) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *Plugin) GetCategory() string {
+ if x != nil {
+ return x.Category
+ }
+ return ""
+}
+
+func (x *Plugin) GetVersions() []string {
+ if x != nil {
+ return x.Versions
+ }
+ return nil
+}
+
+func (x *Plugin) GetIcon() []byte {
+ if x != nil {
+ return x.Icon
+ }
+ return nil
+}
+
+type SyncPluginStoreRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *SyncPluginStoreRequest) Reset() {
+ *x = SyncPluginStoreRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_plugin_store_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SyncPluginStoreRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SyncPluginStoreRequest) ProtoMessage() {}
+
+func (x *SyncPluginStoreRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_plugin_store_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SyncPluginStoreRequest.ProtoReflect.Descriptor instead.
+func (*SyncPluginStoreRequest) Descriptor() ([]byte, []int) {
+ return file_plugin_store_proto_rawDescGZIP(), []int{3}
+}
+
+type SyncPluginStoreResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Status StatusCode `protobuf:"varint,1,opt,name=status,proto3,enum=pluginstorepb.StatusCode" json:"status,omitempty"`
+ StatusMessage string `protobuf:"bytes,2,opt,name=statusMessage,proto3" json:"statusMessage,omitempty"`
+}
+
+func (x *SyncPluginStoreResponse) Reset() {
+ *x = SyncPluginStoreResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_plugin_store_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SyncPluginStoreResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SyncPluginStoreResponse) ProtoMessage() {}
+
+func (x *SyncPluginStoreResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_plugin_store_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SyncPluginStoreResponse.ProtoReflect.Descriptor instead.
+func (*SyncPluginStoreResponse) Descriptor() ([]byte, []int) {
+ return file_plugin_store_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *SyncPluginStoreResponse) GetStatus() StatusCode {
+ if x != nil {
+ return x.Status
+ }
+ return StatusCode_OK
+}
+
+func (x *SyncPluginStoreResponse) GetStatusMessage() string {
+ if x != nil {
+ return x.StatusMessage
+ }
+ return ""
+}
+
+type GetPluginsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ StoreType StoreType `protobuf:"varint,1,opt,name=storeType,proto3,enum=pluginstorepb.StoreType" json:"storeType,omitempty"`
+}
+
+func (x *GetPluginsRequest) Reset() {
+ *x = GetPluginsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_plugin_store_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetPluginsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetPluginsRequest) ProtoMessage() {}
+
+func (x *GetPluginsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_plugin_store_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetPluginsRequest.ProtoReflect.Descriptor instead.
+func (*GetPluginsRequest) Descriptor() ([]byte, []int) {
+ return file_plugin_store_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *GetPluginsRequest) GetStoreType() StoreType {
+ if x != nil {
+ return x.StoreType
+ }
+ return StoreType_CENTRAL_CAPTEN_STORE
+}
+
+type GetPluginsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Status StatusCode `protobuf:"varint,1,opt,name=status,proto3,enum=pluginstorepb.StatusCode" json:"status,omitempty"`
+ StatusMessage string `protobuf:"bytes,2,opt,name=statusMessage,proto3" json:"statusMessage,omitempty"`
+ Plugins []*Plugin `protobuf:"bytes,3,rep,name=plugins,proto3" json:"plugins,omitempty"`
+}
+
+func (x *GetPluginsResponse) Reset() {
+ *x = GetPluginsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_plugin_store_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetPluginsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetPluginsResponse) ProtoMessage() {}
+
+func (x *GetPluginsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_plugin_store_proto_msgTypes[6]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetPluginsResponse.ProtoReflect.Descriptor instead.
+func (*GetPluginsResponse) Descriptor() ([]byte, []int) {
+ return file_plugin_store_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *GetPluginsResponse) GetStatus() StatusCode {
+ if x != nil {
+ return x.Status
+ }
+ return StatusCode_OK
+}
+
+func (x *GetPluginsResponse) GetStatusMessage() string {
+ if x != nil {
+ return x.StatusMessage
+ }
+ return ""
+}
+
+func (x *GetPluginsResponse) GetPlugins() []*Plugin {
+ if x != nil {
+ return x.Plugins
+ }
+ return nil
+}
+
+type GetPluginValuesRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ StoreType StoreType `protobuf:"varint,1,opt,name=storeType,proto3,enum=pluginstorepb.StoreType" json:"storeType,omitempty"`
+ PluginName string `protobuf:"bytes,2,opt,name=pluginName,proto3" json:"pluginName,omitempty"`
+ Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
+}
+
+func (x *GetPluginValuesRequest) Reset() {
+ *x = GetPluginValuesRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_plugin_store_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetPluginValuesRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetPluginValuesRequest) ProtoMessage() {}
+
+func (x *GetPluginValuesRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_plugin_store_proto_msgTypes[7]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetPluginValuesRequest.ProtoReflect.Descriptor instead.
+func (*GetPluginValuesRequest) Descriptor() ([]byte, []int) {
+ return file_plugin_store_proto_rawDescGZIP(), []int{7}
+}
+
+func (x *GetPluginValuesRequest) GetStoreType() StoreType {
+ if x != nil {
+ return x.StoreType
+ }
+ return StoreType_CENTRAL_CAPTEN_STORE
+}
+
+func (x *GetPluginValuesRequest) GetPluginName() string {
+ if x != nil {
+ return x.PluginName
+ }
+ return ""
+}
+
+func (x *GetPluginValuesRequest) GetVersion() string {
+ if x != nil {
+ return x.Version
+ }
+ return ""
+}
+
+type GetPluginValuesResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Status StatusCode `protobuf:"varint,1,opt,name=status,proto3,enum=pluginstorepb.StatusCode" json:"status,omitempty"`
+ StatusMessage string `protobuf:"bytes,2,opt,name=statusMessage,proto3" json:"statusMessage,omitempty"`
+ Values []byte `protobuf:"bytes,3,opt,name=values,proto3" json:"values,omitempty"`
+}
+
+func (x *GetPluginValuesResponse) Reset() {
+ *x = GetPluginValuesResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_plugin_store_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetPluginValuesResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetPluginValuesResponse) ProtoMessage() {}
+
+func (x *GetPluginValuesResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_plugin_store_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetPluginValuesResponse.ProtoReflect.Descriptor instead.
+func (*GetPluginValuesResponse) Descriptor() ([]byte, []int) {
+ return file_plugin_store_proto_rawDescGZIP(), []int{8}
+}
+
+func (x *GetPluginValuesResponse) GetStatus() StatusCode {
+ if x != nil {
+ return x.Status
+ }
+ return StatusCode_OK
+}
+
+func (x *GetPluginValuesResponse) GetStatusMessage() string {
+ if x != nil {
+ return x.StatusMessage
+ }
+ return ""
+}
+
+func (x *GetPluginValuesResponse) GetValues() []byte {
+ if x != nil {
+ return x.Values
+ }
+ return nil
+}
+
+type DeployPluginRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ StoreType StoreType `protobuf:"varint,1,opt,name=storeType,proto3,enum=pluginstorepb.StoreType" json:"storeType,omitempty"`
+ PluginName string `protobuf:"bytes,2,opt,name=pluginName,proto3" json:"pluginName,omitempty"`
+ Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
+ Values []byte `protobuf:"bytes,4,opt,name=values,proto3" json:"values,omitempty"`
+}
+
+func (x *DeployPluginRequest) Reset() {
+ *x = DeployPluginRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_plugin_store_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeployPluginRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeployPluginRequest) ProtoMessage() {}
+
+func (x *DeployPluginRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_plugin_store_proto_msgTypes[9]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeployPluginRequest.ProtoReflect.Descriptor instead.
+func (*DeployPluginRequest) Descriptor() ([]byte, []int) {
+ return file_plugin_store_proto_rawDescGZIP(), []int{9}
+}
+
+func (x *DeployPluginRequest) GetStoreType() StoreType {
+ if x != nil {
+ return x.StoreType
+ }
+ return StoreType_CENTRAL_CAPTEN_STORE
+}
+
+func (x *DeployPluginRequest) GetPluginName() string {
+ if x != nil {
+ return x.PluginName
+ }
+ return ""
+}
+
+func (x *DeployPluginRequest) GetVersion() string {
+ if x != nil {
+ return x.Version
+ }
+ return ""
+}
+
+func (x *DeployPluginRequest) GetValues() []byte {
+ if x != nil {
+ return x.Values
+ }
+ return nil
+}
+
+type DeployPluginResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Status StatusCode `protobuf:"varint,1,opt,name=status,proto3,enum=pluginstorepb.StatusCode" json:"status,omitempty"`
+ StatusMessage string `protobuf:"bytes,2,opt,name=statusMessage,proto3" json:"statusMessage,omitempty"`
+}
+
+func (x *DeployPluginResponse) Reset() {
+ *x = DeployPluginResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_plugin_store_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeployPluginResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeployPluginResponse) ProtoMessage() {}
+
+func (x *DeployPluginResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_plugin_store_proto_msgTypes[10]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeployPluginResponse.ProtoReflect.Descriptor instead.
+func (*DeployPluginResponse) Descriptor() ([]byte, []int) {
+ return file_plugin_store_proto_rawDescGZIP(), []int{10}
+}
+
+func (x *DeployPluginResponse) GetStatus() StatusCode {
+ if x != nil {
+ return x.Status
+ }
+ return StatusCode_OK
+}
+
+func (x *DeployPluginResponse) GetStatusMessage() string {
+ if x != nil {
+ return x.StatusMessage
+ }
+ return ""
+}
+
+type UnDeployPluginRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ StoreType StoreType `protobuf:"varint,1,opt,name=storeType,proto3,enum=pluginstorepb.StoreType" json:"storeType,omitempty"`
+ PluginName string `protobuf:"bytes,2,opt,name=pluginName,proto3" json:"pluginName,omitempty"`
+}
+
+func (x *UnDeployPluginRequest) Reset() {
+ *x = UnDeployPluginRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_plugin_store_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UnDeployPluginRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UnDeployPluginRequest) ProtoMessage() {}
+
+func (x *UnDeployPluginRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_plugin_store_proto_msgTypes[11]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UnDeployPluginRequest.ProtoReflect.Descriptor instead.
+func (*UnDeployPluginRequest) Descriptor() ([]byte, []int) {
+ return file_plugin_store_proto_rawDescGZIP(), []int{11}
+}
+
+func (x *UnDeployPluginRequest) GetStoreType() StoreType {
+ if x != nil {
+ return x.StoreType
+ }
+ return StoreType_CENTRAL_CAPTEN_STORE
+}
+
+func (x *UnDeployPluginRequest) GetPluginName() string {
+ if x != nil {
+ return x.PluginName
+ }
+ return ""
+}
+
+type UnDeployPluginResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Status StatusCode `protobuf:"varint,1,opt,name=status,proto3,enum=pluginstorepb.StatusCode" json:"status,omitempty"`
+ StatusMessage string `protobuf:"bytes,2,opt,name=statusMessage,proto3" json:"statusMessage,omitempty"`
+}
+
+func (x *UnDeployPluginResponse) Reset() {
+ *x = UnDeployPluginResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_plugin_store_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UnDeployPluginResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UnDeployPluginResponse) ProtoMessage() {}
+
+func (x *UnDeployPluginResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_plugin_store_proto_msgTypes[12]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UnDeployPluginResponse.ProtoReflect.Descriptor instead.
+func (*UnDeployPluginResponse) Descriptor() ([]byte, []int) {
+ return file_plugin_store_proto_rawDescGZIP(), []int{12}
+}
+
+func (x *UnDeployPluginResponse) GetStatus() StatusCode {
+ if x != nil {
+ return x.Status
+ }
+ return StatusCode_OK
+}
+
+func (x *UnDeployPluginResponse) GetStatusMessage() string {
+ if x != nil {
+ return x.StatusMessage
+ }
+ return ""
+}
+
+var File_plugin_store_proto protoreflect.FileDescriptor
+
+var file_plugin_store_proto_rawDesc = []byte{
+ 0x0a, 0x12, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x74, 0x6f, 0x72,
+ 0x65, 0x70, 0x62, 0x22, 0x76, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x6c, 0x75,
+ 0x67, 0x69, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
+ 0x36, 0x0a, 0x09, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x65,
+ 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x73, 0x74,
+ 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x69, 0x74, 0x50, 0x72,
+ 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x67,
+ 0x69, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0x74, 0x0a, 0x19, 0x43,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x65,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69,
+ 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43,
+ 0x6f, 0x64, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x22, 0xce, 0x01, 0x0a, 0x06, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12, 0x36, 0x0a, 0x09,
+ 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
+ 0x18, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e,
+ 0x53, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x73, 0x74, 0x6f, 0x72, 0x65,
+ 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x4e, 0x61,
+ 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e,
+ 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
+ 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
+ 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f,
+ 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f,
+ 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05,
+ 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x12,
+ 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x69, 0x63,
+ 0x6f, 0x6e, 0x22, 0x18, 0x0a, 0x16, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e,
+ 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x72, 0x0a, 0x17,
+ 0x53, 0x79, 0x6e, 0x63, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e,
+ 0x73, 0x74, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f,
+ 0x64, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x22, 0x4b, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x09, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79,
+ 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69,
+ 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79,
+ 0x70, 0x65, 0x52, 0x09, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9e, 0x01,
+ 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x74, 0x6f,
+ 0x72, 0x65, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x52,
+ 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d,
+ 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2f, 0x0a,
+ 0x07, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15,
+ 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x50,
+ 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x07, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x22, 0x8a,
+ 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75,
+ 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x09, 0x73, 0x74, 0x6f,
+ 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x70,
+ 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f,
+ 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70,
+ 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d,
+ 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8a, 0x01, 0x0a, 0x17,
+ 0x47, 0x65, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e,
+ 0x73, 0x74, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f,
+ 0x64, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c,
+ 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x9f, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x70,
+ 0x6c, 0x6f, 0x79, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x36, 0x0a, 0x09, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x74, 0x6f, 0x72,
+ 0x65, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x73,
+ 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x75, 0x67,
+ 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c,
+ 0x75, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73,
+ 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69,
+ 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x0c, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x6f, 0x0a, 0x14, 0x44, 0x65,
+ 0x70, 0x6c, 0x6f, 0x79, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x65,
+ 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x73,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x6f, 0x0a, 0x15, 0x55,
+ 0x6e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x09, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e,
+ 0x73, 0x74, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70,
+ 0x65, 0x52, 0x09, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a,
+ 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0a, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x71, 0x0a, 0x16,
+ 0x55, 0x6e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73,
+ 0x74, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64,
+ 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2a,
+ 0x4e, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x06, 0x0a,
+ 0x02, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x52,
+ 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x4e,
+ 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x41, 0x52, 0x47, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x02,
+ 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x03, 0x2a,
+ 0x3d, 0x0a, 0x09, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14,
+ 0x43, 0x45, 0x4e, 0x54, 0x52, 0x41, 0x4c, 0x5f, 0x43, 0x41, 0x50, 0x54, 0x45, 0x4e, 0x5f, 0x53,
+ 0x54, 0x4f, 0x52, 0x45, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f,
+ 0x43, 0x41, 0x50, 0x54, 0x45, 0x4e, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x10, 0x01, 0x32, 0xd0,
+ 0x04, 0x0a, 0x0b, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x68,
+ 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x53, 0x74,
+ 0x6f, 0x72, 0x65, 0x12, 0x27, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x74, 0x6f, 0x72,
+ 0x65, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e,
+ 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x70,
+ 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x0f, 0x53, 0x79, 0x6e, 0x63,
+ 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x25, 0x2e, 0x70, 0x6c,
+ 0x75, 0x67, 0x69, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63,
+ 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x65,
+ 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x6f,
+ 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0a,
+ 0x47, 0x65, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x12, 0x20, 0x2e, 0x70, 0x6c, 0x75,
+ 0x67, 0x69, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6c,
+ 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70,
+ 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74,
+ 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x00, 0x12, 0x62, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x56, 0x61,
+ 0x6c, 0x75, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x74, 0x6f,
+ 0x72, 0x65, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x56, 0x61,
+ 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x6c,
+ 0x75, 0x67, 0x69, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x50,
+ 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x0c, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x50,
+ 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12, 0x22, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x74,
+ 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x50, 0x6c, 0x75, 0x67,
+ 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x70, 0x6c, 0x75, 0x67,
+ 0x69, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79,
+ 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
+ 0x12, 0x5f, 0x0a, 0x0e, 0x55, 0x6e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x50, 0x6c, 0x75, 0x67,
+ 0x69, 0x6e, 0x12, 0x24, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x65,
+ 0x70, 0x62, 0x2e, 0x55, 0x6e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x50, 0x6c, 0x75, 0x67, 0x69,
+ 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69,
+ 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x2e, 0x55, 0x6e, 0x44, 0x65, 0x70, 0x6c, 0x6f,
+ 0x79, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x00, 0x42, 0x10, 0x5a, 0x0e, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x74, 0x6f, 0x72,
+ 0x65, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_plugin_store_proto_rawDescOnce sync.Once
+ file_plugin_store_proto_rawDescData = file_plugin_store_proto_rawDesc
+)
+
+func file_plugin_store_proto_rawDescGZIP() []byte {
+ file_plugin_store_proto_rawDescOnce.Do(func() {
+ file_plugin_store_proto_rawDescData = protoimpl.X.CompressGZIP(file_plugin_store_proto_rawDescData)
+ })
+ return file_plugin_store_proto_rawDescData
+}
+
+var file_plugin_store_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
+var file_plugin_store_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
+var file_plugin_store_proto_goTypes = []interface{}{
+ (StatusCode)(0), // 0: pluginstorepb.StatusCode
+ (StoreType)(0), // 1: pluginstorepb.StoreType
+ (*ConfigPluginStoreRequest)(nil), // 2: pluginstorepb.ConfigPluginStoreRequest
+ (*ConfigPluginStoreResponse)(nil), // 3: pluginstorepb.ConfigPluginStoreResponse
+ (*Plugin)(nil), // 4: pluginstorepb.Plugin
+ (*SyncPluginStoreRequest)(nil), // 5: pluginstorepb.SyncPluginStoreRequest
+ (*SyncPluginStoreResponse)(nil), // 6: pluginstorepb.SyncPluginStoreResponse
+ (*GetPluginsRequest)(nil), // 7: pluginstorepb.GetPluginsRequest
+ (*GetPluginsResponse)(nil), // 8: pluginstorepb.GetPluginsResponse
+ (*GetPluginValuesRequest)(nil), // 9: pluginstorepb.GetPluginValuesRequest
+ (*GetPluginValuesResponse)(nil), // 10: pluginstorepb.GetPluginValuesResponse
+ (*DeployPluginRequest)(nil), // 11: pluginstorepb.DeployPluginRequest
+ (*DeployPluginResponse)(nil), // 12: pluginstorepb.DeployPluginResponse
+ (*UnDeployPluginRequest)(nil), // 13: pluginstorepb.UnDeployPluginRequest
+ (*UnDeployPluginResponse)(nil), // 14: pluginstorepb.UnDeployPluginResponse
+}
+var file_plugin_store_proto_depIdxs = []int32{
+ 1, // 0: pluginstorepb.ConfigPluginStoreRequest.storeType:type_name -> pluginstorepb.StoreType
+ 0, // 1: pluginstorepb.ConfigPluginStoreResponse.status:type_name -> pluginstorepb.StatusCode
+ 1, // 2: pluginstorepb.Plugin.storeType:type_name -> pluginstorepb.StoreType
+ 0, // 3: pluginstorepb.SyncPluginStoreResponse.status:type_name -> pluginstorepb.StatusCode
+ 1, // 4: pluginstorepb.GetPluginsRequest.storeType:type_name -> pluginstorepb.StoreType
+ 0, // 5: pluginstorepb.GetPluginsResponse.status:type_name -> pluginstorepb.StatusCode
+ 4, // 6: pluginstorepb.GetPluginsResponse.plugins:type_name -> pluginstorepb.Plugin
+ 1, // 7: pluginstorepb.GetPluginValuesRequest.storeType:type_name -> pluginstorepb.StoreType
+ 0, // 8: pluginstorepb.GetPluginValuesResponse.status:type_name -> pluginstorepb.StatusCode
+ 1, // 9: pluginstorepb.DeployPluginRequest.storeType:type_name -> pluginstorepb.StoreType
+ 0, // 10: pluginstorepb.DeployPluginResponse.status:type_name -> pluginstorepb.StatusCode
+ 1, // 11: pluginstorepb.UnDeployPluginRequest.storeType:type_name -> pluginstorepb.StoreType
+ 0, // 12: pluginstorepb.UnDeployPluginResponse.status:type_name -> pluginstorepb.StatusCode
+ 2, // 13: pluginstorepb.PluginStore.ConfigPluginStore:input_type -> pluginstorepb.ConfigPluginStoreRequest
+ 5, // 14: pluginstorepb.PluginStore.SyncPluginStore:input_type -> pluginstorepb.SyncPluginStoreRequest
+ 7, // 15: pluginstorepb.PluginStore.GetPlugins:input_type -> pluginstorepb.GetPluginsRequest
+ 9, // 16: pluginstorepb.PluginStore.GetPluginValues:input_type -> pluginstorepb.GetPluginValuesRequest
+ 11, // 17: pluginstorepb.PluginStore.DeployPlugin:input_type -> pluginstorepb.DeployPluginRequest
+ 13, // 18: pluginstorepb.PluginStore.UnDeployPlugin:input_type -> pluginstorepb.UnDeployPluginRequest
+ 3, // 19: pluginstorepb.PluginStore.ConfigPluginStore:output_type -> pluginstorepb.ConfigPluginStoreResponse
+ 6, // 20: pluginstorepb.PluginStore.SyncPluginStore:output_type -> pluginstorepb.SyncPluginStoreResponse
+ 8, // 21: pluginstorepb.PluginStore.GetPlugins:output_type -> pluginstorepb.GetPluginsResponse
+ 10, // 22: pluginstorepb.PluginStore.GetPluginValues:output_type -> pluginstorepb.GetPluginValuesResponse
+ 12, // 23: pluginstorepb.PluginStore.DeployPlugin:output_type -> pluginstorepb.DeployPluginResponse
+ 14, // 24: pluginstorepb.PluginStore.UnDeployPlugin:output_type -> pluginstorepb.UnDeployPluginResponse
+ 19, // [19:25] is the sub-list for method output_type
+ 13, // [13:19] is the sub-list for method input_type
+ 13, // [13:13] is the sub-list for extension type_name
+ 13, // [13:13] is the sub-list for extension extendee
+ 0, // [0:13] is the sub-list for field type_name
+}
+
+func init() { file_plugin_store_proto_init() }
+func file_plugin_store_proto_init() {
+ if File_plugin_store_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_plugin_store_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ConfigPluginStoreRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_plugin_store_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ConfigPluginStoreResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_plugin_store_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Plugin); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_plugin_store_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SyncPluginStoreRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_plugin_store_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SyncPluginStoreResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_plugin_store_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetPluginsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_plugin_store_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetPluginsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_plugin_store_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetPluginValuesRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_plugin_store_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetPluginValuesResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_plugin_store_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeployPluginRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_plugin_store_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeployPluginResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_plugin_store_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UnDeployPluginRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_plugin_store_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UnDeployPluginResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_plugin_store_proto_rawDesc,
+ NumEnums: 2,
+ NumMessages: 13,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_plugin_store_proto_goTypes,
+ DependencyIndexes: file_plugin_store_proto_depIdxs,
+ EnumInfos: file_plugin_store_proto_enumTypes,
+ MessageInfos: file_plugin_store_proto_msgTypes,
+ }.Build()
+ File_plugin_store_proto = out.File
+ file_plugin_store_proto_rawDesc = nil
+ file_plugin_store_proto_goTypes = nil
+ file_plugin_store_proto_depIdxs = nil
+}
diff --git a/server/pkg/pb/pluginstorepb/plugin_store_grpc.pb.go b/server/pkg/pb/pluginstorepb/plugin_store_grpc.pb.go
new file mode 100644
index 00000000..c981a24f
--- /dev/null
+++ b/server/pkg/pb/pluginstorepb/plugin_store_grpc.pb.go
@@ -0,0 +1,294 @@
+// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
+// versions:
+// - protoc-gen-go-grpc v1.3.0
+// - protoc v3.12.4
+// source: plugin_store.proto
+
+package pluginstorepb
+
+import (
+ context "context"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+)
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+// Requires gRPC-Go v1.32.0 or later.
+const _ = grpc.SupportPackageIsVersion7
+
+const (
+ PluginStore_ConfigPluginStore_FullMethodName = "/pluginstorepb.PluginStore/ConfigPluginStore"
+ PluginStore_SyncPluginStore_FullMethodName = "/pluginstorepb.PluginStore/SyncPluginStore"
+ PluginStore_GetPlugins_FullMethodName = "/pluginstorepb.PluginStore/GetPlugins"
+ PluginStore_GetPluginValues_FullMethodName = "/pluginstorepb.PluginStore/GetPluginValues"
+ PluginStore_DeployPlugin_FullMethodName = "/pluginstorepb.PluginStore/DeployPlugin"
+ PluginStore_UnDeployPlugin_FullMethodName = "/pluginstorepb.PluginStore/UnDeployPlugin"
+)
+
+// PluginStoreClient is the client API for PluginStore service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
+type PluginStoreClient interface {
+ ConfigPluginStore(ctx context.Context, in *ConfigPluginStoreRequest, opts ...grpc.CallOption) (*ConfigPluginStoreResponse, error)
+ SyncPluginStore(ctx context.Context, in *SyncPluginStoreRequest, opts ...grpc.CallOption) (*SyncPluginStoreResponse, error)
+ GetPlugins(ctx context.Context, in *GetPluginsRequest, opts ...grpc.CallOption) (*GetPluginsResponse, error)
+ GetPluginValues(ctx context.Context, in *GetPluginValuesRequest, opts ...grpc.CallOption) (*GetPluginValuesResponse, error)
+ DeployPlugin(ctx context.Context, in *DeployPluginRequest, opts ...grpc.CallOption) (*DeployPluginResponse, error)
+ UnDeployPlugin(ctx context.Context, in *UnDeployPluginRequest, opts ...grpc.CallOption) (*UnDeployPluginResponse, error)
+}
+
+type pluginStoreClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewPluginStoreClient(cc grpc.ClientConnInterface) PluginStoreClient {
+ return &pluginStoreClient{cc}
+}
+
+func (c *pluginStoreClient) ConfigPluginStore(ctx context.Context, in *ConfigPluginStoreRequest, opts ...grpc.CallOption) (*ConfigPluginStoreResponse, error) {
+ out := new(ConfigPluginStoreResponse)
+ err := c.cc.Invoke(ctx, PluginStore_ConfigPluginStore_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *pluginStoreClient) SyncPluginStore(ctx context.Context, in *SyncPluginStoreRequest, opts ...grpc.CallOption) (*SyncPluginStoreResponse, error) {
+ out := new(SyncPluginStoreResponse)
+ err := c.cc.Invoke(ctx, PluginStore_SyncPluginStore_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *pluginStoreClient) GetPlugins(ctx context.Context, in *GetPluginsRequest, opts ...grpc.CallOption) (*GetPluginsResponse, error) {
+ out := new(GetPluginsResponse)
+ err := c.cc.Invoke(ctx, PluginStore_GetPlugins_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *pluginStoreClient) GetPluginValues(ctx context.Context, in *GetPluginValuesRequest, opts ...grpc.CallOption) (*GetPluginValuesResponse, error) {
+ out := new(GetPluginValuesResponse)
+ err := c.cc.Invoke(ctx, PluginStore_GetPluginValues_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *pluginStoreClient) DeployPlugin(ctx context.Context, in *DeployPluginRequest, opts ...grpc.CallOption) (*DeployPluginResponse, error) {
+ out := new(DeployPluginResponse)
+ err := c.cc.Invoke(ctx, PluginStore_DeployPlugin_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *pluginStoreClient) UnDeployPlugin(ctx context.Context, in *UnDeployPluginRequest, opts ...grpc.CallOption) (*UnDeployPluginResponse, error) {
+ out := new(UnDeployPluginResponse)
+ err := c.cc.Invoke(ctx, PluginStore_UnDeployPlugin_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// PluginStoreServer is the server API for PluginStore service.
+// All implementations must embed UnimplementedPluginStoreServer
+// for forward compatibility
+type PluginStoreServer interface {
+ ConfigPluginStore(context.Context, *ConfigPluginStoreRequest) (*ConfigPluginStoreResponse, error)
+ SyncPluginStore(context.Context, *SyncPluginStoreRequest) (*SyncPluginStoreResponse, error)
+ GetPlugins(context.Context, *GetPluginsRequest) (*GetPluginsResponse, error)
+ GetPluginValues(context.Context, *GetPluginValuesRequest) (*GetPluginValuesResponse, error)
+ DeployPlugin(context.Context, *DeployPluginRequest) (*DeployPluginResponse, error)
+ UnDeployPlugin(context.Context, *UnDeployPluginRequest) (*UnDeployPluginResponse, error)
+ mustEmbedUnimplementedPluginStoreServer()
+}
+
+// UnimplementedPluginStoreServer must be embedded to have forward compatible implementations.
+type UnimplementedPluginStoreServer struct {
+}
+
+func (UnimplementedPluginStoreServer) ConfigPluginStore(context.Context, *ConfigPluginStoreRequest) (*ConfigPluginStoreResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ConfigPluginStore not implemented")
+}
+func (UnimplementedPluginStoreServer) SyncPluginStore(context.Context, *SyncPluginStoreRequest) (*SyncPluginStoreResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method SyncPluginStore not implemented")
+}
+func (UnimplementedPluginStoreServer) GetPlugins(context.Context, *GetPluginsRequest) (*GetPluginsResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetPlugins not implemented")
+}
+func (UnimplementedPluginStoreServer) GetPluginValues(context.Context, *GetPluginValuesRequest) (*GetPluginValuesResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetPluginValues not implemented")
+}
+func (UnimplementedPluginStoreServer) DeployPlugin(context.Context, *DeployPluginRequest) (*DeployPluginResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method DeployPlugin not implemented")
+}
+func (UnimplementedPluginStoreServer) UnDeployPlugin(context.Context, *UnDeployPluginRequest) (*UnDeployPluginResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method UnDeployPlugin not implemented")
+}
+func (UnimplementedPluginStoreServer) mustEmbedUnimplementedPluginStoreServer() {}
+
+// UnsafePluginStoreServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to PluginStoreServer will
+// result in compilation errors.
+type UnsafePluginStoreServer interface {
+ mustEmbedUnimplementedPluginStoreServer()
+}
+
+func RegisterPluginStoreServer(s grpc.ServiceRegistrar, srv PluginStoreServer) {
+ s.RegisterService(&PluginStore_ServiceDesc, srv)
+}
+
+func _PluginStore_ConfigPluginStore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ConfigPluginStoreRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(PluginStoreServer).ConfigPluginStore(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: PluginStore_ConfigPluginStore_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(PluginStoreServer).ConfigPluginStore(ctx, req.(*ConfigPluginStoreRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _PluginStore_SyncPluginStore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(SyncPluginStoreRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(PluginStoreServer).SyncPluginStore(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: PluginStore_SyncPluginStore_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(PluginStoreServer).SyncPluginStore(ctx, req.(*SyncPluginStoreRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _PluginStore_GetPlugins_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GetPluginsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(PluginStoreServer).GetPlugins(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: PluginStore_GetPlugins_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(PluginStoreServer).GetPlugins(ctx, req.(*GetPluginsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _PluginStore_GetPluginValues_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GetPluginValuesRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(PluginStoreServer).GetPluginValues(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: PluginStore_GetPluginValues_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(PluginStoreServer).GetPluginValues(ctx, req.(*GetPluginValuesRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _PluginStore_DeployPlugin_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(DeployPluginRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(PluginStoreServer).DeployPlugin(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: PluginStore_DeployPlugin_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(PluginStoreServer).DeployPlugin(ctx, req.(*DeployPluginRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _PluginStore_UnDeployPlugin_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(UnDeployPluginRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(PluginStoreServer).UnDeployPlugin(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: PluginStore_UnDeployPlugin_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(PluginStoreServer).UnDeployPlugin(ctx, req.(*UnDeployPluginRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+// PluginStore_ServiceDesc is the grpc.ServiceDesc for PluginStore service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var PluginStore_ServiceDesc = grpc.ServiceDesc{
+ ServiceName: "pluginstorepb.PluginStore",
+ HandlerType: (*PluginStoreServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "ConfigPluginStore",
+ Handler: _PluginStore_ConfigPluginStore_Handler,
+ },
+ {
+ MethodName: "SyncPluginStore",
+ Handler: _PluginStore_SyncPluginStore_Handler,
+ },
+ {
+ MethodName: "GetPlugins",
+ Handler: _PluginStore_GetPlugins_Handler,
+ },
+ {
+ MethodName: "GetPluginValues",
+ Handler: _PluginStore_GetPluginValues_Handler,
+ },
+ {
+ MethodName: "DeployPlugin",
+ Handler: _PluginStore_DeployPlugin_Handler,
+ },
+ {
+ MethodName: "UnDeployPlugin",
+ Handler: _PluginStore_UnDeployPlugin_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "plugin_store.proto",
+}
diff --git a/server/pkg/pb/serverpb/server.pb.go b/server/pkg/pb/serverpb/server.pb.go
index 13ad5c99..1a6c26b4 100644
--- a/server/pkg/pb/serverpb/server.pb.go
+++ b/server/pkg/pb/serverpb/server.pb.go
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.32.0
+// protoc-gen-go v1.30.0
// protoc v3.12.4
// source: server.proto
diff --git a/server/pkg/plugin-store/plugin_store_handler.go b/server/pkg/plugin-store/plugin_store_handler.go
new file mode 100644
index 00000000..cc2200f7
--- /dev/null
+++ b/server/pkg/plugin-store/plugin_store_handler.go
@@ -0,0 +1,103 @@
+package pluginstore
+
+import (
+ "fmt"
+ "os"
+
+ "github.com/intelops/go-common/logging"
+ "github.com/kelseyhightower/envconfig"
+ "github.com/kube-tarian/kad/server/pkg/store"
+ "github.com/kube-tarian/kad/server/pkg/types"
+ "github.com/pkg/errors"
+ "gopkg.in/yaml.v2"
+)
+
+type Config struct {
+ PluginsStorePath string `envconfig:"PLUGIN_APP_CONFIG_PATH" default:"/data/app-store/data"`
+ PluginsFileName string `envconfig:"APP_STORE_CONFIG_FILE" default:"plugins.yaml"`
+}
+
+type PluginStoreConfig struct {
+ Plugins []string `yaml:"plugins"`
+}
+
+type DeploymentConfig struct {
+ Versions []string `yaml:"versions"`
+ ChartName string `yaml:"chartName"`
+ ChartRepo string `yaml:"chartRepo"`
+ DefaultNamespace string `yaml:"defaultNamespace"`
+ PrivilegedNamespace bool `yaml:"privilegedNamespace"`
+}
+
+type PluginConfig struct {
+ Endpoint string `yaml:"Endpoint"`
+ Capabilities []string `yaml:"capabilities"`
+}
+
+type Plugin struct {
+ PluginName string `yaml:"pluginName"`
+ Description string `yaml:"description"`
+ Category string `yaml:"category"`
+ Icon string `yaml:"icon"`
+ DeploymentConfig DeploymentConfig `yaml:"deploymentConfig"`
+ PluginConfig PluginConfig `yaml:"pluginConfig"`
+}
+
+func SyncPluginApps(log logging.Logger, appStore store.ServerStore) error {
+ cfg := &Config{}
+ if err := envconfig.Process("", cfg); err != nil {
+ return err
+ }
+
+ appListData, err := os.ReadFile(cfg.PluginsStorePath + "/" + cfg.PluginsFileName)
+ if err != nil {
+ return errors.WithMessage(err, "failed to read store config file")
+ }
+
+ var config PluginStoreConfig
+ if err := yaml.Unmarshal(appListData, &config); err != nil {
+ return errors.WithMessage(err, "failed to unmarshall store config file")
+ }
+
+ for _, pluginName := range config.Plugins {
+ err := addPluginApp(pluginName, cfg, appStore)
+ if err != nil {
+ log.Errorf("%v", err)
+ }
+ }
+ return nil
+}
+
+func addPluginApp(pluginName string, cfg *Config, appStore store.ServerStore) error {
+ appData, err := os.ReadFile(cfg.PluginsStorePath + "/" + pluginName + "/plugin.yaml")
+ if err != nil {
+ return errors.WithMessagef(err, "failed to read store plugin %s", pluginName)
+ }
+
+ var appConfig Plugin
+ if err := yaml.Unmarshal(appData, &appConfig); err != nil {
+ return errors.WithMessagef(err, "failed to unmarshall store plugin %s", pluginName)
+ }
+
+ if appConfig.PluginName == "" || len(appConfig.DeploymentConfig.Versions) == 0 {
+ return fmt.Errorf("app name/version is missing for %s", pluginName)
+ }
+
+ plugin := &types.Plugin{
+ PluginName: appConfig.PluginName,
+ Description: appConfig.Description,
+ Category: appConfig.Category,
+ ChartName: appConfig.DeploymentConfig.ChartName,
+ ChartRepo: appConfig.DeploymentConfig.ChartRepo,
+ Versions: appConfig.DeploymentConfig.Versions,
+ DefaultNamespace: appConfig.DeploymentConfig.DefaultNamespace,
+ PrivilegedNamespace: appConfig.DeploymentConfig.PrivilegedNamespace,
+ PluginEndpoint: appConfig.PluginConfig.Endpoint,
+ Capabilities: appConfig.PluginConfig.Capabilities,
+ }
+
+ if err := appStore.AddOrUpdatePlugin(plugin); err != nil {
+ return errors.WithMessagef(err, "failed to store plugin %s", pluginName)
+ }
+ return nil
+}
diff --git a/server/pkg/store/astra/plugin_store.go b/server/pkg/store/astra/plugin_store.go
new file mode 100644
index 00000000..41f7a918
--- /dev/null
+++ b/server/pkg/store/astra/plugin_store.go
@@ -0,0 +1,12 @@
+package astra
+
+import (
+ "fmt"
+
+ "github.com/kube-tarian/kad/server/pkg/types"
+)
+
+func (a *AstraServerStore) AddOrUpdatePlugin(config *types.Plugin) error {
+ fmt.Println("Plugin added, %+v", config)
+ return nil
+}
diff --git a/server/pkg/store/store.go b/server/pkg/store/store.go
index 72bfcb11..cf983c17 100644
--- a/server/pkg/store/store.go
+++ b/server/pkg/store/store.go
@@ -22,6 +22,7 @@ type ServerStore interface {
GetAppFromStore(name, version string) (*types.AppConfig, error)
GetAppsFromStore() ([]types.AppConfig, error)
GetStoreAppValues(name, version string) (*types.AppConfig, error)
+ AddOrUpdatePlugin(config *types.Plugin) error
}
func NewStore(db string) (ServerStore, error) {
diff --git a/server/pkg/types/plugin_store_types.go b/server/pkg/types/plugin_store_types.go
new file mode 100644
index 00000000..731a17d2
--- /dev/null
+++ b/server/pkg/types/plugin_store_types.go
@@ -0,0 +1,15 @@
+package types
+
+type Plugin struct {
+ PluginName string `json:"pluginName,omitempty"`
+ Description string `json:"description,omitempty"`
+ Category string `json:"category,omitempty"`
+ Icon string `json:"icon,omitempty"`
+ ChartName string `json:"chartName,omitempty"`
+ ChartRepo string `json:"chartRepo,omitempty"`
+ Versions []string `json:"versions,omitempty"`
+ DefaultNamespace string `json:"defaultNamespace,omitempty"`
+ PrivilegedNamespace bool `json:"privilegedNamespace"`
+ PluginEndpoint string `json:"pluginAccessEndpoint"`
+ Capabilities []string `json:"capabilities,omitempty"`
+}