From 4695e7d03cd226be05970ef1c04da49ac72e9473 Mon Sep 17 00:00:00 2001 From: Austin Moore Date: Tue, 17 Sep 2019 11:55:08 -0400 Subject: [PATCH] Move SkipInstall to DockerConfig --- nodeup/pkg/model/docker.go | 18 +++++-- .../dockerbuilder/skipinstall/cluster.yaml | 2 +- pkg/apis/kops/cluster.go | 2 - pkg/apis/kops/dockerconfig.go | 7 +-- pkg/apis/kops/v1alpha1/cluster.go | 2 - pkg/apis/kops/v1alpha1/dockerconfig.go | 7 +-- .../kops/v1alpha1/zz_generated.conversion.go | 50 +------------------ .../kops/v1alpha1/zz_generated.deepcopy.go | 21 -------- pkg/apis/kops/v1alpha2/cluster.go | 2 - pkg/apis/kops/v1alpha2/dockerconfig.go | 7 +-- .../kops/v1alpha2/zz_generated.conversion.go | 50 +------------------ .../kops/v1alpha2/zz_generated.deepcopy.go | 21 -------- pkg/apis/kops/zz_generated.deepcopy.go | 21 -------- 13 files changed, 25 insertions(+), 185 deletions(-) diff --git a/nodeup/pkg/model/docker.go b/nodeup/pkg/model/docker.go index 60b103663e..f3cb76b83e 100644 --- a/nodeup/pkg/model/docker.go +++ b/nodeup/pkg/model/docker.go @@ -788,10 +788,8 @@ func (b *DockerBuilder) dockerVersion() string { // Build is responsible for configuring the docker daemon func (b *DockerBuilder) Build(c *fi.ModelBuilderContext) error { - di := b.Cluster.Spec.DockerInstall - - if di != nil && di.SkipInstall == true { - klog.Infof("SkipDockerInstall is set to true; won't install Docker") + if b.skipInstall() { + klog.Infof("SkipInstall is set to true; won't install Docker") return nil } @@ -1149,3 +1147,15 @@ func (b *DockerBuilder) buildSysconfig(c *fi.ModelBuilderContext) error { return nil } + +// skipInstall determines if kops should skip the installation and configuration of Docker +func (b *DockerBuilder) skipInstall() bool { + d := b.Cluster.Spec.Docker + + // don't skip install if the user hasn't specified anything + if d == nil { + return false + } + + return d.SkipInstall +} diff --git a/nodeup/pkg/model/tests/dockerbuilder/skipinstall/cluster.yaml b/nodeup/pkg/model/tests/dockerbuilder/skipinstall/cluster.yaml index 0bd2d78146..c9faa7825e 100644 --- a/nodeup/pkg/model/tests/dockerbuilder/skipinstall/cluster.yaml +++ b/nodeup/pkg/model/tests/dockerbuilder/skipinstall/cluster.yaml @@ -9,7 +9,7 @@ spec: channel: stable cloudProvider: aws configBase: memfs://clusters.example.com/minimal.example.com - dockerInstall: + docker: skipInstall: true etcdClusters: - etcdMembers: diff --git a/pkg/apis/kops/cluster.go b/pkg/apis/kops/cluster.go index e5916fb277..2c82b58943 100644 --- a/pkg/apis/kops/cluster.go +++ b/pkg/apis/kops/cluster.go @@ -132,8 +132,6 @@ type ClusterSpec struct { FileAssets []FileAssetSpec `json:"fileAssets,omitempty"` // EtcdClusters stores the configuration for each cluster EtcdClusters []*EtcdClusterSpec `json:"etcdClusters,omitempty"` - // DockerInstall contains configuration for how kops will download and install Docker - DockerInstall *DockerInstallSpec `json:"dockerInstall,omitempty"` // Component configurations Docker *DockerConfig `json:"docker,omitempty"` KubeDNS *KubeDNSConfig `json:"kubeDNS,omitempty"` diff --git a/pkg/apis/kops/dockerconfig.go b/pkg/apis/kops/dockerconfig.go index 1ebe0a9069..be321aa372 100644 --- a/pkg/apis/kops/dockerconfig.go +++ b/pkg/apis/kops/dockerconfig.go @@ -56,6 +56,8 @@ type DockerConfig struct { MTU *int32 `json:"mtu,omitempty" flag:"mtu"` // RegistryMirrors is a referred list of docker registry mirror RegistryMirrors []string `json:"registryMirrors,omitempty" flag:"registry-mirror,repeat"` + // SkipInstall when set to true will prevent kops from installing and modifying Docker in any way + SkipInstall bool `json:"skipInstall,omitempty"` // Storage is the docker storage driver to use Storage *string `json:"storage,omitempty" flag:"storage-driver"` // StorageOpts is a series of options passed to the storage driver @@ -65,8 +67,3 @@ type DockerConfig struct { // Version is consumed by the nodeup and used to pick the docker version Version *string `json:"version,omitempty"` } - -type DockerInstallSpec struct { - // SkipInstall when set to true will prevent kops from installing and modifying Docker in any way - SkipInstall bool `json:"skipInstall,omitempty"` -} diff --git a/pkg/apis/kops/v1alpha1/cluster.go b/pkg/apis/kops/v1alpha1/cluster.go index f8d73dc0f7..4a0c656fc0 100644 --- a/pkg/apis/kops/v1alpha1/cluster.go +++ b/pkg/apis/kops/v1alpha1/cluster.go @@ -131,8 +131,6 @@ type ClusterSpec struct { SSHKeyName string `json:"sshKeyName,omitempty"` // EtcdClusters stores the configuration for each cluster EtcdClusters []*EtcdClusterSpec `json:"etcdClusters,omitempty"` - // DockerInstall contains configuration for how kops will download and install Docker - DockerInstall *DockerInstallSpec `json:"dockerInstall,omitempty"` // Component configurations Docker *DockerConfig `json:"docker,omitempty"` KubeDNS *KubeDNSConfig `json:"kubeDNS,omitempty"` diff --git a/pkg/apis/kops/v1alpha1/dockerconfig.go b/pkg/apis/kops/v1alpha1/dockerconfig.go index 96ae119a85..cb712403da 100644 --- a/pkg/apis/kops/v1alpha1/dockerconfig.go +++ b/pkg/apis/kops/v1alpha1/dockerconfig.go @@ -56,6 +56,8 @@ type DockerConfig struct { MTU *int32 `json:"mtu,omitempty" flag:"mtu"` // RegistryMirrors is a referred list of docker registry mirror RegistryMirrors []string `json:"registryMirrors,omitempty" flag:"registry-mirror,repeat"` + // SkipInstall when set to true will prevent kops from installing and modifying Docker in any way + SkipInstall bool `json:"skipInstall,omitempty"` // Storage is the docker storage driver to use Storage *string `json:"storage,omitempty" flag:"storage-driver"` // StorageOpts is a series of options passed to the storage driver @@ -65,8 +67,3 @@ type DockerConfig struct { // Version is consumed by the nodeup and used to pick the docker version Version *string `json:"version,omitempty"` } - -type DockerInstallSpec struct { - // SkipInstall when set to true will prevent kops from installing and modifying Docker in any way - SkipInstall bool `json:"skipInstall,omitempty" flag:"skip-docker-install"` -} diff --git a/pkg/apis/kops/v1alpha1/zz_generated.conversion.go b/pkg/apis/kops/v1alpha1/zz_generated.conversion.go index 1f0d4747c5..17341be029 100644 --- a/pkg/apis/kops/v1alpha1/zz_generated.conversion.go +++ b/pkg/apis/kops/v1alpha1/zz_generated.conversion.go @@ -243,16 +243,6 @@ func RegisterConversions(s *runtime.Scheme) error { }); err != nil { return err } - if err := s.AddGeneratedConversionFunc((*DockerInstallSpec)(nil), (*kops.DockerInstallSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_DockerInstallSpec_To_kops_DockerInstallSpec(a.(*DockerInstallSpec), b.(*kops.DockerInstallSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*kops.DockerInstallSpec)(nil), (*DockerInstallSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_kops_DockerInstallSpec_To_v1alpha1_DockerInstallSpec(a.(*kops.DockerInstallSpec), b.(*DockerInstallSpec), scope) - }); err != nil { - return err - } if err := s.AddGeneratedConversionFunc((*EgressProxySpec)(nil), (*kops.EgressProxySpec)(nil), func(a, b interface{}, scope conversion.Scope) error { return Convert_v1alpha1_EgressProxySpec_To_kops_EgressProxySpec(a.(*EgressProxySpec), b.(*kops.EgressProxySpec), scope) }); err != nil { @@ -1570,15 +1560,6 @@ func autoConvert_v1alpha1_ClusterSpec_To_kops_ClusterSpec(in *ClusterSpec, out * } else { out.EtcdClusters = nil } - if in.DockerInstall != nil { - in, out := &in.DockerInstall, &out.DockerInstall - *out = new(kops.DockerInstallSpec) - if err := Convert_v1alpha1_DockerInstallSpec_To_kops_DockerInstallSpec(*in, *out, s); err != nil { - return err - } - } else { - out.DockerInstall = nil - } if in.Docker != nil { in, out := &in.Docker, &out.Docker *out = new(kops.DockerConfig) @@ -1846,15 +1827,6 @@ func autoConvert_kops_ClusterSpec_To_v1alpha1_ClusterSpec(in *kops.ClusterSpec, } else { out.EtcdClusters = nil } - if in.DockerInstall != nil { - in, out := &in.DockerInstall, &out.DockerInstall - *out = new(DockerInstallSpec) - if err := Convert_kops_DockerInstallSpec_To_v1alpha1_DockerInstallSpec(*in, *out, s); err != nil { - return err - } - } else { - out.DockerInstall = nil - } if in.Docker != nil { in, out := &in.Docker, &out.Docker *out = new(DockerConfig) @@ -2101,6 +2073,7 @@ func autoConvert_v1alpha1_DockerConfig_To_kops_DockerConfig(in *DockerConfig, ou out.MetricsAddress = in.MetricsAddress out.MTU = in.MTU out.RegistryMirrors = in.RegistryMirrors + out.SkipInstall = in.SkipInstall out.Storage = in.Storage out.StorageOpts = in.StorageOpts out.UserNamespaceRemap = in.UserNamespaceRemap @@ -2133,6 +2106,7 @@ func autoConvert_kops_DockerConfig_To_v1alpha1_DockerConfig(in *kops.DockerConfi out.MetricsAddress = in.MetricsAddress out.MTU = in.MTU out.RegistryMirrors = in.RegistryMirrors + out.SkipInstall = in.SkipInstall out.Storage = in.Storage out.StorageOpts = in.StorageOpts out.UserNamespaceRemap = in.UserNamespaceRemap @@ -2145,26 +2119,6 @@ func Convert_kops_DockerConfig_To_v1alpha1_DockerConfig(in *kops.DockerConfig, o return autoConvert_kops_DockerConfig_To_v1alpha1_DockerConfig(in, out, s) } -func autoConvert_v1alpha1_DockerInstallSpec_To_kops_DockerInstallSpec(in *DockerInstallSpec, out *kops.DockerInstallSpec, s conversion.Scope) error { - out.SkipInstall = in.SkipInstall - return nil -} - -// Convert_v1alpha1_DockerInstallSpec_To_kops_DockerInstallSpec is an autogenerated conversion function. -func Convert_v1alpha1_DockerInstallSpec_To_kops_DockerInstallSpec(in *DockerInstallSpec, out *kops.DockerInstallSpec, s conversion.Scope) error { - return autoConvert_v1alpha1_DockerInstallSpec_To_kops_DockerInstallSpec(in, out, s) -} - -func autoConvert_kops_DockerInstallSpec_To_v1alpha1_DockerInstallSpec(in *kops.DockerInstallSpec, out *DockerInstallSpec, s conversion.Scope) error { - out.SkipInstall = in.SkipInstall - return nil -} - -// Convert_kops_DockerInstallSpec_To_v1alpha1_DockerInstallSpec is an autogenerated conversion function. -func Convert_kops_DockerInstallSpec_To_v1alpha1_DockerInstallSpec(in *kops.DockerInstallSpec, out *DockerInstallSpec, s conversion.Scope) error { - return autoConvert_kops_DockerInstallSpec_To_v1alpha1_DockerInstallSpec(in, out, s) -} - func autoConvert_v1alpha1_EgressProxySpec_To_kops_EgressProxySpec(in *EgressProxySpec, out *kops.EgressProxySpec, s conversion.Scope) error { if err := Convert_v1alpha1_HTTPProxy_To_kops_HTTPProxy(&in.HTTPProxy, &out.HTTPProxy, s); err != nil { return err diff --git a/pkg/apis/kops/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/kops/v1alpha1/zz_generated.deepcopy.go index 3a054fc41e..13843d2fc8 100644 --- a/pkg/apis/kops/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/kops/v1alpha1/zz_generated.deepcopy.go @@ -654,11 +654,6 @@ func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec) { } } } - if in.DockerInstall != nil { - in, out := &in.DockerInstall, &out.DockerInstall - *out = new(DockerInstallSpec) - **out = **in - } if in.Docker != nil { in, out := &in.Docker, &out.Docker *out = new(DockerConfig) @@ -960,22 +955,6 @@ func (in *DockerConfig) DeepCopy() *DockerConfig { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DockerInstallSpec) DeepCopyInto(out *DockerInstallSpec) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DockerInstallSpec. -func (in *DockerInstallSpec) DeepCopy() *DockerInstallSpec { - if in == nil { - return nil - } - out := new(DockerInstallSpec) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *EgressProxySpec) DeepCopyInto(out *EgressProxySpec) { *out = *in diff --git a/pkg/apis/kops/v1alpha2/cluster.go b/pkg/apis/kops/v1alpha2/cluster.go index db5ae12920..4405af078d 100644 --- a/pkg/apis/kops/v1alpha2/cluster.go +++ b/pkg/apis/kops/v1alpha2/cluster.go @@ -132,8 +132,6 @@ type ClusterSpec struct { FileAssets []FileAssetSpec `json:"fileAssets,omitempty"` // EtcdClusters stores the configuration for each cluster EtcdClusters []*EtcdClusterSpec `json:"etcdClusters,omitempty"` - // DockerInstall contains configuration for how kops will download and install Docker - DockerInstall *DockerInstallSpec `json:"dockerInstall,omitempty"` // Component configurations Docker *DockerConfig `json:"docker,omitempty"` KubeDNS *KubeDNSConfig `json:"kubeDNS,omitempty"` diff --git a/pkg/apis/kops/v1alpha2/dockerconfig.go b/pkg/apis/kops/v1alpha2/dockerconfig.go index b5ed7aea68..8d276f9c2e 100644 --- a/pkg/apis/kops/v1alpha2/dockerconfig.go +++ b/pkg/apis/kops/v1alpha2/dockerconfig.go @@ -56,6 +56,8 @@ type DockerConfig struct { MTU *int32 `json:"mtu,omitempty" flag:"mtu"` // RegistryMirrors is a referred list of docker registry mirror RegistryMirrors []string `json:"registryMirrors,omitempty" flag:"registry-mirror,repeat"` + // SkipInstall when set to true will prevent kops from installing and modifying Docker in any way + SkipInstall bool `json:"skipInstall,omitempty"` // Storage is the docker storage driver to use Storage *string `json:"storage,omitempty" flag:"storage-driver"` // StorageOpts is a series of options passed to the storage driver @@ -65,8 +67,3 @@ type DockerConfig struct { // Version is consumed by the nodeup and used to pick the docker version Version *string `json:"version,omitempty"` } - -type DockerInstallSpec struct { - // SkipInstall when set to true will prevent kops from installing and modifying Docker in any way - SkipInstall bool `json:"skipInstall,omitempty" flag:"skip-docker-install"` -} diff --git a/pkg/apis/kops/v1alpha2/zz_generated.conversion.go b/pkg/apis/kops/v1alpha2/zz_generated.conversion.go index f0d83c1ef3..cf21447b03 100644 --- a/pkg/apis/kops/v1alpha2/zz_generated.conversion.go +++ b/pkg/apis/kops/v1alpha2/zz_generated.conversion.go @@ -263,16 +263,6 @@ func RegisterConversions(s *runtime.Scheme) error { }); err != nil { return err } - if err := s.AddGeneratedConversionFunc((*DockerInstallSpec)(nil), (*kops.DockerInstallSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha2_DockerInstallSpec_To_kops_DockerInstallSpec(a.(*DockerInstallSpec), b.(*kops.DockerInstallSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*kops.DockerInstallSpec)(nil), (*DockerInstallSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_kops_DockerInstallSpec_To_v1alpha2_DockerInstallSpec(a.(*kops.DockerInstallSpec), b.(*DockerInstallSpec), scope) - }); err != nil { - return err - } if err := s.AddGeneratedConversionFunc((*EgressProxySpec)(nil), (*kops.EgressProxySpec)(nil), func(a, b interface{}, scope conversion.Scope) error { return Convert_v1alpha2_EgressProxySpec_To_kops_EgressProxySpec(a.(*EgressProxySpec), b.(*kops.EgressProxySpec), scope) }); err != nil { @@ -1623,15 +1613,6 @@ func autoConvert_v1alpha2_ClusterSpec_To_kops_ClusterSpec(in *ClusterSpec, out * } else { out.EtcdClusters = nil } - if in.DockerInstall != nil { - in, out := &in.DockerInstall, &out.DockerInstall - *out = new(kops.DockerInstallSpec) - if err := Convert_v1alpha2_DockerInstallSpec_To_kops_DockerInstallSpec(*in, *out, s); err != nil { - return err - } - } else { - out.DockerInstall = nil - } if in.Docker != nil { in, out := &in.Docker, &out.Docker *out = new(kops.DockerConfig) @@ -1914,15 +1895,6 @@ func autoConvert_kops_ClusterSpec_To_v1alpha2_ClusterSpec(in *kops.ClusterSpec, } else { out.EtcdClusters = nil } - if in.DockerInstall != nil { - in, out := &in.DockerInstall, &out.DockerInstall - *out = new(DockerInstallSpec) - if err := Convert_kops_DockerInstallSpec_To_v1alpha2_DockerInstallSpec(*in, *out, s); err != nil { - return err - } - } else { - out.DockerInstall = nil - } if in.Docker != nil { in, out := &in.Docker, &out.Docker *out = new(DockerConfig) @@ -2208,6 +2180,7 @@ func autoConvert_v1alpha2_DockerConfig_To_kops_DockerConfig(in *DockerConfig, ou out.MetricsAddress = in.MetricsAddress out.MTU = in.MTU out.RegistryMirrors = in.RegistryMirrors + out.SkipInstall = in.SkipInstall out.Storage = in.Storage out.StorageOpts = in.StorageOpts out.UserNamespaceRemap = in.UserNamespaceRemap @@ -2240,6 +2213,7 @@ func autoConvert_kops_DockerConfig_To_v1alpha2_DockerConfig(in *kops.DockerConfi out.MetricsAddress = in.MetricsAddress out.MTU = in.MTU out.RegistryMirrors = in.RegistryMirrors + out.SkipInstall = in.SkipInstall out.Storage = in.Storage out.StorageOpts = in.StorageOpts out.UserNamespaceRemap = in.UserNamespaceRemap @@ -2252,26 +2226,6 @@ func Convert_kops_DockerConfig_To_v1alpha2_DockerConfig(in *kops.DockerConfig, o return autoConvert_kops_DockerConfig_To_v1alpha2_DockerConfig(in, out, s) } -func autoConvert_v1alpha2_DockerInstallSpec_To_kops_DockerInstallSpec(in *DockerInstallSpec, out *kops.DockerInstallSpec, s conversion.Scope) error { - out.SkipInstall = in.SkipInstall - return nil -} - -// Convert_v1alpha2_DockerInstallSpec_To_kops_DockerInstallSpec is an autogenerated conversion function. -func Convert_v1alpha2_DockerInstallSpec_To_kops_DockerInstallSpec(in *DockerInstallSpec, out *kops.DockerInstallSpec, s conversion.Scope) error { - return autoConvert_v1alpha2_DockerInstallSpec_To_kops_DockerInstallSpec(in, out, s) -} - -func autoConvert_kops_DockerInstallSpec_To_v1alpha2_DockerInstallSpec(in *kops.DockerInstallSpec, out *DockerInstallSpec, s conversion.Scope) error { - out.SkipInstall = in.SkipInstall - return nil -} - -// Convert_kops_DockerInstallSpec_To_v1alpha2_DockerInstallSpec is an autogenerated conversion function. -func Convert_kops_DockerInstallSpec_To_v1alpha2_DockerInstallSpec(in *kops.DockerInstallSpec, out *DockerInstallSpec, s conversion.Scope) error { - return autoConvert_kops_DockerInstallSpec_To_v1alpha2_DockerInstallSpec(in, out, s) -} - func autoConvert_v1alpha2_EgressProxySpec_To_kops_EgressProxySpec(in *EgressProxySpec, out *kops.EgressProxySpec, s conversion.Scope) error { if err := Convert_v1alpha2_HTTPProxy_To_kops_HTTPProxy(&in.HTTPProxy, &out.HTTPProxy, s); err != nil { return err diff --git a/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go b/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go index df0c233431..d661f07ac5 100644 --- a/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go +++ b/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go @@ -627,11 +627,6 @@ func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec) { } } } - if in.DockerInstall != nil { - in, out := &in.DockerInstall, &out.DockerInstall - *out = new(DockerInstallSpec) - **out = **in - } if in.Docker != nil { in, out := &in.Docker, &out.Docker *out = new(DockerConfig) @@ -933,22 +928,6 @@ func (in *DockerConfig) DeepCopy() *DockerConfig { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DockerInstallSpec) DeepCopyInto(out *DockerInstallSpec) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DockerInstallSpec. -func (in *DockerInstallSpec) DeepCopy() *DockerInstallSpec { - if in == nil { - return nil - } - out := new(DockerInstallSpec) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *EgressProxySpec) DeepCopyInto(out *EgressProxySpec) { *out = *in diff --git a/pkg/apis/kops/zz_generated.deepcopy.go b/pkg/apis/kops/zz_generated.deepcopy.go index ca5d7b37ec..6e87994282 100644 --- a/pkg/apis/kops/zz_generated.deepcopy.go +++ b/pkg/apis/kops/zz_generated.deepcopy.go @@ -727,11 +727,6 @@ func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec) { } } } - if in.DockerInstall != nil { - in, out := &in.DockerInstall, &out.DockerInstall - *out = new(DockerInstallSpec) - **out = **in - } if in.Docker != nil { in, out := &in.Docker, &out.Docker *out = new(DockerConfig) @@ -1056,22 +1051,6 @@ func (in *DockerConfig) DeepCopy() *DockerConfig { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DockerInstallSpec) DeepCopyInto(out *DockerInstallSpec) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DockerInstallSpec. -func (in *DockerInstallSpec) DeepCopy() *DockerInstallSpec { - if in == nil { - return nil - } - out := new(DockerInstallSpec) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *EgressProxySpec) DeepCopyInto(out *EgressProxySpec) { *out = *in