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
|
type: boolean
|
||||||
ignore-volume-az:
|
ignore-volume-az:
|
||||||
type: boolean
|
type: boolean
|
||||||
|
ignore-volume-microversion:
|
||||||
|
type: boolean
|
||||||
override-volume-az:
|
override-volume-az:
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
|
|
|
||||||
|
|
@ -785,6 +785,7 @@ type OpenstackBlockStorageConfig struct {
|
||||||
Version *string `json:"bs-version,omitempty"`
|
Version *string `json:"bs-version,omitempty"`
|
||||||
IgnoreAZ *bool `json:"ignore-volume-az,omitempty"`
|
IgnoreAZ *bool `json:"ignore-volume-az,omitempty"`
|
||||||
OverrideAZ *string `json:"override-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 provisions a default class for the Cinder plugin
|
||||||
CreateStorageClass *bool `json:"createStorageClass,omitempty"`
|
CreateStorageClass *bool `json:"createStorageClass,omitempty"`
|
||||||
CSIPluginImage string `json:"csiPluginImage,omitempty"`
|
CSIPluginImage string `json:"csiPluginImage,omitempty"`
|
||||||
|
|
|
||||||
|
|
@ -791,6 +791,7 @@ type OpenstackBlockStorageConfig struct {
|
||||||
Version *string `json:"bs-version,omitempty"`
|
Version *string `json:"bs-version,omitempty"`
|
||||||
IgnoreAZ *bool `json:"ignore-volume-az,omitempty"`
|
IgnoreAZ *bool `json:"ignore-volume-az,omitempty"`
|
||||||
OverrideAZ *string `json:"override-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 provisions a default class for the Cinder plugin
|
||||||
CreateStorageClass *bool `json:"createStorageClass,omitempty"`
|
CreateStorageClass *bool `json:"createStorageClass,omitempty"`
|
||||||
CSIPluginImage string `json:"csiPluginImage,omitempty"`
|
CSIPluginImage string `json:"csiPluginImage,omitempty"`
|
||||||
|
|
|
||||||
|
|
@ -6416,6 +6416,7 @@ func autoConvert_v1alpha2_OpenstackBlockStorageConfig_To_kops_OpenstackBlockStor
|
||||||
out.Version = in.Version
|
out.Version = in.Version
|
||||||
out.IgnoreAZ = in.IgnoreAZ
|
out.IgnoreAZ = in.IgnoreAZ
|
||||||
out.OverrideAZ = in.OverrideAZ
|
out.OverrideAZ = in.OverrideAZ
|
||||||
|
out.IgnoreVolumeMicroVersion = in.IgnoreVolumeMicroVersion
|
||||||
out.CreateStorageClass = in.CreateStorageClass
|
out.CreateStorageClass = in.CreateStorageClass
|
||||||
out.CSIPluginImage = in.CSIPluginImage
|
out.CSIPluginImage = in.CSIPluginImage
|
||||||
out.CSITopologySupport = in.CSITopologySupport
|
out.CSITopologySupport = in.CSITopologySupport
|
||||||
|
|
@ -6431,6 +6432,7 @@ func autoConvert_kops_OpenstackBlockStorageConfig_To_v1alpha2_OpenstackBlockStor
|
||||||
out.Version = in.Version
|
out.Version = in.Version
|
||||||
out.IgnoreAZ = in.IgnoreAZ
|
out.IgnoreAZ = in.IgnoreAZ
|
||||||
out.OverrideAZ = in.OverrideAZ
|
out.OverrideAZ = in.OverrideAZ
|
||||||
|
out.IgnoreVolumeMicroVersion = in.IgnoreVolumeMicroVersion
|
||||||
out.CreateStorageClass = in.CreateStorageClass
|
out.CreateStorageClass = in.CreateStorageClass
|
||||||
out.CSIPluginImage = in.CSIPluginImage
|
out.CSIPluginImage = in.CSIPluginImage
|
||||||
out.CSITopologySupport = in.CSITopologySupport
|
out.CSITopologySupport = in.CSITopologySupport
|
||||||
|
|
|
||||||
|
|
@ -4695,6 +4695,11 @@ func (in *OpenstackBlockStorageConfig) DeepCopyInto(out *OpenstackBlockStorageCo
|
||||||
*out = new(string)
|
*out = new(string)
|
||||||
**out = **in
|
**out = **in
|
||||||
}
|
}
|
||||||
|
if in.IgnoreVolumeMicroVersion != nil {
|
||||||
|
in, out := &in.IgnoreVolumeMicroVersion, &out.IgnoreVolumeMicroVersion
|
||||||
|
*out = new(bool)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
if in.CreateStorageClass != nil {
|
if in.CreateStorageClass != nil {
|
||||||
in, out := &in.CreateStorageClass, &out.CreateStorageClass
|
in, out := &in.CreateStorageClass, &out.CreateStorageClass
|
||||||
*out = new(bool)
|
*out = new(bool)
|
||||||
|
|
|
||||||
|
|
@ -782,6 +782,7 @@ type OpenstackBlockStorageConfig struct {
|
||||||
Version *string `json:"bs-version,omitempty"`
|
Version *string `json:"bs-version,omitempty"`
|
||||||
IgnoreAZ *bool `json:"ignore-volume-az,omitempty"`
|
IgnoreAZ *bool `json:"ignore-volume-az,omitempty"`
|
||||||
OverrideAZ *string `json:"override-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 provisions a default class for the Cinder plugin
|
||||||
CreateStorageClass *bool `json:"createStorageClass,omitempty"`
|
CreateStorageClass *bool `json:"createStorageClass,omitempty"`
|
||||||
CSIPluginImage string `json:"csiPluginImage,omitempty"`
|
CSIPluginImage string `json:"csiPluginImage,omitempty"`
|
||||||
|
|
|
||||||
|
|
@ -6665,6 +6665,7 @@ func autoConvert_v1alpha3_OpenstackBlockStorageConfig_To_kops_OpenstackBlockStor
|
||||||
out.Version = in.Version
|
out.Version = in.Version
|
||||||
out.IgnoreAZ = in.IgnoreAZ
|
out.IgnoreAZ = in.IgnoreAZ
|
||||||
out.OverrideAZ = in.OverrideAZ
|
out.OverrideAZ = in.OverrideAZ
|
||||||
|
out.IgnoreVolumeMicroVersion = in.IgnoreVolumeMicroVersion
|
||||||
out.CreateStorageClass = in.CreateStorageClass
|
out.CreateStorageClass = in.CreateStorageClass
|
||||||
out.CSIPluginImage = in.CSIPluginImage
|
out.CSIPluginImage = in.CSIPluginImage
|
||||||
out.CSITopologySupport = in.CSITopologySupport
|
out.CSITopologySupport = in.CSITopologySupport
|
||||||
|
|
@ -6680,6 +6681,7 @@ func autoConvert_kops_OpenstackBlockStorageConfig_To_v1alpha3_OpenstackBlockStor
|
||||||
out.Version = in.Version
|
out.Version = in.Version
|
||||||
out.IgnoreAZ = in.IgnoreAZ
|
out.IgnoreAZ = in.IgnoreAZ
|
||||||
out.OverrideAZ = in.OverrideAZ
|
out.OverrideAZ = in.OverrideAZ
|
||||||
|
out.IgnoreVolumeMicroVersion = in.IgnoreVolumeMicroVersion
|
||||||
out.CreateStorageClass = in.CreateStorageClass
|
out.CreateStorageClass = in.CreateStorageClass
|
||||||
out.CSIPluginImage = in.CSIPluginImage
|
out.CSIPluginImage = in.CSIPluginImage
|
||||||
out.CSITopologySupport = in.CSITopologySupport
|
out.CSITopologySupport = in.CSITopologySupport
|
||||||
|
|
|
||||||
|
|
@ -4616,6 +4616,11 @@ func (in *OpenstackBlockStorageConfig) DeepCopyInto(out *OpenstackBlockStorageCo
|
||||||
*out = new(string)
|
*out = new(string)
|
||||||
**out = **in
|
**out = **in
|
||||||
}
|
}
|
||||||
|
if in.IgnoreVolumeMicroVersion != nil {
|
||||||
|
in, out := &in.IgnoreVolumeMicroVersion, &out.IgnoreVolumeMicroVersion
|
||||||
|
*out = new(bool)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
if in.CreateStorageClass != nil {
|
if in.CreateStorageClass != nil {
|
||||||
in, out := &in.CreateStorageClass, &out.CreateStorageClass
|
in, out := &in.CreateStorageClass, &out.CreateStorageClass
|
||||||
*out = new(bool)
|
*out = new(bool)
|
||||||
|
|
|
||||||
|
|
@ -4891,6 +4891,11 @@ func (in *OpenstackBlockStorageConfig) DeepCopyInto(out *OpenstackBlockStorageCo
|
||||||
*out = new(string)
|
*out = new(string)
|
||||||
**out = **in
|
**out = **in
|
||||||
}
|
}
|
||||||
|
if in.IgnoreVolumeMicroVersion != nil {
|
||||||
|
in, out := &in.IgnoreVolumeMicroVersion, &out.IgnoreVolumeMicroVersion
|
||||||
|
*out = new(bool)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
if in.CreateStorageClass != nil {
|
if in.CreateStorageClass != nil {
|
||||||
in, out := &in.CreateStorageClass, &out.CreateStorageClass
|
in, out := &in.CreateStorageClass, &out.CreateStorageClass
|
||||||
*out = new(bool)
|
*out = new(bool)
|
||||||
|
|
|
||||||
|
|
@ -888,6 +888,7 @@ func MakeCloudConfig(spec kops.ClusterSpec) []string {
|
||||||
"[BlockStorage]",
|
"[BlockStorage]",
|
||||||
fmt.Sprintf("bs-version=%s", fi.ValueOf(bs.Version)),
|
fmt.Sprintf("bs-version=%s", fi.ValueOf(bs.Version)),
|
||||||
fmt.Sprintf("ignore-volume-az=%t", fi.ValueOf(bs.IgnoreAZ)),
|
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"
|
"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) {
|
func Test_OpenstackCloud_GetApiIngressStatus(t *testing.T) {
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
desc string
|
desc string
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue