diff --git a/services/provider/proto/provider.proto b/services/provider/proto/provider.proto index 71bff873b2..5e75adbb6f 100644 --- a/services/provider/proto/provider.proto +++ b/services/provider/proto/provider.proto @@ -38,6 +38,23 @@ service OCSProvider { rpc ReportStatus(ReportStatusRequest) returns (ReportStatusResponse){} + + // OnboardStorageClusterPeer RPC call to onboard the StorageClusterPeer to the remote StorageCluster + rpc OnboardStorageClusterPeer(OnboardStorageClusterPeerRequest) + returns (OnboardStorageClusterPeerResponse) {} + + // OffboardStorageClusterPeer RPC call to offboard the StorageClusterPeer from the remote StorageCluster + rpc OffboardStorageClusterPeer(OffboardStorageClusterPeerRequest) + returns (OffboardStorageClusterPeerResponse) {} + + // AcknowledgeOnboardingStorageClusterPeer RPC call acknowledge the StorageClusterPeer Onboarding + rpc AcknowledgeOnboardingStorageClusterPeer(AcknowledgeOnboardingStorageClusterPeerRequest) + returns (AcknowledgeOnboardingStorageClusterPeerResponse){} + + // GetMirroringInfo RPC call to get the mirroring info for connecting block pools from local to remote StorageCluster + rpc GetMirroringInfo(MirroringInfoRequest) + returns (MirroringInfoResponse) {} + } // OnboardConsumerRequest holds the required information to validate the consumer and create StorageConsumer @@ -177,3 +194,47 @@ message ReportStatusResponse{ string desiredConfigHash = 2; } + +// OnboardStorageClusterPeerRequest holds the required information to onboard to remote StorageCluster +message OnboardStorageClusterPeerRequest{ + // onboardingTicket authenticates the StorageClusterPeer + string onboardingTicket = 1; + // storageClusterPeerUID is the k8s UID of the StorageClusterPeer on local StorageCluster + string storageClusterPeerUID = 2; +} + +// OnboardStorageClusterPeerResponse holds the response for OnboardStorageClusterPeer API request +message OnboardStorageClusterPeerResponse{} + +// OffboardStorageClusterPeerRequest holds the required information to offboard from remote StorageCluster. +message OffboardStorageClusterPeerRequest{ + // storageClusterPeerUID is the K8s UID of the StorageClusterPeer on local StorageCluster + string storageClusterPeerUID = 1; +} + +// OffboardStorageClusterPeerResponse holds the response for the OffboardStorageClusterPeer API request +message OffboardStorageClusterPeerResponse{} + +// AcknowledgeOnboardingStorageClusterPeerRequest holds the information required to acknowledge the onboarding +message AcknowledgeOnboardingStorageClusterPeerRequest{ + // storageClusterPeerUID is the K8s UID of the StorageClusterPeer on local StorageCluster + string storageClusterPeerUID = 1; +} + +// AcknowledgeMirrorPeerOnboardingResponse holds the response for the AcknowledgeOnboardingStorageClusterPeer API request +message AcknowledgeOnboardingStorageClusterPeerResponse{} + +// MirroringInfoRequest holds the information required to get config for mirroring block pools on local StorageCluster. +message MirroringInfoRequest{ + // storageClusterPeerUID is the K8s UID of the StorageClusterPeer on local StorageCluster + string storageClusterPeerUID = 1; + // BlockPoolNames is a list of BlockPools for mirroring + repeated string BlockPoolNames = 2; +} + +// MirroringInfoResponse holds the response for the GetMirroringInfo API request +message MirroringInfoResponse{ + // ExternalResource holds the block pool configuration data from remote StorageCluster + repeated ExternalResource externalResource = 1; +} +