mirror of https://github.com/kubernetes/kops.git
Merge pull request #13326 from johngmyers/move-openstack
Move Openstack settings to cloudProvider.openstack
This commit is contained in:
commit
8120147889
|
|
@ -119,7 +119,7 @@ func (b *CloudConfigBuilder) build(c *fi.ModelBuilderContext, inTree bool) error
|
|||
}
|
||||
}
|
||||
case "openstack":
|
||||
osc := cloudConfig.Openstack
|
||||
osc := b.Cluster.Spec.CloudProvider.Openstack
|
||||
if osc == nil {
|
||||
break
|
||||
}
|
||||
|
|
|
|||
|
|
@ -252,10 +252,6 @@ type DOSpec struct {
|
|||
type GCESpec struct {
|
||||
}
|
||||
|
||||
// OpenstackSpec configures the Openstack cloud provider.
|
||||
type OpenstackSpec struct {
|
||||
}
|
||||
|
||||
type KarpenterConfig struct {
|
||||
Enabled bool `json:"enabled,omitempty"`
|
||||
}
|
||||
|
|
|
|||
|
|
@ -812,8 +812,8 @@ type OpenstackMetadata struct {
|
|||
ConfigDrive *bool `json:"configDrive,omitempty"`
|
||||
}
|
||||
|
||||
// OpenstackConfiguration defines cloud config elements for the openstack cloud provider
|
||||
type OpenstackConfiguration struct {
|
||||
// OpenstackSpec defines cloud config elements for the openstack cloud provider
|
||||
type OpenstackSpec struct {
|
||||
Loadbalancer *OpenstackLoadbalancerConfig `json:"loadbalancer,omitempty"`
|
||||
Monitor *OpenstackMonitor `json:"monitor,omitempty"`
|
||||
Router *OpenstackRouter `json:"router,omitempty"`
|
||||
|
|
@ -865,8 +865,6 @@ type CloudConfiguration struct {
|
|||
// Spotinst cloud-config specs
|
||||
SpotinstProduct *string `json:"spotinstProduct,omitempty"`
|
||||
SpotinstOrientation *string `json:"spotinstOrientation,omitempty"`
|
||||
// Openstack cloud-config options
|
||||
Openstack *OpenstackConfiguration `json:"openstack,omitempty"`
|
||||
// AWSEBSCSIDriver is the config for the AWS EBS CSI driver
|
||||
AWSEBSCSIDriver *AWSEBSCSIDriver `json:"awsEBSCSIDriver,omitempty"`
|
||||
// GCPPDCSIDriver is the config for the GCP PD CSI driver
|
||||
|
|
|
|||
|
|
@ -811,8 +811,8 @@ type OpenstackMetadata struct {
|
|||
ConfigDrive *bool `json:"configDrive,omitempty"`
|
||||
}
|
||||
|
||||
// OpenstackConfiguration defines cloud config elements for the openstack cloud provider
|
||||
type OpenstackConfiguration struct {
|
||||
// OpenstackSpec defines cloud config elements for the openstack cloud provider
|
||||
type OpenstackSpec struct {
|
||||
Loadbalancer *OpenstackLoadbalancerConfig `json:"loadbalancer,omitempty"`
|
||||
Monitor *OpenstackMonitor `json:"monitor,omitempty"`
|
||||
Router *OpenstackRouter `json:"router,omitempty"`
|
||||
|
|
@ -886,7 +886,8 @@ type CloudConfiguration struct {
|
|||
SpotinstProduct *string `json:"spotinstProduct,omitempty"`
|
||||
SpotinstOrientation *string `json:"spotinstOrientation,omitempty"`
|
||||
// Openstack cloud-config options
|
||||
Openstack *OpenstackConfiguration `json:"openstack,omitempty"`
|
||||
// +k8s:conversion-gen=false
|
||||
Openstack *OpenstackSpec `json:"openstack,omitempty"`
|
||||
// Azure cloud-config options
|
||||
// +k8s:conversion-gen=false
|
||||
Azure *AzureSpec `json:"azure,omitempty"`
|
||||
|
|
|
|||
|
|
@ -91,6 +91,11 @@ func Convert_v1alpha2_ClusterSpec_To_kops_ClusterSpec(in *ClusterSpec, out *kops
|
|||
out.CloudProvider.GCE = &kops.GCESpec{}
|
||||
case kops.CloudProviderOpenstack:
|
||||
out.CloudProvider.Openstack = &kops.OpenstackSpec{}
|
||||
if in.CloudConfig != nil && in.CloudConfig.Openstack != nil {
|
||||
if err := autoConvert_v1alpha2_OpenstackSpec_To_kops_OpenstackSpec(in.CloudConfig.Openstack, out.CloudProvider.Openstack, s); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
case "":
|
||||
default:
|
||||
return field.NotSupported(field.NewPath("spec").Child("cloudProvider"), in.LegacyCloudProvider, []string{
|
||||
|
|
@ -128,6 +133,16 @@ func Convert_kops_ClusterSpec_To_v1alpha2_ClusterSpec(in *kops.ClusterSpec, out
|
|||
if err := autoConvert_kops_AzureSpec_To_v1alpha2_AzureSpec(in.CloudProvider.Azure, out.CloudConfig.Azure, s); err != nil {
|
||||
return err
|
||||
}
|
||||
case kops.CloudProviderOpenstack:
|
||||
if out.CloudConfig == nil {
|
||||
out.CloudConfig = &CloudConfiguration{}
|
||||
}
|
||||
if out.CloudConfig.Openstack == nil {
|
||||
out.CloudConfig.Openstack = &OpenstackSpec{}
|
||||
}
|
||||
if err := autoConvert_kops_OpenstackSpec_To_v1alpha2_OpenstackSpec(in.CloudProvider.Openstack, out.CloudConfig.Openstack, s); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if in.TagSubnets != nil {
|
||||
out.TagSubnets = values.Bool(!*in.TagSubnets)
|
||||
|
|
|
|||
|
|
@ -914,16 +914,6 @@ func RegisterConversions(s *runtime.Scheme) error {
|
|||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := s.AddGeneratedConversionFunc((*OpenstackConfiguration)(nil), (*kops.OpenstackConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||
return Convert_v1alpha2_OpenstackConfiguration_To_kops_OpenstackConfiguration(a.(*OpenstackConfiguration), b.(*kops.OpenstackConfiguration), scope)
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := s.AddGeneratedConversionFunc((*kops.OpenstackConfiguration)(nil), (*OpenstackConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||
return Convert_kops_OpenstackConfiguration_To_v1alpha2_OpenstackConfiguration(a.(*kops.OpenstackConfiguration), b.(*OpenstackConfiguration), scope)
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := s.AddGeneratedConversionFunc((*OpenstackLoadbalancerConfig)(nil), (*kops.OpenstackLoadbalancerConfig)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||
return Convert_v1alpha2_OpenstackLoadbalancerConfig_To_kops_OpenstackLoadbalancerConfig(a.(*OpenstackLoadbalancerConfig), b.(*kops.OpenstackLoadbalancerConfig), scope)
|
||||
}); err != nil {
|
||||
|
|
@ -974,6 +964,16 @@ func RegisterConversions(s *runtime.Scheme) error {
|
|||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := s.AddGeneratedConversionFunc((*OpenstackSpec)(nil), (*kops.OpenstackSpec)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||
return Convert_v1alpha2_OpenstackSpec_To_kops_OpenstackSpec(a.(*OpenstackSpec), b.(*kops.OpenstackSpec), scope)
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := s.AddGeneratedConversionFunc((*kops.OpenstackSpec)(nil), (*OpenstackSpec)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||
return Convert_kops_OpenstackSpec_To_v1alpha2_OpenstackSpec(a.(*kops.OpenstackSpec), b.(*OpenstackSpec), scope)
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := s.AddGeneratedConversionFunc((*PackagesConfig)(nil), (*kops.PackagesConfig)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||
return Convert_v1alpha2_PackagesConfig_To_kops_PackagesConfig(a.(*PackagesConfig), b.(*kops.PackagesConfig), scope)
|
||||
}); err != nil {
|
||||
|
|
@ -2101,15 +2101,7 @@ func autoConvert_v1alpha2_CloudConfiguration_To_kops_CloudConfiguration(in *Clou
|
|||
// INFO: in.VSphereCoreDNSServer opted out of conversion generation
|
||||
out.SpotinstProduct = in.SpotinstProduct
|
||||
out.SpotinstOrientation = in.SpotinstOrientation
|
||||
if in.Openstack != nil {
|
||||
in, out := &in.Openstack, &out.Openstack
|
||||
*out = new(kops.OpenstackConfiguration)
|
||||
if err := Convert_v1alpha2_OpenstackConfiguration_To_kops_OpenstackConfiguration(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Openstack = nil
|
||||
}
|
||||
// INFO: in.Openstack opted out of conversion generation
|
||||
// INFO: in.Azure opted out of conversion generation
|
||||
if in.AWSEBSCSIDriver != nil {
|
||||
in, out := &in.AWSEBSCSIDriver, &out.AWSEBSCSIDriver
|
||||
|
|
@ -2148,15 +2140,6 @@ func autoConvert_kops_CloudConfiguration_To_v1alpha2_CloudConfiguration(in *kops
|
|||
out.ElbSecurityGroup = in.ElbSecurityGroup
|
||||
out.SpotinstProduct = in.SpotinstProduct
|
||||
out.SpotinstOrientation = in.SpotinstOrientation
|
||||
if in.Openstack != nil {
|
||||
in, out := &in.Openstack, &out.Openstack
|
||||
*out = new(OpenstackConfiguration)
|
||||
if err := Convert_kops_OpenstackConfiguration_To_v1alpha2_OpenstackConfiguration(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Openstack = nil
|
||||
}
|
||||
if in.AWSEBSCSIDriver != nil {
|
||||
in, out := &in.AWSEBSCSIDriver, &out.AWSEBSCSIDriver
|
||||
*out = new(AWSEBSCSIDriver)
|
||||
|
|
@ -6475,134 +6458,6 @@ func Convert_kops_OpenstackBlockStorageConfig_To_v1alpha2_OpenstackBlockStorageC
|
|||
return autoConvert_kops_OpenstackBlockStorageConfig_To_v1alpha2_OpenstackBlockStorageConfig(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_v1alpha2_OpenstackConfiguration_To_kops_OpenstackConfiguration(in *OpenstackConfiguration, out *kops.OpenstackConfiguration, s conversion.Scope) error {
|
||||
if in.Loadbalancer != nil {
|
||||
in, out := &in.Loadbalancer, &out.Loadbalancer
|
||||
*out = new(kops.OpenstackLoadbalancerConfig)
|
||||
if err := Convert_v1alpha2_OpenstackLoadbalancerConfig_To_kops_OpenstackLoadbalancerConfig(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Loadbalancer = nil
|
||||
}
|
||||
if in.Monitor != nil {
|
||||
in, out := &in.Monitor, &out.Monitor
|
||||
*out = new(kops.OpenstackMonitor)
|
||||
if err := Convert_v1alpha2_OpenstackMonitor_To_kops_OpenstackMonitor(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Monitor = nil
|
||||
}
|
||||
if in.Router != nil {
|
||||
in, out := &in.Router, &out.Router
|
||||
*out = new(kops.OpenstackRouter)
|
||||
if err := Convert_v1alpha2_OpenstackRouter_To_kops_OpenstackRouter(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Router = nil
|
||||
}
|
||||
if in.BlockStorage != nil {
|
||||
in, out := &in.BlockStorage, &out.BlockStorage
|
||||
*out = new(kops.OpenstackBlockStorageConfig)
|
||||
if err := Convert_v1alpha2_OpenstackBlockStorageConfig_To_kops_OpenstackBlockStorageConfig(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.BlockStorage = nil
|
||||
}
|
||||
out.InsecureSkipVerify = in.InsecureSkipVerify
|
||||
if in.Network != nil {
|
||||
in, out := &in.Network, &out.Network
|
||||
*out = new(kops.OpenstackNetwork)
|
||||
if err := Convert_v1alpha2_OpenstackNetwork_To_kops_OpenstackNetwork(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Network = nil
|
||||
}
|
||||
if in.Metadata != nil {
|
||||
in, out := &in.Metadata, &out.Metadata
|
||||
*out = new(kops.OpenstackMetadata)
|
||||
if err := Convert_v1alpha2_OpenstackMetadata_To_kops_OpenstackMetadata(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Metadata = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Convert_v1alpha2_OpenstackConfiguration_To_kops_OpenstackConfiguration is an autogenerated conversion function.
|
||||
func Convert_v1alpha2_OpenstackConfiguration_To_kops_OpenstackConfiguration(in *OpenstackConfiguration, out *kops.OpenstackConfiguration, s conversion.Scope) error {
|
||||
return autoConvert_v1alpha2_OpenstackConfiguration_To_kops_OpenstackConfiguration(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_kops_OpenstackConfiguration_To_v1alpha2_OpenstackConfiguration(in *kops.OpenstackConfiguration, out *OpenstackConfiguration, s conversion.Scope) error {
|
||||
if in.Loadbalancer != nil {
|
||||
in, out := &in.Loadbalancer, &out.Loadbalancer
|
||||
*out = new(OpenstackLoadbalancerConfig)
|
||||
if err := Convert_kops_OpenstackLoadbalancerConfig_To_v1alpha2_OpenstackLoadbalancerConfig(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Loadbalancer = nil
|
||||
}
|
||||
if in.Monitor != nil {
|
||||
in, out := &in.Monitor, &out.Monitor
|
||||
*out = new(OpenstackMonitor)
|
||||
if err := Convert_kops_OpenstackMonitor_To_v1alpha2_OpenstackMonitor(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Monitor = nil
|
||||
}
|
||||
if in.Router != nil {
|
||||
in, out := &in.Router, &out.Router
|
||||
*out = new(OpenstackRouter)
|
||||
if err := Convert_kops_OpenstackRouter_To_v1alpha2_OpenstackRouter(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Router = nil
|
||||
}
|
||||
if in.BlockStorage != nil {
|
||||
in, out := &in.BlockStorage, &out.BlockStorage
|
||||
*out = new(OpenstackBlockStorageConfig)
|
||||
if err := Convert_kops_OpenstackBlockStorageConfig_To_v1alpha2_OpenstackBlockStorageConfig(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.BlockStorage = nil
|
||||
}
|
||||
out.InsecureSkipVerify = in.InsecureSkipVerify
|
||||
if in.Network != nil {
|
||||
in, out := &in.Network, &out.Network
|
||||
*out = new(OpenstackNetwork)
|
||||
if err := Convert_kops_OpenstackNetwork_To_v1alpha2_OpenstackNetwork(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Network = nil
|
||||
}
|
||||
if in.Metadata != nil {
|
||||
in, out := &in.Metadata, &out.Metadata
|
||||
*out = new(OpenstackMetadata)
|
||||
if err := Convert_kops_OpenstackMetadata_To_v1alpha2_OpenstackMetadata(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Metadata = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Convert_kops_OpenstackConfiguration_To_v1alpha2_OpenstackConfiguration is an autogenerated conversion function.
|
||||
func Convert_kops_OpenstackConfiguration_To_v1alpha2_OpenstackConfiguration(in *kops.OpenstackConfiguration, out *OpenstackConfiguration, s conversion.Scope) error {
|
||||
return autoConvert_kops_OpenstackConfiguration_To_v1alpha2_OpenstackConfiguration(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_v1alpha2_OpenstackLoadbalancerConfig_To_kops_OpenstackLoadbalancerConfig(in *OpenstackLoadbalancerConfig, out *kops.OpenstackLoadbalancerConfig, s conversion.Scope) error {
|
||||
out.Method = in.Method
|
||||
out.Provider = in.Provider
|
||||
|
|
@ -6731,6 +6586,134 @@ func Convert_kops_OpenstackRouter_To_v1alpha2_OpenstackRouter(in *kops.Openstack
|
|||
return autoConvert_kops_OpenstackRouter_To_v1alpha2_OpenstackRouter(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_v1alpha2_OpenstackSpec_To_kops_OpenstackSpec(in *OpenstackSpec, out *kops.OpenstackSpec, s conversion.Scope) error {
|
||||
if in.Loadbalancer != nil {
|
||||
in, out := &in.Loadbalancer, &out.Loadbalancer
|
||||
*out = new(kops.OpenstackLoadbalancerConfig)
|
||||
if err := Convert_v1alpha2_OpenstackLoadbalancerConfig_To_kops_OpenstackLoadbalancerConfig(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Loadbalancer = nil
|
||||
}
|
||||
if in.Monitor != nil {
|
||||
in, out := &in.Monitor, &out.Monitor
|
||||
*out = new(kops.OpenstackMonitor)
|
||||
if err := Convert_v1alpha2_OpenstackMonitor_To_kops_OpenstackMonitor(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Monitor = nil
|
||||
}
|
||||
if in.Router != nil {
|
||||
in, out := &in.Router, &out.Router
|
||||
*out = new(kops.OpenstackRouter)
|
||||
if err := Convert_v1alpha2_OpenstackRouter_To_kops_OpenstackRouter(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Router = nil
|
||||
}
|
||||
if in.BlockStorage != nil {
|
||||
in, out := &in.BlockStorage, &out.BlockStorage
|
||||
*out = new(kops.OpenstackBlockStorageConfig)
|
||||
if err := Convert_v1alpha2_OpenstackBlockStorageConfig_To_kops_OpenstackBlockStorageConfig(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.BlockStorage = nil
|
||||
}
|
||||
out.InsecureSkipVerify = in.InsecureSkipVerify
|
||||
if in.Network != nil {
|
||||
in, out := &in.Network, &out.Network
|
||||
*out = new(kops.OpenstackNetwork)
|
||||
if err := Convert_v1alpha2_OpenstackNetwork_To_kops_OpenstackNetwork(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Network = nil
|
||||
}
|
||||
if in.Metadata != nil {
|
||||
in, out := &in.Metadata, &out.Metadata
|
||||
*out = new(kops.OpenstackMetadata)
|
||||
if err := Convert_v1alpha2_OpenstackMetadata_To_kops_OpenstackMetadata(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Metadata = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Convert_v1alpha2_OpenstackSpec_To_kops_OpenstackSpec is an autogenerated conversion function.
|
||||
func Convert_v1alpha2_OpenstackSpec_To_kops_OpenstackSpec(in *OpenstackSpec, out *kops.OpenstackSpec, s conversion.Scope) error {
|
||||
return autoConvert_v1alpha2_OpenstackSpec_To_kops_OpenstackSpec(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_kops_OpenstackSpec_To_v1alpha2_OpenstackSpec(in *kops.OpenstackSpec, out *OpenstackSpec, s conversion.Scope) error {
|
||||
if in.Loadbalancer != nil {
|
||||
in, out := &in.Loadbalancer, &out.Loadbalancer
|
||||
*out = new(OpenstackLoadbalancerConfig)
|
||||
if err := Convert_kops_OpenstackLoadbalancerConfig_To_v1alpha2_OpenstackLoadbalancerConfig(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Loadbalancer = nil
|
||||
}
|
||||
if in.Monitor != nil {
|
||||
in, out := &in.Monitor, &out.Monitor
|
||||
*out = new(OpenstackMonitor)
|
||||
if err := Convert_kops_OpenstackMonitor_To_v1alpha2_OpenstackMonitor(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Monitor = nil
|
||||
}
|
||||
if in.Router != nil {
|
||||
in, out := &in.Router, &out.Router
|
||||
*out = new(OpenstackRouter)
|
||||
if err := Convert_kops_OpenstackRouter_To_v1alpha2_OpenstackRouter(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Router = nil
|
||||
}
|
||||
if in.BlockStorage != nil {
|
||||
in, out := &in.BlockStorage, &out.BlockStorage
|
||||
*out = new(OpenstackBlockStorageConfig)
|
||||
if err := Convert_kops_OpenstackBlockStorageConfig_To_v1alpha2_OpenstackBlockStorageConfig(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.BlockStorage = nil
|
||||
}
|
||||
out.InsecureSkipVerify = in.InsecureSkipVerify
|
||||
if in.Network != nil {
|
||||
in, out := &in.Network, &out.Network
|
||||
*out = new(OpenstackNetwork)
|
||||
if err := Convert_kops_OpenstackNetwork_To_v1alpha2_OpenstackNetwork(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Network = nil
|
||||
}
|
||||
if in.Metadata != nil {
|
||||
in, out := &in.Metadata, &out.Metadata
|
||||
*out = new(OpenstackMetadata)
|
||||
if err := Convert_kops_OpenstackMetadata_To_v1alpha2_OpenstackMetadata(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Metadata = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Convert_kops_OpenstackSpec_To_v1alpha2_OpenstackSpec is an autogenerated conversion function.
|
||||
func Convert_kops_OpenstackSpec_To_v1alpha2_OpenstackSpec(in *kops.OpenstackSpec, out *OpenstackSpec, s conversion.Scope) error {
|
||||
return autoConvert_kops_OpenstackSpec_To_v1alpha2_OpenstackSpec(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_v1alpha2_PackagesConfig_To_kops_PackagesConfig(in *PackagesConfig, out *kops.PackagesConfig, s conversion.Scope) error {
|
||||
out.HashAmd64 = in.HashAmd64
|
||||
out.HashArm64 = in.HashArm64
|
||||
|
|
|
|||
|
|
@ -738,7 +738,7 @@ func (in *CloudConfiguration) DeepCopyInto(out *CloudConfiguration) {
|
|||
}
|
||||
if in.Openstack != nil {
|
||||
in, out := &in.Openstack, &out.Openstack
|
||||
*out = new(OpenstackConfiguration)
|
||||
*out = new(OpenstackSpec)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Azure != nil {
|
||||
|
|
@ -4526,57 +4526,6 @@ func (in *OpenstackBlockStorageConfig) DeepCopy() *OpenstackBlockStorageConfig {
|
|||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *OpenstackConfiguration) DeepCopyInto(out *OpenstackConfiguration) {
|
||||
*out = *in
|
||||
if in.Loadbalancer != nil {
|
||||
in, out := &in.Loadbalancer, &out.Loadbalancer
|
||||
*out = new(OpenstackLoadbalancerConfig)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Monitor != nil {
|
||||
in, out := &in.Monitor, &out.Monitor
|
||||
*out = new(OpenstackMonitor)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Router != nil {
|
||||
in, out := &in.Router, &out.Router
|
||||
*out = new(OpenstackRouter)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.BlockStorage != nil {
|
||||
in, out := &in.BlockStorage, &out.BlockStorage
|
||||
*out = new(OpenstackBlockStorageConfig)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.InsecureSkipVerify != nil {
|
||||
in, out := &in.InsecureSkipVerify, &out.InsecureSkipVerify
|
||||
*out = new(bool)
|
||||
**out = **in
|
||||
}
|
||||
if in.Network != nil {
|
||||
in, out := &in.Network, &out.Network
|
||||
*out = new(OpenstackNetwork)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Metadata != nil {
|
||||
in, out := &in.Metadata, &out.Metadata
|
||||
*out = new(OpenstackMetadata)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenstackConfiguration.
|
||||
func (in *OpenstackConfiguration) DeepCopy() *OpenstackConfiguration {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(OpenstackConfiguration)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *OpenstackLoadbalancerConfig) DeepCopyInto(out *OpenstackLoadbalancerConfig) {
|
||||
*out = *in
|
||||
|
|
@ -4764,6 +4713,57 @@ func (in *OpenstackRouter) DeepCopy() *OpenstackRouter {
|
|||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *OpenstackSpec) DeepCopyInto(out *OpenstackSpec) {
|
||||
*out = *in
|
||||
if in.Loadbalancer != nil {
|
||||
in, out := &in.Loadbalancer, &out.Loadbalancer
|
||||
*out = new(OpenstackLoadbalancerConfig)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Monitor != nil {
|
||||
in, out := &in.Monitor, &out.Monitor
|
||||
*out = new(OpenstackMonitor)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Router != nil {
|
||||
in, out := &in.Router, &out.Router
|
||||
*out = new(OpenstackRouter)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.BlockStorage != nil {
|
||||
in, out := &in.BlockStorage, &out.BlockStorage
|
||||
*out = new(OpenstackBlockStorageConfig)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.InsecureSkipVerify != nil {
|
||||
in, out := &in.InsecureSkipVerify, &out.InsecureSkipVerify
|
||||
*out = new(bool)
|
||||
**out = **in
|
||||
}
|
||||
if in.Network != nil {
|
||||
in, out := &in.Network, &out.Network
|
||||
*out = new(OpenstackNetwork)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Metadata != nil {
|
||||
in, out := &in.Metadata, &out.Metadata
|
||||
*out = new(OpenstackMetadata)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenstackSpec.
|
||||
func (in *OpenstackSpec) DeepCopy() *OpenstackSpec {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(OpenstackSpec)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *PackagesConfig) DeepCopyInto(out *PackagesConfig) {
|
||||
*out = *in
|
||||
|
|
|
|||
|
|
@ -249,10 +249,6 @@ type DOSpec struct {
|
|||
type GCESpec struct {
|
||||
}
|
||||
|
||||
// OpenstackSpec configures the Openstack cloud provider.
|
||||
type OpenstackSpec struct {
|
||||
}
|
||||
|
||||
type KarpenterConfig struct {
|
||||
Enabled bool `json:"enabled,omitempty"`
|
||||
}
|
||||
|
|
|
|||
|
|
@ -809,8 +809,8 @@ type OpenstackMetadata struct {
|
|||
ConfigDrive *bool `json:"configDrive,omitempty"`
|
||||
}
|
||||
|
||||
// OpenstackConfiguration defines cloud config elements for the openstack cloud provider
|
||||
type OpenstackConfiguration struct {
|
||||
// OpenstackSpec defines cloud config elements for the openstack cloud provider
|
||||
type OpenstackSpec struct {
|
||||
Loadbalancer *OpenstackLoadbalancerConfig `json:"loadbalancer,omitempty"`
|
||||
Monitor *OpenstackMonitor `json:"monitor,omitempty"`
|
||||
Router *OpenstackRouter `json:"router,omitempty"`
|
||||
|
|
@ -862,8 +862,6 @@ type CloudConfiguration struct {
|
|||
// Spotinst cloud-config specs
|
||||
SpotinstProduct *string `json:"spotinstProduct,omitempty"`
|
||||
SpotinstOrientation *string `json:"spotinstOrientation,omitempty"`
|
||||
// Openstack cloud-config options
|
||||
Openstack *OpenstackConfiguration `json:"openstack,omitempty"`
|
||||
// AWSEBSCSIDriver is the config for the AWS EBS CSI driver
|
||||
AWSEBSCSIDriver *AWSEBSCSIDriver `json:"awsEBSCSIDriver,omitempty"`
|
||||
// GCPPDCSIDriver is the config for the GCP PD CSI driver
|
||||
|
|
|
|||
|
|
@ -954,16 +954,6 @@ func RegisterConversions(s *runtime.Scheme) error {
|
|||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := s.AddGeneratedConversionFunc((*OpenstackConfiguration)(nil), (*kops.OpenstackConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||
return Convert_v1alpha3_OpenstackConfiguration_To_kops_OpenstackConfiguration(a.(*OpenstackConfiguration), b.(*kops.OpenstackConfiguration), scope)
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := s.AddGeneratedConversionFunc((*kops.OpenstackConfiguration)(nil), (*OpenstackConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||
return Convert_kops_OpenstackConfiguration_To_v1alpha3_OpenstackConfiguration(a.(*kops.OpenstackConfiguration), b.(*OpenstackConfiguration), scope)
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := s.AddGeneratedConversionFunc((*OpenstackLoadbalancerConfig)(nil), (*kops.OpenstackLoadbalancerConfig)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||
return Convert_v1alpha3_OpenstackLoadbalancerConfig_To_kops_OpenstackLoadbalancerConfig(a.(*OpenstackLoadbalancerConfig), b.(*kops.OpenstackLoadbalancerConfig), scope)
|
||||
}); err != nil {
|
||||
|
|
@ -2060,15 +2050,6 @@ func autoConvert_v1alpha3_CloudConfiguration_To_kops_CloudConfiguration(in *Clou
|
|||
out.ElbSecurityGroup = in.ElbSecurityGroup
|
||||
out.SpotinstProduct = in.SpotinstProduct
|
||||
out.SpotinstOrientation = in.SpotinstOrientation
|
||||
if in.Openstack != nil {
|
||||
in, out := &in.Openstack, &out.Openstack
|
||||
*out = new(kops.OpenstackConfiguration)
|
||||
if err := Convert_v1alpha3_OpenstackConfiguration_To_kops_OpenstackConfiguration(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Openstack = nil
|
||||
}
|
||||
if in.AWSEBSCSIDriver != nil {
|
||||
in, out := &in.AWSEBSCSIDriver, &out.AWSEBSCSIDriver
|
||||
*out = new(kops.AWSEBSCSIDriver)
|
||||
|
|
@ -2106,15 +2087,6 @@ func autoConvert_kops_CloudConfiguration_To_v1alpha3_CloudConfiguration(in *kops
|
|||
out.ElbSecurityGroup = in.ElbSecurityGroup
|
||||
out.SpotinstProduct = in.SpotinstProduct
|
||||
out.SpotinstOrientation = in.SpotinstOrientation
|
||||
if in.Openstack != nil {
|
||||
in, out := &in.Openstack, &out.Openstack
|
||||
*out = new(OpenstackConfiguration)
|
||||
if err := Convert_kops_OpenstackConfiguration_To_v1alpha3_OpenstackConfiguration(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Openstack = nil
|
||||
}
|
||||
if in.AWSEBSCSIDriver != nil {
|
||||
in, out := &in.AWSEBSCSIDriver, &out.AWSEBSCSIDriver
|
||||
*out = new(AWSEBSCSIDriver)
|
||||
|
|
@ -6439,134 +6411,6 @@ func Convert_kops_OpenstackBlockStorageConfig_To_v1alpha3_OpenstackBlockStorageC
|
|||
return autoConvert_kops_OpenstackBlockStorageConfig_To_v1alpha3_OpenstackBlockStorageConfig(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_v1alpha3_OpenstackConfiguration_To_kops_OpenstackConfiguration(in *OpenstackConfiguration, out *kops.OpenstackConfiguration, s conversion.Scope) error {
|
||||
if in.Loadbalancer != nil {
|
||||
in, out := &in.Loadbalancer, &out.Loadbalancer
|
||||
*out = new(kops.OpenstackLoadbalancerConfig)
|
||||
if err := Convert_v1alpha3_OpenstackLoadbalancerConfig_To_kops_OpenstackLoadbalancerConfig(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Loadbalancer = nil
|
||||
}
|
||||
if in.Monitor != nil {
|
||||
in, out := &in.Monitor, &out.Monitor
|
||||
*out = new(kops.OpenstackMonitor)
|
||||
if err := Convert_v1alpha3_OpenstackMonitor_To_kops_OpenstackMonitor(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Monitor = nil
|
||||
}
|
||||
if in.Router != nil {
|
||||
in, out := &in.Router, &out.Router
|
||||
*out = new(kops.OpenstackRouter)
|
||||
if err := Convert_v1alpha3_OpenstackRouter_To_kops_OpenstackRouter(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Router = nil
|
||||
}
|
||||
if in.BlockStorage != nil {
|
||||
in, out := &in.BlockStorage, &out.BlockStorage
|
||||
*out = new(kops.OpenstackBlockStorageConfig)
|
||||
if err := Convert_v1alpha3_OpenstackBlockStorageConfig_To_kops_OpenstackBlockStorageConfig(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.BlockStorage = nil
|
||||
}
|
||||
out.InsecureSkipVerify = in.InsecureSkipVerify
|
||||
if in.Network != nil {
|
||||
in, out := &in.Network, &out.Network
|
||||
*out = new(kops.OpenstackNetwork)
|
||||
if err := Convert_v1alpha3_OpenstackNetwork_To_kops_OpenstackNetwork(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Network = nil
|
||||
}
|
||||
if in.Metadata != nil {
|
||||
in, out := &in.Metadata, &out.Metadata
|
||||
*out = new(kops.OpenstackMetadata)
|
||||
if err := Convert_v1alpha3_OpenstackMetadata_To_kops_OpenstackMetadata(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Metadata = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Convert_v1alpha3_OpenstackConfiguration_To_kops_OpenstackConfiguration is an autogenerated conversion function.
|
||||
func Convert_v1alpha3_OpenstackConfiguration_To_kops_OpenstackConfiguration(in *OpenstackConfiguration, out *kops.OpenstackConfiguration, s conversion.Scope) error {
|
||||
return autoConvert_v1alpha3_OpenstackConfiguration_To_kops_OpenstackConfiguration(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_kops_OpenstackConfiguration_To_v1alpha3_OpenstackConfiguration(in *kops.OpenstackConfiguration, out *OpenstackConfiguration, s conversion.Scope) error {
|
||||
if in.Loadbalancer != nil {
|
||||
in, out := &in.Loadbalancer, &out.Loadbalancer
|
||||
*out = new(OpenstackLoadbalancerConfig)
|
||||
if err := Convert_kops_OpenstackLoadbalancerConfig_To_v1alpha3_OpenstackLoadbalancerConfig(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Loadbalancer = nil
|
||||
}
|
||||
if in.Monitor != nil {
|
||||
in, out := &in.Monitor, &out.Monitor
|
||||
*out = new(OpenstackMonitor)
|
||||
if err := Convert_kops_OpenstackMonitor_To_v1alpha3_OpenstackMonitor(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Monitor = nil
|
||||
}
|
||||
if in.Router != nil {
|
||||
in, out := &in.Router, &out.Router
|
||||
*out = new(OpenstackRouter)
|
||||
if err := Convert_kops_OpenstackRouter_To_v1alpha3_OpenstackRouter(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Router = nil
|
||||
}
|
||||
if in.BlockStorage != nil {
|
||||
in, out := &in.BlockStorage, &out.BlockStorage
|
||||
*out = new(OpenstackBlockStorageConfig)
|
||||
if err := Convert_kops_OpenstackBlockStorageConfig_To_v1alpha3_OpenstackBlockStorageConfig(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.BlockStorage = nil
|
||||
}
|
||||
out.InsecureSkipVerify = in.InsecureSkipVerify
|
||||
if in.Network != nil {
|
||||
in, out := &in.Network, &out.Network
|
||||
*out = new(OpenstackNetwork)
|
||||
if err := Convert_kops_OpenstackNetwork_To_v1alpha3_OpenstackNetwork(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Network = nil
|
||||
}
|
||||
if in.Metadata != nil {
|
||||
in, out := &in.Metadata, &out.Metadata
|
||||
*out = new(OpenstackMetadata)
|
||||
if err := Convert_kops_OpenstackMetadata_To_v1alpha3_OpenstackMetadata(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Metadata = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Convert_kops_OpenstackConfiguration_To_v1alpha3_OpenstackConfiguration is an autogenerated conversion function.
|
||||
func Convert_kops_OpenstackConfiguration_To_v1alpha3_OpenstackConfiguration(in *kops.OpenstackConfiguration, out *OpenstackConfiguration, s conversion.Scope) error {
|
||||
return autoConvert_kops_OpenstackConfiguration_To_v1alpha3_OpenstackConfiguration(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_v1alpha3_OpenstackLoadbalancerConfig_To_kops_OpenstackLoadbalancerConfig(in *OpenstackLoadbalancerConfig, out *kops.OpenstackLoadbalancerConfig, s conversion.Scope) error {
|
||||
out.Method = in.Method
|
||||
out.Provider = in.Provider
|
||||
|
|
@ -6696,6 +6540,61 @@ func Convert_kops_OpenstackRouter_To_v1alpha3_OpenstackRouter(in *kops.Openstack
|
|||
}
|
||||
|
||||
func autoConvert_v1alpha3_OpenstackSpec_To_kops_OpenstackSpec(in *OpenstackSpec, out *kops.OpenstackSpec, s conversion.Scope) error {
|
||||
if in.Loadbalancer != nil {
|
||||
in, out := &in.Loadbalancer, &out.Loadbalancer
|
||||
*out = new(kops.OpenstackLoadbalancerConfig)
|
||||
if err := Convert_v1alpha3_OpenstackLoadbalancerConfig_To_kops_OpenstackLoadbalancerConfig(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Loadbalancer = nil
|
||||
}
|
||||
if in.Monitor != nil {
|
||||
in, out := &in.Monitor, &out.Monitor
|
||||
*out = new(kops.OpenstackMonitor)
|
||||
if err := Convert_v1alpha3_OpenstackMonitor_To_kops_OpenstackMonitor(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Monitor = nil
|
||||
}
|
||||
if in.Router != nil {
|
||||
in, out := &in.Router, &out.Router
|
||||
*out = new(kops.OpenstackRouter)
|
||||
if err := Convert_v1alpha3_OpenstackRouter_To_kops_OpenstackRouter(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Router = nil
|
||||
}
|
||||
if in.BlockStorage != nil {
|
||||
in, out := &in.BlockStorage, &out.BlockStorage
|
||||
*out = new(kops.OpenstackBlockStorageConfig)
|
||||
if err := Convert_v1alpha3_OpenstackBlockStorageConfig_To_kops_OpenstackBlockStorageConfig(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.BlockStorage = nil
|
||||
}
|
||||
out.InsecureSkipVerify = in.InsecureSkipVerify
|
||||
if in.Network != nil {
|
||||
in, out := &in.Network, &out.Network
|
||||
*out = new(kops.OpenstackNetwork)
|
||||
if err := Convert_v1alpha3_OpenstackNetwork_To_kops_OpenstackNetwork(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Network = nil
|
||||
}
|
||||
if in.Metadata != nil {
|
||||
in, out := &in.Metadata, &out.Metadata
|
||||
*out = new(kops.OpenstackMetadata)
|
||||
if err := Convert_v1alpha3_OpenstackMetadata_To_kops_OpenstackMetadata(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Metadata = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
@ -6705,6 +6604,61 @@ func Convert_v1alpha3_OpenstackSpec_To_kops_OpenstackSpec(in *OpenstackSpec, out
|
|||
}
|
||||
|
||||
func autoConvert_kops_OpenstackSpec_To_v1alpha3_OpenstackSpec(in *kops.OpenstackSpec, out *OpenstackSpec, s conversion.Scope) error {
|
||||
if in.Loadbalancer != nil {
|
||||
in, out := &in.Loadbalancer, &out.Loadbalancer
|
||||
*out = new(OpenstackLoadbalancerConfig)
|
||||
if err := Convert_kops_OpenstackLoadbalancerConfig_To_v1alpha3_OpenstackLoadbalancerConfig(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Loadbalancer = nil
|
||||
}
|
||||
if in.Monitor != nil {
|
||||
in, out := &in.Monitor, &out.Monitor
|
||||
*out = new(OpenstackMonitor)
|
||||
if err := Convert_kops_OpenstackMonitor_To_v1alpha3_OpenstackMonitor(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Monitor = nil
|
||||
}
|
||||
if in.Router != nil {
|
||||
in, out := &in.Router, &out.Router
|
||||
*out = new(OpenstackRouter)
|
||||
if err := Convert_kops_OpenstackRouter_To_v1alpha3_OpenstackRouter(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Router = nil
|
||||
}
|
||||
if in.BlockStorage != nil {
|
||||
in, out := &in.BlockStorage, &out.BlockStorage
|
||||
*out = new(OpenstackBlockStorageConfig)
|
||||
if err := Convert_kops_OpenstackBlockStorageConfig_To_v1alpha3_OpenstackBlockStorageConfig(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.BlockStorage = nil
|
||||
}
|
||||
out.InsecureSkipVerify = in.InsecureSkipVerify
|
||||
if in.Network != nil {
|
||||
in, out := &in.Network, &out.Network
|
||||
*out = new(OpenstackNetwork)
|
||||
if err := Convert_kops_OpenstackNetwork_To_v1alpha3_OpenstackNetwork(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Network = nil
|
||||
}
|
||||
if in.Metadata != nil {
|
||||
in, out := &in.Metadata, &out.Metadata
|
||||
*out = new(OpenstackMetadata)
|
||||
if err := Convert_kops_OpenstackMetadata_To_v1alpha3_OpenstackMetadata(*in, *out, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Metadata = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -663,11 +663,6 @@ func (in *CloudConfiguration) DeepCopyInto(out *CloudConfiguration) {
|
|||
*out = new(string)
|
||||
**out = **in
|
||||
}
|
||||
if in.Openstack != nil {
|
||||
in, out := &in.Openstack, &out.Openstack
|
||||
*out = new(OpenstackConfiguration)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.AWSEBSCSIDriver != nil {
|
||||
in, out := &in.AWSEBSCSIDriver, &out.AWSEBSCSIDriver
|
||||
*out = new(AWSEBSCSIDriver)
|
||||
|
|
@ -768,7 +763,7 @@ func (in *CloudProviderSpec) DeepCopyInto(out *CloudProviderSpec) {
|
|||
if in.Openstack != nil {
|
||||
in, out := &in.Openstack, &out.Openstack
|
||||
*out = new(OpenstackSpec)
|
||||
**out = **in
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
|
@ -4436,57 +4431,6 @@ func (in *OpenstackBlockStorageConfig) DeepCopy() *OpenstackBlockStorageConfig {
|
|||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *OpenstackConfiguration) DeepCopyInto(out *OpenstackConfiguration) {
|
||||
*out = *in
|
||||
if in.Loadbalancer != nil {
|
||||
in, out := &in.Loadbalancer, &out.Loadbalancer
|
||||
*out = new(OpenstackLoadbalancerConfig)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Monitor != nil {
|
||||
in, out := &in.Monitor, &out.Monitor
|
||||
*out = new(OpenstackMonitor)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Router != nil {
|
||||
in, out := &in.Router, &out.Router
|
||||
*out = new(OpenstackRouter)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.BlockStorage != nil {
|
||||
in, out := &in.BlockStorage, &out.BlockStorage
|
||||
*out = new(OpenstackBlockStorageConfig)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.InsecureSkipVerify != nil {
|
||||
in, out := &in.InsecureSkipVerify, &out.InsecureSkipVerify
|
||||
*out = new(bool)
|
||||
**out = **in
|
||||
}
|
||||
if in.Network != nil {
|
||||
in, out := &in.Network, &out.Network
|
||||
*out = new(OpenstackNetwork)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Metadata != nil {
|
||||
in, out := &in.Metadata, &out.Metadata
|
||||
*out = new(OpenstackMetadata)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenstackConfiguration.
|
||||
func (in *OpenstackConfiguration) DeepCopy() *OpenstackConfiguration {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(OpenstackConfiguration)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *OpenstackLoadbalancerConfig) DeepCopyInto(out *OpenstackLoadbalancerConfig) {
|
||||
*out = *in
|
||||
|
|
@ -4677,6 +4621,41 @@ func (in *OpenstackRouter) DeepCopy() *OpenstackRouter {
|
|||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *OpenstackSpec) DeepCopyInto(out *OpenstackSpec) {
|
||||
*out = *in
|
||||
if in.Loadbalancer != nil {
|
||||
in, out := &in.Loadbalancer, &out.Loadbalancer
|
||||
*out = new(OpenstackLoadbalancerConfig)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Monitor != nil {
|
||||
in, out := &in.Monitor, &out.Monitor
|
||||
*out = new(OpenstackMonitor)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Router != nil {
|
||||
in, out := &in.Router, &out.Router
|
||||
*out = new(OpenstackRouter)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.BlockStorage != nil {
|
||||
in, out := &in.BlockStorage, &out.BlockStorage
|
||||
*out = new(OpenstackBlockStorageConfig)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.InsecureSkipVerify != nil {
|
||||
in, out := &in.InsecureSkipVerify, &out.InsecureSkipVerify
|
||||
*out = new(bool)
|
||||
**out = **in
|
||||
}
|
||||
if in.Network != nil {
|
||||
in, out := &in.Network, &out.Network
|
||||
*out = new(OpenstackNetwork)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Metadata != nil {
|
||||
in, out := &in.Metadata, &out.Metadata
|
||||
*out = new(OpenstackMetadata)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -22,10 +22,10 @@ import (
|
|||
)
|
||||
|
||||
func openstackValidateCluster(c *kops.Cluster) (errList field.ErrorList) {
|
||||
if c.Spec.CloudConfig == nil || c.Spec.CloudConfig.Openstack == nil {
|
||||
if c.Spec.CloudProvider.Openstack == nil {
|
||||
return errList
|
||||
}
|
||||
if c.Spec.CloudConfig.Openstack.Router == nil || c.Spec.CloudConfig.Openstack.Router.ExternalNetwork == nil {
|
||||
if c.Spec.CloudProvider.Openstack.Router == nil || c.Spec.CloudProvider.Openstack.Router.ExternalNetwork == nil {
|
||||
topology := c.Spec.Topology
|
||||
if topology == nil || topology.Nodes == kops.TopologyPublic {
|
||||
errList = append(errList, field.Forbidden(field.NewPath("spec", "topology", "nodes"), "Public topology requires an external network"))
|
||||
|
|
|
|||
|
|
@ -31,8 +31,8 @@ func Test_ValidateTopology(t *testing.T) {
|
|||
}{
|
||||
{
|
||||
Input: kops.ClusterSpec{
|
||||
CloudConfig: &kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{},
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{},
|
||||
},
|
||||
},
|
||||
ExpectedErrors: []string{
|
||||
|
|
@ -42,8 +42,8 @@ func Test_ValidateTopology(t *testing.T) {
|
|||
},
|
||||
{
|
||||
Input: kops.ClusterSpec{
|
||||
CloudConfig: &kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
Router: &kops.OpenstackRouter{},
|
||||
},
|
||||
},
|
||||
|
|
@ -55,8 +55,8 @@ func Test_ValidateTopology(t *testing.T) {
|
|||
},
|
||||
{
|
||||
Input: kops.ClusterSpec{
|
||||
CloudConfig: &kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{},
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{},
|
||||
},
|
||||
Topology: &kops.TopologySpec{
|
||||
Masters: kops.TopologyPrivate,
|
||||
|
|
@ -67,8 +67,8 @@ func Test_ValidateTopology(t *testing.T) {
|
|||
},
|
||||
{
|
||||
Input: kops.ClusterSpec{
|
||||
CloudConfig: &kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
Router: &kops.OpenstackRouter{
|
||||
ExternalNetwork: fi.String("foo"),
|
||||
},
|
||||
|
|
|
|||
|
|
@ -256,7 +256,7 @@ func validateClusterSpec(spec *kops.ClusterSpec, c *kops.Cluster, fieldPath *fie
|
|||
}
|
||||
|
||||
if spec.CloudConfig != nil {
|
||||
allErrs = append(allErrs, validateCloudConfiguration(spec.CloudConfig, fieldPath.Child("cloudConfig"))...)
|
||||
allErrs = append(allErrs, validateCloudConfiguration(spec.CloudConfig, spec, fieldPath.Child("cloudConfig"))...)
|
||||
}
|
||||
|
||||
if spec.WarmPool != nil {
|
||||
|
|
@ -1636,10 +1636,10 @@ func validateAWSLoadBalancerController(cluster *kops.Cluster, spec *kops.AWSLoad
|
|||
return allErrs
|
||||
}
|
||||
|
||||
func validateCloudConfiguration(cloudConfig *kops.CloudConfiguration, fldPath *field.Path) (allErrs field.ErrorList) {
|
||||
if cloudConfig.ManageStorageClasses != nil && cloudConfig.Openstack != nil &&
|
||||
cloudConfig.Openstack.BlockStorage != nil && cloudConfig.Openstack.BlockStorage.CreateStorageClass != nil {
|
||||
if *cloudConfig.Openstack.BlockStorage.CreateStorageClass != *cloudConfig.ManageStorageClasses {
|
||||
func validateCloudConfiguration(cloudConfig *kops.CloudConfiguration, spec *kops.ClusterSpec, fldPath *field.Path) (allErrs field.ErrorList) {
|
||||
if cloudConfig.ManageStorageClasses != nil && spec.CloudProvider.Openstack != nil &&
|
||||
spec.CloudProvider.Openstack.BlockStorage != nil && spec.CloudProvider.Openstack.BlockStorage.CreateStorageClass != nil {
|
||||
if *spec.CloudProvider.Openstack.BlockStorage.CreateStorageClass != *cloudConfig.ManageStorageClasses {
|
||||
allErrs = append(allErrs, field.Forbidden(fldPath.Child("manageStorageClasses"),
|
||||
"Management of storage classes and OpenStack block storage classes are both specified but disagree"))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1177,6 +1177,7 @@ func Test_Validate_CloudConfiguration(t *testing.T) {
|
|||
grid := []struct {
|
||||
Description string
|
||||
Input kops.CloudConfiguration
|
||||
CloudProvider kops.CloudProviderSpec
|
||||
ExpectedErrors []string
|
||||
}{
|
||||
{
|
||||
|
|
@ -1197,8 +1198,9 @@ func Test_Validate_CloudConfiguration(t *testing.T) {
|
|||
},
|
||||
{
|
||||
Description: "os false",
|
||||
Input: kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
Input: kops.CloudConfiguration{},
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
BlockStorage: &kops.OpenstackBlockStorageConfig{
|
||||
CreateStorageClass: fi.Bool(false),
|
||||
},
|
||||
|
|
@ -1207,8 +1209,9 @@ func Test_Validate_CloudConfiguration(t *testing.T) {
|
|||
},
|
||||
{
|
||||
Description: "os true",
|
||||
Input: kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
Input: kops.CloudConfiguration{},
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
BlockStorage: &kops.OpenstackBlockStorageConfig{
|
||||
CreateStorageClass: fi.Bool(true),
|
||||
},
|
||||
|
|
@ -1219,7 +1222,9 @@ func Test_Validate_CloudConfiguration(t *testing.T) {
|
|||
Description: "all false, os false",
|
||||
Input: kops.CloudConfiguration{
|
||||
ManageStorageClasses: fi.Bool(false),
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
},
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
BlockStorage: &kops.OpenstackBlockStorageConfig{
|
||||
CreateStorageClass: fi.Bool(false),
|
||||
},
|
||||
|
|
@ -1230,7 +1235,9 @@ func Test_Validate_CloudConfiguration(t *testing.T) {
|
|||
Description: "all false, os true",
|
||||
Input: kops.CloudConfiguration{
|
||||
ManageStorageClasses: fi.Bool(false),
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
},
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
BlockStorage: &kops.OpenstackBlockStorageConfig{
|
||||
CreateStorageClass: fi.Bool(true),
|
||||
},
|
||||
|
|
@ -1242,7 +1249,9 @@ func Test_Validate_CloudConfiguration(t *testing.T) {
|
|||
Description: "all true, os false",
|
||||
Input: kops.CloudConfiguration{
|
||||
ManageStorageClasses: fi.Bool(true),
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
},
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
BlockStorage: &kops.OpenstackBlockStorageConfig{
|
||||
CreateStorageClass: fi.Bool(false),
|
||||
},
|
||||
|
|
@ -1254,7 +1263,9 @@ func Test_Validate_CloudConfiguration(t *testing.T) {
|
|||
Description: "all true, os true",
|
||||
Input: kops.CloudConfiguration{
|
||||
ManageStorageClasses: fi.Bool(true),
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
},
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
BlockStorage: &kops.OpenstackBlockStorageConfig{
|
||||
CreateStorageClass: fi.Bool(true),
|
||||
},
|
||||
|
|
@ -1266,7 +1277,10 @@ func Test_Validate_CloudConfiguration(t *testing.T) {
|
|||
for _, g := range grid {
|
||||
fldPath := field.NewPath("cloudConfig")
|
||||
t.Run(g.Description, func(t *testing.T) {
|
||||
errs := validateCloudConfiguration(&g.Input, fldPath)
|
||||
spec := &kops.ClusterSpec{
|
||||
CloudProvider: g.CloudProvider,
|
||||
}
|
||||
errs := validateCloudConfiguration(&g.Input, spec, fldPath)
|
||||
testErrors(t, g.Input, errs, g.ExpectedErrors)
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -760,11 +760,6 @@ func (in *CloudConfiguration) DeepCopyInto(out *CloudConfiguration) {
|
|||
*out = new(string)
|
||||
**out = **in
|
||||
}
|
||||
if in.Openstack != nil {
|
||||
in, out := &in.Openstack, &out.Openstack
|
||||
*out = new(OpenstackConfiguration)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.AWSEBSCSIDriver != nil {
|
||||
in, out := &in.AWSEBSCSIDriver, &out.AWSEBSCSIDriver
|
||||
*out = new(AWSEBSCSIDriver)
|
||||
|
|
@ -865,7 +860,7 @@ func (in *CloudProviderSpec) DeepCopyInto(out *CloudProviderSpec) {
|
|||
if in.Openstack != nil {
|
||||
in, out := &in.Openstack, &out.Openstack
|
||||
*out = new(OpenstackSpec)
|
||||
**out = **in
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
|
@ -4711,57 +4706,6 @@ func (in *OpenstackBlockStorageConfig) DeepCopy() *OpenstackBlockStorageConfig {
|
|||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *OpenstackConfiguration) DeepCopyInto(out *OpenstackConfiguration) {
|
||||
*out = *in
|
||||
if in.Loadbalancer != nil {
|
||||
in, out := &in.Loadbalancer, &out.Loadbalancer
|
||||
*out = new(OpenstackLoadbalancerConfig)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Monitor != nil {
|
||||
in, out := &in.Monitor, &out.Monitor
|
||||
*out = new(OpenstackMonitor)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Router != nil {
|
||||
in, out := &in.Router, &out.Router
|
||||
*out = new(OpenstackRouter)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.BlockStorage != nil {
|
||||
in, out := &in.BlockStorage, &out.BlockStorage
|
||||
*out = new(OpenstackBlockStorageConfig)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.InsecureSkipVerify != nil {
|
||||
in, out := &in.InsecureSkipVerify, &out.InsecureSkipVerify
|
||||
*out = new(bool)
|
||||
**out = **in
|
||||
}
|
||||
if in.Network != nil {
|
||||
in, out := &in.Network, &out.Network
|
||||
*out = new(OpenstackNetwork)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Metadata != nil {
|
||||
in, out := &in.Metadata, &out.Metadata
|
||||
*out = new(OpenstackMetadata)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenstackConfiguration.
|
||||
func (in *OpenstackConfiguration) DeepCopy() *OpenstackConfiguration {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(OpenstackConfiguration)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *OpenstackLoadbalancerConfig) DeepCopyInto(out *OpenstackLoadbalancerConfig) {
|
||||
*out = *in
|
||||
|
|
@ -4952,6 +4896,41 @@ func (in *OpenstackRouter) DeepCopy() *OpenstackRouter {
|
|||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *OpenstackSpec) DeepCopyInto(out *OpenstackSpec) {
|
||||
*out = *in
|
||||
if in.Loadbalancer != nil {
|
||||
in, out := &in.Loadbalancer, &out.Loadbalancer
|
||||
*out = new(OpenstackLoadbalancerConfig)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Monitor != nil {
|
||||
in, out := &in.Monitor, &out.Monitor
|
||||
*out = new(OpenstackMonitor)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Router != nil {
|
||||
in, out := &in.Router, &out.Router
|
||||
*out = new(OpenstackRouter)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.BlockStorage != nil {
|
||||
in, out := &in.BlockStorage, &out.BlockStorage
|
||||
*out = new(OpenstackBlockStorageConfig)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.InsecureSkipVerify != nil {
|
||||
in, out := &in.InsecureSkipVerify, &out.InsecureSkipVerify
|
||||
*out = new(bool)
|
||||
**out = **in
|
||||
}
|
||||
if in.Network != nil {
|
||||
in, out := &in.Network, &out.Network
|
||||
*out = new(OpenstackNetwork)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.Metadata != nil {
|
||||
in, out := &in.Metadata, &out.Metadata
|
||||
*out = new(OpenstackMetadata)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -42,10 +42,10 @@ func (b *CloudConfigurationOptionsBuilder) BuildOptions(o interface{}) error {
|
|||
|
||||
if c.ManageStorageClasses == nil {
|
||||
var manage *bool
|
||||
if c.Openstack != nil && c.Openstack.BlockStorage != nil && c.Openstack.BlockStorage.CreateStorageClass != nil {
|
||||
if clusterSpec.CloudProvider.Openstack != nil && clusterSpec.CloudProvider.Openstack.BlockStorage != nil && clusterSpec.CloudProvider.Openstack.BlockStorage.CreateStorageClass != nil {
|
||||
// Avoid a spurious conflict with a user-specified configuration for OpenStack by
|
||||
// adopting that more particular setting generally.
|
||||
manage = c.Openstack.BlockStorage.CreateStorageClass
|
||||
manage = clusterSpec.CloudProvider.Openstack.BlockStorage.CreateStorageClass
|
||||
} else {
|
||||
manage = fi.Bool(true)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -94,11 +94,9 @@ func TestCloudConfigurationOptionsBuilder(t *testing.T) {
|
|||
} {
|
||||
t.Run(test.description, func(t *testing.T) {
|
||||
spec := kopsapi.ClusterSpec{
|
||||
CloudConfig: &kopsapi.CloudConfiguration{},
|
||||
CloudProvider: kopsapi.CloudProviderSpec{
|
||||
Openstack: &kopsapi.OpenstackSpec{},
|
||||
},
|
||||
CloudConfig: &kopsapi.CloudConfiguration{
|
||||
Openstack: &kopsapi.OpenstackConfiguration{
|
||||
Openstack: &kopsapi.OpenstackSpec{
|
||||
BlockStorage: &kopsapi.OpenstackBlockStorageConfig{},
|
||||
},
|
||||
},
|
||||
|
|
@ -107,7 +105,7 @@ func TestCloudConfigurationOptionsBuilder(t *testing.T) {
|
|||
spec.CloudConfig.ManageStorageClasses = p
|
||||
}
|
||||
if p := test.openStackManageSCs; p != nil {
|
||||
spec.CloudConfig.Openstack.BlockStorage.CreateStorageClass = p
|
||||
spec.CloudProvider.Openstack.BlockStorage.CreateStorageClass = p
|
||||
}
|
||||
if err := ob.BuildOptions(&spec); err != nil {
|
||||
t.Fatalf("failed to build options: %v", err)
|
||||
|
|
|
|||
|
|
@ -22,17 +22,18 @@ import (
|
|||
"k8s.io/kops/upup/pkg/fi/loader"
|
||||
)
|
||||
|
||||
// OpenStackOptionsBulder adds options for OpenStack to the model
|
||||
type OpenStackOptionsBulder struct {
|
||||
// OpenStackOptionsBuilder adds options for OpenStack to the model
|
||||
type OpenStackOptionsBuilder struct {
|
||||
Context *OptionsContext
|
||||
}
|
||||
|
||||
var _ loader.OptionsBuilder = &OpenStackOptionsBulder{}
|
||||
var _ loader.OptionsBuilder = &OpenStackOptionsBuilder{}
|
||||
|
||||
func (b *OpenStackOptionsBulder) BuildOptions(o interface{}) error {
|
||||
func (b *OpenStackOptionsBuilder) BuildOptions(o interface{}) error {
|
||||
clusterSpec := o.(*kops.ClusterSpec)
|
||||
openstack := clusterSpec.CloudProvider.Openstack
|
||||
|
||||
if clusterSpec.GetCloudProvider() != kops.CloudProviderOpenstack {
|
||||
if openstack == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
@ -40,22 +41,19 @@ func (b *OpenStackOptionsBulder) BuildOptions(o interface{}) error {
|
|||
clusterSpec.CloudConfig = &kops.CloudConfiguration{}
|
||||
}
|
||||
|
||||
if clusterSpec.CloudConfig.Openstack == nil {
|
||||
clusterSpec.CloudConfig.Openstack = &kops.OpenstackConfiguration{}
|
||||
}
|
||||
if clusterSpec.CloudConfig.Openstack.BlockStorage == nil {
|
||||
clusterSpec.CloudConfig.Openstack.BlockStorage = &kops.OpenstackBlockStorageConfig{}
|
||||
if openstack.BlockStorage == nil {
|
||||
openstack.BlockStorage = &kops.OpenstackBlockStorageConfig{}
|
||||
}
|
||||
|
||||
if clusterSpec.CloudConfig.Openstack.BlockStorage.CreateStorageClass == nil {
|
||||
clusterSpec.CloudConfig.Openstack.BlockStorage.CreateStorageClass = fi.Bool(true)
|
||||
if openstack.BlockStorage.CreateStorageClass == nil {
|
||||
openstack.BlockStorage.CreateStorageClass = fi.Bool(true)
|
||||
}
|
||||
|
||||
if clusterSpec.CloudConfig.Openstack.Metadata == nil {
|
||||
clusterSpec.CloudConfig.Openstack.Metadata = &kops.OpenstackMetadata{}
|
||||
if openstack.Metadata == nil {
|
||||
openstack.Metadata = &kops.OpenstackMetadata{}
|
||||
}
|
||||
if clusterSpec.CloudConfig.Openstack.Metadata.ConfigDrive == nil {
|
||||
clusterSpec.CloudConfig.Openstack.Metadata.ConfigDrive = fi.Bool(false)
|
||||
if openstack.Metadata.ConfigDrive == nil {
|
||||
openstack.Metadata.ConfigDrive = fi.Bool(false)
|
||||
}
|
||||
|
||||
if clusterSpec.ExternalCloudControllerManager == nil {
|
||||
|
|
|
|||
|
|
@ -299,8 +299,8 @@ func (b *MasterVolumeBuilder) addOpenstackVolume(c *fi.ModelBuilderContext, name
|
|||
tags[openstack.TagNameRolePrefix+"master"] = "1"
|
||||
|
||||
// override zone
|
||||
if b.Cluster.Spec.CloudConfig.Openstack.BlockStorage != nil && b.Cluster.Spec.CloudConfig.Openstack.BlockStorage.OverrideAZ != nil {
|
||||
zone = fi.StringValue(b.Cluster.Spec.CloudConfig.Openstack.BlockStorage.OverrideAZ)
|
||||
if b.Cluster.Spec.CloudProvider.Openstack.BlockStorage != nil && b.Cluster.Spec.CloudProvider.Openstack.BlockStorage.OverrideAZ != nil {
|
||||
zone = fi.StringValue(b.Cluster.Spec.CloudProvider.Openstack.BlockStorage.OverrideAZ)
|
||||
}
|
||||
t := &openstacktasks.Volume{
|
||||
Name: fi.String(name),
|
||||
|
|
|
|||
|
|
@ -50,10 +50,8 @@ type FirewallModelBuilder struct {
|
|||
var _ fi.ModelBuilder = &FirewallModelBuilder{}
|
||||
|
||||
func (b *FirewallModelBuilder) usesOctavia() bool {
|
||||
if b.Cluster.Spec.CloudConfig != nil &&
|
||||
b.Cluster.Spec.CloudConfig.Openstack != nil &&
|
||||
b.Cluster.Spec.CloudConfig.Openstack.Loadbalancer != nil {
|
||||
return fi.BoolValue(b.Cluster.Spec.CloudConfig.Openstack.Loadbalancer.UseOctavia)
|
||||
if b.Cluster.Spec.CloudProvider.Openstack.Loadbalancer != nil {
|
||||
return fi.BoolValue(b.Cluster.Spec.CloudProvider.Openstack.Loadbalancer.UseOctavia)
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ var _ fi.ModelBuilder = &NetworkModelBuilder{}
|
|||
func (b *NetworkModelBuilder) Build(c *fi.ModelBuilderContext) error {
|
||||
clusterName := b.ClusterName()
|
||||
|
||||
osSpec := b.Cluster.Spec.CloudConfig.Openstack
|
||||
osSpec := b.Cluster.Spec.CloudProvider.Openstack
|
||||
|
||||
netName, err := b.GetNetworkName()
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ func (b *ServerGroupModelBuilder) buildInstances(c *fi.ModelBuilderContext, sg *
|
|||
securityGroupName := b.SecurityGroupName(ig.Spec.Role)
|
||||
securityGroups = append(securityGroups, b.LinkToSecurityGroup(securityGroupName))
|
||||
|
||||
if b.Cluster.Spec.CloudConfig.Openstack.Loadbalancer == nil && ig.Spec.Role == kops.InstanceGroupRoleMaster {
|
||||
if b.Cluster.Spec.CloudProvider.Openstack.Loadbalancer == nil && ig.Spec.Role == kops.InstanceGroupRoleMaster {
|
||||
securityGroups = append(securityGroups, b.LinkToSecurityGroup(b.Cluster.Spec.MasterPublicName))
|
||||
}
|
||||
|
||||
|
|
@ -177,13 +177,13 @@ func (b *ServerGroupModelBuilder) buildInstances(c *fi.ModelBuilderContext, sg *
|
|||
Metadata: metaWithName,
|
||||
SecurityGroups: ig.Spec.AdditionalSecurityGroups,
|
||||
AvailabilityZone: az,
|
||||
ConfigDrive: b.Cluster.Spec.CloudConfig.Openstack.Metadata.ConfigDrive,
|
||||
ConfigDrive: b.Cluster.Spec.CloudProvider.Openstack.Metadata.ConfigDrive,
|
||||
}
|
||||
c.AddTask(instanceTask)
|
||||
|
||||
// Associate a floating IP to the instances if we have external network in router
|
||||
// and respective topology is "public"
|
||||
if b.Cluster.Spec.CloudConfig.Openstack != nil && b.Cluster.Spec.CloudConfig.Openstack.Router != nil {
|
||||
if b.Cluster.Spec.CloudProvider.Openstack.Router != nil {
|
||||
if ig.Spec.AssociatePublicIP != nil && !fi.BoolValue(ig.Spec.AssociatePublicIP) {
|
||||
continue
|
||||
}
|
||||
|
|
@ -260,7 +260,7 @@ func (b *ServerGroupModelBuilder) Build(c *fi.ModelBuilderContext) error {
|
|||
}
|
||||
}
|
||||
|
||||
if b.Cluster.Spec.CloudConfig.Openstack.Loadbalancer != nil {
|
||||
if b.Cluster.Spec.CloudProvider.Openstack.Loadbalancer != nil {
|
||||
var lbSubnetName string
|
||||
var err error
|
||||
for _, sp := range b.Cluster.Spec.Subnets {
|
||||
|
|
|
|||
|
|
@ -50,8 +50,8 @@ func getServerGroupModelBuilderTestInput() []serverGroupModelBuilderTestInput {
|
|||
},
|
||||
Spec: kops.ClusterSpec{
|
||||
MasterPublicName: "master-public-name",
|
||||
CloudConfig: &kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
Router: &kops.OpenstackRouter{
|
||||
ExternalNetwork: fi.String("test"),
|
||||
},
|
||||
|
|
@ -107,8 +107,8 @@ func getServerGroupModelBuilderTestInput() []serverGroupModelBuilderTestInput {
|
|||
},
|
||||
Spec: kops.ClusterSpec{
|
||||
MasterPublicName: "master-public-name",
|
||||
CloudConfig: &kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
Router: &kops.OpenstackRouter{
|
||||
ExternalNetwork: fi.String("test"),
|
||||
},
|
||||
|
|
@ -192,8 +192,8 @@ func getServerGroupModelBuilderTestInput() []serverGroupModelBuilderTestInput {
|
|||
},
|
||||
Spec: kops.ClusterSpec{
|
||||
MasterPublicName: "master-public-name",
|
||||
CloudConfig: &kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
Router: &kops.OpenstackRouter{
|
||||
ExternalNetwork: fi.String("test"),
|
||||
},
|
||||
|
|
@ -313,8 +313,8 @@ func getServerGroupModelBuilderTestInput() []serverGroupModelBuilderTestInput {
|
|||
},
|
||||
Spec: kops.ClusterSpec{
|
||||
MasterPublicName: "master-public-name",
|
||||
CloudConfig: &kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
Loadbalancer: &kops.OpenstackLoadbalancerConfig{},
|
||||
Router: &kops.OpenstackRouter{
|
||||
ExternalNetwork: fi.String("test"),
|
||||
|
|
@ -441,8 +441,8 @@ func getServerGroupModelBuilderTestInput() []serverGroupModelBuilderTestInput {
|
|||
},
|
||||
Spec: kops.ClusterSpec{
|
||||
MasterPublicName: "master-public-name",
|
||||
CloudConfig: &kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
Metadata: &kops.OpenstackMetadata{
|
||||
ConfigDrive: fi.Bool(false),
|
||||
},
|
||||
|
|
@ -559,8 +559,8 @@ func getServerGroupModelBuilderTestInput() []serverGroupModelBuilderTestInput {
|
|||
},
|
||||
Spec: kops.ClusterSpec{
|
||||
MasterPublicName: "master-public-name",
|
||||
CloudConfig: &kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
Router: &kops.OpenstackRouter{
|
||||
ExternalNetwork: fi.String("test"),
|
||||
},
|
||||
|
|
@ -640,8 +640,8 @@ func getServerGroupModelBuilderTestInput() []serverGroupModelBuilderTestInput {
|
|||
},
|
||||
Spec: kops.ClusterSpec{
|
||||
MasterPublicName: "master-public-name",
|
||||
CloudConfig: &kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
Router: &kops.OpenstackRouter{
|
||||
ExternalNetwork: fi.String("test"),
|
||||
},
|
||||
|
|
@ -699,8 +699,8 @@ func getServerGroupModelBuilderTestInput() []serverGroupModelBuilderTestInput {
|
|||
},
|
||||
Spec: kops.ClusterSpec{
|
||||
MasterPublicName: "master-public-name",
|
||||
CloudConfig: &kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
Router: &kops.OpenstackRouter{
|
||||
ExternalNetwork: fi.String("test"),
|
||||
},
|
||||
|
|
@ -784,8 +784,8 @@ func getServerGroupModelBuilderTestInput() []serverGroupModelBuilderTestInput {
|
|||
},
|
||||
Spec: kops.ClusterSpec{
|
||||
MasterPublicName: "master-public-name",
|
||||
CloudConfig: &kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
Metadata: &kops.OpenstackMetadata{
|
||||
ConfigDrive: fi.Bool(false),
|
||||
},
|
||||
|
|
@ -827,8 +827,8 @@ func getServerGroupModelBuilderTestInput() []serverGroupModelBuilderTestInput {
|
|||
},
|
||||
Spec: kops.ClusterSpec{
|
||||
MasterPublicName: "master-public-name",
|
||||
CloudConfig: &kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
Metadata: &kops.OpenstackMetadata{
|
||||
ConfigDrive: fi.Bool(false),
|
||||
},
|
||||
|
|
@ -872,8 +872,8 @@ func getServerGroupModelBuilderTestInput() []serverGroupModelBuilderTestInput {
|
|||
},
|
||||
Spec: kops.ClusterSpec{
|
||||
MasterPublicName: "master-public-name",
|
||||
CloudConfig: &kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
Metadata: &kops.OpenstackMetadata{
|
||||
ConfigDrive: fi.Bool(false),
|
||||
},
|
||||
|
|
@ -915,8 +915,8 @@ func getServerGroupModelBuilderTestInput() []serverGroupModelBuilderTestInput {
|
|||
},
|
||||
Spec: kops.ClusterSpec{
|
||||
MasterPublicName: "master-public-name",
|
||||
CloudConfig: &kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
Metadata: &kops.OpenstackMetadata{
|
||||
ConfigDrive: fi.Bool(false),
|
||||
},
|
||||
|
|
@ -958,8 +958,8 @@ func getServerGroupModelBuilderTestInput() []serverGroupModelBuilderTestInput {
|
|||
},
|
||||
Spec: kops.ClusterSpec{
|
||||
MasterPublicName: "master-public-name",
|
||||
CloudConfig: &kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
Metadata: &kops.OpenstackMetadata{
|
||||
ConfigDrive: fi.Bool(false),
|
||||
},
|
||||
|
|
@ -1001,8 +1001,8 @@ func getServerGroupModelBuilderTestInput() []serverGroupModelBuilderTestInput {
|
|||
},
|
||||
Spec: kops.ClusterSpec{
|
||||
MasterPublicName: "master-public-name",
|
||||
CloudConfig: &kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
Metadata: &kops.OpenstackMetadata{
|
||||
ConfigDrive: fi.Bool(false),
|
||||
},
|
||||
|
|
|
|||
|
|
@ -12,6 +12,22 @@ spec:
|
|||
authorization:
|
||||
alwaysAllow: {}
|
||||
channel: stable
|
||||
cloudConfig:
|
||||
openstack:
|
||||
blockStorage:
|
||||
bs-version: test-bs-version
|
||||
insecureSkipVerify: true
|
||||
loadbalancer:
|
||||
method: lb-method
|
||||
metadata:
|
||||
configDrive: true
|
||||
monitor:
|
||||
delay: 44s
|
||||
network:
|
||||
availabilityZoneHints:
|
||||
- test-az-hints
|
||||
router:
|
||||
externalNetwork: test-external-network
|
||||
cloudProvider: openstack
|
||||
configBase: memfs://clusters.example.com/minimal.example.com
|
||||
etcdClusters:
|
||||
|
|
|
|||
|
|
@ -11,8 +11,23 @@ spec:
|
|||
authorization:
|
||||
alwaysAllow: {}
|
||||
channel: stable
|
||||
cloudConfig: {}
|
||||
cloudProvider:
|
||||
openstack: {}
|
||||
openstack:
|
||||
blockStorage:
|
||||
bs-version: test-bs-version
|
||||
insecureSkipVerify: true
|
||||
loadbalancer:
|
||||
method: lb-method
|
||||
metadata:
|
||||
configDrive: true
|
||||
monitor:
|
||||
delay: 44s
|
||||
network:
|
||||
availabilityZoneHints:
|
||||
- test-az-hints
|
||||
router:
|
||||
externalNetwork: test-external-network
|
||||
configBase: memfs://clusters.example.com/minimal.example.com
|
||||
etcdClusters:
|
||||
- cpuRequest: 200m
|
||||
|
|
|
|||
|
|
@ -281,7 +281,7 @@ spec:
|
|||
- "--timeout=3m"
|
||||
- "--extra-create-metadata"
|
||||
- "--default-fstype=ext4"
|
||||
{{ if WithDefaultBool .CloudConfig.Openstack.BlockStorage.CSITopologySupport false }}
|
||||
{{ if WithDefaultBool .CloudProvider.Openstack.BlockStorage.CSITopologySupport false }}
|
||||
- --feature-gates=Topology=true
|
||||
{{ end }}
|
||||
env:
|
||||
|
|
@ -328,7 +328,7 @@ spec:
|
|||
- mountPath: /var/lib/csi/sockets/pluginproxy/
|
||||
name: socket-dir
|
||||
- name: cinder-csi-plugin
|
||||
image: "{{- if .CloudConfig.Openstack.BlockStorage.CSIPluginImage -}} {{ .CloudConfig.Openstack.BlockStorage.CSIPluginImage }} {{- else -}} docker.io/k8scloudprovider/cinder-csi-plugin:{{OpenStackCSITag}} {{- end -}}"
|
||||
image: "{{- if .CloudProvider.Openstack.BlockStorage.CSIPluginImage -}} {{ .CloudProvider.Openstack.BlockStorage.CSIPluginImage }} {{- else -}} docker.io/k8scloudprovider/cinder-csi-plugin:{{OpenStackCSITag}} {{- end -}}"
|
||||
args:
|
||||
- /bin/cinder-csi-plugin
|
||||
- "--nodeid=$(NODE_ID)"
|
||||
|
|
@ -472,7 +472,7 @@ spec:
|
|||
capabilities:
|
||||
add: ["SYS_ADMIN"]
|
||||
allowPrivilegeEscalation: true
|
||||
image: "{{- if .CloudConfig.Openstack.BlockStorage.CSIPluginImage -}} {{ .CloudConfig.Openstack.BlockStorage.CSIPluginImage }} {{- else -}} docker.io/k8scloudprovider/cinder-csi-plugin:{{OpenStackCSITag}} {{- end -}}"
|
||||
image: "{{- if .CloudProvider.Openstack.BlockStorage.CSIPluginImage -}} {{ .CloudProvider.Openstack.BlockStorage.CSIPluginImage }} {{- else -}} docker.io/k8scloudprovider/cinder-csi-plugin:{{OpenStackCSITag}} {{- end -}}"
|
||||
args :
|
||||
- /bin/cinder-csi-plugin
|
||||
- "--nodeid=$(NODE_ID)"
|
||||
|
|
@ -535,7 +535,7 @@ spec:
|
|||
- Persistent
|
||||
- Ephemeral
|
||||
|
||||
{{ if and (WithDefaultBool .CloudConfig.ManageStorageClasses true) (WithDefaultBool .CloudConfig.Openstack.BlockStorage.CreateStorageClass true) }}
|
||||
{{ if and (WithDefaultBool .CloudConfig.ManageStorageClasses true) (WithDefaultBool .CloudProvider.Openstack.BlockStorage.CreateStorageClass true) }}
|
||||
---
|
||||
apiVersion: storage.k8s.io/v1
|
||||
kind: StorageClass
|
||||
|
|
|
|||
|
|
@ -276,7 +276,20 @@ func NewCluster(opt *NewClusterOptions, clientset simple.Clientset) (*NewCluster
|
|||
case api.CloudProviderGCE:
|
||||
cluster.Spec.CloudProvider.GCE = &api.GCESpec{}
|
||||
case api.CloudProviderOpenstack:
|
||||
cluster.Spec.CloudProvider.Openstack = &api.OpenstackSpec{}
|
||||
cluster.Spec.CloudProvider.Openstack = &api.OpenstackSpec{
|
||||
Router: &api.OpenstackRouter{
|
||||
ExternalNetwork: fi.String(opt.OpenstackExternalNet),
|
||||
},
|
||||
BlockStorage: &api.OpenstackBlockStorageConfig{
|
||||
Version: fi.String("v3"),
|
||||
IgnoreAZ: fi.Bool(opt.OpenstackStorageIgnoreAZ),
|
||||
},
|
||||
Monitor: &api.OpenstackMonitor{
|
||||
Delay: fi.String("15s"),
|
||||
Timeout: fi.String("10s"),
|
||||
MaxRetries: fi.Int(3),
|
||||
},
|
||||
}
|
||||
default:
|
||||
return nil, fmt.Errorf("unsupported cloud provider %s", opt.CloudProvider)
|
||||
}
|
||||
|
|
@ -415,20 +428,6 @@ func setupVPC(opt *NewClusterOptions, cluster *api.Cluster) error {
|
|||
if cluster.Spec.CloudConfig == nil {
|
||||
cluster.Spec.CloudConfig = &api.CloudConfiguration{}
|
||||
}
|
||||
cluster.Spec.CloudConfig.Openstack = &api.OpenstackConfiguration{
|
||||
Router: &api.OpenstackRouter{
|
||||
ExternalNetwork: fi.String(opt.OpenstackExternalNet),
|
||||
},
|
||||
BlockStorage: &api.OpenstackBlockStorageConfig{
|
||||
Version: fi.String("v3"),
|
||||
IgnoreAZ: fi.Bool(opt.OpenstackStorageIgnoreAZ),
|
||||
},
|
||||
Monitor: &api.OpenstackMonitor{
|
||||
Delay: fi.String("15s"),
|
||||
Timeout: fi.String("10s"),
|
||||
MaxRetries: fi.Int(3),
|
||||
},
|
||||
}
|
||||
|
||||
if cluster.Spec.NetworkID == "" && len(opt.SubnetIDs) > 0 {
|
||||
tags := make(map[string]string)
|
||||
|
|
@ -446,10 +445,10 @@ func setupVPC(opt *NewClusterOptions, cluster *api.Cluster) error {
|
|||
}
|
||||
|
||||
if opt.OpenstackDNSServers != "" {
|
||||
cluster.Spec.CloudConfig.Openstack.Router.DNSServers = fi.String(opt.OpenstackDNSServers)
|
||||
cluster.Spec.CloudProvider.Openstack.Router.DNSServers = fi.String(opt.OpenstackDNSServers)
|
||||
}
|
||||
if opt.OpenstackExternalSubnet != "" {
|
||||
cluster.Spec.CloudConfig.Openstack.Router.ExternalSubnet = fi.String(opt.OpenstackExternalSubnet)
|
||||
cluster.Spec.CloudProvider.Openstack.Router.ExternalSubnet = fi.String(opt.OpenstackExternalSubnet)
|
||||
}
|
||||
case api.CloudProviderAzure:
|
||||
// TODO(kenji): Find a right place for this.
|
||||
|
|
@ -1229,7 +1228,7 @@ func initializeOpenstackAPI(opt *NewClusterOptions, cluster *api.Cluster) {
|
|||
}
|
||||
}
|
||||
|
||||
cluster.Spec.CloudConfig.Openstack.Loadbalancer = &api.OpenstackLoadbalancerConfig{
|
||||
cluster.Spec.CloudProvider.Openstack.Loadbalancer = &api.OpenstackLoadbalancerConfig{
|
||||
FloatingNetwork: fi.String(opt.OpenstackExternalNet),
|
||||
Method: fi.String("ROUND_ROBIN"),
|
||||
Provider: fi.String(provider),
|
||||
|
|
@ -1237,7 +1236,7 @@ func initializeOpenstackAPI(opt *NewClusterOptions, cluster *api.Cluster) {
|
|||
}
|
||||
|
||||
if opt.OpenstackLBSubnet != "" {
|
||||
cluster.Spec.CloudConfig.Openstack.Loadbalancer.FloatingSubnet = fi.String(opt.OpenstackLBSubnet)
|
||||
cluster.Spec.CloudProvider.Openstack.Loadbalancer.FloatingSubnet = fi.String(opt.OpenstackLBSubnet)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -317,7 +317,7 @@ type openstackCloud struct {
|
|||
|
||||
var _ fi.Cloud = &openstackCloud{}
|
||||
|
||||
var openstackCloudInstances map[string]OpenstackCloud = make(map[string]OpenstackCloud)
|
||||
var openstackCloudInstances = make(map[string]OpenstackCloud)
|
||||
|
||||
func NewOpenstackCloud(tags map[string]string, spec *kops.ClusterSpec, uagent string) (OpenstackCloud, error) {
|
||||
config := vfs.OpenstackConfig{}
|
||||
|
|
@ -346,9 +346,9 @@ func NewOpenstackCloud(tags map[string]string, spec *kops.ClusterSpec, uagent st
|
|||
provider.UserAgent = ua
|
||||
klog.V(4).Infof("Using user-agent %s", ua.Join())
|
||||
|
||||
if spec != nil && spec.CloudConfig != nil && spec.CloudConfig.Openstack != nil && spec.CloudConfig.Openstack.InsecureSkipVerify != nil {
|
||||
if spec != nil && spec.CloudProvider.Openstack != nil && spec.CloudProvider.Openstack.InsecureSkipVerify != nil {
|
||||
tlsconfig := &tls.Config{}
|
||||
tlsconfig.InsecureSkipVerify = fi.BoolValue(spec.CloudConfig.Openstack.InsecureSkipVerify)
|
||||
tlsconfig.InsecureSkipVerify = fi.BoolValue(spec.CloudProvider.Openstack.InsecureSkipVerify)
|
||||
transport := &http.Transport{TLSClientConfig: tlsconfig}
|
||||
provider.HTTPClient = http.Client{
|
||||
Transport: transport,
|
||||
|
|
@ -424,42 +424,41 @@ func NewOpenstackCloud(tags map[string]string, spec *kops.ClusterSpec, uagent st
|
|||
octavia := false
|
||||
floatingEnabled := false
|
||||
if spec != nil &&
|
||||
spec.CloudConfig != nil &&
|
||||
spec.CloudConfig.Openstack != nil &&
|
||||
spec.CloudConfig.Openstack.Router != nil {
|
||||
spec.CloudProvider.Openstack != nil &&
|
||||
spec.CloudProvider.Openstack.Router != nil {
|
||||
|
||||
floatingEnabled = true
|
||||
c.extNetworkName = spec.CloudConfig.Openstack.Router.ExternalNetwork
|
||||
c.extNetworkName = spec.CloudProvider.Openstack.Router.ExternalNetwork
|
||||
|
||||
if spec.CloudConfig.Openstack.Router.ExternalSubnet != nil {
|
||||
c.extSubnetName = spec.CloudConfig.Openstack.Router.ExternalSubnet
|
||||
if spec.CloudProvider.Openstack.Router.ExternalSubnet != nil {
|
||||
c.extSubnetName = spec.CloudProvider.Openstack.Router.ExternalSubnet
|
||||
}
|
||||
if spec.CloudConfig.Openstack.Loadbalancer != nil &&
|
||||
spec.CloudConfig.Openstack.Loadbalancer.FloatingNetworkID == nil &&
|
||||
spec.CloudConfig.Openstack.Loadbalancer.FloatingNetwork != nil {
|
||||
if spec.CloudProvider.Openstack.Loadbalancer != nil &&
|
||||
spec.CloudProvider.Openstack.Loadbalancer.FloatingNetworkID == nil &&
|
||||
spec.CloudProvider.Openstack.Loadbalancer.FloatingNetwork != nil {
|
||||
// This field is derived
|
||||
lbNet, err := c.ListNetworks(networks.ListOpts{
|
||||
Name: fi.StringValue(spec.CloudConfig.Openstack.Loadbalancer.FloatingNetwork),
|
||||
Name: fi.StringValue(spec.CloudProvider.Openstack.Loadbalancer.FloatingNetwork),
|
||||
})
|
||||
if err != nil || len(lbNet) != 1 {
|
||||
return c, fmt.Errorf("could not establish floating network id")
|
||||
}
|
||||
spec.CloudConfig.Openstack.Loadbalancer.FloatingNetworkID = fi.String(lbNet[0].ID)
|
||||
spec.CloudProvider.Openstack.Loadbalancer.FloatingNetworkID = fi.String(lbNet[0].ID)
|
||||
}
|
||||
if spec.CloudConfig.Openstack.Loadbalancer != nil {
|
||||
if spec.CloudConfig.Openstack.Loadbalancer.UseOctavia != nil {
|
||||
octavia = fi.BoolValue(spec.CloudConfig.Openstack.Loadbalancer.UseOctavia)
|
||||
if spec.CloudProvider.Openstack.Loadbalancer != nil {
|
||||
if spec.CloudProvider.Openstack.Loadbalancer.UseOctavia != nil {
|
||||
octavia = fi.BoolValue(spec.CloudProvider.Openstack.Loadbalancer.UseOctavia)
|
||||
}
|
||||
if spec.CloudConfig.Openstack.Loadbalancer.FloatingSubnet != nil {
|
||||
c.floatingSubnet = spec.CloudConfig.Openstack.Loadbalancer.FloatingSubnet
|
||||
if spec.CloudProvider.Openstack.Loadbalancer.FloatingSubnet != nil {
|
||||
c.floatingSubnet = spec.CloudProvider.Openstack.Loadbalancer.FloatingSubnet
|
||||
}
|
||||
}
|
||||
}
|
||||
c.floatingEnabled = floatingEnabled
|
||||
c.useOctavia = octavia
|
||||
var lbClient *gophercloud.ServiceClient
|
||||
if spec != nil && spec.CloudConfig != nil && spec.CloudConfig.Openstack != nil {
|
||||
if spec.CloudConfig.Openstack.Loadbalancer != nil && octavia {
|
||||
if spec != nil && spec.CloudProvider.Openstack != nil {
|
||||
if spec.CloudProvider.Openstack.Loadbalancer != nil && octavia {
|
||||
klog.V(2).Infof("Openstack using Octavia lbaasv2 api")
|
||||
lbClient, err = os.NewLoadBalancerV2(provider, gophercloud.EndpointOpts{
|
||||
Region: region,
|
||||
|
|
@ -467,7 +466,7 @@ func NewOpenstackCloud(tags map[string]string, spec *kops.ClusterSpec, uagent st
|
|||
if err != nil {
|
||||
return nil, fmt.Errorf("error building lb client: %v", err)
|
||||
}
|
||||
} else if spec.CloudConfig.Openstack.Loadbalancer != nil {
|
||||
} else if spec.CloudProvider.Openstack.Loadbalancer != nil {
|
||||
klog.V(2).Infof("Openstack using deprecated lbaasv2 api")
|
||||
lbClient, err = os.NewNetworkV2(provider, gophercloud.EndpointOpts{
|
||||
Region: region,
|
||||
|
|
@ -684,7 +683,7 @@ func (c *openstackCloud) GetApiIngressStatus(cluster *kops.Cluster) ([]fi.ApiIng
|
|||
}
|
||||
|
||||
func getApiIngressStatus(c OpenstackCloud, cluster *kops.Cluster) ([]fi.ApiIngressStatus, error) {
|
||||
if cluster.Spec.CloudConfig.Openstack.Loadbalancer != nil {
|
||||
if cluster.Spec.CloudProvider.Openstack.Loadbalancer != nil {
|
||||
return getLoadBalancerIngressStatus(c, cluster)
|
||||
} else {
|
||||
return getIPIngressStatus(c, cluster)
|
||||
|
|
|
|||
|
|
@ -50,8 +50,8 @@ func Test_OpenstackCloud_GetApiIngressStatus(t *testing.T) {
|
|||
cluster: &kops.Cluster{
|
||||
Spec: kops.ClusterSpec{
|
||||
MasterPublicName: "master.k8s.local",
|
||||
CloudConfig: &kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
Loadbalancer: &kops.OpenstackLoadbalancerConfig{},
|
||||
},
|
||||
},
|
||||
|
|
@ -86,8 +86,8 @@ func Test_OpenstackCloud_GetApiIngressStatus(t *testing.T) {
|
|||
cluster: &kops.Cluster{
|
||||
Spec: kops.ClusterSpec{
|
||||
MasterPublicName: "master.k8s.local",
|
||||
CloudConfig: &kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
Loadbalancer: &kops.OpenstackLoadbalancerConfig{},
|
||||
},
|
||||
},
|
||||
|
|
@ -131,8 +131,8 @@ func Test_OpenstackCloud_GetApiIngressStatus(t *testing.T) {
|
|||
desc: "Loadbalancer configured master public name not set",
|
||||
cluster: &kops.Cluster{
|
||||
Spec: kops.ClusterSpec{
|
||||
CloudConfig: &kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{
|
||||
Loadbalancer: &kops.OpenstackLoadbalancerConfig{},
|
||||
},
|
||||
},
|
||||
|
|
@ -147,8 +147,8 @@ func Test_OpenstackCloud_GetApiIngressStatus(t *testing.T) {
|
|||
Name: "cluster.k8s.local",
|
||||
},
|
||||
Spec: kops.ClusterSpec{
|
||||
CloudConfig: &kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{},
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
@ -219,8 +219,8 @@ func Test_OpenstackCloud_GetApiIngressStatus(t *testing.T) {
|
|||
Name: "cluster.k8s.local",
|
||||
},
|
||||
Spec: kops.ClusterSpec{
|
||||
CloudConfig: &kops.CloudConfiguration{
|
||||
Openstack: &kops.OpenstackConfiguration{},
|
||||
CloudProvider: kops.CloudProviderSpec{
|
||||
Openstack: &kops.OpenstackSpec{},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -275,7 +275,7 @@ func (c *populateClusterSpec) run(clientset simple.Clientset) error {
|
|||
codeModels = append(codeModels, &components.CloudConfigurationOptionsBuilder{Context: optionsContext})
|
||||
codeModels = append(codeModels, &components.CalicoOptionsBuilder{Context: optionsContext})
|
||||
codeModels = append(codeModels, &components.CiliumOptionsBuilder{Context: optionsContext})
|
||||
codeModels = append(codeModels, &components.OpenStackOptionsBulder{Context: optionsContext})
|
||||
codeModels = append(codeModels, &components.OpenStackOptionsBuilder{Context: optionsContext})
|
||||
codeModels = append(codeModels, &components.DiscoveryOptionsBuilder{OptionsContext: optionsContext})
|
||||
codeModels = append(codeModels, &components.ClusterAutoscalerOptionsBuilder{OptionsContext: optionsContext})
|
||||
codeModels = append(codeModels, &components.NodeTerminationHandlerOptionsBuilder{OptionsContext: optionsContext})
|
||||
|
|
|
|||
Loading…
Reference in New Issue