From 12e938557e2f614c6efb64d2a36a94cb137dcf51 Mon Sep 17 00:00:00 2001 From: C Anthony Risinger Date: Mon, 13 Sep 2021 11:08:22 -0500 Subject: [PATCH] pkg/apis/kops: Allow configuring dockerd --max-* upload and download concurrency and retry options. YAML config options are maxConcurrentDownloads, maxConcurrentUploads, and maxDownloadAttempts. Defaults are maxConcurrentDownloads=3, maxConcurrentUploads=5, and maxDownloadAttempts=5. --- k8s/crds/kops.k8s.io_clusters.yaml | 15 +++++++++++++++ pkg/apis/kops/dockerconfig.go | 6 ++++++ pkg/apis/kops/v1alpha2/dockerconfig.go | 6 ++++++ pkg/apis/kops/v1alpha2/zz_generated.conversion.go | 6 ++++++ pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go | 15 +++++++++++++++ pkg/apis/kops/v1alpha3/dockerconfig.go | 6 ++++++ pkg/apis/kops/v1alpha3/zz_generated.conversion.go | 6 ++++++ pkg/apis/kops/v1alpha3/zz_generated.deepcopy.go | 15 +++++++++++++++ pkg/apis/kops/zz_generated.deepcopy.go | 15 +++++++++++++++ 9 files changed, 90 insertions(+) diff --git a/k8s/crds/kops.k8s.io_clusters.yaml b/k8s/crds/kops.k8s.io_clusters.yaml index cb23a5f4bd..cdaef45103 100644 --- a/k8s/crds/kops.k8s.io_clusters.yaml +++ b/k8s/crds/kops.k8s.io_clusters.yaml @@ -836,6 +836,21 @@ spec: items: type: string type: array + maxConcurrentDownloads: + description: MaxConcurrentDownloads sets the max concurrent downloads + for each pull + format: int32 + type: integer + maxConcurrentUploads: + description: MaxConcurrentUploads sets the max concurrent uploads + for each push + format: int32 + type: integer + maxDownloadAttempts: + description: MaxDownloadAttempts sets the max download attempts + for each pull + format: int32 + type: integer metricsAddress: description: Metrics address is the endpoint to serve with Prometheus format metrics diff --git a/pkg/apis/kops/dockerconfig.go b/pkg/apis/kops/dockerconfig.go index 111ff63e14..737941b42a 100644 --- a/pkg/apis/kops/dockerconfig.go +++ b/pkg/apis/kops/dockerconfig.go @@ -56,6 +56,12 @@ type DockerConfig struct { LogLevel *string `json:"logLevel,omitempty" flag:"log-level"` // Logopt is a series of options given to the log driver options for containers LogOpt []string `json:"logOpt,omitempty" flag:"log-opt,repeat"` + // MaxConcurrentDownloads sets the max concurrent downloads for each pull + MaxConcurrentDownloads *int32 `json:"maxConcurrentDownloads,omitempty" flag:"max-concurrent-downloads"` + // MaxConcurrentUploads sets the max concurrent uploads for each push + MaxConcurrentUploads *int32 `json:"maxConcurrentUploads,omitempty" flag:"max-concurrent-uploads"` + // MaxDownloadAttempts sets the max download attempts for each pull + MaxDownloadAttempts *int32 `json:"maxDownloadAttempts,omitempty" flag:"max-download-attempts"` // Metrics address is the endpoint to serve with Prometheus format metrics MetricsAddress *string `json:"metricsAddress,omitempty" flag:"metrics-addr"` // MTU is the containers network MTU diff --git a/pkg/apis/kops/v1alpha2/dockerconfig.go b/pkg/apis/kops/v1alpha2/dockerconfig.go index 76ad463ac9..7c8a0f0d88 100644 --- a/pkg/apis/kops/v1alpha2/dockerconfig.go +++ b/pkg/apis/kops/v1alpha2/dockerconfig.go @@ -56,6 +56,12 @@ type DockerConfig struct { LogLevel *string `json:"logLevel,omitempty" flag:"log-level"` // Logopt is a series of options given to the log driver options for containers LogOpt []string `json:"logOpt,omitempty" flag:"log-opt,repeat"` + // MaxConcurrentDownloads sets the max concurrent downloads for each pull + MaxConcurrentDownloads *int32 `json:"maxConcurrentDownloads,omitempty" flag:"max-concurrent-downloads"` + // MaxConcurrentUploads sets the max concurrent uploads for each push + MaxConcurrentUploads *int32 `json:"maxConcurrentUploads,omitempty" flag:"max-concurrent-uploads"` + // MaxDownloadAttempts sets the max download attempts for each pull + MaxDownloadAttempts *int32 `json:"maxDownloadAttempts,omitempty" flag:"max-download-attempts"` // Metrics address is the endpoint to serve with Prometheus format metrics MetricsAddress *string `json:"metricsAddress,omitempty" flag:"metrics-addr"` // MTU is the containers network MTU diff --git a/pkg/apis/kops/v1alpha2/zz_generated.conversion.go b/pkg/apis/kops/v1alpha2/zz_generated.conversion.go index eae1007a3b..e490cc260f 100644 --- a/pkg/apis/kops/v1alpha2/zz_generated.conversion.go +++ b/pkg/apis/kops/v1alpha2/zz_generated.conversion.go @@ -3367,6 +3367,9 @@ func autoConvert_v1alpha2_DockerConfig_To_kops_DockerConfig(in *DockerConfig, ou out.LogDriver = in.LogDriver out.LogLevel = in.LogLevel out.LogOpt = in.LogOpt + out.MaxConcurrentDownloads = in.MaxConcurrentDownloads + out.MaxConcurrentUploads = in.MaxConcurrentUploads + out.MaxDownloadAttempts = in.MaxDownloadAttempts out.MetricsAddress = in.MetricsAddress out.MTU = in.MTU if in.Packages != nil { @@ -3414,6 +3417,9 @@ func autoConvert_kops_DockerConfig_To_v1alpha2_DockerConfig(in *kops.DockerConfi out.LogDriver = in.LogDriver out.LogLevel = in.LogLevel out.LogOpt = in.LogOpt + out.MaxConcurrentDownloads = in.MaxConcurrentDownloads + out.MaxConcurrentUploads = in.MaxConcurrentUploads + out.MaxDownloadAttempts = in.MaxDownloadAttempts out.MetricsAddress = in.MetricsAddress out.MTU = in.MTU if in.Packages != nil { diff --git a/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go b/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go index 6bd35a2674..9c845c0d34 100644 --- a/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go +++ b/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go @@ -1506,6 +1506,21 @@ func (in *DockerConfig) DeepCopyInto(out *DockerConfig) { *out = make([]string, len(*in)) copy(*out, *in) } + if in.MaxConcurrentDownloads != nil { + in, out := &in.MaxConcurrentDownloads, &out.MaxConcurrentDownloads + *out = new(int32) + **out = **in + } + if in.MaxConcurrentUploads != nil { + in, out := &in.MaxConcurrentUploads, &out.MaxConcurrentUploads + *out = new(int32) + **out = **in + } + if in.MaxDownloadAttempts != nil { + in, out := &in.MaxDownloadAttempts, &out.MaxDownloadAttempts + *out = new(int32) + **out = **in + } if in.MetricsAddress != nil { in, out := &in.MetricsAddress, &out.MetricsAddress *out = new(string) diff --git a/pkg/apis/kops/v1alpha3/dockerconfig.go b/pkg/apis/kops/v1alpha3/dockerconfig.go index 953918a143..6a28a9b02a 100644 --- a/pkg/apis/kops/v1alpha3/dockerconfig.go +++ b/pkg/apis/kops/v1alpha3/dockerconfig.go @@ -56,6 +56,12 @@ type DockerConfig struct { LogLevel *string `json:"logLevel,omitempty" flag:"log-level"` // Logopt is a series of options given to the log driver options for containers LogOpt []string `json:"logOpt,omitempty" flag:"log-opt,repeat"` + // MaxConcurrentDownloads sets the max concurrent downloads for each pull + MaxConcurrentDownloads *int32 `json:"maxConcurrentDownloads,omitempty" flag:"max-concurrent-downloads"` + // MaxConcurrentUploads sets the max concurrent uploads for each push + MaxConcurrentUploads *int32 `json:"maxConcurrentUploads,omitempty" flag:"max-concurrent-uploads"` + // MaxDownloadAttempts sets the max download attempts for each pull + MaxDownloadAttempts *int32 `json:"maxDownloadAttempts,omitempty" flag:"max-download-attempts"` // Metrics address is the endpoint to serve with Prometheus format metrics MetricsAddress *string `json:"metricsAddress,omitempty" flag:"metrics-addr"` // MTU is the containers network MTU diff --git a/pkg/apis/kops/v1alpha3/zz_generated.conversion.go b/pkg/apis/kops/v1alpha3/zz_generated.conversion.go index f73b554c05..ff71f802f9 100644 --- a/pkg/apis/kops/v1alpha3/zz_generated.conversion.go +++ b/pkg/apis/kops/v1alpha3/zz_generated.conversion.go @@ -3281,6 +3281,9 @@ func autoConvert_v1alpha3_DockerConfig_To_kops_DockerConfig(in *DockerConfig, ou out.LogDriver = in.LogDriver out.LogLevel = in.LogLevel out.LogOpt = in.LogOpt + out.MaxConcurrentDownloads = in.MaxConcurrentDownloads + out.MaxConcurrentUploads = in.MaxConcurrentUploads + out.MaxDownloadAttempts = in.MaxDownloadAttempts out.MetricsAddress = in.MetricsAddress out.MTU = in.MTU if in.Packages != nil { @@ -3328,6 +3331,9 @@ func autoConvert_kops_DockerConfig_To_v1alpha3_DockerConfig(in *kops.DockerConfi out.LogDriver = in.LogDriver out.LogLevel = in.LogLevel out.LogOpt = in.LogOpt + out.MaxConcurrentDownloads = in.MaxConcurrentDownloads + out.MaxConcurrentUploads = in.MaxConcurrentUploads + out.MaxDownloadAttempts = in.MaxDownloadAttempts out.MetricsAddress = in.MetricsAddress out.MTU = in.MTU if in.Packages != nil { diff --git a/pkg/apis/kops/v1alpha3/zz_generated.deepcopy.go b/pkg/apis/kops/v1alpha3/zz_generated.deepcopy.go index 2c9e8e7018..64c5f6a075 100644 --- a/pkg/apis/kops/v1alpha3/zz_generated.deepcopy.go +++ b/pkg/apis/kops/v1alpha3/zz_generated.deepcopy.go @@ -1491,6 +1491,21 @@ func (in *DockerConfig) DeepCopyInto(out *DockerConfig) { *out = make([]string, len(*in)) copy(*out, *in) } + if in.MaxConcurrentDownloads != nil { + in, out := &in.MaxConcurrentDownloads, &out.MaxConcurrentDownloads + *out = new(int32) + **out = **in + } + if in.MaxConcurrentUploads != nil { + in, out := &in.MaxConcurrentUploads, &out.MaxConcurrentUploads + *out = new(int32) + **out = **in + } + if in.MaxDownloadAttempts != nil { + in, out := &in.MaxDownloadAttempts, &out.MaxDownloadAttempts + *out = new(int32) + **out = **in + } if in.MetricsAddress != nil { in, out := &in.MetricsAddress, &out.MetricsAddress *out = new(string) diff --git a/pkg/apis/kops/zz_generated.deepcopy.go b/pkg/apis/kops/zz_generated.deepcopy.go index bc38d415c2..36ffd5eca5 100644 --- a/pkg/apis/kops/zz_generated.deepcopy.go +++ b/pkg/apis/kops/zz_generated.deepcopy.go @@ -1606,6 +1606,21 @@ func (in *DockerConfig) DeepCopyInto(out *DockerConfig) { *out = make([]string, len(*in)) copy(*out, *in) } + if in.MaxConcurrentDownloads != nil { + in, out := &in.MaxConcurrentDownloads, &out.MaxConcurrentDownloads + *out = new(int32) + **out = **in + } + if in.MaxConcurrentUploads != nil { + in, out := &in.MaxConcurrentUploads, &out.MaxConcurrentUploads + *out = new(int32) + **out = **in + } + if in.MaxDownloadAttempts != nil { + in, out := &in.MaxDownloadAttempts, &out.MaxDownloadAttempts + *out = new(int32) + **out = **in + } if in.MetricsAddress != nil { in, out := &in.MetricsAddress, &out.MetricsAddress *out = new(string)