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:
Johannes Würbach 2017-07-31 21:07:46 +02:00
parent 366f38b1f9
commit 798d87da32
No known key found for this signature in database
GPG Key ID: 74DB0F4D956CCCE3
1 changed files with 29 additions and 1 deletions

View File

@ -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 {