@@ -180,6 +180,69 @@ type RosaControlPlaneSpec struct { //nolint: maligned
180
180
// ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.
181
181
// +optional
182
182
ControlPlaneEndpoint clusterv1.APIEndpoint `json:"controlPlaneEndpoint"`
183
+
184
+ // ClusterRegistryConfig represents registry config used with the cluster.
185
+ // +optional
186
+ ClusterRegistryConfig * RegistryConfig `json:"clusterRegistryConfig,omitempty"`
187
+ }
188
+
189
+ // RegistryConfig for ROSA-HCP cluster
190
+ type RegistryConfig struct {
191
+ // AdditionalTrustedCAs containing the registry hostname as the key, and the PEM-encoded certificate as the value,
192
+ // for each additional registry CA to trust.
193
+ // +optional
194
+ AdditionalTrustedCAs map [string ]string `json:"additionalTrustedCAs,omitempty"`
195
+
196
+ // AllowedRegistriesForImport limits the container image registries that normal users may import
197
+ // images from. Set this list to the registries that you trust to contain valid Docker
198
+ // images and that you want applications to be able to import from.
199
+ // +optional
200
+ AllowedRegistriesForImport []RegistryLocation `json:"allowedRegistriesForImport,omitempty"`
201
+
202
+ // RegistrySources contains configuration that determines how the container runtime
203
+ // should treat individual registries when accessing images. It does not contain configuration
204
+ // for the internal cluster registry. AllowedRegistries, BlockedRegistries are mutually exclusive.
205
+ // +optional
206
+ RegistrySources * RegistrySources `json:"registrySources,omitempty"`
207
+ }
208
+
209
+ // RegistryLocation contains a location of the registry specified by the registry domain name.
210
+ type RegistryLocation struct {
211
+ // domainName specifies a domain name for the registry. The domain name might include wildcards, like '*' or '??'.
212
+ // In case the registry use non-standard (80 or 443) port, the port should be included in the domain name as well.
213
+ // +optional
214
+ DomainName string `json:"domainName,omitempty"`
215
+
216
+ // insecure indicates whether the registry is secure (https) or insecure (http), default is secured.
217
+ // +kubebuilder:default=false
218
+ // +optional
219
+ Insecure bool `json:"insecure,omitempty"`
220
+ }
221
+
222
+ // RegistrySources contains registries configuration.
223
+ type RegistrySources struct {
224
+ // AllowedRegistries are the registries for which image pull and push actions are allowed.
225
+ // To specify all subdomains, add the asterisk (*) wildcard character as a prefix to the domain name,
226
+ // For example, *.example.com.
227
+ // You can specify an individual repository within a registry, For example: reg1.io/myrepo/myapp:latest.
228
+ // All other registries are blocked.
229
+ // +optional
230
+ AllowedRegistries []string `json:"allowedRegistries,omitempty"`
231
+
232
+ // BlockedRegistries are the registries for which image pull and push actions are denied.
233
+ // To specify all subdomains, add the asterisk (*) wildcard character as a prefix to the domain name,
234
+ // For example, *.example.com.
235
+ // You can specify an individual repository within a registry, For example: reg1.io/myrepo/myapp:latest.
236
+ // All other registries are allowed.
237
+ // +optional
238
+ BlockedRegistries []string `json:"blockedRegistries,omitempty"`
239
+
240
+ // InsecureRegistries are registries which do not have a valid TLS certificate or only support HTTP connections.
241
+ // To specify all subdomains, add the asterisk (*) wildcard character as a prefix to the domain name,
242
+ // For example, *.example.com.
243
+ // You can specify an individual repository within a registry, For example: reg1.io/myrepo/myapp:latest.
244
+ // +optional
245
+ InsecureRegistries []string `json:"insecureRegistries,omitempty"`
183
246
}
184
247
185
248
// NetworkSpec for ROSA-HCP.
0 commit comments