From 63382712ce4a84ff6c8e1bd02aa9a7c6bb5e393a Mon Sep 17 00:00:00 2001 From: Mangirdas Judeikis Date: Thu, 5 Aug 2021 08:36:13 +0100 Subject: [PATCH] Adjust swagger as per ARM requirments --- .sha256sum | 4 +- hack/build-client.sh | 4 +- pkg/api/admin/openshiftcluster.go | 12 ++-- pkg/api/admin/openshiftcluster_convert.go | 4 +- .../openshiftcluster_validatestatic_test.go | 8 +-- pkg/api/defaults.go | 6 +- pkg/api/defaults_test.go | 8 +-- pkg/api/openshiftcluster.go | 14 ++-- pkg/api/v20210901preview/openshiftcluster.go | 14 ++-- .../openshiftcluster_convert.go | 10 +-- .../openshiftcluster_example.go | 2 + .../openshiftcluster_validatestatic.go | 6 +- .../openshiftcluster_validatestatic_test.go | 34 +++++----- .../redhatopenshift/openshiftclusters.go | 3 - .../redhatopenshift/enums.go | 44 ++---------- .../redhatopenshift/models.go | 12 ++-- .../redhatopenshift/openshiftclusters.go | 3 - pkg/cluster/generateconfig.go | 8 +-- .../openshiftcluster_putorpatch_test.go | 36 +++++----- pkg/swagger/generator.go | 4 +- pkg/swagger/swagger.go | 4 +- pkg/swagger/types.go | 1 + pkg/swagger/typewalker.go | 34 ++++++---- pkg/util/cluster/cluster.go | 6 +- python/client/azure/__init__.py | 2 +- python/client/azure/mgmt/__init__.py | 2 +- .../azure/mgmt/redhatopenshift/__init__.py | 2 +- .../v2021_09_01_preview/models/__init__.py | 4 +- .../_azure_red_hat_open_shift_client_enums.py | 4 +- .../v2021_09_01_preview/models/_models.py | 11 +-- .../v2021_09_01_preview/models/_models_py3.py | 13 ++-- .../v2021_09_01_preview/py.typed | 2 +- .../OpenShiftClusters_CreateOrUpdate.json | 8 --- .../examples/OpenShiftClusters_Update.json | 8 --- .../2021-09-01-preview/redhatopenshift.json | 67 +++++++++++++------ .../stable/2020-04-30/redhatopenshift.json | 18 +++++ 36 files changed, 219 insertions(+), 203 deletions(-) diff --git a/.sha256sum b/.sha256sum index 477d3d1fe23..a5059ecf2f2 100644 --- a/.sha256sum +++ b/.sha256sum @@ -1,2 +1,2 @@ -d2e11a7924d0cbb70672fb0dd6b1a387ccaec8b97a6968adf5a1516d325374eb swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/stable/2020-04-30/redhatopenshift.json -749f87c84f68049c9da77f339e5aaae0e6ec86831992a31f6d6a5f997cced3ef swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/preview/2021-09-01-preview/redhatopenshift.json +468fa0da0a50d50640ec57843ad288af343128b39f5bf23e76e4e336580883d4 swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/stable/2020-04-30/redhatopenshift.json +c323c84befa5ea11da50a2407050abed6540ea01e796720bc2241604ce80567c swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/preview/2021-09-01-preview/redhatopenshift.json diff --git a/hack/build-client.sh b/hack/build-client.sh index 77c382b3414..443c54d213d 100755 --- a/hack/build-client.sh +++ b/hack/build-client.sh @@ -28,8 +28,10 @@ function generate_golang() { --rm \ -v $PWD/pkg/client:/github.com/Azure/ARO-RP/pkg/client:z \ -v $PWD/swagger:/swagger:z \ - azuresdk/autorest \ + "${AUTOREST_IMAGE}" \ --go \ + --use=@microsoft.azure/autorest.go@2.1.183 \ + --version=V2 \ --license-header=MICROSOFT_APACHE_NO_VERSION \ --namespace=redhatopenshift \ --input-file=/swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/"$FOLDER"/"$API_VERSION"/redhatopenshift.json \ diff --git a/pkg/api/admin/openshiftcluster.go b/pkg/api/admin/openshiftcluster.go index 0f7ed74513b..e9126535061 100644 --- a/pkg/api/admin/openshiftcluster.go +++ b/pkg/api/admin/openshiftcluster.go @@ -82,18 +82,18 @@ type ServicePrincipalProfile struct { SPObjectID string `json:"spObjectId,omitempty"` } -// SDNProvider constants. -type SDNProvider string +// SoftwareDefinedNetwork constants. +type SoftwareDefinedNetwork string const ( - SDNProviderOVNKubernetes SDNProvider = "OVNKubernetes" - SDNProviderOpenShiftSDN SDNProvider = "OpenShiftSDN" + SoftwareDefinedNetworkOVNKubernetes SoftwareDefinedNetwork = "OVNKubernetes" + SoftwareDefinedNetworkOpenShiftSDN SoftwareDefinedNetwork = "OpenShiftSDN" ) // NetworkProfile represents a network profile. type NetworkProfile struct { - // The SDNProvider to use when installing the cluster. - SDNProvider SDNProvider `json:"sdnProvider,omitempty"` + // The software defined network (SDN) to use when installing the cluster. + SoftwareDefinedNetwork SoftwareDefinedNetwork `json:"softwareDefinedNetwork,omitempty"` PodCIDR string `json:"podCidr,omitempty"` ServiceCIDR string `json:"serviceCidr,omitempty"` diff --git a/pkg/api/admin/openshiftcluster_convert.go b/pkg/api/admin/openshiftcluster_convert.go index b80bd944312..9c6f4f4f449 100644 --- a/pkg/api/admin/openshiftcluster_convert.go +++ b/pkg/api/admin/openshiftcluster_convert.go @@ -41,7 +41,7 @@ func (c *openShiftClusterConverter) ToExternal(oc *api.OpenShiftCluster) interfa SPObjectID: oc.Properties.ServicePrincipalProfile.SPObjectID, }, NetworkProfile: NetworkProfile{ - SDNProvider: SDNProvider(oc.Properties.NetworkProfile.SDNProvider), + SoftwareDefinedNetwork: SoftwareDefinedNetwork(oc.Properties.NetworkProfile.SoftwareDefinedNetwork), PodCIDR: oc.Properties.NetworkProfile.PodCIDR, ServiceCIDR: oc.Properties.NetworkProfile.ServiceCIDR, APIServerPrivateEndpointIP: oc.Properties.NetworkProfile.APIServerPrivateEndpointIP, @@ -172,7 +172,7 @@ func (c *openShiftClusterConverter) ToInternal(_oc interface{}, out *api.OpenShi out.Properties.ServicePrincipalProfile.SPObjectID = oc.Properties.ServicePrincipalProfile.SPObjectID out.Properties.NetworkProfile.PodCIDR = oc.Properties.NetworkProfile.PodCIDR out.Properties.NetworkProfile.ServiceCIDR = oc.Properties.NetworkProfile.ServiceCIDR - out.Properties.NetworkProfile.SDNProvider = api.SDNProvider(oc.Properties.NetworkProfile.SDNProvider) + out.Properties.NetworkProfile.SoftwareDefinedNetwork = api.SoftwareDefinedNetwork(oc.Properties.NetworkProfile.SoftwareDefinedNetwork) out.Properties.NetworkProfile.APIServerPrivateEndpointIP = oc.Properties.NetworkProfile.APIServerPrivateEndpointIP out.Properties.MasterProfile.VMSize = api.VMSize(oc.Properties.MasterProfile.VMSize) out.Properties.MasterProfile.SubnetID = oc.Properties.MasterProfile.SubnetID diff --git a/pkg/api/admin/openshiftcluster_validatestatic_test.go b/pkg/api/admin/openshiftcluster_validatestatic_test.go index 479863b0432..b6c1d4a905f 100644 --- a/pkg/api/admin/openshiftcluster_validatestatic_test.go +++ b/pkg/api/admin/openshiftcluster_validatestatic_test.go @@ -313,18 +313,18 @@ func TestOpenShiftClusterStaticValidateDelta(t *testing.T) { wantErr: "400: PropertyChangeNotAllowed: properties.servicePrincipalProfile.spObjectId: Changing property 'properties.servicePrincipalProfile.spObjectId' is not allowed.", }, { - name: "sdnProvider change is not allowed", + name: "softwareDefinedNetwork change is not allowed", oc: func() *OpenShiftCluster { return &OpenShiftCluster{ Properties: OpenShiftClusterProperties{ NetworkProfile: NetworkProfile{ - SDNProvider: SDNProviderOVNKubernetes, + SoftwareDefinedNetwork: SoftwareDefinedNetworkOVNKubernetes, }, }, } }, - modify: func(oc *OpenShiftCluster) { oc.Properties.NetworkProfile.SDNProvider = "anything" }, - wantErr: "400: PropertyChangeNotAllowed: properties.networkProfile.sdnProvider: Changing property 'properties.networkProfile.sdnProvider' is not allowed.", + modify: func(oc *OpenShiftCluster) { oc.Properties.NetworkProfile.SoftwareDefinedNetwork = "anything" }, + wantErr: "400: PropertyChangeNotAllowed: properties.networkProfile.softwareDefinedNetwork: Changing property 'properties.networkProfile.softwareDefinedNetwork' is not allowed.", }, { name: "podCidr change is not allowed", diff --git a/pkg/api/defaults.go b/pkg/api/defaults.go index 573c0637d9a..dd04454e0bc 100644 --- a/pkg/api/defaults.go +++ b/pkg/api/defaults.go @@ -9,9 +9,9 @@ package api // when moving between old and new versions func SetDefaults(doc *OpenShiftClusterDocument) { if doc.OpenShiftCluster != nil { - // SDNProvider was introduced in 2021-09-01-preview - if doc.OpenShiftCluster.Properties.NetworkProfile.SDNProvider == "" { - doc.OpenShiftCluster.Properties.NetworkProfile.SDNProvider = SDNProviderOpenShiftSDN + // SoftwareDefinedNetwork was introduced in 2021-09-01-preview + if doc.OpenShiftCluster.Properties.NetworkProfile.SoftwareDefinedNetwork == "" { + doc.OpenShiftCluster.Properties.NetworkProfile.SoftwareDefinedNetwork = SoftwareDefinedNetworkOpenShiftSDN } // EncryptionAtHost was introduced in 2021-09-01-preview. diff --git a/pkg/api/defaults_test.go b/pkg/api/defaults_test.go index 2253c5aeaa7..32f76d77b0e 100644 --- a/pkg/api/defaults_test.go +++ b/pkg/api/defaults_test.go @@ -14,7 +14,7 @@ func validOpenShiftClusterDocument() *OpenShiftClusterDocument { OpenShiftCluster: &OpenShiftCluster{ Properties: OpenShiftClusterProperties{ NetworkProfile: NetworkProfile{ - SDNProvider: SDNProviderOpenShiftSDN, + SoftwareDefinedNetwork: SoftwareDefinedNetworkOpenShiftSDN, }, MasterProfile: MasterProfile{ EncryptionAtHost: EncryptionAtHostDisabled, @@ -48,18 +48,18 @@ func TestSetDefaults(t *testing.T) { return validOpenShiftClusterDocument() }, input: func(base *OpenShiftClusterDocument) { - base.OpenShiftCluster.Properties.NetworkProfile.SDNProvider = "" + base.OpenShiftCluster.Properties.NetworkProfile.SoftwareDefinedNetwork = "" }, }, { name: "preserve SDN", want: func() *OpenShiftClusterDocument { doc := validOpenShiftClusterDocument() - doc.OpenShiftCluster.Properties.NetworkProfile.SDNProvider = SDNProviderOVNKubernetes + doc.OpenShiftCluster.Properties.NetworkProfile.SoftwareDefinedNetwork = SoftwareDefinedNetworkOVNKubernetes return doc }, input: func(base *OpenShiftClusterDocument) { - base.OpenShiftCluster.Properties.NetworkProfile.SDNProvider = SDNProviderOVNKubernetes + base.OpenShiftCluster.Properties.NetworkProfile.SoftwareDefinedNetwork = SoftwareDefinedNetworkOVNKubernetes }, }, { diff --git a/pkg/api/openshiftcluster.go b/pkg/api/openshiftcluster.go index 0d1ad58533c..dd5cb36cdde 100644 --- a/pkg/api/openshiftcluster.go +++ b/pkg/api/openshiftcluster.go @@ -194,21 +194,21 @@ type ServicePrincipalProfile struct { SPObjectID string `json:"spObjectId,omitempty"` } -// SDNProvider -type SDNProvider string +// SoftwareDefinedNetwork +type SoftwareDefinedNetwork string const ( - SDNProviderOVNKubernetes SDNProvider = "OVNKubernetes" - SDNProviderOpenShiftSDN SDNProvider = "OpenShiftSDN" + SoftwareDefinedNetworkOVNKubernetes SoftwareDefinedNetwork = "OVNKubernetes" + SoftwareDefinedNetworkOpenShiftSDN SoftwareDefinedNetwork = "OpenShiftSDN" ) // NetworkProfile represents a network profile type NetworkProfile struct { MissingFields - PodCIDR string `json:"podCidr,omitempty"` - ServiceCIDR string `json:"serviceCidr,omitempty"` - SDNProvider SDNProvider `json:"sdnProvider,omitempty"` + PodCIDR string `json:"podCidr,omitempty"` + ServiceCIDR string `json:"serviceCidr,omitempty"` + SoftwareDefinedNetwork SoftwareDefinedNetwork `json:"softwareDefinedNetwork,omitempty"` APIServerPrivateEndpointIP string `json:"privateEndpointIp,omitempty"` } diff --git a/pkg/api/v20210901preview/openshiftcluster.go b/pkg/api/v20210901preview/openshiftcluster.go index b00867bd008..b5e5d07ba84 100644 --- a/pkg/api/v20210901preview/openshiftcluster.go +++ b/pkg/api/v20210901preview/openshiftcluster.go @@ -29,7 +29,7 @@ type OpenShiftCluster struct { Location string `json:"location,omitempty"` // SystemData - The system metadata relating to this resource - SystemData SystemData `json:"systemData,omitempty"` + SystemData *SystemData `json:"systemData,omitempty"` // The resource tags. Tags Tags `json:"tags,omitempty" mutable:"true"` @@ -114,18 +114,18 @@ type ServicePrincipalProfile struct { ClientSecret string `json:"clientSecret,omitempty" mutable:"true"` } -// SDNProvider constants. -type SDNProvider string +// SoftwareDefinedNetwork constants. +type SoftwareDefinedNetwork string const ( - SDNProviderOVNKubernetes SDNProvider = "OVNKubernetes" - SDNProviderOpenShiftSDN SDNProvider = "OpenShiftSDN" + SoftwareDefinedNetworkOVNKubernetes SoftwareDefinedNetwork = "OVNKubernetes" + SoftwareDefinedNetworkOpenShiftSDN SoftwareDefinedNetwork = "OpenShiftSDN" ) // NetworkProfile represents a network profile. type NetworkProfile struct { - // The SDNProvider to use when installing the cluster. - SDNProvider SDNProvider `json:"sdnProvider,omitempty"` + // The software defined network (SDN) to use when installing the cluster. + SoftwareDefinedNetwork SoftwareDefinedNetwork `json:"softwareDefinedNetwork,omitempty"` // The CIDR used for OpenShift/Kubernetes Pods. PodCIDR string `json:"podCidr,omitempty"` diff --git a/pkg/api/v20210901preview/openshiftcluster_convert.go b/pkg/api/v20210901preview/openshiftcluster_convert.go index ef173948f61..69a796c9a5c 100644 --- a/pkg/api/v20210901preview/openshiftcluster_convert.go +++ b/pkg/api/v20210901preview/openshiftcluster_convert.go @@ -35,9 +35,9 @@ func (c *openShiftClusterConverter) ToExternal(oc *api.OpenShiftCluster) interfa ClientSecret: string(oc.Properties.ServicePrincipalProfile.ClientSecret), }, NetworkProfile: NetworkProfile{ - PodCIDR: oc.Properties.NetworkProfile.PodCIDR, - ServiceCIDR: oc.Properties.NetworkProfile.ServiceCIDR, - SDNProvider: SDNProvider(oc.Properties.NetworkProfile.SDNProvider), + PodCIDR: oc.Properties.NetworkProfile.PodCIDR, + ServiceCIDR: oc.Properties.NetworkProfile.ServiceCIDR, + SoftwareDefinedNetwork: SoftwareDefinedNetwork(oc.Properties.NetworkProfile.SoftwareDefinedNetwork), }, MasterProfile: MasterProfile{ VMSize: VMSize(oc.Properties.MasterProfile.VMSize), @@ -86,7 +86,7 @@ func (c *openShiftClusterConverter) ToExternal(oc *api.OpenShiftCluster) interfa } } - out.SystemData = SystemData{ + out.SystemData = &SystemData{ CreatedBy: oc.SystemData.CreatedBy, CreatedAt: oc.SystemData.CreatedAt, CreatedByType: CreatedByType(oc.SystemData.CreatedByType), @@ -141,7 +141,7 @@ func (c *openShiftClusterConverter) ToInternal(_oc interface{}, out *api.OpenShi out.Properties.ServicePrincipalProfile.ClientSecret = api.SecureString(oc.Properties.ServicePrincipalProfile.ClientSecret) out.Properties.NetworkProfile.PodCIDR = oc.Properties.NetworkProfile.PodCIDR out.Properties.NetworkProfile.ServiceCIDR = oc.Properties.NetworkProfile.ServiceCIDR - out.Properties.NetworkProfile.SDNProvider = api.SDNProvider(oc.Properties.NetworkProfile.SDNProvider) + out.Properties.NetworkProfile.SoftwareDefinedNetwork = api.SoftwareDefinedNetwork(oc.Properties.NetworkProfile.SoftwareDefinedNetwork) out.Properties.MasterProfile.VMSize = api.VMSize(oc.Properties.MasterProfile.VMSize) out.Properties.MasterProfile.SubnetID = oc.Properties.MasterProfile.SubnetID out.Properties.MasterProfile.EncryptionAtHost = api.EncryptionAtHost(oc.Properties.MasterProfile.EncryptionAtHost) diff --git a/pkg/api/v20210901preview/openshiftcluster_example.go b/pkg/api/v20210901preview/openshiftcluster_example.go index 0838d623f69..f2dfce860bf 100644 --- a/pkg/api/v20210901preview/openshiftcluster_example.go +++ b/pkg/api/v20210901preview/openshiftcluster_example.go @@ -17,6 +17,7 @@ func exampleOpenShiftCluster() *OpenShiftCluster { func ExampleOpenShiftClusterPatchParameter() interface{} { oc := ExampleOpenShiftClusterPutParameter().(*OpenShiftCluster) oc.Location = "" + oc.SystemData = nil return oc } @@ -34,6 +35,7 @@ func ExampleOpenShiftClusterPutParameter() interface{} { oc.Properties.APIServerProfile.URL = "" oc.Properties.APIServerProfile.IP = "" oc.Properties.IngressProfiles[0].IP = "" + oc.SystemData = nil return oc } diff --git a/pkg/api/v20210901preview/openshiftcluster_validatestatic.go b/pkg/api/v20210901preview/openshiftcluster_validatestatic.go index a99fb4af424..2ef30b83f02 100644 --- a/pkg/api/v20210901preview/openshiftcluster_validatestatic.go +++ b/pkg/api/v20210901preview/openshiftcluster_validatestatic.go @@ -210,10 +210,10 @@ func (sv *openShiftClusterStaticValidator) validateNetworkProfile(path string, n } } - switch np.SDNProvider { - case SDNProviderOVNKubernetes, SDNProviderOpenShiftSDN: + switch np.SoftwareDefinedNetwork { + case SoftwareDefinedNetworkOVNKubernetes, SoftwareDefinedNetworkOpenShiftSDN: default: - return api.NewCloudError(http.StatusBadRequest, api.CloudErrorCodeInvalidParameter, path+".sdnProvider", "The provided SDNProvider '%s' is invalid.", np.SDNProvider) + return api.NewCloudError(http.StatusBadRequest, api.CloudErrorCodeInvalidParameter, path+".SoftwareDefinedNetwork", "The provided SoftwareDefinedNetwork '%s' is invalid.", np.SoftwareDefinedNetwork) } return nil diff --git a/pkg/api/v20210901preview/openshiftcluster_validatestatic_test.go b/pkg/api/v20210901preview/openshiftcluster_validatestatic_test.go index 635f27e65be..c02a95894a4 100644 --- a/pkg/api/v20210901preview/openshiftcluster_validatestatic_test.go +++ b/pkg/api/v20210901preview/openshiftcluster_validatestatic_test.go @@ -52,7 +52,7 @@ func validOpenShiftCluster() *OpenShiftCluster { Tags: Tags{ "key": "value", }, - SystemData: SystemData{ + SystemData: &SystemData{ CreatedBy: "00000000-0000-0000-0000-000000000000", CreatedByType: CreatedByTypeApplication, CreatedAt: ×tamp, @@ -76,9 +76,9 @@ func validOpenShiftCluster() *OpenShiftCluster { ClientID: "11111111-1111-1111-1111-111111111111", }, NetworkProfile: NetworkProfile{ - PodCIDR: "10.128.0.0/14", - ServiceCIDR: "172.30.0.0/16", - SDNProvider: SDNProviderOVNKubernetes, + PodCIDR: "10.128.0.0/14", + ServiceCIDR: "172.30.0.0/16", + SoftwareDefinedNetwork: SoftwareDefinedNetworkOVNKubernetes, }, MasterProfile: MasterProfile{ VMSize: VMSizeStandardD8sV3, @@ -415,9 +415,9 @@ func TestOpenShiftClusterStaticValidateServicePrincipalProfile(t *testing.T) { func TestOpenShiftClusterStaticValidateNetworkProfile(t *testing.T) { createtests := []*validateTest{ { - name: "sdnProvider create as OpenShiftSDN", + name: "SoftwareDefinedNetwork create as OpenShiftSDN", modify: func(oc *OpenShiftCluster) { - oc.Properties.NetworkProfile.SDNProvider = SDNProviderOpenShiftSDN + oc.Properties.NetworkProfile.SoftwareDefinedNetwork = SoftwareDefinedNetworkOpenShiftSDN }, }, } @@ -469,18 +469,18 @@ func TestOpenShiftClusterStaticValidateNetworkProfile(t *testing.T) { wantErr: "400: InvalidParameter: properties.networkProfile.serviceCidr: The provided vnet CIDR '10.0.0.0/23' is invalid: must be /22 or larger.", }, { - name: "sdnProvider given as empty", + name: "SoftwareDefinedNetwork given as empty", modify: func(oc *OpenShiftCluster) { - oc.Properties.NetworkProfile.SDNProvider = "" + oc.Properties.NetworkProfile.SoftwareDefinedNetwork = "" }, - wantErr: "400: InvalidParameter: properties.networkProfile.sdnProvider: The provided SDNProvider '' is invalid.", + wantErr: "400: InvalidParameter: properties.networkProfile.SoftwareDefinedNetwork: The provided SoftwareDefinedNetwork '' is invalid.", }, { - name: "sdnProvider given InvalidOption", + name: "SoftwareDefinedNetwork given InvalidOption", modify: func(oc *OpenShiftCluster) { - oc.Properties.NetworkProfile.SDNProvider = "InvalidOption" + oc.Properties.NetworkProfile.SoftwareDefinedNetwork = "InvalidOption" }, - wantErr: "400: InvalidParameter: properties.networkProfile.sdnProvider: The provided SDNProvider 'InvalidOption' is invalid.", + wantErr: "400: InvalidParameter: properties.networkProfile.SoftwareDefinedNetwork: The provided SoftwareDefinedNetwork 'InvalidOption' is invalid.", }, } @@ -851,9 +851,11 @@ func TestOpenShiftClusterStaticValidateDelta(t *testing.T) { modify: func(oc *OpenShiftCluster) { oc.Properties.ServicePrincipalProfile.ClientSecret = "invalid" }, }, { - name: "sdnProvider should fail to change from OVNKubernetes to OpenShiftSDN", - modify: func(oc *OpenShiftCluster) { oc.Properties.NetworkProfile.SDNProvider = SDNProviderOpenShiftSDN }, - wantErr: "400: PropertyChangeNotAllowed: properties.networkProfile.sdnProvider: Changing property 'properties.networkProfile.sdnProvider' is not allowed.", + name: "SoftwareDefinedNetwork should fail to change from OVNKubernetes to OpenShiftSDN", + modify: func(oc *OpenShiftCluster) { + oc.Properties.NetworkProfile.SoftwareDefinedNetwork = SoftwareDefinedNetworkOpenShiftSDN + }, + wantErr: "400: PropertyChangeNotAllowed: properties.networkProfile.softwareDefinedNetwork: Changing property 'properties.networkProfile.softwareDefinedNetwork' is not allowed.", }, { name: "podCidr change", @@ -916,7 +918,7 @@ func TestOpenShiftClusterStaticValidateDelta(t *testing.T) { { name: "systemData set to empty", modify: func(oc *OpenShiftCluster) { - oc.SystemData = SystemData{} + oc.SystemData = &SystemData{} }, wantErr: "400: PropertyChangeNotAllowed: systemData.createdBy: Changing property 'systemData.createdBy' is not allowed.", }, diff --git a/pkg/client/services/redhatopenshift/mgmt/2020-04-30/redhatopenshift/openshiftclusters.go b/pkg/client/services/redhatopenshift/mgmt/2020-04-30/redhatopenshift/openshiftclusters.go index 64b6b4916e7..47d25784084 100644 --- a/pkg/client/services/redhatopenshift/mgmt/2020-04-30/redhatopenshift/openshiftclusters.go +++ b/pkg/client/services/redhatopenshift/mgmt/2020-04-30/redhatopenshift/openshiftclusters.go @@ -112,7 +112,6 @@ func (client OpenShiftClustersClient) CreateOrUpdatePreparer(ctx context.Context // http.Response Body if it receives an error. func (client OpenShiftClustersClient) CreateOrUpdateSender(req *http.Request) (future OpenShiftClustersCreateOrUpdateFuture, err error) { var resp *http.Response - future.FutureAPI = &azure.Future{} resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) if err != nil { return @@ -201,7 +200,6 @@ func (client OpenShiftClustersClient) DeletePreparer(ctx context.Context, resour // http.Response Body if it receives an error. func (client OpenShiftClustersClient) DeleteSender(req *http.Request) (future OpenShiftClustersDeleteFuture, err error) { var resp *http.Response - future.FutureAPI = &azure.Future{} resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) if err != nil { return @@ -709,7 +707,6 @@ func (client OpenShiftClustersClient) UpdatePreparer(ctx context.Context, resour // http.Response Body if it receives an error. func (client OpenShiftClustersClient) UpdateSender(req *http.Request) (future OpenShiftClustersUpdateFuture, err error) { var resp *http.Response - future.FutureAPI = &azure.Future{} resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) if err != nil { return diff --git a/pkg/client/services/redhatopenshift/mgmt/2021-09-01-preview/redhatopenshift/enums.go b/pkg/client/services/redhatopenshift/mgmt/2021-09-01-preview/redhatopenshift/enums.go index 75ff0f58256..0b110337485 100644 --- a/pkg/client/services/redhatopenshift/mgmt/2021-09-01-preview/redhatopenshift/enums.go +++ b/pkg/client/services/redhatopenshift/mgmt/2021-09-01-preview/redhatopenshift/enums.go @@ -51,21 +51,6 @@ func PossibleEncryptionAtHostValues() []EncryptionAtHost { return []EncryptionAtHost{Disabled, Enabled} } -// EncryptionAtHost1 enumerates the values for encryption at host 1. -type EncryptionAtHost1 string - -const ( - // EncryptionAtHost1Disabled ... - EncryptionAtHost1Disabled EncryptionAtHost1 = "Disabled" - // EncryptionAtHost1Enabled ... - EncryptionAtHost1Enabled EncryptionAtHost1 = "Enabled" -) - -// PossibleEncryptionAtHost1Values returns an array of possible values for the EncryptionAtHost1 const type. -func PossibleEncryptionAtHost1Values() []EncryptionAtHost1 { - return []EncryptionAtHost1{EncryptionAtHost1Disabled, EncryptionAtHost1Enabled} -} - // ProvisioningState enumerates the values for provisioning state. type ProvisioningState string @@ -89,19 +74,19 @@ func PossibleProvisioningStateValues() []ProvisioningState { return []ProvisioningState{AdminUpdating, Creating, Deleting, Failed, Succeeded, Updating} } -// SDNProvider enumerates the values for sdn provider. -type SDNProvider string +// SoftwareDefinedNetwork enumerates the values for software defined network. +type SoftwareDefinedNetwork string const ( // OpenShiftSDN ... - OpenShiftSDN SDNProvider = "OpenShiftSDN" + OpenShiftSDN SoftwareDefinedNetwork = "OpenShiftSDN" // OVNKubernetes ... - OVNKubernetes SDNProvider = "OVNKubernetes" + OVNKubernetes SoftwareDefinedNetwork = "OVNKubernetes" ) -// PossibleSDNProviderValues returns an array of possible values for the SDNProvider const type. -func PossibleSDNProviderValues() []SDNProvider { - return []SDNProvider{OpenShiftSDN, OVNKubernetes} +// PossibleSoftwareDefinedNetworkValues returns an array of possible values for the SoftwareDefinedNetwork const type. +func PossibleSoftwareDefinedNetworkValues() []SoftwareDefinedNetwork { + return []SoftwareDefinedNetwork{OpenShiftSDN, OVNKubernetes} } // Visibility enumerates the values for visibility. @@ -119,21 +104,6 @@ func PossibleVisibilityValues() []Visibility { return []Visibility{Private, Public} } -// Visibility1 enumerates the values for visibility 1. -type Visibility1 string - -const ( - // Visibility1Private ... - Visibility1Private Visibility1 = "Private" - // Visibility1Public ... - Visibility1Public Visibility1 = "Public" -) - -// PossibleVisibility1Values returns an array of possible values for the Visibility1 const type. -func PossibleVisibility1Values() []Visibility1 { - return []Visibility1{Visibility1Private, Visibility1Public} -} - // VMSize enumerates the values for vm size. type VMSize string diff --git a/pkg/client/services/redhatopenshift/mgmt/2021-09-01-preview/redhatopenshift/models.go b/pkg/client/services/redhatopenshift/mgmt/2021-09-01-preview/redhatopenshift/models.go index eb69a67639e..299fef2d6f4 100644 --- a/pkg/client/services/redhatopenshift/mgmt/2021-09-01-preview/redhatopenshift/models.go +++ b/pkg/client/services/redhatopenshift/mgmt/2021-09-01-preview/redhatopenshift/models.go @@ -112,8 +112,8 @@ type Display struct { type IngressProfile struct { // Name - The ingress profile name. Name *string `json:"name,omitempty"` - // Visibility - Ingress visibility. Possible values include: 'Visibility1Private', 'Visibility1Public' - Visibility Visibility1 `json:"visibility,omitempty"` + // Visibility - Ingress visibility. Possible values include: 'Private', 'Public' + Visibility Visibility `json:"visibility,omitempty"` // IP - The IP of the ingress. IP *string `json:"ip,omitempty"` } @@ -132,8 +132,8 @@ type MasterProfile struct { // NetworkProfile networkProfile represents a network profile. type NetworkProfile struct { - // SdnProvider - The SDNProvider to use when installing the cluster. Possible values include: 'OVNKubernetes', 'OpenShiftSDN' - SdnProvider SDNProvider `json:"sdnProvider,omitempty"` + // SoftwareDefinedNetwork - The software defined network (SDN) to use when installing the cluster. Possible values include: 'OVNKubernetes', 'OpenShiftSDN' + SoftwareDefinedNetwork SoftwareDefinedNetwork `json:"softwareDefinedNetwork,omitempty"` // PodCidr - The CIDR used for OpenShift/Kubernetes Pods. PodCidr *string `json:"podCidr,omitempty"` // ServiceCidr - The CIDR used for OpenShift/Kubernetes Services. @@ -901,8 +901,8 @@ type WorkerProfile struct { SubnetID *string `json:"subnetId,omitempty"` // Count - The number of worker VMs. Count *int32 `json:"count,omitempty"` - // EncryptionAtHost - Whether master virtual machines are encrypted at host. Possible values include: 'EncryptionAtHost1Disabled', 'EncryptionAtHost1Enabled' - EncryptionAtHost EncryptionAtHost1 `json:"encryptionAtHost,omitempty"` + // EncryptionAtHost - Whether master virtual machines are encrypted at host. Possible values include: 'Disabled', 'Enabled' + EncryptionAtHost EncryptionAtHost `json:"encryptionAtHost,omitempty"` // DiskEncryptionSetID - The resource ID of an associated DiskEncryptionSet, if applicable. DiskEncryptionSetID *string `json:"diskEncryptionSetId,omitempty"` } diff --git a/pkg/client/services/redhatopenshift/mgmt/2021-09-01-preview/redhatopenshift/openshiftclusters.go b/pkg/client/services/redhatopenshift/mgmt/2021-09-01-preview/redhatopenshift/openshiftclusters.go index 92398ba4395..fd292c730c6 100644 --- a/pkg/client/services/redhatopenshift/mgmt/2021-09-01-preview/redhatopenshift/openshiftclusters.go +++ b/pkg/client/services/redhatopenshift/mgmt/2021-09-01-preview/redhatopenshift/openshiftclusters.go @@ -113,7 +113,6 @@ func (client OpenShiftClustersClient) CreateOrUpdatePreparer(ctx context.Context // http.Response Body if it receives an error. func (client OpenShiftClustersClient) CreateOrUpdateSender(req *http.Request) (future OpenShiftClustersCreateOrUpdateFuture, err error) { var resp *http.Response - future.FutureAPI = &azure.Future{} resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) if err != nil { return @@ -202,7 +201,6 @@ func (client OpenShiftClustersClient) DeletePreparer(ctx context.Context, resour // http.Response Body if it receives an error. func (client OpenShiftClustersClient) DeleteSender(req *http.Request) (future OpenShiftClustersDeleteFuture, err error) { var resp *http.Response - future.FutureAPI = &azure.Future{} resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) if err != nil { return @@ -797,7 +795,6 @@ func (client OpenShiftClustersClient) UpdatePreparer(ctx context.Context, resour // http.Response Body if it receives an error. func (client OpenShiftClustersClient) UpdateSender(req *http.Request) (future OpenShiftClustersUpdateFuture, err error) { var resp *http.Response - future.FutureAPI = &azure.Future{} resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) if err != nil { return diff --git a/pkg/cluster/generateconfig.go b/pkg/cluster/generateconfig.go index 1280e052062..647b87d182f 100644 --- a/pkg/cluster/generateconfig.go +++ b/pkg/cluster/generateconfig.go @@ -100,9 +100,9 @@ func (m *manager) generateInstallConfig(ctx context.Context) (*installconfig.Ins workerZones = []string{""} } - SDNProvider := string(api.SDNProviderOpenShiftSDN) - if m.doc.OpenShiftCluster.Properties.NetworkProfile.SDNProvider != "" { - SDNProvider = string(m.doc.OpenShiftCluster.Properties.NetworkProfile.SDNProvider) + SoftwareDefinedNetwork := string(api.SoftwareDefinedNetworkOpenShiftSDN) + if m.doc.OpenShiftCluster.Properties.NetworkProfile.SoftwareDefinedNetwork != "" { + SoftwareDefinedNetwork = string(m.doc.OpenShiftCluster.Properties.NetworkProfile.SoftwareDefinedNetwork) } installConfig := &installconfig.InstallConfig{ @@ -121,7 +121,7 @@ func (m *manager) generateInstallConfig(ctx context.Context) (*installconfig.Ins CIDR: *ipnet.MustParseCIDR("127.0.0.0/8"), // dummy }, }, - NetworkType: SDNProvider, + NetworkType: SoftwareDefinedNetwork, ClusterNetwork: []types.ClusterNetworkEntry{ { CIDR: *ipnet.MustParseCIDR(m.doc.OpenShiftCluster.Properties.NetworkProfile.PodCIDR), diff --git a/pkg/frontend/openshiftcluster_putorpatch_test.go b/pkg/frontend/openshiftcluster_putorpatch_test.go index a68d2a4f2ab..241e8469d22 100644 --- a/pkg/frontend/openshiftcluster_putorpatch_test.go +++ b/pkg/frontend/openshiftcluster_putorpatch_test.go @@ -105,7 +105,7 @@ func TestPutOrPatchOpenShiftClusterAdminAPI(t *testing.T) { ProvisioningState: api.ProvisioningStateAdminUpdating, LastProvisioningState: api.ProvisioningStateSucceeded, NetworkProfile: api.NetworkProfile{ - SDNProvider: api.SDNProviderOpenShiftSDN, + SoftwareDefinedNetwork: api.SoftwareDefinedNetworkOpenShiftSDN, }, MasterProfile: api.MasterProfile{ EncryptionAtHost: api.EncryptionAtHostDisabled, @@ -124,7 +124,7 @@ func TestPutOrPatchOpenShiftClusterAdminAPI(t *testing.T) { ProvisioningState: admin.ProvisioningStateAdminUpdating, LastProvisioningState: admin.ProvisioningStateSucceeded, NetworkProfile: admin.NetworkProfile{ - SDNProvider: admin.SDNProviderOpenShiftSDN, + SoftwareDefinedNetwork: admin.SoftwareDefinedNetworkOpenShiftSDN, }, MasterProfile: admin.MasterProfile{ EncryptionAtHost: admin.EncryptionAtHostDisabled, @@ -190,7 +190,7 @@ func TestPutOrPatchOpenShiftClusterAdminAPI(t *testing.T) { Domain: "changed", }, NetworkProfile: api.NetworkProfile{ - SDNProvider: api.SDNProviderOpenShiftSDN, + SoftwareDefinedNetwork: api.SoftwareDefinedNetworkOpenShiftSDN, }, MasterProfile: api.MasterProfile{ EncryptionAtHost: api.EncryptionAtHostDisabled, @@ -213,7 +213,7 @@ func TestPutOrPatchOpenShiftClusterAdminAPI(t *testing.T) { Domain: "changed", }, NetworkProfile: admin.NetworkProfile{ - SDNProvider: admin.SDNProviderOpenShiftSDN, + SoftwareDefinedNetwork: admin.SoftwareDefinedNetworkOpenShiftSDN, }, MasterProfile: admin.MasterProfile{ EncryptionAtHost: admin.EncryptionAtHostDisabled, @@ -381,7 +381,7 @@ func TestPutOrPatchOpenShiftCluster(t *testing.T) { Version: "4.3.0", }, NetworkProfile: api.NetworkProfile{ - SDNProvider: api.SDNProviderOpenShiftSDN, + SoftwareDefinedNetwork: api.SoftwareDefinedNetworkOpenShiftSDN, }, MasterProfile: api.MasterProfile{ EncryptionAtHost: api.EncryptionAtHostDisabled, @@ -438,7 +438,7 @@ func TestPutOrPatchOpenShiftCluster(t *testing.T) { ClientSecret: "will-be-kept", }, NetworkProfile: api.NetworkProfile{ - SDNProvider: api.SDNProviderOpenShiftSDN, + SoftwareDefinedNetwork: api.SoftwareDefinedNetworkOpenShiftSDN, }, MasterProfile: api.MasterProfile{ EncryptionAtHost: api.EncryptionAtHostDisabled, @@ -474,7 +474,7 @@ func TestPutOrPatchOpenShiftCluster(t *testing.T) { ClientSecret: "will-be-kept", }, NetworkProfile: api.NetworkProfile{ - SDNProvider: api.SDNProviderOpenShiftSDN, + SoftwareDefinedNetwork: api.SoftwareDefinedNetworkOpenShiftSDN, }, MasterProfile: api.MasterProfile{ EncryptionAtHost: api.EncryptionAtHostDisabled, @@ -552,7 +552,7 @@ func TestPutOrPatchOpenShiftCluster(t *testing.T) { Domain: "changed", }, NetworkProfile: api.NetworkProfile{ - SDNProvider: api.SDNProviderOpenShiftSDN, + SoftwareDefinedNetwork: api.SoftwareDefinedNetworkOpenShiftSDN, }, MasterProfile: api.MasterProfile{ EncryptionAtHost: api.EncryptionAtHostDisabled, @@ -601,7 +601,7 @@ func TestPutOrPatchOpenShiftCluster(t *testing.T) { ProvisioningState: api.ProvisioningStateFailed, FailedProvisioningState: api.ProvisioningStateCreating, NetworkProfile: api.NetworkProfile{ - SDNProvider: api.SDNProviderOpenShiftSDN, + SoftwareDefinedNetwork: api.SoftwareDefinedNetworkOpenShiftSDN, }, MasterProfile: api.MasterProfile{ EncryptionAtHost: api.EncryptionAtHostDisabled, @@ -638,7 +638,7 @@ func TestPutOrPatchOpenShiftCluster(t *testing.T) { ProvisioningState: api.ProvisioningStateFailed, FailedProvisioningState: api.ProvisioningStateDeleting, NetworkProfile: api.NetworkProfile{ - SDNProvider: api.SDNProviderOpenShiftSDN, + SoftwareDefinedNetwork: api.SoftwareDefinedNetworkOpenShiftSDN, }, MasterProfile: api.MasterProfile{ EncryptionAtHost: api.EncryptionAtHostDisabled, @@ -685,7 +685,7 @@ func TestPutOrPatchOpenShiftCluster(t *testing.T) { }, }, NetworkProfile: api.NetworkProfile{ - SDNProvider: api.SDNProviderOpenShiftSDN, + SoftwareDefinedNetwork: api.SoftwareDefinedNetworkOpenShiftSDN, }, MasterProfile: api.MasterProfile{ EncryptionAtHost: api.EncryptionAtHostDisabled, @@ -724,7 +724,7 @@ func TestPutOrPatchOpenShiftCluster(t *testing.T) { }, }, NetworkProfile: api.NetworkProfile{ - SDNProvider: api.SDNProviderOpenShiftSDN, + SoftwareDefinedNetwork: api.SoftwareDefinedNetworkOpenShiftSDN, }, MasterProfile: api.MasterProfile{ EncryptionAtHost: api.EncryptionAtHostDisabled, @@ -785,7 +785,7 @@ func TestPutOrPatchOpenShiftCluster(t *testing.T) { }, }, NetworkProfile: api.NetworkProfile{ - SDNProvider: api.SDNProviderOpenShiftSDN, + SoftwareDefinedNetwork: api.SoftwareDefinedNetworkOpenShiftSDN, }, MasterProfile: api.MasterProfile{ EncryptionAtHost: api.EncryptionAtHostDisabled, @@ -825,7 +825,7 @@ func TestPutOrPatchOpenShiftCluster(t *testing.T) { }, }, NetworkProfile: api.NetworkProfile{ - SDNProvider: api.SDNProviderOpenShiftSDN, + SoftwareDefinedNetwork: api.SoftwareDefinedNetworkOpenShiftSDN, }, MasterProfile: api.MasterProfile{ EncryptionAtHost: api.EncryptionAtHostDisabled, @@ -878,7 +878,7 @@ func TestPutOrPatchOpenShiftCluster(t *testing.T) { ProvisioningState: api.ProvisioningStateFailed, FailedProvisioningState: api.ProvisioningStateCreating, NetworkProfile: api.NetworkProfile{ - SDNProvider: api.SDNProviderOpenShiftSDN, + SoftwareDefinedNetwork: api.SoftwareDefinedNetworkOpenShiftSDN, }, MasterProfile: api.MasterProfile{ EncryptionAtHost: api.EncryptionAtHostDisabled, @@ -916,7 +916,7 @@ func TestPutOrPatchOpenShiftCluster(t *testing.T) { ProvisioningState: api.ProvisioningStateFailed, FailedProvisioningState: api.ProvisioningStateDeleting, NetworkProfile: api.NetworkProfile{ - SDNProvider: api.SDNProviderOpenShiftSDN, + SoftwareDefinedNetwork: api.SoftwareDefinedNetworkOpenShiftSDN, }, MasterProfile: api.MasterProfile{ EncryptionAtHost: api.EncryptionAtHostDisabled, @@ -958,7 +958,7 @@ func TestPutOrPatchOpenShiftCluster(t *testing.T) { ResourceGroupID: fmt.Sprintf("/subscriptions/%s/resourcegroups/aro-vjb21wca", mockSubID), }, NetworkProfile: api.NetworkProfile{ - SDNProvider: api.SDNProviderOpenShiftSDN, + SoftwareDefinedNetwork: api.SoftwareDefinedNetworkOpenShiftSDN, }, MasterProfile: api.MasterProfile{ EncryptionAtHost: api.EncryptionAtHostDisabled, @@ -1000,7 +1000,7 @@ func TestPutOrPatchOpenShiftCluster(t *testing.T) { Version: "4.3.0", }, NetworkProfile: api.NetworkProfile{ - SDNProvider: api.SDNProviderOpenShiftSDN, + SoftwareDefinedNetwork: api.SoftwareDefinedNetworkOpenShiftSDN, }, MasterProfile: api.MasterProfile{ EncryptionAtHost: api.EncryptionAtHostDisabled, diff --git a/pkg/swagger/generator.go b/pkg/swagger/generator.go index 53cd8a676d8..36b1c5287b3 100644 --- a/pkg/swagger/generator.go +++ b/pkg/swagger/generator.go @@ -26,6 +26,7 @@ type generator struct { systemData bool kubeConfig bool xmsEnum []string + xmsSecretList []string commonTypesVersion string } @@ -50,7 +51,8 @@ var apis = map[string]*generator{ exampleOpenShiftClusterAdminKubeconfigResponse: v20210901preview.ExampleOpenShiftClusterAdminKubeconfigResponse, exampleOperationListResponse: api.ExampleOperationListResponse, - xmsEnum: []string{"VMSize", "SDNProvider"}, + xmsEnum: []string{"VMSize", "SoftwareDefinedNetwork", "EncryptionAtHost", "Visibility"}, + xmsSecretList: []string{"kubeconfig", "kubeadminPassword"}, commonTypesVersion: "v2", systemData: true, kubeConfig: true, diff --git a/pkg/swagger/swagger.go b/pkg/swagger/swagger.go index 9f5bf182f20..f0738619207 100644 --- a/pkg/swagger/swagger.go +++ b/pkg/swagger/swagger.go @@ -95,13 +95,13 @@ func Run(api, outputDir string) error { names = append(names, "OpenShiftClusterAdminKubeconfig") } - err = define(s.Definitions, api, g.xmsEnum, names...) + err = define(s.Definitions, api, g.xmsEnum, g.xmsSecretList, names...) if err != nil { return err } names = []string{"CloudError", "OperationList"} - err = define(s.Definitions, "github.com/Azure/ARO-RP/pkg/api", g.xmsEnum, names...) + err = define(s.Definitions, "github.com/Azure/ARO-RP/pkg/api", g.xmsEnum, g.xmsSecretList, names...) if err != nil { return err } diff --git a/pkg/swagger/types.go b/pkg/swagger/types.go index 93c5677e0f0..f6c9081ade4 100644 --- a/pkg/swagger/types.go +++ b/pkg/swagger/types.go @@ -247,6 +247,7 @@ type Schema struct { ClientFlatten bool `json:"x-ms-client-flatten,omitempty"` XMSEnum *XMSEnum `json:"x-ms-enum,omitempty"` + XMSSecret bool `json:"x-ms-secret,omitempty"` } // XMSEnum is x-ms-enum swagger extension adding the ability to generate static enums diff --git a/pkg/swagger/typewalker.go b/pkg/swagger/typewalker.go index 2c41b1efe64..0c2db705676 100644 --- a/pkg/swagger/typewalker.go +++ b/pkg/swagger/typewalker.go @@ -20,12 +20,13 @@ import ( type ModelAsString bool type typeWalker struct { - pkg *packages.Package - enums map[types.Type][]interface{} - xmsEnumList []string + pkg *packages.Package + enums map[types.Type][]interface{} + xmsEnumList []string + xmsSecretList []string } -func newTypeWalker(pkgname string, xmsEnumList []string) (*typeWalker, error) { +func newTypeWalker(pkgname string, xmsEnumList, xmsSecretList []string) (*typeWalker, error) { pkgs, err := packages.Load(&packages.Config{Mode: packages.NeedSyntax | packages.NeedTypes | packages.NeedTypesInfo}, pkgname) if err != nil { return nil, err @@ -35,9 +36,10 @@ func newTypeWalker(pkgname string, xmsEnumList []string) (*typeWalker, error) { } tw := &typeWalker{ - pkg: pkgs[0], - enums: map[types.Type][]interface{}{}, - xmsEnumList: xmsEnumList, + pkg: pkgs[0], + enums: map[types.Type][]interface{}{}, + xmsEnumList: xmsEnumList, + xmsSecretList: xmsSecretList, } // populate enums: walk all types declared at package scope @@ -117,7 +119,7 @@ func (tw *typeWalker) schemaFromType(t types.Type, deps map[*types.Named]struct{ } case *types.Struct: - + s.Type = "object" for i := 0; i < t.NumFields(); i++ { field := t.Field(i) if field.Exported() { @@ -133,11 +135,19 @@ func (tw *typeWalker) schemaFromType(t types.Type, deps map[*types.Named]struct{ properties := tw.schemaFromType(field.Type(), deps) properties.Description = strings.Trim(node.Doc.Text(), "\n") - s.Properties = append(s.Properties, NameSchema{ + ns := NameSchema{ Name: name, Schema: properties, - }) + } + + for _, xname := range tw.xmsSecretList { + if xname == name { + ns.Schema.XMSSecret = true + } + } + s.Properties = append(s.Properties, ns) } + } default: @@ -189,8 +199,8 @@ func (tw *typeWalker) define(definitions Definitions, name string) { } // define adds a Definition for the named types in the given package -func define(definitions Definitions, pkgname string, xmsEnumList []string, names ...string) error { - th, err := newTypeWalker(pkgname, xmsEnumList) +func define(definitions Definitions, pkgname string, xmsEnumList, xmsSecretList []string, names ...string) error { + th, err := newTypeWalker(pkgname, xmsEnumList, xmsSecretList) if err != nil { return err } diff --git a/pkg/util/cluster/cluster.go b/pkg/util/cluster/cluster.go index 5525bca16c0..7e7452ea941 100644 --- a/pkg/util/cluster/cluster.go +++ b/pkg/util/cluster/cluster.go @@ -351,9 +351,9 @@ func (c *Cluster) createCluster(ctx context.Context, vnetResourceGroup, clusterN ClientSecret: api.SecureString(clientSecret), }, NetworkProfile: api.NetworkProfile{ - PodCIDR: "10.128.0.0/14", - ServiceCIDR: "172.30.0.0/16", - SDNProvider: api.SDNProviderOVNKubernetes, + PodCIDR: "10.128.0.0/14", + ServiceCIDR: "172.30.0.0/16", + SoftwareDefinedNetwork: api.SoftwareDefinedNetworkOVNKubernetes, }, MasterProfile: api.MasterProfile{ VMSize: api.VMSizeStandardD8sV3, diff --git a/python/client/azure/__init__.py b/python/client/azure/__init__.py index 0d1f7edf5dc..5960c353a89 100644 --- a/python/client/azure/__init__.py +++ b/python/client/azure/__init__.py @@ -1 +1 @@ -__path__ = __import__('pkgutil').extend_path(__path__, __name__) # type: ignore +__path__ = __import__('pkgutil').extend_path(__path__, __name__) # type: ignore \ No newline at end of file diff --git a/python/client/azure/mgmt/__init__.py b/python/client/azure/mgmt/__init__.py index 0d1f7edf5dc..5960c353a89 100644 --- a/python/client/azure/mgmt/__init__.py +++ b/python/client/azure/mgmt/__init__.py @@ -1 +1 @@ -__path__ = __import__('pkgutil').extend_path(__path__, __name__) # type: ignore +__path__ = __import__('pkgutil').extend_path(__path__, __name__) # type: ignore \ No newline at end of file diff --git a/python/client/azure/mgmt/redhatopenshift/__init__.py b/python/client/azure/mgmt/redhatopenshift/__init__.py index 0d1f7edf5dc..5960c353a89 100644 --- a/python/client/azure/mgmt/redhatopenshift/__init__.py +++ b/python/client/azure/mgmt/redhatopenshift/__init__.py @@ -1 +1 @@ -__path__ = __import__('pkgutil').extend_path(__path__, __name__) # type: ignore +__path__ = __import__('pkgutil').extend_path(__path__, __name__) # type: ignore \ No newline at end of file diff --git a/python/client/azure/mgmt/redhatopenshift/v2021_09_01_preview/models/__init__.py b/python/client/azure/mgmt/redhatopenshift/v2021_09_01_preview/models/__init__.py index b16a6ab409c..7d1854d6a7a 100644 --- a/python/client/azure/mgmt/redhatopenshift/v2021_09_01_preview/models/__init__.py +++ b/python/client/azure/mgmt/redhatopenshift/v2021_09_01_preview/models/__init__.py @@ -61,7 +61,7 @@ CreatedByType, EncryptionAtHost, ProvisioningState, - SDNProvider, + SoftwareDefinedNetwork, VMSize, Visibility, ) @@ -90,7 +90,7 @@ 'CreatedByType', 'EncryptionAtHost', 'ProvisioningState', - 'SDNProvider', + 'SoftwareDefinedNetwork', 'VMSize', 'Visibility', ] diff --git a/python/client/azure/mgmt/redhatopenshift/v2021_09_01_preview/models/_azure_red_hat_open_shift_client_enums.py b/python/client/azure/mgmt/redhatopenshift/v2021_09_01_preview/models/_azure_red_hat_open_shift_client_enums.py index 63c282816dd..462e4b71dbb 100644 --- a/python/client/azure/mgmt/redhatopenshift/v2021_09_01_preview/models/_azure_red_hat_open_shift_client_enums.py +++ b/python/client/azure/mgmt/redhatopenshift/v2021_09_01_preview/models/_azure_red_hat_open_shift_client_enums.py @@ -61,8 +61,8 @@ class ProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): SUCCEEDED = "Succeeded" UPDATING = "Updating" -class SDNProvider(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """SDNProvider constants. +class SoftwareDefinedNetwork(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """SoftwareDefinedNetwork constants. """ OVN_KUBERNETES = "OVNKubernetes" diff --git a/python/client/azure/mgmt/redhatopenshift/v2021_09_01_preview/models/_models.py b/python/client/azure/mgmt/redhatopenshift/v2021_09_01_preview/models/_models.py index 5b296e1e31e..2e7e61ecb15 100644 --- a/python/client/azure/mgmt/redhatopenshift/v2021_09_01_preview/models/_models.py +++ b/python/client/azure/mgmt/redhatopenshift/v2021_09_01_preview/models/_models.py @@ -229,9 +229,10 @@ def __init__( class NetworkProfile(msrest.serialization.Model): """NetworkProfile represents a network profile. - :param sdn_provider: The SDNProvider to use when installing the cluster. Possible values - include: "OVNKubernetes", "OpenShiftSDN". - :type sdn_provider: str or ~azure.mgmt.redhatopenshift.v2021_09_01_preview.models.SDNProvider + :param software_defined_network: The software defined network (SDN) to use when installing the + cluster. Possible values include: "OVNKubernetes", "OpenShiftSDN". + :type software_defined_network: str or + ~azure.mgmt.redhatopenshift.v2021_09_01_preview.models.SoftwareDefinedNetwork :param pod_cidr: The CIDR used for OpenShift/Kubernetes Pods. :type pod_cidr: str :param service_cidr: The CIDR used for OpenShift/Kubernetes Services. @@ -239,7 +240,7 @@ class NetworkProfile(msrest.serialization.Model): """ _attribute_map = { - 'sdn_provider': {'key': 'sdnProvider', 'type': 'str'}, + 'software_defined_network': {'key': 'softwareDefinedNetwork', 'type': 'str'}, 'pod_cidr': {'key': 'podCidr', 'type': 'str'}, 'service_cidr': {'key': 'serviceCidr', 'type': 'str'}, } @@ -249,7 +250,7 @@ def __init__( **kwargs ): super(NetworkProfile, self).__init__(**kwargs) - self.sdn_provider = kwargs.get('sdn_provider', None) + self.software_defined_network = kwargs.get('software_defined_network', None) self.pod_cidr = kwargs.get('pod_cidr', None) self.service_cidr = kwargs.get('service_cidr', None) diff --git a/python/client/azure/mgmt/redhatopenshift/v2021_09_01_preview/models/_models_py3.py b/python/client/azure/mgmt/redhatopenshift/v2021_09_01_preview/models/_models_py3.py index e7372fcca35..ff2a8610b4a 100644 --- a/python/client/azure/mgmt/redhatopenshift/v2021_09_01_preview/models/_models_py3.py +++ b/python/client/azure/mgmt/redhatopenshift/v2021_09_01_preview/models/_models_py3.py @@ -264,9 +264,10 @@ def __init__( class NetworkProfile(msrest.serialization.Model): """NetworkProfile represents a network profile. - :param sdn_provider: The SDNProvider to use when installing the cluster. Possible values - include: "OVNKubernetes", "OpenShiftSDN". - :type sdn_provider: str or ~azure.mgmt.redhatopenshift.v2021_09_01_preview.models.SDNProvider + :param software_defined_network: The software defined network (SDN) to use when installing the + cluster. Possible values include: "OVNKubernetes", "OpenShiftSDN". + :type software_defined_network: str or + ~azure.mgmt.redhatopenshift.v2021_09_01_preview.models.SoftwareDefinedNetwork :param pod_cidr: The CIDR used for OpenShift/Kubernetes Pods. :type pod_cidr: str :param service_cidr: The CIDR used for OpenShift/Kubernetes Services. @@ -274,7 +275,7 @@ class NetworkProfile(msrest.serialization.Model): """ _attribute_map = { - 'sdn_provider': {'key': 'sdnProvider', 'type': 'str'}, + 'software_defined_network': {'key': 'softwareDefinedNetwork', 'type': 'str'}, 'pod_cidr': {'key': 'podCidr', 'type': 'str'}, 'service_cidr': {'key': 'serviceCidr', 'type': 'str'}, } @@ -282,13 +283,13 @@ class NetworkProfile(msrest.serialization.Model): def __init__( self, *, - sdn_provider: Optional[Union[str, "SDNProvider"]] = None, + software_defined_network: Optional[Union[str, "SoftwareDefinedNetwork"]] = None, pod_cidr: Optional[str] = None, service_cidr: Optional[str] = None, **kwargs ): super(NetworkProfile, self).__init__(**kwargs) - self.sdn_provider = sdn_provider + self.software_defined_network = software_defined_network self.pod_cidr = pod_cidr self.service_cidr = service_cidr diff --git a/python/client/azure/mgmt/redhatopenshift/v2021_09_01_preview/py.typed b/python/client/azure/mgmt/redhatopenshift/v2021_09_01_preview/py.typed index 1242d432770..e5aff4f83af 100644 --- a/python/client/azure/mgmt/redhatopenshift/v2021_09_01_preview/py.typed +++ b/python/client/azure/mgmt/redhatopenshift/v2021_09_01_preview/py.typed @@ -1 +1 @@ -# Marker file for PEP 561. +# Marker file for PEP 561. \ No newline at end of file diff --git a/swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/preview/2021-09-01-preview/examples/OpenShiftClusters_CreateOrUpdate.json b/swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/preview/2021-09-01-preview/examples/OpenShiftClusters_CreateOrUpdate.json index 5def6132c18..3a414cb7bec 100644 --- a/swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/preview/2021-09-01-preview/examples/OpenShiftClusters_CreateOrUpdate.json +++ b/swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/preview/2021-09-01-preview/examples/OpenShiftClusters_CreateOrUpdate.json @@ -6,14 +6,6 @@ "resourceName": "resourceName", "parameters": { "location": "location", - "systemData": { - "createdBy": "string", - "createdByType": "Application", - "createdAt": "2020-02-03T01:01:01.1075056Z", - "lastModifiedBy": "string", - "lastModifiedByType": "Application", - "lastModifiedAt": "2020-02-03T01:01:01.1075056Z" - }, "tags": { "key": "value" }, diff --git a/swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/preview/2021-09-01-preview/examples/OpenShiftClusters_Update.json b/swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/preview/2021-09-01-preview/examples/OpenShiftClusters_Update.json index 65dc498ee8c..7dea98ed20c 100644 --- a/swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/preview/2021-09-01-preview/examples/OpenShiftClusters_Update.json +++ b/swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/preview/2021-09-01-preview/examples/OpenShiftClusters_Update.json @@ -5,14 +5,6 @@ "resourceGroupName": "resourceGroup", "resourceName": "resourceName", "parameters": { - "systemData": { - "createdBy": "string", - "createdByType": "Application", - "createdAt": "2020-02-03T01:01:01.1075056Z", - "lastModifiedBy": "string", - "lastModifiedByType": "Application", - "lastModifiedAt": "2020-02-03T01:01:01.1075056Z" - }, "tags": { "key": "value" }, diff --git a/swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/preview/2021-09-01-preview/redhatopenshift.json b/swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/preview/2021-09-01-preview/redhatopenshift.json index c317c1c378b..c23f0e6f95d 100644 --- a/swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/preview/2021-09-01-preview/redhatopenshift.json +++ b/swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/preview/2021-09-01-preview/redhatopenshift.json @@ -449,6 +449,7 @@ "definitions": { "APIServerProfile": { "description": "APIServerProfile represents an API server profile.", + "type": "object", "properties": { "visibility": { "$ref": "#/definitions/Visibility", @@ -466,6 +467,7 @@ }, "CloudError": { "description": "CloudError represents a cloud error.", + "type": "object", "properties": { "error": { "$ref": "#/definitions/CloudErrorBody", @@ -475,6 +477,7 @@ }, "CloudErrorBody": { "description": "CloudErrorBody represents the body of a cloud error.", + "type": "object", "properties": { "code": { "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically.", @@ -499,6 +502,7 @@ }, "ClusterProfile": { "description": "ClusterProfile represents a cluster profile.", + "type": "object", "properties": { "pullSecret": { "description": "The pull secret for the cluster.", @@ -520,6 +524,7 @@ }, "ConsoleProfile": { "description": "ConsoleProfile represents a console profile.", + "type": "object", "properties": { "url": { "description": "The URL to access the cluster console.", @@ -529,6 +534,7 @@ }, "Display": { "description": "Display represents the display details of an operation.", + "type": "object", "properties": { "provider": { "description": "Friendly name of the resource provider.", @@ -554,10 +560,15 @@ "Disabled", "Enabled" ], - "type": "string" + "type": "string", + "x-ms-enum": { + "name": "EncryptionAtHost", + "modelAsString": true + } }, "IngressProfile": { "description": "IngressProfile represents an ingress profile.", + "type": "object", "properties": { "name": { "description": "The ingress profile name.", @@ -575,6 +586,7 @@ }, "MasterProfile": { "description": "MasterProfile represents a master profile.", + "type": "object", "properties": { "vmSize": { "$ref": "#/definitions/VMSize", @@ -596,10 +608,11 @@ }, "NetworkProfile": { "description": "NetworkProfile represents a network profile.", + "type": "object", "properties": { - "sdnProvider": { - "$ref": "#/definitions/SDNProvider", - "description": "The SDNProvider to use when installing the cluster." + "softwareDefinedNetwork": { + "$ref": "#/definitions/SoftwareDefinedNetwork", + "description": "The software defined network (SDN) to use when installing the cluster." }, "podCidr": { "description": "The CIDR used for OpenShift/Kubernetes Pods.", @@ -613,6 +626,7 @@ }, "OpenShiftCluster": { "description": "OpenShiftCluster represents an Azure Red Hat OpenShift cluster.", + "type": "object", "allOf": [ { "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/TrackedResource" @@ -633,15 +647,18 @@ }, "OpenShiftClusterAdminKubeconfig": { "description": "OpenShiftClusterAdminKubeconfig represents an OpenShift cluster's admin kubeconfig.", + "type": "object", "properties": { "kubeconfig": { "description": "The base64-encoded kubeconfig file.", - "type": "string" + "type": "string", + "x-ms-secret": true } } }, "OpenShiftClusterCredentials": { "description": "OpenShiftClusterCredentials represents an OpenShift cluster's credentials.", + "type": "object", "properties": { "kubeadminUsername": { "description": "The username for the kubeadmin user.", @@ -649,12 +666,14 @@ }, "kubeadminPassword": { "description": "The password for the kubeadmin user.", - "type": "string" + "type": "string", + "x-ms-secret": true } } }, "OpenShiftClusterList": { "description": "OpenShiftClusterList represents a list of OpenShift clusters.", + "type": "object", "properties": { "value": { "description": "The list of OpenShift clusters.", @@ -671,6 +690,7 @@ }, "OpenShiftClusterProperties": { "description": "OpenShiftClusterProperties represents an OpenShift cluster's properties.", + "type": "object", "properties": { "provisioningState": { "$ref": "#/definitions/ProvisioningState", @@ -718,6 +738,7 @@ }, "OpenShiftClusterUpdate": { "description": "OpenShiftCluster represents an Azure Red Hat OpenShift cluster.", + "type": "object", "properties": { "tags": { "$ref": "#/definitions/Tags", @@ -737,6 +758,7 @@ }, "Operation": { "description": "Operation represents an RP operation.", + "type": "object", "properties": { "name": { "description": "Operation name: {provider}/{resource}/{operation}.", @@ -754,6 +776,7 @@ }, "OperationList": { "description": "OperationList represents an RP operation list.", + "type": "object", "properties": { "value": { "description": "List of operations supported by the resource provider.", @@ -780,20 +803,9 @@ ], "type": "string" }, - "SDNProvider": { - "description": "SDNProvider constants.", - "enum": [ - "OVNKubernetes", - "OpenShiftSDN" - ], - "type": "string", - "x-ms-enum": { - "name": "SDNProvider", - "modelAsString": true - } - }, "ServicePrincipalProfile": { "description": "ServicePrincipalProfile represents a service principal profile.", + "type": "object", "properties": { "clientId": { "description": "The client ID used for the cluster.", @@ -805,6 +817,18 @@ } } }, + "SoftwareDefinedNetwork": { + "description": "SoftwareDefinedNetwork constants.", + "enum": [ + "OVNKubernetes", + "OpenShiftSDN" + ], + "type": "string", + "x-ms-enum": { + "name": "SoftwareDefinedNetwork", + "modelAsString": true + } + }, "Tags": { "description": "Tags represents an OpenShift cluster's tags.", "type": "object", @@ -851,10 +875,15 @@ "Private", "Public" ], - "type": "string" + "type": "string", + "x-ms-enum": { + "name": "Visibility", + "modelAsString": true + } }, "WorkerProfile": { "description": "WorkerProfile represents a worker profile.", + "type": "object", "properties": { "name": { "description": "The worker profile name.", diff --git a/swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/stable/2020-04-30/redhatopenshift.json b/swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/stable/2020-04-30/redhatopenshift.json index 80589312f3a..b65fb71da15 100644 --- a/swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/stable/2020-04-30/redhatopenshift.json +++ b/swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/stable/2020-04-30/redhatopenshift.json @@ -402,6 +402,7 @@ "definitions": { "APIServerProfile": { "description": "APIServerProfile represents an API server profile.", + "type": "object", "properties": { "visibility": { "$ref": "#/definitions/Visibility", @@ -419,6 +420,7 @@ }, "CloudError": { "description": "CloudError represents a cloud error.", + "type": "object", "properties": { "error": { "$ref": "#/definitions/CloudErrorBody", @@ -428,6 +430,7 @@ }, "CloudErrorBody": { "description": "CloudErrorBody represents the body of a cloud error.", + "type": "object", "properties": { "code": { "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically.", @@ -452,6 +455,7 @@ }, "ClusterProfile": { "description": "ClusterProfile represents a cluster profile.", + "type": "object", "properties": { "pullSecret": { "description": "The pull secret for the cluster.", @@ -473,6 +477,7 @@ }, "ConsoleProfile": { "description": "ConsoleProfile represents a console profile.", + "type": "object", "properties": { "url": { "description": "The URL to access the cluster console.", @@ -482,6 +487,7 @@ }, "Display": { "description": "Display represents the display details of an operation.", + "type": "object", "properties": { "provider": { "description": "Friendly name of the resource provider.", @@ -503,6 +509,7 @@ }, "IngressProfile": { "description": "IngressProfile represents an ingress profile.", + "type": "object", "properties": { "name": { "description": "The ingress profile name.", @@ -520,6 +527,7 @@ }, "MasterProfile": { "description": "MasterProfile represents a master profile.", + "type": "object", "properties": { "vmSize": { "$ref": "#/definitions/VMSize", @@ -533,6 +541,7 @@ }, "NetworkProfile": { "description": "NetworkProfile represents a network profile.", + "type": "object", "properties": { "podCidr": { "description": "The CIDR used for OpenShift/Kubernetes Pods.", @@ -546,6 +555,7 @@ }, "OpenShiftCluster": { "description": "OpenShiftCluster represents an Azure Red Hat OpenShift cluster.", + "type": "object", "allOf": [ { "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource" @@ -561,6 +571,7 @@ }, "OpenShiftClusterCredentials": { "description": "OpenShiftClusterCredentials represents an OpenShift cluster's credentials.", + "type": "object", "properties": { "kubeadminUsername": { "description": "The username for the kubeadmin user.", @@ -574,6 +585,7 @@ }, "OpenShiftClusterList": { "description": "OpenShiftClusterList represents a list of OpenShift clusters.", + "type": "object", "properties": { "value": { "description": "The list of OpenShift clusters.", @@ -590,6 +602,7 @@ }, "OpenShiftClusterProperties": { "description": "OpenShiftClusterProperties represents an OpenShift cluster's properties.", + "type": "object", "properties": { "provisioningState": { "$ref": "#/definitions/ProvisioningState", @@ -637,6 +650,7 @@ }, "OpenShiftClusterUpdate": { "description": "OpenShiftCluster represents an Azure Red Hat OpenShift cluster.", + "type": "object", "properties": { "tags": { "$ref": "#/definitions/Tags", @@ -651,6 +665,7 @@ }, "Operation": { "description": "Operation represents an RP operation.", + "type": "object", "properties": { "name": { "description": "Operation name: {provider}/{resource}/{operation}.", @@ -668,6 +683,7 @@ }, "OperationList": { "description": "OperationList represents an RP operation list.", + "type": "object", "properties": { "value": { "description": "List of operations supported by the resource provider.", @@ -696,6 +712,7 @@ }, "ServicePrincipalProfile": { "description": "ServicePrincipalProfile represents a service principal profile.", + "type": "object", "properties": { "clientId": { "description": "The client ID used for the cluster.", @@ -747,6 +764,7 @@ }, "WorkerProfile": { "description": "WorkerProfile represents a worker profile.", + "type": "object", "properties": { "name": { "description": "The worker profile name.",