mirror of https://github.com/kubernetes/kops.git
Merge pull request #15083 from infonova/os-allow-setting-ignore-volume-microversion
Allow setting 'ignore-volume-microversion' for OCCP
This commit is contained in:
commit
2c619f3f23
|
|
@ -438,6 +438,8 @@ spec:
|
|||
type: boolean
|
||||
ignore-volume-az:
|
||||
type: boolean
|
||||
ignore-volume-microversion:
|
||||
type: boolean
|
||||
override-volume-az:
|
||||
type: string
|
||||
type: object
|
||||
|
|
|
|||
|
|
@ -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"`
|
||||
|
|
|
|||
|
|
@ -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"`
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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"`
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)),
|
||||
"")
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue