From ea4ab56b661d48f76c717e9d7588b0db34338866 Mon Sep 17 00:00:00 2001 From: kayrus Date: Tue, 24 Sep 2019 14:48:53 +0200 Subject: [PATCH] OpenStack: support lbaas classes (FIP subnet IDs) --- apis/management.cattle.io/v3/rke_types.go | 30 ++++++++++++------- .../v3/zz_generated_deepcopy.go | 27 +++++++++++++++-- ...ated_load_balancer_class_openstack_opts.go | 14 +++++++++ ..._generated_load_balancer_openstack_opts.go | 26 +++++++++------- 4 files changed, 73 insertions(+), 24 deletions(-) create mode 100644 client/management/v3/zz_generated_load_balancer_class_openstack_opts.go diff --git a/apis/management.cattle.io/v3/rke_types.go b/apis/management.cattle.io/v3/rke_types.go index eaa6c88c..6a605644 100644 --- a/apis/management.cattle.io/v3/rke_types.go +++ b/apis/management.cattle.io/v3/rke_types.go @@ -558,17 +558,25 @@ type GlobalOpenstackOpts struct { } type LoadBalancerOpenstackOpts struct { - LBVersion string `json:"lb-version" yaml:"lb-version" ini:"lb-version,omitempty"` // overrides autodetection. Only support v2. - UseOctavia bool `json:"use-octavia" yaml:"use-octavia" ini:"use-octavia,omitempty"` // uses Octavia V2 service catalog endpoint - SubnetID string `json:"subnet-id" yaml:"subnet-id" ini:"subnet-id,omitempty"` // overrides autodetection. - FloatingNetworkID string `json:"floating-network-id" yaml:"floating-network-id" ini:"floating-network-id,omitempty"` // If specified, will create floating ip for loadbalancer, or do not create floating ip. - LBMethod string `json:"lb-method" yaml:"lb-method" ini:"lb-method,omitempty"` // default to ROUND_ROBIN. - LBProvider string `json:"lb-provider" yaml:"lb-provider" ini:"lb-provider,omitempty"` - CreateMonitor bool `json:"create-monitor" yaml:"create-monitor" ini:"create-monitor,omitempty"` - MonitorDelay string `json:"monitor-delay" yaml:"monitor-delay" ini:"monitor-delay,omitempty"` - MonitorTimeout string `json:"monitor-timeout" yaml:"monitor-timeout" ini:"monitor-timeout,omitempty"` - MonitorMaxRetries int `json:"monitor-max-retries" yaml:"monitor-max-retries" ini:"monitor-max-retries,omitempty"` - ManageSecurityGroups bool `json:"manage-security-groups" yaml:"manage-security-groups" ini:"manage-security-groups,omitempty"` + LBVersion string `json:"lb-version" yaml:"lb-version" ini:"lb-version,omitempty"` // overrides autodetection. Only support v2. + UseOctavia bool `json:"use-octavia" yaml:"use-octavia" ini:"use-octavia,omitempty"` // uses Octavia V2 service catalog endpoint + SubnetID string `json:"subnet-id" yaml:"subnet-id" ini:"subnet-id,omitempty"` // overrides autodetection. + FloatingNetworkID string `json:"floating-network-id" yaml:"floating-network-id" ini:"floating-network-id,omitempty"` // If specified, will create floating ip for loadbalancer, or do not create floating ip. + FloatingSubnetID string `json:"floating-subnet-id" yaml:"floating-subnet-id" ini:"floating-subnet-id,omitempty"` // If specified, will create floating ip for loadbalancer in this particular floating pool subnetwork. + LBMethod string `json:"lb-method" yaml:"lb-method" ini:"lb-method,omitempty"` // default to ROUND_ROBIN. + LBProvider string `json:"lb-provider" yaml:"lb-provider" ini:"lb-provider,omitempty"` + LBClasses map[string]LoadBalancerClassOpenstackOpts // Predefined named Floating networks and subnets + CreateMonitor bool `json:"create-monitor" yaml:"create-monitor" ini:"create-monitor,omitempty"` + MonitorDelay string `json:"monitor-delay" yaml:"monitor-delay" ini:"monitor-delay,omitempty"` + MonitorTimeout string `json:"monitor-timeout" yaml:"monitor-timeout" ini:"monitor-timeout,omitempty"` + MonitorMaxRetries int `json:"monitor-max-retries" yaml:"monitor-max-retries" ini:"monitor-max-retries,omitempty"` + ManageSecurityGroups bool `json:"manage-security-groups" yaml:"manage-security-groups" ini:"manage-security-groups,omitempty"` +} + +type LoadBalancerClassOpenstackOpts struct { + FloatingNetworkID string `json:"floating-network-id" yaml:"floating-network-id" ini:"floating-network-id,omitempty"` + FloatingSubnetID string `json:"floating-subnet-id" yaml:"floating-subnet-id" ini:"floating-subnet-id,omitempty"` + SubnetID string `json:"subnet-id" yaml:"subnet-id" ini:"subnet-id,omitempty"` } type BlockStorageOpenstackOpts struct { diff --git a/apis/management.cattle.io/v3/zz_generated_deepcopy.go b/apis/management.cattle.io/v3/zz_generated_deepcopy.go index ecfcb8f1..e8a24842 100644 --- a/apis/management.cattle.io/v3/zz_generated_deepcopy.go +++ b/apis/management.cattle.io/v3/zz_generated_deepcopy.go @@ -950,7 +950,7 @@ func (in *CloudProvider) DeepCopyInto(out *CloudProvider) { if in.OpenstackCloudProvider != nil { in, out := &in.OpenstackCloudProvider, &out.OpenstackCloudProvider *out = new(OpenstackCloudProvider) - **out = **in + (*in).DeepCopyInto(*out) } if in.VsphereCloudProvider != nil { in, out := &in.VsphereCloudProvider, &out.VsphereCloudProvider @@ -4514,9 +4514,32 @@ func (in *LoadBalancerCapabilities) DeepCopy() *LoadBalancerCapabilities { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoadBalancerClassOpenstackOpts) DeepCopyInto(out *LoadBalancerClassOpenstackOpts) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerClassOpenstackOpts. +func (in *LoadBalancerClassOpenstackOpts) DeepCopy() *LoadBalancerClassOpenstackOpts { + if in == nil { + return nil + } + out := new(LoadBalancerClassOpenstackOpts) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *LoadBalancerOpenstackOpts) DeepCopyInto(out *LoadBalancerOpenstackOpts) { *out = *in + if in.LBClasses != nil { + in, out := &in.LBClasses, &out.LBClasses + *out = make(map[string]LoadBalancerClassOpenstackOpts, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } return } @@ -6124,7 +6147,7 @@ func (in *OpenLdapTestAndApplyInput) DeepCopyObject() runtime.Object { func (in *OpenstackCloudProvider) DeepCopyInto(out *OpenstackCloudProvider) { *out = *in out.Global = in.Global - out.LoadBalancer = in.LoadBalancer + in.LoadBalancer.DeepCopyInto(&out.LoadBalancer) out.BlockStorage = in.BlockStorage out.Route = in.Route out.Metadata = in.Metadata diff --git a/client/management/v3/zz_generated_load_balancer_class_openstack_opts.go b/client/management/v3/zz_generated_load_balancer_class_openstack_opts.go new file mode 100644 index 00000000..3a3312c5 --- /dev/null +++ b/client/management/v3/zz_generated_load_balancer_class_openstack_opts.go @@ -0,0 +1,14 @@ +package client + +const ( + LoadBalancerClassOpenstackOptsType = "loadBalancerClassOpenstackOpts" + LoadBalancerClassOpenstackOptsFieldFloatingNetworkID = "floating-network-id" + LoadBalancerClassOpenstackOptsFieldFloatingSubnetID = "floating-subnet-id" + LoadBalancerClassOpenstackOptsFieldSubnetID = "subnet-id" +) + +type LoadBalancerClassOpenstackOpts struct { + FloatingNetworkID string `json:"floating-network-id,omitempty" yaml:"floating-network-id,omitempty"` + FloatingSubnetID string `json:"floating-subnet-id,omitempty" yaml:"floating-subnet-id,omitempty"` + SubnetID string `json:"subnet-id,omitempty" yaml:"subnet-id,omitempty"` +} diff --git a/client/management/v3/zz_generated_load_balancer_openstack_opts.go b/client/management/v3/zz_generated_load_balancer_openstack_opts.go index bd4f3868..b4260e55 100644 --- a/client/management/v3/zz_generated_load_balancer_openstack_opts.go +++ b/client/management/v3/zz_generated_load_balancer_openstack_opts.go @@ -4,6 +4,8 @@ const ( LoadBalancerOpenstackOptsType = "loadBalancerOpenstackOpts" LoadBalancerOpenstackOptsFieldCreateMonitor = "create-monitor" LoadBalancerOpenstackOptsFieldFloatingNetworkID = "floating-network-id" + LoadBalancerOpenstackOptsFieldFloatingSubnetID = "floating-subnet-id" + LoadBalancerOpenstackOptsFieldLBClasses = "lbClasses" LoadBalancerOpenstackOptsFieldLBMethod = "lb-method" LoadBalancerOpenstackOptsFieldLBProvider = "lb-provider" LoadBalancerOpenstackOptsFieldLBVersion = "lb-version" @@ -16,15 +18,17 @@ const ( ) type LoadBalancerOpenstackOpts struct { - CreateMonitor bool `json:"create-monitor,omitempty" yaml:"create-monitor,omitempty"` - FloatingNetworkID string `json:"floating-network-id,omitempty" yaml:"floating-network-id,omitempty"` - LBMethod string `json:"lb-method,omitempty" yaml:"lb-method,omitempty"` - LBProvider string `json:"lb-provider,omitempty" yaml:"lb-provider,omitempty"` - LBVersion string `json:"lb-version,omitempty" yaml:"lb-version,omitempty"` - ManageSecurityGroups bool `json:"manage-security-groups,omitempty" yaml:"manage-security-groups,omitempty"` - MonitorDelay string `json:"monitor-delay,omitempty" yaml:"monitor-delay,omitempty"` - MonitorMaxRetries int64 `json:"monitor-max-retries,omitempty" yaml:"monitor-max-retries,omitempty"` - MonitorTimeout string `json:"monitor-timeout,omitempty" yaml:"monitor-timeout,omitempty"` - SubnetID string `json:"subnet-id,omitempty" yaml:"subnet-id,omitempty"` - UseOctavia bool `json:"use-octavia,omitempty" yaml:"use-octavia,omitempty"` + CreateMonitor bool `json:"create-monitor,omitempty" yaml:"create-monitor,omitempty"` + FloatingNetworkID string `json:"floating-network-id,omitempty" yaml:"floating-network-id,omitempty"` + FloatingSubnetID string `json:"floating-subnet-id,omitempty" yaml:"floating-subnet-id,omitempty"` + LBClasses map[string]LoadBalancerClassOpenstackOpts `json:"lbClasses,omitempty" yaml:"lbClasses,omitempty"` + LBMethod string `json:"lb-method,omitempty" yaml:"lb-method,omitempty"` + LBProvider string `json:"lb-provider,omitempty" yaml:"lb-provider,omitempty"` + LBVersion string `json:"lb-version,omitempty" yaml:"lb-version,omitempty"` + ManageSecurityGroups bool `json:"manage-security-groups,omitempty" yaml:"manage-security-groups,omitempty"` + MonitorDelay string `json:"monitor-delay,omitempty" yaml:"monitor-delay,omitempty"` + MonitorMaxRetries int64 `json:"monitor-max-retries,omitempty" yaml:"monitor-max-retries,omitempty"` + MonitorTimeout string `json:"monitor-timeout,omitempty" yaml:"monitor-timeout,omitempty"` + SubnetID string `json:"subnet-id,omitempty" yaml:"subnet-id,omitempty"` + UseOctavia bool `json:"use-octavia,omitempty" yaml:"use-octavia,omitempty"` }