зеркало из https://github.com/Azure/ARO-RP.git
use visibility enum instead of private bool
This commit is contained in:
Родитель
a7b058f647
Коммит
6a359dbe8a
|
@ -1 +1 @@
|
|||
3e74ae0b44d701ee0d77c72b50ff31de165f255fe434307ef8a339d99e8ae0e2 swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/preview/2019-12-31-preview/redhatopenshift.json
|
||||
eeaa4dca6ad0e0de1a183d0e42f947aa3d31a64b88c7ea29cdf670dfa5d2fd26 swagger/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/preview/2019-12-31-preview/redhatopenshift.json
|
||||
|
|
|
@ -149,18 +149,27 @@ type WorkerProfile struct {
|
|||
type APIServerProfile struct {
|
||||
MissingFields
|
||||
|
||||
Private bool `json:"private,omitempty"`
|
||||
URL string `json:"url,omitempty"`
|
||||
IP string `json:"ip,omitempty"`
|
||||
Visibility Visibility `json:"visibility,omitempty"`
|
||||
URL string `json:"url,omitempty"`
|
||||
IP string `json:"ip,omitempty"`
|
||||
}
|
||||
|
||||
// Visibility represents visibility.
|
||||
type Visibility string
|
||||
|
||||
// Visibility constants
|
||||
const (
|
||||
VisibilityPublic Visibility = "Public"
|
||||
VisibilityPrivate Visibility = "Private"
|
||||
)
|
||||
|
||||
// IngressProfile represents an ingress profile
|
||||
type IngressProfile struct {
|
||||
MissingFields
|
||||
|
||||
Name string `json:"name,omitempty"`
|
||||
Private bool `json:"private,omitempty"`
|
||||
IP string `json:"ip,omitempty"`
|
||||
Name string `json:"name,omitempty"`
|
||||
Visibility Visibility `json:"visibility,omitempty"`
|
||||
IP string `json:"ip,omitempty"`
|
||||
}
|
||||
|
||||
// Install represents an install process
|
||||
|
|
|
@ -132,8 +132,8 @@ type WorkerProfile struct {
|
|||
|
||||
// APIServerProfile represents an API server profile.
|
||||
type APIServerProfile struct {
|
||||
// Expose the API server on a private IP address only (immutable).
|
||||
Private bool `json:"private,omitempty"`
|
||||
// API server visibility (immutable).
|
||||
Visibility Visibility `json:"visibility,omitempty"`
|
||||
|
||||
// The URL to access the cluster API server (immutable).
|
||||
URL string `json:"url,omitempty"`
|
||||
|
@ -142,13 +142,22 @@ type APIServerProfile struct {
|
|||
IP string `json:"ip,omitempty"`
|
||||
}
|
||||
|
||||
// Visibility represents visibility.
|
||||
type Visibility string
|
||||
|
||||
// Visibility constants
|
||||
const (
|
||||
VisibilityPublic Visibility = "Public"
|
||||
VisibilityPrivate Visibility = "Private"
|
||||
)
|
||||
|
||||
// IngressProfile represents an ingress profile.
|
||||
type IngressProfile struct {
|
||||
// The ingress profile name. Must be "default" (immutable).
|
||||
Name string `json:"name,omitempty"`
|
||||
|
||||
// Expose the ingress on a private IP address only (immutable).
|
||||
Private bool `json:"private,omitempty"`
|
||||
// Ingress visibility (immutable).
|
||||
Visibility Visibility `json:"visibility,omitempty"`
|
||||
|
||||
// The IP of the ingress (immutable).
|
||||
IP string `json:"ip,omitempty"`
|
||||
|
|
|
@ -34,9 +34,9 @@ func openShiftClusterToExternal(oc *api.OpenShiftCluster) *OpenShiftCluster {
|
|||
SubnetID: oc.Properties.MasterProfile.SubnetID,
|
||||
},
|
||||
APIServerProfile: APIServerProfile{
|
||||
Private: oc.Properties.APIServerProfile.Private,
|
||||
URL: oc.Properties.APIServerProfile.URL,
|
||||
IP: oc.Properties.APIServerProfile.IP,
|
||||
Visibility: Visibility(oc.Properties.APIServerProfile.Visibility),
|
||||
URL: oc.Properties.APIServerProfile.URL,
|
||||
IP: oc.Properties.APIServerProfile.IP,
|
||||
},
|
||||
ConsoleURL: oc.Properties.ConsoleURL,
|
||||
},
|
||||
|
@ -59,9 +59,9 @@ func openShiftClusterToExternal(oc *api.OpenShiftCluster) *OpenShiftCluster {
|
|||
out.Properties.IngressProfiles = make([]IngressProfile, 0, len(oc.Properties.IngressProfiles))
|
||||
for _, p := range oc.Properties.IngressProfiles {
|
||||
out.Properties.IngressProfiles = append(out.Properties.IngressProfiles, IngressProfile{
|
||||
Name: p.Name,
|
||||
Private: p.Private,
|
||||
IP: p.IP,
|
||||
Name: p.Name,
|
||||
Visibility: Visibility(p.Visibility),
|
||||
IP: p.IP,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -132,7 +132,7 @@ func openShiftClusterToInternal(oc *OpenShiftCluster, out *api.OpenShiftCluster)
|
|||
outp.SubnetID = p.SubnetID
|
||||
outp.Count = p.Count
|
||||
}
|
||||
out.Properties.APIServerProfile.Private = oc.Properties.APIServerProfile.Private
|
||||
out.Properties.APIServerProfile.Visibility = api.Visibility(oc.Properties.APIServerProfile.Visibility)
|
||||
out.Properties.APIServerProfile.URL = oc.Properties.APIServerProfile.URL
|
||||
out.Properties.APIServerProfile.IP = oc.Properties.APIServerProfile.IP
|
||||
for _, p := range oc.Properties.IngressProfiles {
|
||||
|
@ -148,7 +148,7 @@ func openShiftClusterToInternal(oc *OpenShiftCluster, out *api.OpenShiftCluster)
|
|||
outp = &out.Properties.IngressProfiles[len(out.Properties.IngressProfiles)-1]
|
||||
}
|
||||
outp.Name = p.Name
|
||||
outp.Private = p.Private
|
||||
outp.Visibility = api.Visibility(p.Visibility)
|
||||
outp.IP = p.IP
|
||||
}
|
||||
out.Properties.ConsoleURL = oc.Properties.ConsoleURL
|
||||
|
|
|
@ -37,15 +37,15 @@ func exampleOpenShiftCluster() *OpenShiftCluster {
|
|||
},
|
||||
},
|
||||
APIServerProfile: APIServerProfile{
|
||||
Private: true,
|
||||
URL: "https://api.cluster.location.aroapp.io:6443/",
|
||||
IP: "1.2.3.4",
|
||||
Visibility: VisibilityPublic,
|
||||
URL: "https://api.cluster.location.aroapp.io:6443/",
|
||||
IP: "1.2.3.4",
|
||||
},
|
||||
IngressProfiles: []IngressProfile{
|
||||
{
|
||||
Name: "default",
|
||||
Private: true,
|
||||
IP: "1.2.3.4",
|
||||
Name: "default",
|
||||
Visibility: VisibilityPublic,
|
||||
IP: "1.2.3.4",
|
||||
},
|
||||
},
|
||||
ConsoleURL: "https://console-openshift-console.apps.cluster.location.aroapp.io/",
|
||||
|
|
|
@ -218,6 +218,11 @@ func (v *validator) validateWorkerProfile(path string, wp *WorkerProfile, mp *Ma
|
|||
}
|
||||
|
||||
func (v *validator) validateAPIServerProfile(path string, ap *APIServerProfile) error {
|
||||
switch ap.Visibility {
|
||||
case VisibilityPublic, VisibilityPrivate:
|
||||
default:
|
||||
return api.NewCloudError(http.StatusBadRequest, api.CloudErrorCodeInvalidParameter, path+".visibility", "The provided visibility '%s' is invalid.", ap.Visibility)
|
||||
}
|
||||
if ap.URL != "" {
|
||||
if _, err := url.Parse(ap.URL); err != nil {
|
||||
return api.NewCloudError(http.StatusBadRequest, api.CloudErrorCodeInvalidParameter, path+".url", "The provided URL '%s' is invalid.", ap.URL)
|
||||
|
@ -241,6 +246,11 @@ func (v *validator) validateIngressProfile(path string, p *IngressProfile) error
|
|||
if p.Name != "default" {
|
||||
return api.NewCloudError(http.StatusBadRequest, api.CloudErrorCodeInvalidParameter, path+".name", "The provided ingress name '%s' is invalid.", p.Name)
|
||||
}
|
||||
switch p.Visibility {
|
||||
case VisibilityPublic, VisibilityPrivate:
|
||||
default:
|
||||
return api.NewCloudError(http.StatusBadRequest, api.CloudErrorCodeInvalidParameter, path+".visibility", "The provided visibility '%s' is invalid.", p.Visibility)
|
||||
}
|
||||
if p.IP != "" {
|
||||
ip := net.ParseIP(p.IP)
|
||||
if ip == nil {
|
||||
|
|
|
@ -373,6 +373,13 @@ func TestValidateAPIServerProfile(t *testing.T) {
|
|||
{
|
||||
name: "valid",
|
||||
},
|
||||
{
|
||||
name: "visibility invalid",
|
||||
modify: func(oc *OpenShiftCluster) {
|
||||
oc.Properties.APIServerProfile.Visibility = "invalid"
|
||||
},
|
||||
wantErr: "400: InvalidParameter: properties.apiserverProfile.visibility: The provided visibility 'invalid' is invalid.",
|
||||
},
|
||||
{
|
||||
name: "empty url valid",
|
||||
modify: func(oc *OpenShiftCluster) {
|
||||
|
@ -425,6 +432,13 @@ func TestValidateIngressProfile(t *testing.T) {
|
|||
},
|
||||
wantErr: "400: InvalidParameter: properties.ingressProfiles[0].name: The provided ingress name 'invalid' is invalid.",
|
||||
},
|
||||
{
|
||||
name: "visibility invalid",
|
||||
modify: func(oc *OpenShiftCluster) {
|
||||
oc.Properties.IngressProfiles[0].Visibility = "invalid"
|
||||
},
|
||||
wantErr: "400: InvalidParameter: properties.ingressProfiles[0].visibility: The provided visibility 'invalid' is invalid.",
|
||||
},
|
||||
{
|
||||
name: "empty ip valid",
|
||||
modify: func(oc *OpenShiftCluster) {
|
||||
|
@ -506,9 +520,9 @@ func TestOpenShiftClusterValidateDelta(t *testing.T) {
|
|||
{
|
||||
name: "apiServer private change",
|
||||
modify: func(oc *OpenShiftCluster) {
|
||||
oc.Properties.APIServerProfile.Private = !oc.Properties.APIServerProfile.Private
|
||||
oc.Properties.APIServerProfile.Visibility = "invalid"
|
||||
},
|
||||
wantErr: "400: PropertyChangeNotAllowed: properties.apiserverProfile.private: Changing property 'properties.apiserverProfile.private' is not allowed.",
|
||||
wantErr: "400: PropertyChangeNotAllowed: properties.apiserverProfile.visibility: Changing property 'properties.apiserverProfile.visibility' is not allowed.",
|
||||
},
|
||||
{
|
||||
name: "apiServer url change",
|
||||
|
@ -528,9 +542,9 @@ func TestOpenShiftClusterValidateDelta(t *testing.T) {
|
|||
{
|
||||
name: "ingress private change",
|
||||
modify: func(oc *OpenShiftCluster) {
|
||||
oc.Properties.IngressProfiles[0].Private = !oc.Properties.IngressProfiles[0].Private
|
||||
oc.Properties.IngressProfiles[0].Visibility = "invalid"
|
||||
},
|
||||
wantErr: "400: PropertyChangeNotAllowed: properties.ingressProfiles[0].private: Changing property 'properties.ingressProfiles[0].private' is not allowed.",
|
||||
wantErr: "400: PropertyChangeNotAllowed: properties.ingressProfiles[0].visibility: Changing property 'properties.ingressProfiles[0].visibility' is not allowed.",
|
||||
},
|
||||
{
|
||||
name: "ingress ip change",
|
||||
|
|
|
@ -194,7 +194,7 @@ func (m *Manager) Create(ctx context.Context) error {
|
|||
},
|
||||
}
|
||||
|
||||
if m.doc.OpenShiftCluster.Properties.IngressProfiles[0].Private {
|
||||
if m.doc.OpenShiftCluster.Properties.IngressProfiles[0].Visibility == api.VisibilityPrivate {
|
||||
installConfig.Config.Publish = types.InternalPublishingStrategy
|
||||
}
|
||||
|
||||
|
|
|
@ -50,6 +50,36 @@ func PossibleProvisioningStateValues() []ProvisioningState {
|
|||
return []ProvisioningState{Creating, Deleting, Failed, Succeeded, Updating}
|
||||
}
|
||||
|
||||
// Visibility enumerates the values for visibility.
|
||||
type Visibility string
|
||||
|
||||
const (
|
||||
// Private ...
|
||||
Private Visibility = "Private"
|
||||
// Public ...
|
||||
Public Visibility = "Public"
|
||||
)
|
||||
|
||||
// PossibleVisibilityValues returns an array of possible values for the Visibility const type.
|
||||
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
|
||||
|
||||
|
@ -86,8 +116,8 @@ func PossibleVMSize1Values() []VMSize1 {
|
|||
|
||||
// APIServerProfile aPIServerProfile represents an API server profile.
|
||||
type APIServerProfile struct {
|
||||
// Private - Expose the API server on a private IP address only (immutable).
|
||||
Private *bool `json:"private,omitempty"`
|
||||
// Visibility - API server visibility (immutable). Possible values include: 'Private', 'Public'
|
||||
Visibility Visibility `json:"visibility,omitempty"`
|
||||
// URL - The URL to access the cluster API server (immutable).
|
||||
URL *string `json:"url,omitempty"`
|
||||
// IP - The IP of the cluster API server (immutable).
|
||||
|
@ -140,8 +170,8 @@ type Display struct {
|
|||
type IngressProfile struct {
|
||||
// Name - The ingress profile name. Must be "default" (immutable).
|
||||
Name *string `json:"name,omitempty"`
|
||||
// Private - Expose the ingress on a private IP address only (immutable).
|
||||
Private *bool `json:"private,omitempty"`
|
||||
// Visibility - Ingress visibility (immutable). Possible values include: 'Visibility1Private', 'Visibility1Public'
|
||||
Visibility Visibility1 `json:"visibility,omitempty"`
|
||||
// IP - The IP of the ingress (immutable).
|
||||
IP *string `json:"ip,omitempty"`
|
||||
}
|
||||
|
|
|
@ -288,7 +288,7 @@ func (i *Installer) installResources(ctx context.Context) error {
|
|||
},
|
||||
APIVersion: apiVersions["network"],
|
||||
},
|
||||
i.apiServerPublicLoadBalancer(installConfig.Config.Azure.Region, i.doc.OpenShiftCluster.Properties.APIServerProfile.Private),
|
||||
i.apiServerPublicLoadBalancer(installConfig.Config.Azure.Region, i.doc.OpenShiftCluster.Properties.APIServerProfile.Visibility),
|
||||
{
|
||||
Resource: &mgmtnetwork.LoadBalancer{
|
||||
Sku: &mgmtnetwork.LoadBalancerSku{
|
||||
|
@ -677,7 +677,7 @@ func (i *Installer) installResources(ctx context.Context) error {
|
|||
{
|
||||
ipAddress := lbIP.String()
|
||||
|
||||
if !i.doc.OpenShiftCluster.Properties.APIServerProfile.Private {
|
||||
if i.doc.OpenShiftCluster.Properties.APIServerProfile.Visibility == api.VisibilityPublic {
|
||||
ip, err := i.publicipaddresses.Get(ctx, i.doc.OpenShiftCluster.Properties.ResourceGroup, "aro-pip", "")
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
|
@ -7,10 +7,11 @@ import (
|
|||
mgmtnetwork "github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-07-01/network"
|
||||
"github.com/Azure/go-autorest/autorest/to"
|
||||
|
||||
"github.com/Azure/ARO-RP/pkg/api"
|
||||
"github.com/Azure/ARO-RP/pkg/util/arm"
|
||||
)
|
||||
|
||||
func (i *Installer) apiServerPublicLoadBalancer(location string, private bool) *arm.Resource {
|
||||
func (i *Installer) apiServerPublicLoadBalancer(location string, visibility api.Visibility) *arm.Resource {
|
||||
lb := &mgmtnetwork.LoadBalancer{
|
||||
Sku: &mgmtnetwork.LoadBalancerSku{
|
||||
Name: mgmtnetwork.LoadBalancerSkuNameStandard,
|
||||
|
@ -54,7 +55,7 @@ func (i *Installer) apiServerPublicLoadBalancer(location string, private bool) *
|
|||
Location: &location,
|
||||
}
|
||||
|
||||
if !private {
|
||||
if visibility == api.VisibilityPublic {
|
||||
lb.LoadBalancingRules = &[]mgmtnetwork.LoadBalancingRule{
|
||||
{
|
||||
LoadBalancingRulePropertiesFormat: &mgmtnetwork.LoadBalancingRulePropertiesFormat{
|
||||
|
|
|
@ -7,6 +7,7 @@ from azext_aro._validators import validate_client_secret
|
|||
from azext_aro._validators import validate_cluster_domain
|
||||
from azext_aro._validators import validate_resource_name
|
||||
from azext_aro._validators import validate_subnet
|
||||
from azext_aro._validators import validate_visibility
|
||||
from azext_aro._validators import validate_vnet
|
||||
from azext_aro._validators import validate_vnet_resource_group_name
|
||||
from azext_aro._validators import validate_worker_count
|
||||
|
@ -15,7 +16,6 @@ from azure.cli.core.commands.parameters import name_type
|
|||
from azure.cli.core.commands.parameters import resource_group_name_type
|
||||
from azure.cli.core.commands.parameters import tags_type
|
||||
from azure.cli.core.commands.validators import get_default_location_from_resource_group
|
||||
from knack.arguments import CLIArgumentType
|
||||
|
||||
|
||||
def load_arguments(self, _):
|
||||
|
@ -59,13 +59,13 @@ def load_arguments(self, _):
|
|||
help='Count of worker VMs.',
|
||||
validator=validate_worker_count)
|
||||
|
||||
c.argument('private_apiserver',
|
||||
CLIArgumentType(action='store_true'),
|
||||
help='Private API server.')
|
||||
c.argument('apiserver_visibility',
|
||||
help='API server visibility.',
|
||||
validator=validate_visibility('apiserver_visibility'))
|
||||
|
||||
c.argument('private_ingress',
|
||||
CLIArgumentType(action='store_true'),
|
||||
help='Private ingress.')
|
||||
c.argument('ingress_visibility',
|
||||
help='Ingress visibility.',
|
||||
validator=validate_visibility('ingress_visibility'))
|
||||
|
||||
c.argument('vnet_resource_group_name',
|
||||
resource_group_name_type,
|
||||
|
|
|
@ -154,6 +154,17 @@ def validate_subnets(master_subnet, worker_subnet):
|
|||
)
|
||||
|
||||
|
||||
def validate_visibility(key):
|
||||
def _validate_visibility(namespace):
|
||||
visibility = getattr(namespace, key)
|
||||
if visibility is not None:
|
||||
if visibility not in ["Private", "Public"]:
|
||||
raise CLIError("Invalid --%s '%s'." %
|
||||
(key.replace('_', '-'), visibility))
|
||||
|
||||
return _validate_visibility
|
||||
|
||||
|
||||
def validate_vnet(cmd, namespace):
|
||||
validate_vnet_resource_group_name(namespace)
|
||||
|
||||
|
|
|
@ -35,8 +35,8 @@ def aro_create(cmd, # pylint: disable=too-many-locals
|
|||
worker_vm_size=None,
|
||||
worker_vm_disk_size_gb=None,
|
||||
worker_count=None,
|
||||
private_apiserver=None,
|
||||
private_ingress=None,
|
||||
apiserver_visibility=None,
|
||||
ingress_visibility=None,
|
||||
tags=None,
|
||||
no_wait=False):
|
||||
vnet = validate_subnets(master_subnet, worker_subnet)
|
||||
|
@ -89,12 +89,12 @@ def aro_create(cmd, # pylint: disable=too-many-locals
|
|||
)
|
||||
],
|
||||
apiserver_profile=v2019_12_31_preview.APIServerProfile(
|
||||
private=private_apiserver or False,
|
||||
visibility=apiserver_visibility or "Public",
|
||||
),
|
||||
ingress_profiles=[
|
||||
v2019_12_31_preview.IngressProfile(
|
||||
name="default", # TODO: "default" should not be hard-coded
|
||||
private=private_ingress or False,
|
||||
visibility=ingress_visibility or "Public",
|
||||
)
|
||||
],
|
||||
)
|
||||
|
|
|
@ -26,9 +26,10 @@ from msrest.exceptions import HttpOperationError
|
|||
class APIServerProfile(Model):
|
||||
"""APIServerProfile represents an API server profile.
|
||||
|
||||
:param private: Expose the API server on a private IP address only
|
||||
(immutable).
|
||||
:type private: bool
|
||||
:param visibility: API server visibility (immutable). Possible values
|
||||
include: 'Private', 'Public'
|
||||
:type visibility: str or
|
||||
~azure.mgmt.redhatopenshift.v2019_12_31_preview.models.enum
|
||||
:param url: The URL to access the cluster API server (immutable).
|
||||
:type url: str
|
||||
:param ip: The IP of the cluster API server (immutable).
|
||||
|
@ -36,14 +37,14 @@ class APIServerProfile(Model):
|
|||
"""
|
||||
|
||||
_attribute_map = {
|
||||
'private': {'key': 'private', 'type': 'bool'},
|
||||
'visibility': {'key': 'visibility', 'type': 'str'},
|
||||
'url': {'key': 'url', 'type': 'str'},
|
||||
'ip': {'key': 'ip', 'type': 'str'},
|
||||
}
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
super(APIServerProfile, self).__init__(**kwargs)
|
||||
self.private = kwargs.get('private', None)
|
||||
self.visibility = kwargs.get('visibility', None)
|
||||
self.url = kwargs.get('url', None)
|
||||
self.ip = kwargs.get('ip', None)
|
||||
|
||||
|
@ -216,23 +217,24 @@ class IngressProfile(Model):
|
|||
|
||||
:param name: The ingress profile name. Must be "default" (immutable).
|
||||
:type name: str
|
||||
:param private: Expose the ingress on a private IP address only
|
||||
(immutable).
|
||||
:type private: bool
|
||||
:param visibility: Ingress visibility (immutable). Possible values
|
||||
include: 'Private', 'Public'
|
||||
:type visibility: str or
|
||||
~azure.mgmt.redhatopenshift.v2019_12_31_preview.models.enum
|
||||
:param ip: The IP of the ingress (immutable).
|
||||
:type ip: str
|
||||
"""
|
||||
|
||||
_attribute_map = {
|
||||
'name': {'key': 'name', 'type': 'str'},
|
||||
'private': {'key': 'private', 'type': 'bool'},
|
||||
'visibility': {'key': 'visibility', 'type': 'str'},
|
||||
'ip': {'key': 'ip', 'type': 'str'},
|
||||
}
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
super(IngressProfile, self).__init__(**kwargs)
|
||||
self.name = kwargs.get('name', None)
|
||||
self.private = kwargs.get('private', None)
|
||||
self.visibility = kwargs.get('visibility', None)
|
||||
self.ip = kwargs.get('ip', None)
|
||||
|
||||
|
||||
|
|
|
@ -26,9 +26,10 @@ from msrest.exceptions import HttpOperationError
|
|||
class APIServerProfile(Model):
|
||||
"""APIServerProfile represents an API server profile.
|
||||
|
||||
:param private: Expose the API server on a private IP address only
|
||||
(immutable).
|
||||
:type private: bool
|
||||
:param visibility: API server visibility (immutable). Possible values
|
||||
include: 'Private', 'Public'
|
||||
:type visibility: str or
|
||||
~azure.mgmt.redhatopenshift.v2019_12_31_preview.models.enum
|
||||
:param url: The URL to access the cluster API server (immutable).
|
||||
:type url: str
|
||||
:param ip: The IP of the cluster API server (immutable).
|
||||
|
@ -36,14 +37,14 @@ class APIServerProfile(Model):
|
|||
"""
|
||||
|
||||
_attribute_map = {
|
||||
'private': {'key': 'private', 'type': 'bool'},
|
||||
'visibility': {'key': 'visibility', 'type': 'str'},
|
||||
'url': {'key': 'url', 'type': 'str'},
|
||||
'ip': {'key': 'ip', 'type': 'str'},
|
||||
}
|
||||
|
||||
def __init__(self, *, private: bool=None, url: str=None, ip: str=None, **kwargs) -> None:
|
||||
def __init__(self, *, visibility=None, url: str=None, ip: str=None, **kwargs) -> None:
|
||||
super(APIServerProfile, self).__init__(**kwargs)
|
||||
self.private = private
|
||||
self.visibility = visibility
|
||||
self.url = url
|
||||
self.ip = ip
|
||||
|
||||
|
@ -216,23 +217,24 @@ class IngressProfile(Model):
|
|||
|
||||
:param name: The ingress profile name. Must be "default" (immutable).
|
||||
:type name: str
|
||||
:param private: Expose the ingress on a private IP address only
|
||||
(immutable).
|
||||
:type private: bool
|
||||
:param visibility: Ingress visibility (immutable). Possible values
|
||||
include: 'Private', 'Public'
|
||||
:type visibility: str or
|
||||
~azure.mgmt.redhatopenshift.v2019_12_31_preview.models.enum
|
||||
:param ip: The IP of the ingress (immutable).
|
||||
:type ip: str
|
||||
"""
|
||||
|
||||
_attribute_map = {
|
||||
'name': {'key': 'name', 'type': 'str'},
|
||||
'private': {'key': 'private', 'type': 'bool'},
|
||||
'visibility': {'key': 'visibility', 'type': 'str'},
|
||||
'ip': {'key': 'ip', 'type': 'str'},
|
||||
}
|
||||
|
||||
def __init__(self, *, name: str=None, private: bool=None, ip: str=None, **kwargs) -> None:
|
||||
def __init__(self, *, name: str=None, visibility=None, ip: str=None, **kwargs) -> None:
|
||||
super(IngressProfile, self).__init__(**kwargs)
|
||||
self.name = name
|
||||
self.private = private
|
||||
self.visibility = visibility
|
||||
self.ip = ip
|
||||
|
||||
|
||||
|
|
|
@ -33,12 +33,12 @@
|
|||
}
|
||||
],
|
||||
"apiserverProfile": {
|
||||
"private": true
|
||||
"visibility": "Public"
|
||||
},
|
||||
"ingressProfiles": [
|
||||
{
|
||||
"name": "default",
|
||||
"private": true
|
||||
"visibility": "Public"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -78,14 +78,14 @@
|
|||
}
|
||||
],
|
||||
"apiserverProfile": {
|
||||
"private": true,
|
||||
"visibility": "Public",
|
||||
"url": "https://api.cluster.location.aroapp.io:6443/",
|
||||
"ip": "1.2.3.4"
|
||||
},
|
||||
"ingressProfiles": [
|
||||
{
|
||||
"name": "default",
|
||||
"private": true,
|
||||
"visibility": "Public",
|
||||
"ip": "1.2.3.4"
|
||||
}
|
||||
],
|
||||
|
@ -126,14 +126,14 @@
|
|||
}
|
||||
],
|
||||
"apiserverProfile": {
|
||||
"private": true,
|
||||
"visibility": "Public",
|
||||
"url": "https://api.cluster.location.aroapp.io:6443/",
|
||||
"ip": "1.2.3.4"
|
||||
},
|
||||
"ingressProfiles": [
|
||||
{
|
||||
"name": "default",
|
||||
"private": true,
|
||||
"visibility": "Public",
|
||||
"ip": "1.2.3.4"
|
||||
}
|
||||
],
|
||||
|
|
|
@ -39,14 +39,14 @@
|
|||
}
|
||||
],
|
||||
"apiserverProfile": {
|
||||
"private": true,
|
||||
"visibility": "Public",
|
||||
"url": "https://api.cluster.location.aroapp.io:6443/",
|
||||
"ip": "1.2.3.4"
|
||||
},
|
||||
"ingressProfiles": [
|
||||
{
|
||||
"name": "default",
|
||||
"private": true,
|
||||
"visibility": "Public",
|
||||
"ip": "1.2.3.4"
|
||||
}
|
||||
],
|
||||
|
|
|
@ -39,14 +39,14 @@
|
|||
}
|
||||
],
|
||||
"apiserverProfile": {
|
||||
"private": true,
|
||||
"visibility": "Public",
|
||||
"url": "https://api.cluster.location.aroapp.io:6443/",
|
||||
"ip": "1.2.3.4"
|
||||
},
|
||||
"ingressProfiles": [
|
||||
{
|
||||
"name": "default",
|
||||
"private": true,
|
||||
"visibility": "Public",
|
||||
"ip": "1.2.3.4"
|
||||
}
|
||||
],
|
||||
|
|
|
@ -40,14 +40,14 @@
|
|||
}
|
||||
],
|
||||
"apiserverProfile": {
|
||||
"private": true,
|
||||
"visibility": "Public",
|
||||
"url": "https://api.cluster.location.aroapp.io:6443/",
|
||||
"ip": "1.2.3.4"
|
||||
},
|
||||
"ingressProfiles": [
|
||||
{
|
||||
"name": "default",
|
||||
"private": true,
|
||||
"visibility": "Public",
|
||||
"ip": "1.2.3.4"
|
||||
}
|
||||
],
|
||||
|
|
|
@ -33,12 +33,12 @@
|
|||
}
|
||||
],
|
||||
"apiserverProfile": {
|
||||
"private": true
|
||||
"visibility": "Public"
|
||||
},
|
||||
"ingressProfiles": [
|
||||
{
|
||||
"name": "default",
|
||||
"private": true
|
||||
"visibility": "Public"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -78,14 +78,14 @@
|
|||
}
|
||||
],
|
||||
"apiserverProfile": {
|
||||
"private": true,
|
||||
"visibility": "Public",
|
||||
"url": "https://api.cluster.location.aroapp.io:6443/",
|
||||
"ip": "1.2.3.4"
|
||||
},
|
||||
"ingressProfiles": [
|
||||
{
|
||||
"name": "default",
|
||||
"private": true,
|
||||
"visibility": "Public",
|
||||
"ip": "1.2.3.4"
|
||||
}
|
||||
],
|
||||
|
@ -126,14 +126,14 @@
|
|||
}
|
||||
],
|
||||
"apiserverProfile": {
|
||||
"private": true,
|
||||
"visibility": "Public",
|
||||
"url": "https://api.cluster.location.aroapp.io:6443/",
|
||||
"ip": "1.2.3.4"
|
||||
},
|
||||
"ingressProfiles": [
|
||||
{
|
||||
"name": "default",
|
||||
"private": true,
|
||||
"visibility": "Public",
|
||||
"ip": "1.2.3.4"
|
||||
}
|
||||
],
|
||||
|
|
|
@ -394,9 +394,9 @@
|
|||
"APIServerProfile": {
|
||||
"description": "APIServerProfile represents an API server profile.",
|
||||
"properties": {
|
||||
"private": {
|
||||
"description": "Expose the API server on a private IP address only (immutable).",
|
||||
"type": "boolean"
|
||||
"visibility": {
|
||||
"$ref": "#/definitions/Visibility",
|
||||
"description": "API server visibility (immutable)."
|
||||
},
|
||||
"url": {
|
||||
"description": "The URL to access the cluster API server (immutable).",
|
||||
|
@ -469,9 +469,9 @@
|
|||
"description": "The ingress profile name. Must be \"default\" (immutable).",
|
||||
"type": "string"
|
||||
},
|
||||
"private": {
|
||||
"description": "Expose the ingress on a private IP address only (immutable).",
|
||||
"type": "boolean"
|
||||
"visibility": {
|
||||
"$ref": "#/definitions/Visibility",
|
||||
"description": "Ingress visibility (immutable)."
|
||||
},
|
||||
"ip": {
|
||||
"description": "The IP of the ingress (immutable).",
|
||||
|
@ -670,6 +670,14 @@
|
|||
],
|
||||
"type": "string"
|
||||
},
|
||||
"Visibility": {
|
||||
"description": "Visibility represents visibility.",
|
||||
"enum": [
|
||||
"Private",
|
||||
"Public"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"WorkerProfile": {
|
||||
"description": "WorkerProfile represents a worker profile.",
|
||||
"properties": {
|
||||
|
|
Загрузка…
Ссылка в новой задаче