mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-11-12 17:30:19 +00:00
start controller or node server based on config
if both controller and nodeserver flags are set/unset cephcsi will start both server, if only one flag is set, it will start relavent service. Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
This commit is contained in:
parent
89732d923f
commit
0da4bd5151
@ -55,6 +55,8 @@ func init() {
|
|||||||
flag.StringVar(&conf.MetadataStorage, "metadatastorage", "", "metadata persistence method [node|k8s_configmap]")
|
flag.StringVar(&conf.MetadataStorage, "metadatastorage", "", "metadata persistence method [node|k8s_configmap]")
|
||||||
flag.StringVar(&conf.PluginPath, "pluginpath", "/var/lib/kubelet/plugins/", "the location of cephcsi plugin")
|
flag.StringVar(&conf.PluginPath, "pluginpath", "/var/lib/kubelet/plugins/", "the location of cephcsi plugin")
|
||||||
flag.IntVar(&conf.PidLimit, "pidlimit", 0, "the PID limit to configure through cgroups")
|
flag.IntVar(&conf.PidLimit, "pidlimit", 0, "the PID limit to configure through cgroups")
|
||||||
|
flag.BoolVar(&conf.IsControllerServer, "controllerserver", false, "start cephcsi controller server")
|
||||||
|
flag.BoolVar(&conf.IsNodeServer, "nodeserver", false, "start cephcsi node server")
|
||||||
|
|
||||||
// rbd related flags
|
// rbd related flags
|
||||||
flag.BoolVar(&conf.Containerized, "containerized", true, "whether run as containerized")
|
flag.BoolVar(&conf.Containerized, "containerized", true, "whether run as containerized")
|
||||||
|
@ -68,6 +68,7 @@ spec:
|
|||||||
args:
|
args:
|
||||||
- "--nodeid=$(NODE_ID)"
|
- "--nodeid=$(NODE_ID)"
|
||||||
- "--type=cephfs"
|
- "--type=cephfs"
|
||||||
|
- "--controllerserver=true"
|
||||||
- "--endpoint=$(CSI_ENDPOINT)"
|
- "--endpoint=$(CSI_ENDPOINT)"
|
||||||
- "--v=5"
|
- "--v=5"
|
||||||
- "--drivername=cephfs.csi.ceph.com"
|
- "--drivername=cephfs.csi.ceph.com"
|
||||||
|
@ -53,6 +53,7 @@ spec:
|
|||||||
args:
|
args:
|
||||||
- "--nodeid=$(NODE_ID)"
|
- "--nodeid=$(NODE_ID)"
|
||||||
- "--type=cephfs"
|
- "--type=cephfs"
|
||||||
|
- "--nodeserver=true"
|
||||||
- "--endpoint=$(CSI_ENDPOINT)"
|
- "--endpoint=$(CSI_ENDPOINT)"
|
||||||
- "--v=5"
|
- "--v=5"
|
||||||
- "--drivername=cephfs.csi.ceph.com"
|
- "--drivername=cephfs.csi.ceph.com"
|
||||||
|
@ -68,6 +68,7 @@ spec:
|
|||||||
args :
|
args :
|
||||||
- "--nodeid=$(NODE_ID)"
|
- "--nodeid=$(NODE_ID)"
|
||||||
- "--type=cephfs"
|
- "--type=cephfs"
|
||||||
|
- "--nodeserver=true"
|
||||||
- "--endpoint=$(CSI_ENDPOINT)"
|
- "--endpoint=$(CSI_ENDPOINT)"
|
||||||
- "--v=5"
|
- "--v=5"
|
||||||
- "--drivername=$(DRIVER_NAME)"
|
- "--drivername=$(DRIVER_NAME)"
|
||||||
|
@ -71,6 +71,7 @@ spec:
|
|||||||
args :
|
args :
|
||||||
- "--nodeid=$(NODE_ID)"
|
- "--nodeid=$(NODE_ID)"
|
||||||
- "--type=cephfs"
|
- "--type=cephfs"
|
||||||
|
- "--controllerserver=true"
|
||||||
- "--endpoint=$(CSI_ENDPOINT)"
|
- "--endpoint=$(CSI_ENDPOINT)"
|
||||||
- "--v=5"
|
- "--v=5"
|
||||||
- "--drivername=$(DRIVER_NAME)"
|
- "--drivername=$(DRIVER_NAME)"
|
||||||
|
@ -71,6 +71,7 @@ spec:
|
|||||||
args:
|
args:
|
||||||
- "--nodeid=$(NODE_ID)"
|
- "--nodeid=$(NODE_ID)"
|
||||||
- "--type=cephfs"
|
- "--type=cephfs"
|
||||||
|
- "--controllerserver=true"
|
||||||
- "--endpoint=$(CSI_ENDPOINT)"
|
- "--endpoint=$(CSI_ENDPOINT)"
|
||||||
- "--v=5"
|
- "--v=5"
|
||||||
- "--drivername=cephfs.csi.ceph.com"
|
- "--drivername=cephfs.csi.ceph.com"
|
||||||
|
@ -53,6 +53,7 @@ spec:
|
|||||||
args:
|
args:
|
||||||
- "--nodeid=$(NODE_ID)"
|
- "--nodeid=$(NODE_ID)"
|
||||||
- "--type=cephfs"
|
- "--type=cephfs"
|
||||||
|
- "--nodeserver=true"
|
||||||
- "--endpoint=$(CSI_ENDPOINT)"
|
- "--endpoint=$(CSI_ENDPOINT)"
|
||||||
- "--v=5"
|
- "--v=5"
|
||||||
- "--drivername=cephfs.csi.ceph.com"
|
- "--drivername=cephfs.csi.ceph.com"
|
||||||
|
@ -68,6 +68,7 @@ spec:
|
|||||||
args :
|
args :
|
||||||
- "--nodeid=$(NODE_ID)"
|
- "--nodeid=$(NODE_ID)"
|
||||||
- "--type=cephfs"
|
- "--type=cephfs"
|
||||||
|
- "--nodeserver=true"
|
||||||
- "--endpoint=$(CSI_ENDPOINT)"
|
- "--endpoint=$(CSI_ENDPOINT)"
|
||||||
- "--v=5"
|
- "--v=5"
|
||||||
- "--drivername=$(DRIVER_NAME)"
|
- "--drivername=$(DRIVER_NAME)"
|
||||||
|
@ -73,6 +73,7 @@ spec:
|
|||||||
args :
|
args :
|
||||||
- "--nodeid=$(NODE_ID)"
|
- "--nodeid=$(NODE_ID)"
|
||||||
- "--type=cephfs"
|
- "--type=cephfs"
|
||||||
|
- "--controllerserver=true"
|
||||||
- "--endpoint=$(CSI_ENDPOINT)"
|
- "--endpoint=$(CSI_ENDPOINT)"
|
||||||
- "--v=5"
|
- "--v=5"
|
||||||
- "--drivername=$(DRIVER_NAME)"
|
- "--drivername=$(DRIVER_NAME)"
|
||||||
|
@ -83,6 +83,7 @@ spec:
|
|||||||
args:
|
args:
|
||||||
- "--nodeid=$(NODE_ID)"
|
- "--nodeid=$(NODE_ID)"
|
||||||
- "--type=rbd"
|
- "--type=rbd"
|
||||||
|
- "--controllerserver=true"
|
||||||
- "--endpoint=$(CSI_ENDPOINT)"
|
- "--endpoint=$(CSI_ENDPOINT)"
|
||||||
- "--v=5"
|
- "--v=5"
|
||||||
- "--drivername=rbd.csi.ceph.com"
|
- "--drivername=rbd.csi.ceph.com"
|
||||||
|
@ -56,6 +56,7 @@ spec:
|
|||||||
args:
|
args:
|
||||||
- "--nodeid=$(NODE_ID)"
|
- "--nodeid=$(NODE_ID)"
|
||||||
- "--type=rbd"
|
- "--type=rbd"
|
||||||
|
- "--nodeserver=true"
|
||||||
- "--endpoint=$(CSI_ENDPOINT)"
|
- "--endpoint=$(CSI_ENDPOINT)"
|
||||||
- "--v=5"
|
- "--v=5"
|
||||||
- "--drivername=rbd.csi.ceph.com"
|
- "--drivername=rbd.csi.ceph.com"
|
||||||
|
@ -70,6 +70,7 @@ spec:
|
|||||||
args :
|
args :
|
||||||
- "--nodeid=$(NODE_ID)"
|
- "--nodeid=$(NODE_ID)"
|
||||||
- "--type=rbd"
|
- "--type=rbd"
|
||||||
|
- "--nodeserver=true"
|
||||||
- "--endpoint=$(CSI_ENDPOINT)"
|
- "--endpoint=$(CSI_ENDPOINT)"
|
||||||
- "--v=5"
|
- "--v=5"
|
||||||
- "--drivername=$(DRIVER_NAME)"
|
- "--drivername=$(DRIVER_NAME)"
|
||||||
|
@ -89,6 +89,7 @@ spec:
|
|||||||
args :
|
args :
|
||||||
- "--nodeid=$(NODE_ID)"
|
- "--nodeid=$(NODE_ID)"
|
||||||
- "--type=rbd"
|
- "--type=rbd"
|
||||||
|
- "--controllerserver=true"
|
||||||
- "--endpoint=$(CSI_ENDPOINT)"
|
- "--endpoint=$(CSI_ENDPOINT)"
|
||||||
- "--v=5"
|
- "--v=5"
|
||||||
- "--drivername=$(DRIVER_NAME)"
|
- "--drivername=$(DRIVER_NAME)"
|
||||||
|
@ -87,6 +87,7 @@ spec:
|
|||||||
args:
|
args:
|
||||||
- "--nodeid=$(NODE_ID)"
|
- "--nodeid=$(NODE_ID)"
|
||||||
- "--type=rbd"
|
- "--type=rbd"
|
||||||
|
- "--controllerserver=true"
|
||||||
- "--endpoint=$(CSI_ENDPOINT)"
|
- "--endpoint=$(CSI_ENDPOINT)"
|
||||||
- "--v=5"
|
- "--v=5"
|
||||||
- "--drivername=rbd.csi.ceph.com"
|
- "--drivername=rbd.csi.ceph.com"
|
||||||
|
@ -56,6 +56,7 @@ spec:
|
|||||||
args:
|
args:
|
||||||
- "--nodeid=$(NODE_ID)"
|
- "--nodeid=$(NODE_ID)"
|
||||||
- "--type=rbd"
|
- "--type=rbd"
|
||||||
|
- "--nodeserver=true"
|
||||||
- "--endpoint=$(CSI_ENDPOINT)"
|
- "--endpoint=$(CSI_ENDPOINT)"
|
||||||
- "--v=5"
|
- "--v=5"
|
||||||
- "--drivername=rbd.csi.ceph.com"
|
- "--drivername=rbd.csi.ceph.com"
|
||||||
|
@ -70,6 +70,7 @@ spec:
|
|||||||
args :
|
args :
|
||||||
- "--nodeid=$(NODE_ID)"
|
- "--nodeid=$(NODE_ID)"
|
||||||
- "--type=rbd"
|
- "--type=rbd"
|
||||||
|
- "--nodeserver=true"
|
||||||
- "--endpoint=$(CSI_ENDPOINT)"
|
- "--endpoint=$(CSI_ENDPOINT)"
|
||||||
- "--v=5"
|
- "--v=5"
|
||||||
- "--drivername=$(DRIVER_NAME)"
|
- "--drivername=$(DRIVER_NAME)"
|
||||||
|
@ -92,6 +92,7 @@ spec:
|
|||||||
args :
|
args :
|
||||||
- "--nodeid=$(NODE_ID)"
|
- "--nodeid=$(NODE_ID)"
|
||||||
- "--type=rbd"
|
- "--type=rbd"
|
||||||
|
- "--controllerserver=true"
|
||||||
- "--endpoint=$(CSI_ENDPOINT)"
|
- "--endpoint=$(CSI_ENDPOINT)"
|
||||||
- "--v=5"
|
- "--v=5"
|
||||||
- "--drivername=$(DRIVER_NAME)"
|
- "--drivername=$(DRIVER_NAME)"
|
||||||
|
@ -147,6 +147,7 @@ func (fs *Driver) Run(conf *util.Config, cachePersister util.CachePersister) {
|
|||||||
klog.Fatalln("failed to initialize CSI driver")
|
klog.Fatalln("failed to initialize CSI driver")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if conf.IsControllerServer || !conf.IsNodeServer {
|
||||||
fs.cd.AddControllerServiceCapabilities([]csi.ControllerServiceCapability_RPC_Type{
|
fs.cd.AddControllerServiceCapabilities([]csi.ControllerServiceCapability_RPC_Type{
|
||||||
csi.ControllerServiceCapability_RPC_CREATE_DELETE_VOLUME,
|
csi.ControllerServiceCapability_RPC_CREATE_DELETE_VOLUME,
|
||||||
})
|
})
|
||||||
@ -154,13 +155,22 @@ func (fs *Driver) Run(conf *util.Config, cachePersister util.CachePersister) {
|
|||||||
fs.cd.AddVolumeCapabilityAccessModes([]csi.VolumeCapability_AccessMode_Mode{
|
fs.cd.AddVolumeCapabilityAccessModes([]csi.VolumeCapability_AccessMode_Mode{
|
||||||
csi.VolumeCapability_AccessMode_MULTI_NODE_MULTI_WRITER,
|
csi.VolumeCapability_AccessMode_MULTI_NODE_MULTI_WRITER,
|
||||||
})
|
})
|
||||||
|
}
|
||||||
// Create gRPC servers
|
// Create gRPC servers
|
||||||
|
|
||||||
fs.is = NewIdentityServer(fs.cd)
|
fs.is = NewIdentityServer(fs.cd)
|
||||||
fs.ns = NewNodeServer(fs.cd, conf.Vtype)
|
|
||||||
|
|
||||||
|
if conf.IsNodeServer {
|
||||||
|
fs.ns = NewNodeServer(fs.cd, conf.Vtype)
|
||||||
|
}
|
||||||
|
|
||||||
|
if conf.IsControllerServer {
|
||||||
fs.cs = NewControllerServer(fs.cd, cachePersister)
|
fs.cs = NewControllerServer(fs.cd, cachePersister)
|
||||||
|
}
|
||||||
|
if !conf.IsControllerServer && !conf.IsNodeServer {
|
||||||
|
fs.ns = NewNodeServer(fs.cd, conf.Vtype)
|
||||||
|
fs.cs = NewControllerServer(fs.cd, cachePersister)
|
||||||
|
}
|
||||||
|
|
||||||
server := csicommon.NewNonBlockingGRPCServer()
|
server := csicommon.NewNonBlockingGRPCServer()
|
||||||
server.Start(conf.Endpoint, fs.is, fs.cs, fs.ns)
|
server.Start(conf.Endpoint, fs.is, fs.cs, fs.ns)
|
||||||
|
@ -121,12 +121,12 @@ func (r *Driver) Run(conf *util.Config, cachePersister util.CachePersister) {
|
|||||||
if r.cd == nil {
|
if r.cd == nil {
|
||||||
klog.Fatalln("Failed to initialize CSI Driver.")
|
klog.Fatalln("Failed to initialize CSI Driver.")
|
||||||
}
|
}
|
||||||
|
if conf.IsControllerServer || !conf.IsNodeServer {
|
||||||
r.cd.AddControllerServiceCapabilities([]csi.ControllerServiceCapability_RPC_Type{
|
r.cd.AddControllerServiceCapabilities([]csi.ControllerServiceCapability_RPC_Type{
|
||||||
csi.ControllerServiceCapability_RPC_CREATE_DELETE_VOLUME,
|
csi.ControllerServiceCapability_RPC_CREATE_DELETE_VOLUME,
|
||||||
csi.ControllerServiceCapability_RPC_CREATE_DELETE_SNAPSHOT,
|
csi.ControllerServiceCapability_RPC_CREATE_DELETE_SNAPSHOT,
|
||||||
csi.ControllerServiceCapability_RPC_CLONE_VOLUME,
|
csi.ControllerServiceCapability_RPC_CLONE_VOLUME,
|
||||||
})
|
})
|
||||||
|
|
||||||
// We only support the multi-writer option when using block, but it's a supported capability for the plugin in general
|
// We only support the multi-writer option when using block, but it's a supported capability for the plugin in general
|
||||||
// In addition, we want to add the remaining modes like MULTI_NODE_READER_ONLY,
|
// In addition, we want to add the remaining modes like MULTI_NODE_READER_ONLY,
|
||||||
// MULTI_NODE_SINGLE_WRITER etc, but need to do some verification of RO modes first
|
// MULTI_NODE_SINGLE_WRITER etc, but need to do some verification of RO modes first
|
||||||
@ -134,15 +134,28 @@ func (r *Driver) Run(conf *util.Config, cachePersister util.CachePersister) {
|
|||||||
r.cd.AddVolumeCapabilityAccessModes(
|
r.cd.AddVolumeCapabilityAccessModes(
|
||||||
[]csi.VolumeCapability_AccessMode_Mode{csi.VolumeCapability_AccessMode_SINGLE_NODE_WRITER,
|
[]csi.VolumeCapability_AccessMode_Mode{csi.VolumeCapability_AccessMode_SINGLE_NODE_WRITER,
|
||||||
csi.VolumeCapability_AccessMode_MULTI_NODE_MULTI_WRITER})
|
csi.VolumeCapability_AccessMode_MULTI_NODE_MULTI_WRITER})
|
||||||
|
}
|
||||||
|
|
||||||
// Create GRPC servers
|
// Create GRPC servers
|
||||||
r.ids = NewIdentityServer(r.cd)
|
r.ids = NewIdentityServer(r.cd)
|
||||||
|
|
||||||
|
if conf.IsNodeServer {
|
||||||
r.ns, err = NewNodeServer(r.cd, conf.Containerized, conf.Vtype)
|
r.ns, err = NewNodeServer(r.cd, conf.Containerized, conf.Vtype)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
klog.Fatalf("failed to start node server, err %v\n", err)
|
klog.Fatalf("failed to start node server, err %v\n", err)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if conf.IsControllerServer {
|
||||||
r.cs = NewControllerServer(r.cd, cachePersister)
|
r.cs = NewControllerServer(r.cd, cachePersister)
|
||||||
|
}
|
||||||
|
if !conf.IsControllerServer && !conf.IsNodeServer {
|
||||||
|
r.ns, err = NewNodeServer(r.cd, conf.Containerized, conf.Vtype)
|
||||||
|
if err != nil {
|
||||||
|
klog.Fatalf("failed to start node server, err %v\n", err)
|
||||||
|
}
|
||||||
|
r.cs = NewControllerServer(r.cd, cachePersister)
|
||||||
|
}
|
||||||
|
|
||||||
s := csicommon.NewNonBlockingGRPCServer()
|
s := csicommon.NewNonBlockingGRPCServer()
|
||||||
s.Start(conf.Endpoint, r.ids, r.cs, r.ns)
|
s.Start(conf.Endpoint, r.ids, r.cs, r.ns)
|
||||||
|
@ -62,6 +62,8 @@ type Config struct {
|
|||||||
MetadataStorage string // metadata persistence method [node|k8s_configmap]
|
MetadataStorage string // metadata persistence method [node|k8s_configmap]
|
||||||
PluginPath string // location of cephcsi plugin
|
PluginPath string // location of cephcsi plugin
|
||||||
PidLimit int // PID limit to configure through cgroups")
|
PidLimit int // PID limit to configure through cgroups")
|
||||||
|
IsControllerServer bool // if set to true start provisoner server
|
||||||
|
IsNodeServer bool // if set to true start node server
|
||||||
|
|
||||||
// rbd related flags
|
// rbd related flags
|
||||||
Containerized bool // whether run as containerized
|
Containerized bool // whether run as containerized
|
||||||
|
Loading…
Reference in New Issue
Block a user