Bläddra i källkod

v1.0.0-beta.2

xjg 4 månader sedan
förälder
incheckning
6d1b56435c

+ 4 - 0
Makefile

@@ -101,3 +101,7 @@ statefulset:
 	protoc --proto_path=. --micro_out=. --go_out=:. proto/statefulset.proto
 
 
+.PHONY: storageclass
+storageclass:
+	protoc --proto_path=. --micro_out=. --go_out=:. proto/storageclass.proto
+

+ 20 - 0
handler/storageclass/storageclass.go

@@ -0,0 +1,20 @@
+package storageclass
+
+import (
+	"context"
+	pb "sghgogs.com/micro/k8s-service/proto"
+)
+
+type StorageClass struct{}
+
+func (svc *StorageClass) GetStorageClassList(ctx context.Context, req *pb.GetStorageClassListRequest, rsp *pb.GetStorageClassListResponse) error {
+	return nil
+}
+
+func (svc *StorageClass) CreateStorageClass(ctx context.Context, req *pb.CreateStorageClassRequest, rsp *pb.CreateStorageClassResponse) error {
+	return nil
+}
+
+func (svc *StorageClass) DeleteStorageClass(ctx context.Context, req *pb.DeleteStorageClassRequest, rsp *pb.DeleteStorageClassResponse) error {
+	return nil
+}

+ 2 - 2
proto/namespace.proto

@@ -5,10 +5,10 @@ package namespace_service;
 option go_package = "./proto;kubernetes_service";
 
 service NamespaceService{
-  rpc GetNamespace(GetNamespaceRequest) returns (GetNamespaceResponse);
   rpc GetNamespaceList(GetNamespaceListRequest) returns (GetNamespaceListResponse);
-  rpc DeleteNamespace(DeleteNamespaceRequest) returns (DeleteNamespaceResponse);
+  rpc GetNamespace(GetNamespaceRequest) returns (GetNamespaceResponse);
   rpc CreateNamespace(CreateNamespaceRequest) returns (CreateNamespaceResponse);
+  rpc DeleteNamespace(DeleteNamespaceRequest) returns (DeleteNamespaceResponse);
 }
 
 message GetNamespaceRequest{}

+ 430 - 0
proto/storageclass.pb.go

@@ -0,0 +1,430 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.31.0
+// 	protoc        v4.25.0
+// source: proto/storageclass.proto
+
+package kubernetes_service
+
+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 GetStorageClassListRequest struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+}
+
+func (x *GetStorageClassListRequest) Reset() {
+	*x = GetStorageClassListRequest{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_proto_storageclass_proto_msgTypes[0]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *GetStorageClassListRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetStorageClassListRequest) ProtoMessage() {}
+
+func (x *GetStorageClassListRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_proto_storageclass_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 GetStorageClassListRequest.ProtoReflect.Descriptor instead.
+func (*GetStorageClassListRequest) Descriptor() ([]byte, []int) {
+	return file_proto_storageclass_proto_rawDescGZIP(), []int{0}
+}
+
+type GetStorageClassListResponse struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+}
+
+func (x *GetStorageClassListResponse) Reset() {
+	*x = GetStorageClassListResponse{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_proto_storageclass_proto_msgTypes[1]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *GetStorageClassListResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetStorageClassListResponse) ProtoMessage() {}
+
+func (x *GetStorageClassListResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_proto_storageclass_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 GetStorageClassListResponse.ProtoReflect.Descriptor instead.
+func (*GetStorageClassListResponse) Descriptor() ([]byte, []int) {
+	return file_proto_storageclass_proto_rawDescGZIP(), []int{1}
+}
+
+type CreateStorageClassRequest struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+}
+
+func (x *CreateStorageClassRequest) Reset() {
+	*x = CreateStorageClassRequest{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_proto_storageclass_proto_msgTypes[2]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *CreateStorageClassRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateStorageClassRequest) ProtoMessage() {}
+
+func (x *CreateStorageClassRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_proto_storageclass_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 CreateStorageClassRequest.ProtoReflect.Descriptor instead.
+func (*CreateStorageClassRequest) Descriptor() ([]byte, []int) {
+	return file_proto_storageclass_proto_rawDescGZIP(), []int{2}
+}
+
+type CreateStorageClassResponse struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+}
+
+func (x *CreateStorageClassResponse) Reset() {
+	*x = CreateStorageClassResponse{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_proto_storageclass_proto_msgTypes[3]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *CreateStorageClassResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateStorageClassResponse) ProtoMessage() {}
+
+func (x *CreateStorageClassResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_proto_storageclass_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 CreateStorageClassResponse.ProtoReflect.Descriptor instead.
+func (*CreateStorageClassResponse) Descriptor() ([]byte, []int) {
+	return file_proto_storageclass_proto_rawDescGZIP(), []int{3}
+}
+
+type DeleteStorageClassRequest struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+}
+
+func (x *DeleteStorageClassRequest) Reset() {
+	*x = DeleteStorageClassRequest{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_proto_storageclass_proto_msgTypes[4]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *DeleteStorageClassRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteStorageClassRequest) ProtoMessage() {}
+
+func (x *DeleteStorageClassRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_proto_storageclass_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 DeleteStorageClassRequest.ProtoReflect.Descriptor instead.
+func (*DeleteStorageClassRequest) Descriptor() ([]byte, []int) {
+	return file_proto_storageclass_proto_rawDescGZIP(), []int{4}
+}
+
+type DeleteStorageClassResponse struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+}
+
+func (x *DeleteStorageClassResponse) Reset() {
+	*x = DeleteStorageClassResponse{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_proto_storageclass_proto_msgTypes[5]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *DeleteStorageClassResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteStorageClassResponse) ProtoMessage() {}
+
+func (x *DeleteStorageClassResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_proto_storageclass_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 DeleteStorageClassResponse.ProtoReflect.Descriptor instead.
+func (*DeleteStorageClassResponse) Descriptor() ([]byte, []int) {
+	return file_proto_storageclass_proto_rawDescGZIP(), []int{5}
+}
+
+var File_proto_storageclass_proto protoreflect.FileDescriptor
+
+var file_proto_storageclass_proto_rawDesc = []byte{
+	0x0a, 0x18, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x63,
+	0x6c, 0x61, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x73, 0x74, 0x6f, 0x72,
+	0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
+	0x65, 0x22, 0x1c, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43,
+	0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22,
+	0x1d, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61,
+	0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b,
+	0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43,
+	0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x1c, 0x0a, 0x1a, 0x43,
+	0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73,
+	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x0a, 0x19, 0x44, 0x65, 0x6c,
+	0x65, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x1c, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
+	0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70,
+	0x6f, 0x6e, 0x73, 0x65, 0x32, 0x89, 0x03, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65,
+	0x43, 0x6c, 0x61, 0x73, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7c, 0x0a, 0x13,
+	0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4c,
+	0x69, 0x73, 0x74, 0x12, 0x31, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c,
+	0x61, 0x73, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53,
+	0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65,
+	0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47,
+	0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69,
+	0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x12, 0x43, 0x72,
+	0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73,
+	0x12, 0x30, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73,
+	0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53,
+	0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
+	0x73, 0x74, 0x1a, 0x31, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61,
+	0x73, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
+	0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x73,
+	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53,
+	0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x30, 0x2e, 0x73, 0x74,
+	0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76,
+	0x69, 0x63, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67,
+	0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e,
+	0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x73, 0x65,
+	0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72,
+	0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+	0x42, 0x1c, 0x5a, 0x1a, 0x2e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3b, 0x6b, 0x75, 0x62, 0x65,
+	0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+	file_proto_storageclass_proto_rawDescOnce sync.Once
+	file_proto_storageclass_proto_rawDescData = file_proto_storageclass_proto_rawDesc
+)
+
+func file_proto_storageclass_proto_rawDescGZIP() []byte {
+	file_proto_storageclass_proto_rawDescOnce.Do(func() {
+		file_proto_storageclass_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_storageclass_proto_rawDescData)
+	})
+	return file_proto_storageclass_proto_rawDescData
+}
+
+var file_proto_storageclass_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
+var file_proto_storageclass_proto_goTypes = []interface{}{
+	(*GetStorageClassListRequest)(nil),  // 0: storage_class_service.GetStorageClassListRequest
+	(*GetStorageClassListResponse)(nil), // 1: storage_class_service.GetStorageClassListResponse
+	(*CreateStorageClassRequest)(nil),   // 2: storage_class_service.CreateStorageClassRequest
+	(*CreateStorageClassResponse)(nil),  // 3: storage_class_service.CreateStorageClassResponse
+	(*DeleteStorageClassRequest)(nil),   // 4: storage_class_service.DeleteStorageClassRequest
+	(*DeleteStorageClassResponse)(nil),  // 5: storage_class_service.DeleteStorageClassResponse
+}
+var file_proto_storageclass_proto_depIdxs = []int32{
+	0, // 0: storage_class_service.StorageClassService.GetStorageClassList:input_type -> storage_class_service.GetStorageClassListRequest
+	2, // 1: storage_class_service.StorageClassService.CreateStorageClass:input_type -> storage_class_service.CreateStorageClassRequest
+	4, // 2: storage_class_service.StorageClassService.DeleteStorageClass:input_type -> storage_class_service.DeleteStorageClassRequest
+	1, // 3: storage_class_service.StorageClassService.GetStorageClassList:output_type -> storage_class_service.GetStorageClassListResponse
+	3, // 4: storage_class_service.StorageClassService.CreateStorageClass:output_type -> storage_class_service.CreateStorageClassResponse
+	5, // 5: storage_class_service.StorageClassService.DeleteStorageClass:output_type -> storage_class_service.DeleteStorageClassResponse
+	3, // [3:6] is the sub-list for method output_type
+	0, // [0:3] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
+}
+
+func init() { file_proto_storageclass_proto_init() }
+func file_proto_storageclass_proto_init() {
+	if File_proto_storageclass_proto != nil {
+		return
+	}
+	if !protoimpl.UnsafeEnabled {
+		file_proto_storageclass_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*GetStorageClassListRequest); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_proto_storageclass_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*GetStorageClassListResponse); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_proto_storageclass_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*CreateStorageClassRequest); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_proto_storageclass_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*CreateStorageClassResponse); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_proto_storageclass_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*DeleteStorageClassRequest); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_proto_storageclass_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*DeleteStorageClassResponse); 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_proto_storageclass_proto_rawDesc,
+			NumEnums:      0,
+			NumMessages:   6,
+			NumExtensions: 0,
+			NumServices:   1,
+		},
+		GoTypes:           file_proto_storageclass_proto_goTypes,
+		DependencyIndexes: file_proto_storageclass_proto_depIdxs,
+		MessageInfos:      file_proto_storageclass_proto_msgTypes,
+	}.Build()
+	File_proto_storageclass_proto = out.File
+	file_proto_storageclass_proto_rawDesc = nil
+	file_proto_storageclass_proto_goTypes = nil
+	file_proto_storageclass_proto_depIdxs = nil
+}

+ 121 - 0
proto/storageclass.pb.micro.go

@@ -0,0 +1,121 @@
+// Code generated by protoc-gen-micro. DO NOT EDIT.
+// source: proto/storageclass.proto
+
+package kubernetes_service
+
+import (
+	fmt "fmt"
+	proto "google.golang.org/protobuf/proto"
+	math "math"
+)
+
+import (
+	context "context"
+	api "go-micro.dev/v4/api"
+	client "go-micro.dev/v4/client"
+	server "go-micro.dev/v4/server"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ api.Endpoint
+var _ context.Context
+var _ client.Option
+var _ server.Option
+
+// Api Endpoints for StorageClassService service
+
+func NewStorageClassServiceEndpoints() []*api.Endpoint {
+	return []*api.Endpoint{}
+}
+
+// Client API for StorageClassService service
+
+type StorageClassService interface {
+	GetStorageClassList(ctx context.Context, in *GetStorageClassListRequest, opts ...client.CallOption) (*GetStorageClassListResponse, error)
+	CreateStorageClass(ctx context.Context, in *CreateStorageClassRequest, opts ...client.CallOption) (*CreateStorageClassResponse, error)
+	DeleteStorageClass(ctx context.Context, in *DeleteStorageClassRequest, opts ...client.CallOption) (*DeleteStorageClassResponse, error)
+}
+
+type storageClassService struct {
+	c    client.Client
+	name string
+}
+
+func NewStorageClassService(name string, c client.Client) StorageClassService {
+	return &storageClassService{
+		c:    c,
+		name: name,
+	}
+}
+
+func (c *storageClassService) GetStorageClassList(ctx context.Context, in *GetStorageClassListRequest, opts ...client.CallOption) (*GetStorageClassListResponse, error) {
+	req := c.c.NewRequest(c.name, "StorageClassService.GetStorageClassList", in)
+	out := new(GetStorageClassListResponse)
+	err := c.c.Call(ctx, req, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *storageClassService) CreateStorageClass(ctx context.Context, in *CreateStorageClassRequest, opts ...client.CallOption) (*CreateStorageClassResponse, error) {
+	req := c.c.NewRequest(c.name, "StorageClassService.CreateStorageClass", in)
+	out := new(CreateStorageClassResponse)
+	err := c.c.Call(ctx, req, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *storageClassService) DeleteStorageClass(ctx context.Context, in *DeleteStorageClassRequest, opts ...client.CallOption) (*DeleteStorageClassResponse, error) {
+	req := c.c.NewRequest(c.name, "StorageClassService.DeleteStorageClass", in)
+	out := new(DeleteStorageClassResponse)
+	err := c.c.Call(ctx, req, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// Server API for StorageClassService service
+
+type StorageClassServiceHandler interface {
+	GetStorageClassList(context.Context, *GetStorageClassListRequest, *GetStorageClassListResponse) error
+	CreateStorageClass(context.Context, *CreateStorageClassRequest, *CreateStorageClassResponse) error
+	DeleteStorageClass(context.Context, *DeleteStorageClassRequest, *DeleteStorageClassResponse) error
+}
+
+func RegisterStorageClassServiceHandler(s server.Server, hdlr StorageClassServiceHandler, opts ...server.HandlerOption) error {
+	type storageClassService interface {
+		GetStorageClassList(ctx context.Context, in *GetStorageClassListRequest, out *GetStorageClassListResponse) error
+		CreateStorageClass(ctx context.Context, in *CreateStorageClassRequest, out *CreateStorageClassResponse) error
+		DeleteStorageClass(ctx context.Context, in *DeleteStorageClassRequest, out *DeleteStorageClassResponse) error
+	}
+	type StorageClassService struct {
+		storageClassService
+	}
+	h := &storageClassServiceHandler{hdlr}
+	return s.Handle(s.NewHandler(&StorageClassService{h}, opts...))
+}
+
+type storageClassServiceHandler struct {
+	StorageClassServiceHandler
+}
+
+func (h *storageClassServiceHandler) GetStorageClassList(ctx context.Context, in *GetStorageClassListRequest, out *GetStorageClassListResponse) error {
+	return h.StorageClassServiceHandler.GetStorageClassList(ctx, in, out)
+}
+
+func (h *storageClassServiceHandler) CreateStorageClass(ctx context.Context, in *CreateStorageClassRequest, out *CreateStorageClassResponse) error {
+	return h.StorageClassServiceHandler.CreateStorageClass(ctx, in, out)
+}
+
+func (h *storageClassServiceHandler) DeleteStorageClass(ctx context.Context, in *DeleteStorageClassRequest, out *DeleteStorageClassResponse) error {
+	return h.StorageClassServiceHandler.DeleteStorageClass(ctx, in, out)
+}

+ 19 - 0
proto/storageclass.proto

@@ -0,0 +1,19 @@
+syntax = "proto3";
+
+package storage_class_service;
+
+option go_package = "./proto;kubernetes_service";
+
+service StorageClassService{
+  rpc GetStorageClassList(GetStorageClassListRequest) returns (GetStorageClassListResponse);
+  rpc CreateStorageClass(CreateStorageClassRequest) returns (CreateStorageClassResponse);
+  rpc DeleteStorageClass(DeleteStorageClassRequest) returns (DeleteStorageClassResponse);
+}
+message GetStorageClassListRequest{}
+message GetStorageClassListResponse{}
+
+message CreateStorageClassRequest{}
+message CreateStorageClassResponse{}
+
+message DeleteStorageClassRequest{}
+message DeleteStorageClassResponse{}