Add initial sandbox management implementation

Signed-off-by: Random-Liu <lantaol@google.com>
This commit is contained in:
Random-Liu
2017-05-12 13:14:11 -07:00
parent 507eff04b3
commit bf28c7fc75
13 changed files with 842 additions and 51 deletions

View File

@@ -32,20 +32,20 @@ func main() {
o.AddFlags(pflag.CommandLine)
options.InitFlags()
if o.CRIContainerdVersion {
if o.PrintVersion {
version.PrintVersion()
os.Exit(0)
}
glog.V(2).Infof("Connect to containerd socket %q with timeout %v", o.ContainerdSocketPath, o.ContainerdConnectionTimeout)
conn, err := server.ConnectToContainerd(o.ContainerdSocketPath, o.ContainerdConnectionTimeout)
glog.V(2).Infof("Connect to containerd endpoint %q with timeout %v", o.ContainerdEndpoint, o.ContainerdConnectionTimeout)
conn, err := server.ConnectToContainerd(o.ContainerdEndpoint, o.ContainerdConnectionTimeout)
if err != nil {
glog.Exitf("Failed to connect containerd socket %q: %v", o.ContainerdSocketPath, err)
glog.Exitf("Failed to connect containerd endpoint %q: %v", o.ContainerdEndpoint, err)
}
glog.V(2).Infof("Run cri-containerd grpc server on socket %q", o.CRIContainerdSocketPath)
service := server.NewCRIContainerdService(conn)
s := server.NewCRIContainerdServer(o.CRIContainerdSocketPath, service, service)
glog.V(2).Infof("Run cri-containerd grpc server on socket %q", o.SocketPath)
service := server.NewCRIContainerdService(conn, o.RootDir)
s := server.NewCRIContainerdServer(o.SocketPath, service, service)
if err := s.Run(); err != nil {
glog.Exitf("Failed to run cri-containerd grpc server: %v", err)
}

View File

@@ -25,12 +25,15 @@ import (
// CRIContainerdOptions contains cri-containerd command line options.
type CRIContainerdOptions struct {
// CRIContainerdSocketPath is the path to the socket which cri-containerd serves on.
CRIContainerdSocketPath string
// CRIContainerdVersion is the git release version of cri-containerd
CRIContainerdVersion bool
// ContainerdSocketPath is the path to the containerd socket.
ContainerdSocketPath string
// SocketPath is the path to the socket which cri-containerd serves on.
SocketPath string
// RootDir is the root directory path for managing cri-containerd files
// (metadata checkpoint etc.)
RootDir string
// PrintVersion indicates to print version information of cri-containerd.
PrintVersion bool
// ContainerdEndpoint is the containerd endpoint path.
ContainerdEndpoint string
// ContainerdConnectionTimeout is the connection timeout for containerd client.
ContainerdConnectionTimeout time.Duration
}
@@ -42,13 +45,15 @@ func NewCRIContainerdOptions() *CRIContainerdOptions {
// AddFlags adds cri-containerd command line options to pflag.
func (c *CRIContainerdOptions) AddFlags(fs *pflag.FlagSet) {
fs.StringVar(&c.CRIContainerdSocketPath, "cri-containerd-socket",
fs.StringVar(&c.SocketPath, "socket-path",
"/var/run/cri-containerd.sock", "Path to the socket which cri-containerd serves on.")
fs.StringVar(&c.ContainerdSocketPath, "containerd-socket",
"/run/containerd/containerd.sock", "Path to the containerd socket.")
fs.StringVar(&c.RootDir, "root-dir",
"/var/lib/cri-containerd", "Root directory path for cri-containerd managed files (metadata checkpoint etc).")
fs.StringVar(&c.ContainerdEndpoint, "containerd-endpoint",
"/run/containerd/containerd.sock", "Path to the containerd endpoint.")
fs.DurationVar(&c.ContainerdConnectionTimeout, "containerd-connection-timeout",
2*time.Minute, "Connection timeout for containerd client.")
fs.BoolVar(&c.CRIContainerdVersion, "version",
fs.BoolVar(&c.PrintVersion, "version",
false, "Print cri-containerd version information and quit.")
}