improve k3d -> docker translation
This commit is contained in:
parent
566e7bb854
commit
d4060bc4be
@ -42,9 +42,17 @@ func NewCmdGetCluster() *cobra.Command {
|
||||
log.Debugln("get cluster called")
|
||||
c, rt := parseGetClusterCmd(cmd, args)
|
||||
if c == nil {
|
||||
cluster.GetClusters(rt)
|
||||
existingClusters, err := cluster.GetClusters(rt)
|
||||
if err != nil {
|
||||
log.Fatalln(err) // TODO: log something here as well?
|
||||
}
|
||||
log.Debugln(existingClusters)
|
||||
} else {
|
||||
cluster.GetCluster(c, rt)
|
||||
existingCluster, err := cluster.GetCluster(c, rt)
|
||||
if err != nil {
|
||||
log.Fatalln(err) // TODO: log something here as well?
|
||||
}
|
||||
log.Debugln(existingCluster)
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
2
go.mod
2
go.mod
@ -14,7 +14,7 @@ require (
|
||||
github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd // indirect
|
||||
github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c // indirect
|
||||
github.com/docker/docker v1.4.2-0.20190905191220-3b23f9033967
|
||||
github.com/docker/go-connections v0.4.0 // indirect
|
||||
github.com/docker/go-connections v0.4.0
|
||||
github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c // indirect
|
||||
github.com/gogo/googleapis v1.3.0 // indirect
|
||||
github.com/golang/protobuf v1.3.1 // indirect
|
||||
|
||||
1
go.sum
1
go.sum
@ -50,7 +50,6 @@ github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c h1:6L6qod4JzOm
|
||||
github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY=
|
||||
github.com/docker/docker v1.4.2-0.20190905191220-3b23f9033967 h1:hqs6DQFz659/085bXwClBRGefVf+kWCTsQR6wwkOMiU=
|
||||
github.com/docker/docker v1.4.2-0.20190905191220-3b23f9033967/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
||||
github.com/docker/docker v1.13.1 h1:IkZjBSIc8hBjLpqeAbeE5mca5mNgeatLHBy3GO78BWo=
|
||||
github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=
|
||||
github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=
|
||||
github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c h1:+pKlWGMw7gf6bQ+oDZB4KHQFypsfjYlq/C4rfL7D3g8=
|
||||
|
||||
@ -24,6 +24,7 @@ package docker
|
||||
|
||||
import (
|
||||
docker "github.com/docker/docker/api/types/container"
|
||||
"github.com/docker/docker/api/types/network"
|
||||
"github.com/docker/go-connections/nat"
|
||||
k3d "github.com/rancher/k3d/pkg/types"
|
||||
)
|
||||
@ -33,12 +34,42 @@ func TranslateNodeToContainer(node *k3d.Node) (docker.Config, error) {
|
||||
container := docker.Config{}
|
||||
container.Hostname = node.Name
|
||||
container.Image = node.Image
|
||||
//container.Ports = // TODO: translate from what we have to []docker.Port
|
||||
container.Labels = node.Labels
|
||||
container.ExposedPorts = nat.PortSet{} // TODO:
|
||||
container.Env = []string{} // TODO:
|
||||
container.Cmd = []string{} // TODO: dependent on role and extra args
|
||||
container.Volumes = map[string]struct{}{} // TODO:
|
||||
container.Labels = node.Labels // has to include the role
|
||||
container.Env = []string{} // TODO:
|
||||
container.Cmd = []string{} // TODO: dependent on role and extra args
|
||||
hostConfig := docker.HostConfig{}
|
||||
|
||||
/* Auto-Restart */
|
||||
if node.Restart {
|
||||
hostConfig.RestartPolicy = docker.RestartPolicy{
|
||||
Name: "unless-stopped",
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: do we need this or can the default be a map with empty values already?
|
||||
hostConfig.Tmpfs = make(map[string]string)
|
||||
for _, mnt := range k3d.DefaultTmpfsMounts {
|
||||
hostConfig.Tmpfs[mnt] = ""
|
||||
}
|
||||
|
||||
hostConfig.Privileged = true
|
||||
|
||||
/* Volumes */
|
||||
// TODO: image volume
|
||||
hostConfig.Binds = []string{}
|
||||
container.Volumes = map[string]struct{}{} // TODO: which one do we use?
|
||||
|
||||
/* Ports */
|
||||
container.ExposedPorts = nat.PortSet{} // TODO:
|
||||
hostConfig.PortBindings = nat.PortMap{} // TODO: this and exposedPorts required?
|
||||
|
||||
/* Network */
|
||||
networkingConfig := &network.NetworkingConfig{}
|
||||
networkingConfig.EndpointsConfig = map[string]*network.EndpointSettings{
|
||||
"<network-name>": { // TODO: fill
|
||||
Aliases: []string{"<container-alias>"}, // TODO: fill
|
||||
},
|
||||
}
|
||||
|
||||
return container, nil
|
||||
}
|
||||
|
||||
@ -46,6 +46,12 @@ var DefaultObjectLabels = map[string]string{
|
||||
"app": "k3d",
|
||||
}
|
||||
|
||||
// DefaultTmpfsMounts specifies tmpfs mounts that are required for all k3d nodes
|
||||
var DefaultTmpfsMounts = []string{
|
||||
"/run",
|
||||
"/var/run",
|
||||
}
|
||||
|
||||
// Cluster describes a k3d cluster
|
||||
type Cluster struct {
|
||||
Name string `yaml:"name" json:"name,omitempty"`
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user