2018-01-09 18:59:50 +00:00
/ *
Copyright 2018 The Kubernetes Authors .
Licensed under the Apache License , Version 2.0 ( the "License" ) ;
you may not use this file except in compliance with the License .
You may obtain a copy of the License at
http : //www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing , software
distributed under the License is distributed on an "AS IS" BASIS ,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied .
See the License for the specific language governing permissions and
limitations under the License .
* /
package main
import (
"flag"
"os"
"github.com/ceph/ceph-csi/pkg/rbd"
2018-12-19 14:26:16 +00:00
"github.com/ceph/ceph-csi/pkg/util"
2019-02-19 13:49:40 +00:00
"k8s.io/klog"
2018-01-09 18:59:50 +00:00
)
var (
2018-12-19 14:26:16 +00:00
endpoint = flag . String ( "endpoint" , "unix://tmp/csi.sock" , "CSI endpoint" )
2019-03-13 05:09:58 +00:00
driverName = flag . String ( "drivername" , "rbd.csi.ceph.com" , "name of the driver" )
2018-12-19 14:26:16 +00:00
nodeID = flag . String ( "nodeid" , "" , "node id" )
containerized = flag . Bool ( "containerized" , true , "whether run as containerized" )
metadataStorage = flag . String ( "metadatastorage" , "" , "metadata persistence method [node|k8s_configmap]" )
2019-03-07 21:03:33 +00:00
configRoot = flag . String ( "configroot" , "/etc/csi-config" , "directory in which CSI specific Ceph cluster configurations are present, OR the value \"k8s_objects\" if present as kubernetes secrets" )
2018-01-09 18:59:50 +00:00
)
2019-02-19 13:49:40 +00:00
func init ( ) {
klog . InitFlags ( nil )
if err := flag . Set ( "logtostderr" , "true" ) ; err != nil {
klog . Exitf ( "failed to set logtostderr flag: %v" , err )
}
flag . Parse ( )
}
2018-01-09 18:59:50 +00:00
func main ( ) {
2019-02-09 19:59:01 +00:00
2019-03-13 05:09:58 +00:00
err := util . ValidateDriverName ( * driverName )
if err != nil {
klog . Fatalln ( err )
}
//update plugin name
rbd . PluginFolder = rbd . PluginFolder + * driverName
2019-02-19 08:14:10 +00:00
cp , err := util . CreatePersistanceStorage ( rbd . PluginFolder , * metadataStorage , * driverName )
2018-12-19 14:26:16 +00:00
if err != nil {
os . Exit ( 1 )
}
2018-01-09 18:59:50 +00:00
2019-01-28 11:47:06 +00:00
driver := rbd . NewDriver ( )
2019-03-02 17:29:52 +00:00
driver . Run ( * driverName , * nodeID , * endpoint , * containerized , * configRoot , cp )
2018-12-19 14:26:16 +00:00
os . Exit ( 0 )
2018-01-09 18:59:50 +00:00
}