Use NodeupConfig for DockerConfig

This commit is contained in:
John Gardiner Myers 2023-01-02 13:50:29 -08:00
parent 3fe4ee9b84
commit fe448ef906
6 changed files with 18 additions and 16 deletions

View File

@ -168,8 +168,8 @@ func (b *ContainerdBuilder) installContainerd(c *fi.NodeupModelBuilderContext) e
return fmt.Errorf("error finding contained version")
}
} else {
if b.Cluster.Spec.Docker != nil {
containerRuntimeVersion = fi.ValueOf(b.Cluster.Spec.Docker.Version)
if b.NodeupConfig.Docker != nil {
containerRuntimeVersion = fi.ValueOf(b.NodeupConfig.Docker.Version)
} else {
return fmt.Errorf("error finding Docker version")
}
@ -196,7 +196,7 @@ func (b *ContainerdBuilder) buildSystemdService(sv semver.Version) *nodetasks.Se
manifest.Set("Unit", "After", "network.target local-fs.target")
// Restore the default SELinux security contexts for the containerd and runc binaries
if b.Distribution.IsRHELFamily() && b.Cluster.Spec.Docker != nil && fi.ValueOf(b.Cluster.Spec.Docker.SelinuxEnabled) {
if b.Distribution.IsRHELFamily() && b.NodeupConfig.Docker != nil && fi.ValueOf(b.NodeupConfig.Docker.SelinuxEnabled) {
manifest.Set("Service", "ExecStartPre", "/bin/sh -c 'restorecon -v /usr/bin/runc'")
manifest.Set("Service", "ExecStartPre", "/bin/sh -c 'restorecon -v /usr/bin/containerd*'")
}

View File

@ -45,8 +45,8 @@ var _ fi.NodeupModelBuilder = &DockerBuilder{}
func (b *DockerBuilder) dockerVersion() (string, error) {
dockerVersion := ""
if b.Cluster.Spec.Docker != nil {
dockerVersion = fi.ValueOf(b.Cluster.Spec.Docker.Version)
if b.NodeupConfig.Docker != nil {
dockerVersion = fi.ValueOf(b.NodeupConfig.Docker.Version)
}
if dockerVersion == "" {
return "", fmt.Errorf("error finding Docker version")
@ -201,7 +201,7 @@ func (b *DockerBuilder) buildSystemdService(dockerVersion semver.Version) *nodet
manifest.Set("Service", "Type", "notify")
// Restore the default SELinux security contexts for the Docker binaries
if b.Distribution.IsRHELFamily() && b.Cluster.Spec.Docker != nil && fi.ValueOf(b.Cluster.Spec.Docker.SelinuxEnabled) {
if b.Distribution.IsRHELFamily() && b.NodeupConfig.Docker != nil && fi.ValueOf(b.NodeupConfig.Docker.SelinuxEnabled) {
manifest.Set("Service", "ExecStartPre", "/bin/sh -c 'restorecon -v /usr/bin/docker*'")
}
// the default is not to use systemd for cgroups because the delegate issues still
@ -347,8 +347,8 @@ func (b *DockerBuilder) buildContainerOSConfigurationDropIn(c *fi.NodeupModelBui
// buildSysconfig is responsible for extracting the docker configuration and writing the sysconfig file
func (b *DockerBuilder) buildSysconfig(c *fi.NodeupModelBuilderContext) error {
var docker kops.DockerConfig
if b.Cluster.Spec.Docker != nil {
docker = *b.Cluster.Spec.Docker
if b.NodeupConfig.Docker != nil {
docker = *b.NodeupConfig.Docker
}
// ContainerOS now sets the storage flag in /etc/docker/daemon.json, and it is an error to set it twice
@ -413,7 +413,7 @@ func (b *DockerBuilder) buildSysconfig(c *fi.NodeupModelBuilderContext) error {
// skipInstall determines if kops should skip the installation and configuration of Docker
func (b *DockerBuilder) skipInstall() bool {
d := b.Cluster.Spec.Docker
d := b.NodeupConfig.Docker
// don't skip install if the user hasn't specified anything
if d == nil {
@ -425,7 +425,7 @@ func (b *DockerBuilder) skipInstall() bool {
// healthCheck determines if kops should enable the health-check for Docker
func (b *DockerBuilder) healthCheck() bool {
d := b.Cluster.Spec.Docker
d := b.NodeupConfig.Docker
// don't enable the health-check if the user hasn't specified anything
if d == nil {

View File

@ -145,12 +145,12 @@ func runDockerBuilderTest(t *testing.T, key string) {
nodeUpModelContext.Distribution = distributions.DistributionUbuntu2004
if nodeUpModelContext.Cluster.Spec.Docker.SkipInstall == false {
if nodeUpModelContext.Cluster == nil || nodeUpModelContext.Cluster.Spec.Docker == nil || nodeUpModelContext.Cluster.Spec.Docker.Version == nil {
if nodeUpModelContext.NodeupConfig.Docker.SkipInstall == false {
if nodeUpModelContext.NodeupConfig.Docker.Version == nil {
t.Fatalf("error finding Docker version")
return
}
dv := fi.ValueOf(nodeUpModelContext.Cluster.Spec.Docker.Version)
dv := fi.ValueOf(nodeUpModelContext.NodeupConfig.Docker.Version)
sv, err := semver.ParseTolerant(dv)
if err != nil {
t.Fatalf("error parsing Docker version %q: %v", dv, err)

View File

@ -72,8 +72,10 @@ type Config struct {
Hooks [][]kops.HookSpec
// ContainerRuntime is the container runtime to use for Kubernetes.
ContainerRuntime string
// ContainerdConfig config holds the configuration for containerd
// ContainerdConfig holds the configuration for containerd.
ContainerdConfig *kops.ContainerdConfig `json:"containerdConfig,omitempty"`
// Docker holds the configuration for docker.
Docker *kops.DockerConfig `json:"docker,omitempty"`
// APIServerConfig is additional configuration for nodes running an APIServer.
APIServerConfig *APIServerConfig `json:",omitempty"`
@ -172,6 +174,7 @@ func NewConfig(cluster *kops.Cluster, instanceGroup *kops.InstanceGroup) (*Confi
FileAssets: append(filterFileAssets(instanceGroup.Spec.FileAssets, role), filterFileAssets(cluster.Spec.FileAssets, role)...),
Hooks: [][]kops.HookSpec{igHooks, clusterHooks},
ContainerRuntime: cluster.Spec.ContainerRuntime,
Docker: cluster.Spec.Docker,
}
bootConfig := BootConfig{

View File

@ -378,7 +378,6 @@ func (b *BootstrapScript) Run(c *fi.CloudupContext) error {
spec := make(map[string]interface{})
spec["cloudConfig"] = cs.CloudConfig
spec["docker"] = cs.Docker
spec["kubeProxy"] = cs.KubeProxy
spec["kubelet"] = cs.Kubelet

View File

@ -467,7 +467,7 @@ func evaluateSpec(c *NodeUpCommand, nodeupConfig *nodeup.Config, cloudProvider a
}
if nodeupConfig.ContainerRuntime == "docker" {
err = evaluateDockerSpecStorage(c.cluster.Spec.Docker)
err = evaluateDockerSpecStorage(nodeupConfig.Docker)
if err != nil {
return err
}