Skip to content
This repository was archived by the owner on Mar 16, 2021. It is now read-only.

Commit fe4b078

Browse files
author
Krish Chowdhary
committed
added base code for node server
1 parent 7c128f2 commit fe4b078

File tree

7 files changed

+711
-10
lines changed

7 files changed

+711
-10
lines changed

Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
2+
build:
3+
go build -o bin/main main.go

bin/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*
2+
!.gitignore

cmd/cmd.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ var (
3333
identity = "cosi.storage.k8s.io"
3434
nodeID = ""
3535
endpoint = "unix://csi/csi.sock"
36+
protocol = ""
37+
listen = ""
3638
)
3739

3840
var driverCmd = &cobra.Command{
@@ -60,6 +62,8 @@ func init() {
6062
driverCmd.PersistentFlags().StringVarP(&identity, "identity", "i", identity, "identity of this COSI CSI driver")
6163
driverCmd.PersistentFlags().StringVarP(&endpoint, "endpoint", "e", endpoint, "endpoint at which COSI CSI driver is listening")
6264
driverCmd.PersistentFlags().StringVarP(&nodeID, "node-id", "n", nodeID, "identity of the node in which COSI CSI driver is running")
65+
driverCmd.PersistentFlags().StringVarP(&listen, "listen", "l", nodeID, "address of the listening socket for the node server")
66+
driverCmd.PersistentFlags().StringVarP(&protocol, "protocol", "p", nodeID, "must be one of tcp, tcp4, tcp6, unix, unixpacket")
6367

6468
driverCmd.PersistentFlags().MarkHidden("alsologtostderr")
6569
driverCmd.PersistentFlags().MarkHidden("log_backtrace_at")

cmd/driver.go

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,32 +16,54 @@ limitations under the License.
1616

1717
package cmd
1818

19-
2019
import (
21-
csicommon "github.com/kubernetes-csi/drivers/pkg/csi-common"
22-
23-
"github.com/container-object-storage-interface/ephemeral-csi-driver/pkg/controller"
24-
id "github.com/container-object-storage-interface/ephemeral-csi-driver/pkg/identity"
20+
"net"
21+
"os"
2522

23+
cs "github.com/container-object-storage-interface/api/clientset/typed/storage.k8s.io/v1alpha1"
24+
"github.com/container-storage-interface/spec/lib/go/csi"
2625
"github.com/golang/glog"
26+
"google.golang.org/grpc"
27+
rest "k8s.io/client-go/rest"
28+
"k8s.io/klog"
29+
30+
id "github.com/container-object-storage-interface/ephemeral-csi-driver/pkg/identity"
31+
"github.com/container-object-storage-interface/ephemeral-csi-driver/pkg/node"
2732
)
2833

2934
func driver(args []string) error {
35+
36+
if protocol == "unix" {
37+
if err := os.RemoveAll(listen); err != nil {
38+
klog.Fatalf("could not prepare socket: %v", err)
39+
}
40+
}
41+
3042
idServer, err := id.NewIdentityServer(identity, Version, map[string]string{})
3143
if err != nil {
3244
return err
3345
}
3446
glog.V(5).Infof("identity server started")
3547

36-
ctrlServer, err := controller.NewControllerServer(identity, nodeID)
48+
config := &rest.Config{}
49+
50+
client := cs.NewForConfigOrDie(config)
51+
52+
node := node.NewNodeServer(identity, nodeID, *client)
3753
if err != nil {
3854
return err
3955
}
40-
glog.V(5).Infof("controller manager started")
4156

42-
s := csicommon.NewNonBlockingGRPCServer()
43-
s.Start(endpoint, idServer, ctrlServer, nil)
44-
s.Wait()
57+
srv := grpc.NewServer()
58+
csi.RegisterNodeServer(srv, node)
59+
csi.RegisterIdentityServer(srv, idServer)
60+
l, err := net.Listen(protocol, listen)
61+
if err != nil {
62+
klog.Fatalf("could not create listener: %v", err)
63+
}
64+
if err = srv.Serve(l); err != nil {
65+
klog.Fatalf("%v", err)
66+
}
4567

4668
return nil
4769
}

go.mod

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
11
module github.com/container-object-storage-interface/ephemeral-csi-driver
22

33
go 1.15
4+
5+
require (
6+
github.com/container-object-storage-interface/api v0.0.0-20200919075357-9eea1b2d66da
7+
github.com/container-object-storage-interface/spec v0.0.0-20200908192509-18912d8bf2a5
8+
github.com/container-storage-interface/spec v1.3.0
9+
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b
10+
github.com/spf13/cobra v0.0.5
11+
github.com/spf13/viper v1.3.2
12+
google.golang.org/grpc v1.30.0
13+
k8s.io/apimachinery v0.18.4
14+
k8s.io/client-go v0.18.4
15+
k8s.io/klog v1.0.0
16+
)

0 commit comments

Comments
 (0)