mirror of https://github.com/kubernetes/kops.git
Configure docker on CoreOS/ContainerOS
While the installation of docker should be skipped, docker should still be configured to allow overriding the docker config using kops. Fixes https://github.com/kubernetes/kops/issues/3057
This commit is contained in:
parent
366f38b1f9
commit
798d87da32
|
@ -18,6 +18,8 @@ package model
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/blang/semver"
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/kops/nodeup/pkg/distros"
|
||||
|
@ -26,7 +28,6 @@ import (
|
|||
"k8s.io/kops/pkg/systemd"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kops/upup/pkg/fi/nodeup/nodetasks"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// DockerBuilder install docker (just the packages at the moment)
|
||||
|
@ -295,10 +296,16 @@ func (b *DockerBuilder) Build(c *fi.ModelBuilderContext) error {
|
|||
switch b.Distribution {
|
||||
case distros.DistributionCoreOS:
|
||||
glog.Infof("Detected CoreOS; won't install Docker")
|
||||
if err := b.buildContainerOSConfigurationDropIn(c); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
|
||||
case distros.DistributionContainerOS:
|
||||
glog.Infof("Detected ContainerOS; won't install Docker")
|
||||
if err := b.buildContainerOSConfigurationDropIn(c); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -458,6 +465,27 @@ func (b *DockerBuilder) buildSystemdService(dockerVersion semver.Version) *nodet
|
|||
return service
|
||||
}
|
||||
|
||||
func (b *DockerBuilder) buildContainerOSConfigurationDropIn(c *fi.ModelBuilderContext) error {
|
||||
lines := []string{
|
||||
"[Service]",
|
||||
"EnvironmentFile=/etc/sysconfig/docker",
|
||||
}
|
||||
contents := strings.Join(lines, "\n")
|
||||
|
||||
t := &nodetasks.File{
|
||||
Path: "/etc/systemd/system/docker.service.d/10-kops.conf",
|
||||
Contents: fi.NewStringResource(contents),
|
||||
Type: nodetasks.FileType_File,
|
||||
}
|
||||
c.AddTask(t)
|
||||
|
||||
if err := b.buildSysconfig(c); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (b *DockerBuilder) buildSysconfig(c *fi.ModelBuilderContext) error {
|
||||
flagsString, err := flagbuilder.BuildFlags(b.Cluster.Spec.Docker)
|
||||
if err != nil {
|
||||
|
|
Loading…
Reference in New Issue