@@ -180,6 +180,69 @@ type RosaControlPlaneSpec struct { //nolint: maligned
180180	// ControlPlaneEndpoint represents the endpoint used to communicate with the control plane. 
181181	// +optional 
182182	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"` 
183246}
184247
185248// NetworkSpec for ROSA-HCP. 
0 commit comments