mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-08 19:47:56 +00:00
Chore: add persistent volume claim template tweak function
This commit is contained in:
parent
f97d3cf748
commit
ba9dfe686f
@ -128,6 +128,12 @@ func tweakOrdinalsStart(s int32) statefulSetTweak {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func tweakPVCTemplate(pvc ...api.PersistentVolumeClaim) statefulSetTweak {
|
||||||
|
return func(ss *apps.StatefulSet) {
|
||||||
|
ss.Spec.VolumeClaimTemplates = pvc
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func tweakUpdateStrategyType(t apps.StatefulSetUpdateStrategyType) statefulSetTweak {
|
func tweakUpdateStrategyType(t apps.StatefulSetUpdateStrategyType) statefulSetTweak {
|
||||||
return func(ss *apps.StatefulSet) {
|
return func(ss *apps.StatefulSet) {
|
||||||
ss.Spec.UpdateStrategy.Type = t
|
ss.Spec.UpdateStrategy.Type = t
|
||||||
@ -1003,79 +1009,25 @@ func TestValidateStatefulSetUpdate(t *testing.T) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "update pvc template size",
|
name: "update pvc template size",
|
||||||
old: apps.StatefulSet{
|
old: mkStatefulSet(&validPodTemplate, tweakPVCTemplate(validPVCTemplate)),
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault},
|
update: mkStatefulSet(&validPodTemplate, tweakPVCTemplate(validPVCTemplateChangedSize)),
|
||||||
Spec: apps.StatefulSetSpec{
|
|
||||||
PodManagementPolicy: apps.OrderedReadyPodManagement,
|
|
||||||
Selector: &metav1.LabelSelector{MatchLabels: validLabels},
|
|
||||||
Template: validPodTemplate.Template,
|
|
||||||
UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType},
|
|
||||||
VolumeClaimTemplates: []api.PersistentVolumeClaim{validPVCTemplate},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
update: apps.StatefulSet{
|
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault},
|
|
||||||
Spec: apps.StatefulSetSpec{
|
|
||||||
PodManagementPolicy: apps.OrderedReadyPodManagement,
|
|
||||||
Selector: &metav1.LabelSelector{MatchLabels: validLabels},
|
|
||||||
Template: validPodTemplate.Template,
|
|
||||||
UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType},
|
|
||||||
VolumeClaimTemplates: []api.PersistentVolumeClaim{validPVCTemplateChangedSize},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
errs: field.ErrorList{
|
errs: field.ErrorList{
|
||||||
field.Forbidden(field.NewPath("spec"), ""),
|
field.Forbidden(field.NewPath("spec"), ""),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "update pvc template storage class",
|
name: "update pvc template storage class",
|
||||||
old: apps.StatefulSet{
|
old: mkStatefulSet(&validPodTemplate, tweakPVCTemplate(validPVCTemplate)),
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault},
|
update: mkStatefulSet(&validPodTemplate, tweakPVCTemplate(validPVCTemplateChangedClass)),
|
||||||
Spec: apps.StatefulSetSpec{
|
|
||||||
PodManagementPolicy: apps.OrderedReadyPodManagement,
|
|
||||||
Selector: &metav1.LabelSelector{MatchLabels: validLabels},
|
|
||||||
Template: validPodTemplate.Template,
|
|
||||||
UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType},
|
|
||||||
VolumeClaimTemplates: []api.PersistentVolumeClaim{validPVCTemplate},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
update: apps.StatefulSet{
|
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault},
|
|
||||||
Spec: apps.StatefulSetSpec{
|
|
||||||
PodManagementPolicy: apps.OrderedReadyPodManagement,
|
|
||||||
Selector: &metav1.LabelSelector{MatchLabels: validLabels},
|
|
||||||
Template: validPodTemplate.Template,
|
|
||||||
UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType},
|
|
||||||
VolumeClaimTemplates: []api.PersistentVolumeClaim{validPVCTemplateChangedClass},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
errs: field.ErrorList{
|
errs: field.ErrorList{
|
||||||
field.Forbidden(field.NewPath("spec"), ""),
|
field.Forbidden(field.NewPath("spec"), ""),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "add new pvc template",
|
name: "add new pvc template",
|
||||||
old: apps.StatefulSet{
|
old: mkStatefulSet(&validPodTemplate, tweakPVCTemplate(validPVCTemplate)),
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault},
|
update: mkStatefulSet(&validPodTemplate, tweakPVCTemplate(validPVCTemplate, validPVCTemplate2)),
|
||||||
Spec: apps.StatefulSetSpec{
|
|
||||||
PodManagementPolicy: apps.OrderedReadyPodManagement,
|
|
||||||
Selector: &metav1.LabelSelector{MatchLabels: validLabels},
|
|
||||||
Template: validPodTemplate.Template,
|
|
||||||
UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType},
|
|
||||||
VolumeClaimTemplates: []api.PersistentVolumeClaim{validPVCTemplate},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
update: apps.StatefulSet{
|
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault},
|
|
||||||
Spec: apps.StatefulSetSpec{
|
|
||||||
PodManagementPolicy: apps.OrderedReadyPodManagement,
|
|
||||||
Selector: &metav1.LabelSelector{MatchLabels: validLabels},
|
|
||||||
Template: validPodTemplate.Template,
|
|
||||||
UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType},
|
|
||||||
VolumeClaimTemplates: []api.PersistentVolumeClaim{validPVCTemplate, validPVCTemplate2},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
errs: field.ErrorList{
|
errs: field.ErrorList{
|
||||||
field.Forbidden(field.NewPath("spec"), ""),
|
field.Forbidden(field.NewPath("spec"), ""),
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user