mirror of
https://github.com/hanzokms/csi-provider.git
synced 2026-10-30 20:50:44 +00:00
41 lines
1.1 KiB
Go
41 lines
1.1 KiB
Go
package server
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"github.com/hanzokms/csi-provider/internal/config"
|
|
"github.com/hanzokms/csi-provider/internal/provider"
|
|
"github.com/hanzokms/csi-provider/internal/version"
|
|
pb "sigs.k8s.io/secrets-store-csi-driver/provider/v1alpha1"
|
|
)
|
|
|
|
var _ pb.CSIDriverProviderServer = (*Server)(nil)
|
|
|
|
// Server implements the secrets-store-csi-driver provider gRPC service interface.
|
|
type Server struct {
|
|
HostUrl string
|
|
}
|
|
|
|
func (s *Server) Version(context.Context, *pb.VersionRequest) (*pb.VersionResponse, error) {
|
|
return &pb.VersionResponse{
|
|
Version: "v1alpha1",
|
|
RuntimeName: "kms-csi-provider",
|
|
RuntimeVersion: version.BuildVersion,
|
|
}, nil
|
|
}
|
|
|
|
func (s *Server) Mount(ctx context.Context, req *pb.MountRequest) (*pb.MountResponse, error) {
|
|
cfg, err := config.Parse(ctx, req.Attributes, req.TargetPath, req.Permission, s.HostUrl)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
provider := provider.NewProvider()
|
|
resp, err := provider.HandleMountRequest(ctx, cfg)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("error making mount request: %w", err)
|
|
}
|
|
return resp, nil
|
|
}
|