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