Skip to content

Commit

Permalink
Expose chunkzie variable for S3 storage driver
Browse files Browse the repository at this point in the history
  • Loading branch information
deepsm007 committed May 1, 2024
1 parent f39cf2e commit 6f367b9
Show file tree
Hide file tree
Showing 17 changed files with 9,707 additions and 1 deletion.
7 changes: 7 additions & 0 deletions config/v1/feature_gates.go
Original file line number Diff line number Diff line change
Expand Up @@ -595,4 +595,11 @@ var (
productScope(ocpSpecific).
enableIn(DevPreviewNoUpgrade, TechPreviewNoUpgrade).
mustRegister()

FeatureGateChunkSizeMiB = newFeatureGate("ChunkSizeMiB").
reportProblemsToJiraComponent("Image Registry").
contactPerson("flavianmissi").
productScope(ocpSpecific).
enableIn(DevPreviewNoUpgrade, TechPreviewNoUpgrade).
mustRegister()
)
1 change: 1 addition & 0 deletions features.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
| MachineAPIOperatorDisableMachineHealthCheckController| | | | | | |
| AutomatedEtcdBackup| | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
| CSIDriverSharedResource| | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
| ChunkSizeMiB| | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
| DNSNameResolver| | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
| DynamicResourceAllocation| | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
| Example| | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
apiVersion: apiextensions.k8s.io/v1 # Hack because controller-gen complains if we don't have this
name: "Config"
crdName: configs.imageregistry.operator.openshift.io
featureGate: ChunkSizeMiB
tests:
onCreate:
- name: Should be able to create a minimal Config
initial: |
apiVersion: imageregistry.operator.openshift.io/v1
kind: Config
spec:
replicas: 1
expected: |
apiVersion: imageregistry.operator.openshift.io/v1
kind: Config
spec:
logLevel: Normal
operatorLogLevel: Normal
replicas: 1
- name: Should be able to configure chunksizemib for storage s3
initial: |
apiVersion: imageregistry.operator.openshift.io/v1
kind: Config
spec:
replicas: 1
storage:
s3:
bucket: bucket-1
region: region-1
chunksizemib: 10
expected: |
apiVersion: imageregistry.operator.openshift.io/v1
kind: Config
spec:
logLevel: Normal
operatorLogLevel: Normal
replicas: 1
storage:
s3:
bucket: bucket-1
region: region-1
chunksizemib: 10
- name: Should be able to configure storage s3 without chunksizemib
initial: |
apiVersion: imageregistry.operator.openshift.io/v1
kind: Config
spec:
replicas: 1
storage:
s3:
bucket: bucket-2
region: region-2
expected: |
apiVersion: imageregistry.operator.openshift.io/v1
kind: Config
spec:
logLevel: Normal
operatorLogLevel: Normal
replicas: 1
storage:
s3:
bucket: bucket-2
region: region-2
- name: Should reject configuration with value less than 5 in chunksizemib for storage s3
initial: |
apiVersion: imageregistry.operator.openshift.io/v1
kind: Config
spec:
replicas: 1
storage:
s3:
bucket: bucket-2
region: region-2
chunksizemib: 2
expectedError: "spec.storage.s3.chunkSizeMiB in body should match '^(5\\d{0,2}|[1-9]\\d{0,2}|[0-4]\\d{0,4}|5000|50[0-9]{2}|51[0-1][0-9]|5120)$'"
- name: Should reject configuration with value more than 5120 in chunksizemib for storage s3
initial: |
apiVersion: imageregistry.operator.openshift.io/v1
kind: Config
spec:
replicas: 1
storage:
s3:
bucket: bucket-3
region: region-3
chunksizemib: 2
expectedError: "spec.storage.s3.chunkSizeMiB in body should match '^(5\\d{0,2}|[1-9]\\d{0,2}|[0-4]\\d{0,4}|5000|50[0-9]{2}|51[0-1][0-9]|5120)$'"
- name: Should reject configuration with decimal value in chunksizemib for storage s3
initial: |
apiVersion: imageregistry.operator.openshift.io/v1
kind: Config
spec:
replicas: 1
storage:
s3:
bucket: bucket-4
region: region-4
chunksizemib: 19.5
expectedError: "spec.storage.s3.chunkSizeMiB in body should match '^(5\\d{0,2}|[1-9]\\d{0,2}|[0-4]\\d{0,4}|5000|50[0-9]{2}|51[0-1][0-9]|5120)$'"
11 changes: 11 additions & 0 deletions imageregistry/v1/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,17 @@ type ImageRegistryConfigStorageS3 struct {
// Optional, defaults based on the Region that is provided.
// +optional
RegionEndpoint string `json:"regionEndpoint,omitempty"`
// chunkSizeMiB defines the size of the multipart upload chunks of the S3 API.
// The S3 API requires multipart upload chunks to be at least 5MiB.
// When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time.
// The current default value is 10 MiB.
// The value is an integer number of MiB.
// The minimum value is 5 and the maximum value is 5120 (5 GiB).
// +kubebuilder:validation:Minimum=5
// +kubebuilder:validation:Maximum=5120
// +openshift:enable:FeatureGate=ChunkSizeMiB
// +optional
ChunkSizeMiB int32 `json:"chunkSizeMiB,omitempty"`
// encrypt specifies whether the registry stores the image in encrypted
// format or not.
// Optional, defaults to false.
Expand Down

0 comments on commit 6f367b9

Please sign in to comment.