Merge pull request #13326 from johngmyers/move-openstack

Move Openstack settings to cloudProvider.openstack
This commit is contained in:
Kubernetes Prow Robot 2022-04-10 00:10:05 -07:00 committed by GitHub
commit 8120147889
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
31 changed files with 578 additions and 642 deletions

View File

@ -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
}

View File

@ -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"`
}

View File

@ -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

View File

@ -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"`

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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"`
}

View File

@ -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

View File

@ -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
}

View File

@ -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
}

View File

@ -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"))

View File

@ -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"),
},

View File

@ -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"))
}

View File

@ -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)
})
}

View File

@ -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
}

View File

@ -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)
}

View File

@ -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)

View File

@ -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 {

View File

@ -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),

View File

@ -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
}

View File

@ -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 {

View File

@ -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 {

View File

@ -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),
},

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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)
}
}
}

View File

@ -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)

View File

@ -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{},
},
},
},

View File

@ -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})