diff --git a/config/v1/types_infrastructure.go b/config/v1/types_infrastructure.go index 0daa62d3096..27f256efca2 100644 --- a/config/v1/types_infrastructure.go +++ b/config/v1/types_infrastructure.go @@ -1519,7 +1519,15 @@ type IBMCloudServiceEndpoint struct { // IBMCloudPlatformSpec holds the desired state of the IBMCloud infrastructure provider. // This only includes fields that can be modified in the cluster. -type IBMCloudPlatformSpec struct{} +type IBMCloudPlatformSpec struct { + // serviceEndpoints is a list of custom endpoints which will override the default + // service endpoints of an IBM Cloud service. These endpoints are consumed by + // components within the cluster to reach the respective IBM Cloud Services. + // +listType=map + // +listMapKey=name + // +optional + ServiceEndpoints []IBMCloudServiceEndpoint `json:"serviceEndpoints,omitempty"` +} // IBMCloudPlatformStatus holds the current status of the IBMCloud infrastructure provider. type IBMCloudPlatformStatus struct { diff --git a/features.md b/features.md index 660d3bff141..5e91a6602f8 100644 --- a/features.md +++ b/features.md @@ -2,6 +2,7 @@ | ------ | --- | --- | --- | --- | --- | --- | | ClusterAPIInstall| | | | | | | | ClusterAPIInstallIBMCloud| | | | | | | +| DyanmicServiceEndpointIBMCloud| | | | | | | | EventedPLEG| | | | | | | | MachineAPIMigration| | | | | | | | MachineAPIOperatorDisableMachineHealthCheckController| | | | | | | diff --git a/features/features.go b/features/features.go index 0d1f0788e18..2c2fe02eb70 100644 --- a/features/features.go +++ b/features/features.go @@ -442,12 +442,12 @@ var ( mustRegister() FeatureGateVolumeAttributesClass = newFeatureGate("VolumeAttributesClass"). - reportProblemsToJiraComponent("Storage / Kubernetes External Components"). - contactPerson("dfajmon"). - productScope(kubernetes). - enhancementPR("https://github.com/kubernetes/enhancements/issues/3751"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() + reportProblemsToJiraComponent("Storage / Kubernetes External Components"). + contactPerson("dfajmon"). + productScope(kubernetes). + enhancementPR("https://github.com/kubernetes/enhancements/issues/3751"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() FeatureGateVolumeGroupSnapshot = newFeatureGate("VolumeGroupSnapshot"). reportProblemsToJiraComponent("Storage / Kubernetes External Components"). @@ -670,4 +670,10 @@ var ( enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). enhancementPR("https://github.com/openshift/enhancements/pull/1697"). mustRegister() + + FeatureGateDyanmicServiceEndpointIBMCloud = newFeatureGate("DyanmicServiceEndpointIBMCloud"). + reportProblemsToJiraComponent("Cloud Compute / IBM Provider"). + contactPerson("jared-hayes-dev"). + productScope(ocpSpecific). + mustRegister() ) diff --git a/openapi/generated_openapi/zz_generated.openapi.go b/openapi/generated_openapi/zz_generated.openapi.go index d500ddeee7e..706110921bb 100644 --- a/openapi/generated_openapi/zz_generated.openapi.go +++ b/openapi/generated_openapi/zz_generated.openapi.go @@ -12978,8 +12978,31 @@ func schema_openshift_api_config_v1_IBMCloudPlatformSpec(ref common.ReferenceCal SchemaProps: spec.SchemaProps{ Description: "IBMCloudPlatformSpec holds the desired state of the IBMCloud infrastructure provider. This only includes fields that can be modified in the cluster.", Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "serviceEndpoints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "ServiceEndpoints contains custom endpoints designated to override existing defaults of IBM Cloud Services.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/openshift/api/config/v1.IBMCloudServiceEndpoint"), + }, + }, + }, + }, + }, + }, }, }, + Dependencies: []string{ + "github.com/openshift/api/config/v1.IBMCloudServiceEndpoint"}, } } diff --git a/openapi/openapi.json b/openapi/openapi.json index 5decc918e27..a6c29794fe0 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -6782,7 +6782,18 @@ }, "com.github.openshift.api.config.v1.IBMCloudPlatformSpec": { "description": "IBMCloudPlatformSpec holds the desired state of the IBMCloud infrastructure provider. This only includes fields that can be modified in the cluster.", - "type": "object" + "type": "object", + "properties": { + "serviceEndpoints": { + "description": "ServiceEndpoints contains custom endpoints designated to override existing defaults of IBM Cloud Services.", + "type": "array", + "items": { + "default": {}, + "$ref": "#/definitions/com.github.openshift.api.config.v1.IBMCloudServiceEndpoint" + }, + "x-kubernetes-list-type": "atomic" + } + } }, "com.github.openshift.api.config.v1.IBMCloudPlatformStatus": { "description": "IBMCloudPlatformStatus holds the current status of the IBMCloud infrastructure provider.", diff --git a/payload-manifests/featuregates/featureGate-Hypershift-Default.yaml b/payload-manifests/featuregates/featureGate-Hypershift-Default.yaml index 1da62f43994..cddf71a3f3c 100644 --- a/payload-manifests/featuregates/featureGate-Hypershift-Default.yaml +++ b/payload-manifests/featuregates/featureGate-Hypershift-Default.yaml @@ -40,6 +40,9 @@ { "name": "DNSNameResolver" }, + { + "name": "DyanmicServiceEndpointIBMCloud" + }, { "name": "DynamicResourceAllocation" }, diff --git a/payload-manifests/featuregates/featureGate-Hypershift-DevPreviewNoUpgrade.yaml b/payload-manifests/featuregates/featureGate-Hypershift-DevPreviewNoUpgrade.yaml index c9d021261e3..ed66a6523af 100644 --- a/payload-manifests/featuregates/featureGate-Hypershift-DevPreviewNoUpgrade.yaml +++ b/payload-manifests/featuregates/featureGate-Hypershift-DevPreviewNoUpgrade.yaml @@ -21,6 +21,9 @@ { "name": "ClusterAPIInstallIBMCloud" }, + { + "name": "DyanmicServiceEndpointIBMCloud" + }, { "name": "EventedPLEG" }, diff --git a/payload-manifests/featuregates/featureGate-Hypershift-TechPreviewNoUpgrade.yaml b/payload-manifests/featuregates/featureGate-Hypershift-TechPreviewNoUpgrade.yaml index 693027446a6..2028bd0743e 100644 --- a/payload-manifests/featuregates/featureGate-Hypershift-TechPreviewNoUpgrade.yaml +++ b/payload-manifests/featuregates/featureGate-Hypershift-TechPreviewNoUpgrade.yaml @@ -21,6 +21,9 @@ { "name": "ClusterAPIInstallIBMCloud" }, + { + "name": "DyanmicServiceEndpointIBMCloud" + }, { "name": "EventedPLEG" }, diff --git a/payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml b/payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml index ad8bff5bb92..099f06e4a24 100644 --- a/payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml +++ b/payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml @@ -40,6 +40,9 @@ { "name": "DNSNameResolver" }, + { + "name": "DyanmicServiceEndpointIBMCloud" + }, { "name": "DynamicResourceAllocation" }, diff --git a/payload-manifests/featuregates/featureGate-SelfManagedHA-DevPreviewNoUpgrade.yaml b/payload-manifests/featuregates/featureGate-SelfManagedHA-DevPreviewNoUpgrade.yaml index 52e01ba3868..353f1749bbd 100644 --- a/payload-manifests/featuregates/featureGate-SelfManagedHA-DevPreviewNoUpgrade.yaml +++ b/payload-manifests/featuregates/featureGate-SelfManagedHA-DevPreviewNoUpgrade.yaml @@ -21,6 +21,9 @@ { "name": "ClusterAPIInstallIBMCloud" }, + { + "name": "DyanmicServiceEndpointIBMCloud" + }, { "name": "EventedPLEG" }, diff --git a/payload-manifests/featuregates/featureGate-SelfManagedHA-TechPreviewNoUpgrade.yaml b/payload-manifests/featuregates/featureGate-SelfManagedHA-TechPreviewNoUpgrade.yaml index 152ba3cbcb0..6eb93cac681 100644 --- a/payload-manifests/featuregates/featureGate-SelfManagedHA-TechPreviewNoUpgrade.yaml +++ b/payload-manifests/featuregates/featureGate-SelfManagedHA-TechPreviewNoUpgrade.yaml @@ -21,6 +21,9 @@ { "name": "ClusterAPIInstallIBMCloud" }, + { + "name": "DyanmicServiceEndpointIBMCloud" + }, { "name": "EventedPLEG" },