Merge pull request #15083 from infonova/os-allow-setting-ignore-volume-microversion

Allow setting 'ignore-volume-microversion' for OCCP
This commit is contained in:
Kubernetes Prow Robot 2023-01-31 04:32:49 -08:00 committed by GitHub
commit 2c619f3f23
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 102 additions and 9 deletions

View File

@ -438,6 +438,8 @@ spec:
type: boolean
ignore-volume-az:
type: boolean
ignore-volume-microversion:
type: boolean
override-volume-az:
type: string
type: object

View File

@ -782,9 +782,10 @@ type OpenstackLoadbalancerConfig struct {
}
type OpenstackBlockStorageConfig struct {
Version *string `json:"bs-version,omitempty"`
IgnoreAZ *bool `json:"ignore-volume-az,omitempty"`
OverrideAZ *string `json:"override-volume-az,omitempty"`
Version *string `json:"bs-version,omitempty"`
IgnoreAZ *bool `json:"ignore-volume-az,omitempty"`
OverrideAZ *string `json:"override-volume-az,omitempty"`
IgnoreVolumeMicroVersion *bool `json:"ignore-volume-microversion,omitempty"`
// CreateStorageClass provisions a default class for the Cinder plugin
CreateStorageClass *bool `json:"createStorageClass,omitempty"`
CSIPluginImage string `json:"csiPluginImage,omitempty"`

View File

@ -788,9 +788,10 @@ type OpenstackLoadbalancerConfig struct {
}
type OpenstackBlockStorageConfig struct {
Version *string `json:"bs-version,omitempty"`
IgnoreAZ *bool `json:"ignore-volume-az,omitempty"`
OverrideAZ *string `json:"override-volume-az,omitempty"`
Version *string `json:"bs-version,omitempty"`
IgnoreAZ *bool `json:"ignore-volume-az,omitempty"`
OverrideAZ *string `json:"override-volume-az,omitempty"`
IgnoreVolumeMicroVersion *bool `json:"ignore-volume-microversion,omitempty"`
// CreateStorageClass provisions a default class for the Cinder plugin
CreateStorageClass *bool `json:"createStorageClass,omitempty"`
CSIPluginImage string `json:"csiPluginImage,omitempty"`

View File

@ -6416,6 +6416,7 @@ func autoConvert_v1alpha2_OpenstackBlockStorageConfig_To_kops_OpenstackBlockStor
out.Version = in.Version
out.IgnoreAZ = in.IgnoreAZ
out.OverrideAZ = in.OverrideAZ
out.IgnoreVolumeMicroVersion = in.IgnoreVolumeMicroVersion
out.CreateStorageClass = in.CreateStorageClass
out.CSIPluginImage = in.CSIPluginImage
out.CSITopologySupport = in.CSITopologySupport
@ -6431,6 +6432,7 @@ func autoConvert_kops_OpenstackBlockStorageConfig_To_v1alpha2_OpenstackBlockStor
out.Version = in.Version
out.IgnoreAZ = in.IgnoreAZ
out.OverrideAZ = in.OverrideAZ
out.IgnoreVolumeMicroVersion = in.IgnoreVolumeMicroVersion
out.CreateStorageClass = in.CreateStorageClass
out.CSIPluginImage = in.CSIPluginImage
out.CSITopologySupport = in.CSITopologySupport

View File

@ -4695,6 +4695,11 @@ func (in *OpenstackBlockStorageConfig) DeepCopyInto(out *OpenstackBlockStorageCo
*out = new(string)
**out = **in
}
if in.IgnoreVolumeMicroVersion != nil {
in, out := &in.IgnoreVolumeMicroVersion, &out.IgnoreVolumeMicroVersion
*out = new(bool)
**out = **in
}
if in.CreateStorageClass != nil {
in, out := &in.CreateStorageClass, &out.CreateStorageClass
*out = new(bool)

View File

@ -779,9 +779,10 @@ type OpenstackLoadbalancerConfig struct {
}
type OpenstackBlockStorageConfig struct {
Version *string `json:"bs-version,omitempty"`
IgnoreAZ *bool `json:"ignore-volume-az,omitempty"`
OverrideAZ *string `json:"override-volume-az,omitempty"`
Version *string `json:"bs-version,omitempty"`
IgnoreAZ *bool `json:"ignore-volume-az,omitempty"`
OverrideAZ *string `json:"override-volume-az,omitempty"`
IgnoreVolumeMicroVersion *bool `json:"ignore-volume-microversion,omitempty"`
// CreateStorageClass provisions a default class for the Cinder plugin
CreateStorageClass *bool `json:"createStorageClass,omitempty"`
CSIPluginImage string `json:"csiPluginImage,omitempty"`

View File

@ -6665,6 +6665,7 @@ func autoConvert_v1alpha3_OpenstackBlockStorageConfig_To_kops_OpenstackBlockStor
out.Version = in.Version
out.IgnoreAZ = in.IgnoreAZ
out.OverrideAZ = in.OverrideAZ
out.IgnoreVolumeMicroVersion = in.IgnoreVolumeMicroVersion
out.CreateStorageClass = in.CreateStorageClass
out.CSIPluginImage = in.CSIPluginImage
out.CSITopologySupport = in.CSITopologySupport
@ -6680,6 +6681,7 @@ func autoConvert_kops_OpenstackBlockStorageConfig_To_v1alpha3_OpenstackBlockStor
out.Version = in.Version
out.IgnoreAZ = in.IgnoreAZ
out.OverrideAZ = in.OverrideAZ
out.IgnoreVolumeMicroVersion = in.IgnoreVolumeMicroVersion
out.CreateStorageClass = in.CreateStorageClass
out.CSIPluginImage = in.CSIPluginImage
out.CSITopologySupport = in.CSITopologySupport

View File

@ -4616,6 +4616,11 @@ func (in *OpenstackBlockStorageConfig) DeepCopyInto(out *OpenstackBlockStorageCo
*out = new(string)
**out = **in
}
if in.IgnoreVolumeMicroVersion != nil {
in, out := &in.IgnoreVolumeMicroVersion, &out.IgnoreVolumeMicroVersion
*out = new(bool)
**out = **in
}
if in.CreateStorageClass != nil {
in, out := &in.CreateStorageClass, &out.CreateStorageClass
*out = new(bool)

View File

@ -4891,6 +4891,11 @@ func (in *OpenstackBlockStorageConfig) DeepCopyInto(out *OpenstackBlockStorageCo
*out = new(string)
**out = **in
}
if in.IgnoreVolumeMicroVersion != nil {
in, out := &in.IgnoreVolumeMicroVersion, &out.IgnoreVolumeMicroVersion
*out = new(bool)
**out = **in
}
if in.CreateStorageClass != nil {
in, out := &in.CreateStorageClass, &out.CreateStorageClass
*out = new(bool)

View File

@ -888,6 +888,7 @@ func MakeCloudConfig(spec kops.ClusterSpec) []string {
"[BlockStorage]",
fmt.Sprintf("bs-version=%s", fi.ValueOf(bs.Version)),
fmt.Sprintf("ignore-volume-az=%t", fi.ValueOf(bs.IgnoreAZ)),
fmt.Sprintf("ignore-volume-microversion=%t", fi.ValueOf(bs.IgnoreVolumeMicroVersion)),
"")
}

View File

@ -35,6 +35,74 @@ import (
"k8s.io/kops/util/pkg/vfs"
)
func Test_OpenstackCloud_MakeCloud(t *testing.T) {
baseCloudConfigWithBlockStorage := []string{
"auth-url=\"\"",
"username=\"\"",
"password=\"\"",
"region=\"\"",
"tenant-id=\"\"",
"tenant-name=\"\"",
"domain-name=\"\"",
"domain-id=\"\"",
"",
"[BlockStorage]",
"bs-version=",
"ignore-volume-az=false",
}
tests := []struct {
desc string
cluster *kops.Cluster
expectedCloudConfig []string
}{
{
desc: "Ignore volume microversion is set to false when not configured",
cluster: &kops.Cluster{
Spec: kops.ClusterSpec{
CloudProvider: kops.CloudProviderSpec{
Openstack: &kops.OpenstackSpec{
BlockStorage: &kops.OpenstackBlockStorageConfig{},
},
},
},
},
expectedCloudConfig: append(baseCloudConfigWithBlockStorage,
"ignore-volume-microversion=false",
"",
),
},
{
desc: "Ignore volume microversion is set to configured value",
cluster: &kops.Cluster{
Spec: kops.ClusterSpec{
CloudProvider: kops.CloudProviderSpec{
Openstack: &kops.OpenstackSpec{
BlockStorage: &kops.OpenstackBlockStorageConfig{
IgnoreVolumeMicroVersion: fi.PtrTo(true),
},
},
},
},
},
expectedCloudConfig: append(baseCloudConfigWithBlockStorage,
"ignore-volume-microversion=true",
"",
),
},
}
for _, testCase := range tests {
t.Run(testCase.desc, func(t *testing.T) {
actualCloudConfig := MakeCloudConfig(testCase.cluster.Spec)
if !reflect.DeepEqual(actualCloudConfig, testCase.expectedCloudConfig) {
t.Errorf("Ingress status differ: expected\n%+#v\n\tgot:\n%+#v\n", testCase.expectedCloudConfig, actualCloudConfig)
}
})
}
}
func Test_OpenstackCloud_GetApiIngressStatus(t *testing.T) {
tests := []struct {
desc string