mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 03:11:40 +00:00
Merge pull request #50175 from foxish/update-strategies
Automatic merge from submit-queue Change default update strategy to rolling update Fixes https://github.com/kubernetes/kubernetes/issues/49604 Change default update strategy to rolling update for daemonset and statefulset in v1beta2 cc @kubernetes/sig-apps-pr-reviews @lukaszo @kargakis **Release note**: ```release-note Make rolling update the default update strategy for v1beta2.DaemonSet and v1beta2.StatefulSet ```
This commit is contained in:
commit
3d91ba577d
@ -51767,7 +51767,7 @@
|
|||||||
"$ref": "#/definitions/io.k8s.api.apps.v1beta2.RollingUpdateDaemonSet"
|
"$ref": "#/definitions/io.k8s.api.apps.v1beta2.RollingUpdateDaemonSet"
|
||||||
},
|
},
|
||||||
"type": {
|
"type": {
|
||||||
"description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is OnDelete.",
|
"description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -52163,7 +52163,7 @@
|
|||||||
"description": "WIP: This is not ready to be used and we plan to make breaking changes to it. RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.",
|
"description": "WIP: This is not ready to be used and we plan to make breaking changes to it. RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.",
|
||||||
"properties": {
|
"properties": {
|
||||||
"partition": {
|
"partition": {
|
||||||
"description": "Partition indicates the ordinal at which the StatefulSet should be partitioned.",
|
"description": "Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0.",
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"format": "int32"
|
"format": "int32"
|
||||||
}
|
}
|
||||||
@ -52393,7 +52393,7 @@
|
|||||||
"$ref": "#/definitions/io.k8s.api.apps.v1beta2.RollingUpdateStatefulSetStrategy"
|
"$ref": "#/definitions/io.k8s.api.apps.v1beta2.RollingUpdateStatefulSetStrategy"
|
||||||
},
|
},
|
||||||
"type": {
|
"type": {
|
||||||
"description": "Type indicates the type of the StatefulSetUpdateStrategy.",
|
"description": "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6985,7 +6985,7 @@
|
|||||||
"properties": {
|
"properties": {
|
||||||
"type": {
|
"type": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is OnDelete."
|
"description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate."
|
||||||
},
|
},
|
||||||
"rollingUpdate": {
|
"rollingUpdate": {
|
||||||
"$ref": "v1beta2.RollingUpdateDaemonSet",
|
"$ref": "v1beta2.RollingUpdateDaemonSet",
|
||||||
@ -7730,7 +7730,7 @@
|
|||||||
"properties": {
|
"properties": {
|
||||||
"type": {
|
"type": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Type indicates the type of the StatefulSetUpdateStrategy."
|
"description": "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate."
|
||||||
},
|
},
|
||||||
"rollingUpdate": {
|
"rollingUpdate": {
|
||||||
"$ref": "v1beta2.RollingUpdateStatefulSetStrategy",
|
"$ref": "v1beta2.RollingUpdateStatefulSetStrategy",
|
||||||
@ -7745,7 +7745,7 @@
|
|||||||
"partition": {
|
"partition": {
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"format": "int32",
|
"format": "int32",
|
||||||
"description": "Partition indicates the ordinal at which the StatefulSet should be partitioned."
|
"description": "Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -2188,7 +2188,7 @@ When an object is created, the system will populate this list with the current s
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">partition</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">partition</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Partition indicates the ordinal at which the StatefulSet should be partitioned.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">integer (int32)</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">integer (int32)</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
@ -6999,7 +6999,7 @@ Examples:<br>
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">type</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">type</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Type of daemon set update. Can be "RollingUpdate" or "OnDelete". Default is OnDelete.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Type of daemon set update. Can be "RollingUpdate" or "OnDelete". Default is RollingUpdate.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
@ -7229,7 +7229,7 @@ Examples:<br>
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">type</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">type</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Type indicates the type of the StatefulSetUpdateStrategy.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
@ -43,7 +43,7 @@ func SetDefaults_DaemonSet(obj *appsv1beta2.DaemonSet) {
|
|||||||
}
|
}
|
||||||
updateStrategy := &obj.Spec.UpdateStrategy
|
updateStrategy := &obj.Spec.UpdateStrategy
|
||||||
if updateStrategy.Type == "" {
|
if updateStrategy.Type == "" {
|
||||||
updateStrategy.Type = appsv1beta2.OnDeleteDaemonSetStrategyType
|
updateStrategy.Type = appsv1beta2.RollingUpdateDaemonSetStrategyType
|
||||||
}
|
}
|
||||||
if updateStrategy.Type == appsv1beta2.RollingUpdateDaemonSetStrategyType {
|
if updateStrategy.Type == appsv1beta2.RollingUpdateDaemonSetStrategyType {
|
||||||
if updateStrategy.RollingUpdate == nil {
|
if updateStrategy.RollingUpdate == nil {
|
||||||
@ -68,8 +68,19 @@ func SetDefaults_StatefulSet(obj *appsv1beta2.StatefulSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if obj.Spec.UpdateStrategy.Type == "" {
|
if obj.Spec.UpdateStrategy.Type == "" {
|
||||||
obj.Spec.UpdateStrategy.Type = appsv1beta2.OnDeleteStatefulSetStrategyType
|
obj.Spec.UpdateStrategy.Type = appsv1beta2.RollingUpdateStatefulSetStrategyType
|
||||||
|
|
||||||
|
// UpdateStrategy.RollingUpdate will take default values below.
|
||||||
|
obj.Spec.UpdateStrategy.RollingUpdate = &appsv1beta2.RollingUpdateStatefulSetStrategy{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if obj.Spec.UpdateStrategy.Type == appsv1beta2.RollingUpdateStatefulSetStrategyType &&
|
||||||
|
obj.Spec.UpdateStrategy.RollingUpdate != nil &&
|
||||||
|
obj.Spec.UpdateStrategy.RollingUpdate.Partition == nil {
|
||||||
|
obj.Spec.UpdateStrategy.RollingUpdate.Partition = new(int32)
|
||||||
|
*obj.Spec.UpdateStrategy.RollingUpdate.Partition = 0
|
||||||
|
}
|
||||||
|
|
||||||
labels := obj.Spec.Template.Labels
|
labels := obj.Spec.Template.Labels
|
||||||
if labels != nil {
|
if labels != nil {
|
||||||
if obj.Spec.Selector == nil {
|
if obj.Spec.Selector == nil {
|
||||||
@ -89,13 +100,6 @@ func SetDefaults_StatefulSet(obj *appsv1beta2.StatefulSet) {
|
|||||||
obj.Spec.RevisionHistoryLimit = new(int32)
|
obj.Spec.RevisionHistoryLimit = new(int32)
|
||||||
*obj.Spec.RevisionHistoryLimit = 10
|
*obj.Spec.RevisionHistoryLimit = 10
|
||||||
}
|
}
|
||||||
if obj.Spec.UpdateStrategy.Type == appsv1beta2.RollingUpdateStatefulSetStrategyType &&
|
|
||||||
obj.Spec.UpdateStrategy.RollingUpdate != nil &&
|
|
||||||
obj.Spec.UpdateStrategy.RollingUpdate.Partition == nil {
|
|
||||||
obj.Spec.UpdateStrategy.RollingUpdate.Partition = new(int32)
|
|
||||||
*obj.Spec.UpdateStrategy.RollingUpdate.Partition = 0
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetDefaults_Deployment sets additional defaults compared to its counterpart
|
// SetDefaults_Deployment sets additional defaults compared to its counterpart
|
||||||
|
@ -21,7 +21,6 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
appsv1beta2 "k8s.io/api/apps/v1beta2"
|
appsv1beta2 "k8s.io/api/apps/v1beta2"
|
||||||
|
|
||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
apiequality "k8s.io/apimachinery/pkg/api/equality"
|
apiequality "k8s.io/apimachinery/pkg/api/equality"
|
||||||
"k8s.io/apimachinery/pkg/api/resource"
|
"k8s.io/apimachinery/pkg/api/resource"
|
||||||
@ -36,6 +35,7 @@ import (
|
|||||||
|
|
||||||
func TestSetDefaultDaemonSetSpec(t *testing.T) {
|
func TestSetDefaultDaemonSetSpec(t *testing.T) {
|
||||||
defaultLabels := map[string]string{"foo": "bar"}
|
defaultLabels := map[string]string{"foo": "bar"}
|
||||||
|
maxUnavailable := intstr.FromInt(1)
|
||||||
period := int64(v1.DefaultTerminationGracePeriodSeconds)
|
period := int64(v1.DefaultTerminationGracePeriodSeconds)
|
||||||
defaultTemplate := v1.PodTemplateSpec{
|
defaultTemplate := v1.PodTemplateSpec{
|
||||||
Spec: v1.PodSpec{
|
Spec: v1.PodSpec{
|
||||||
@ -78,7 +78,10 @@ func TestSetDefaultDaemonSetSpec(t *testing.T) {
|
|||||||
},
|
},
|
||||||
Template: defaultTemplate,
|
Template: defaultTemplate,
|
||||||
UpdateStrategy: appsv1beta2.DaemonSetUpdateStrategy{
|
UpdateStrategy: appsv1beta2.DaemonSetUpdateStrategy{
|
||||||
Type: appsv1beta2.OnDeleteDaemonSetStrategyType,
|
Type: appsv1beta2.RollingUpdateStatefulSetStrategyType,
|
||||||
|
RollingUpdate: &appsv1beta2.RollingUpdateDaemonSet{
|
||||||
|
MaxUnavailable: &maxUnavailable,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
RevisionHistoryLimit: newInt32(10),
|
RevisionHistoryLimit: newInt32(10),
|
||||||
},
|
},
|
||||||
@ -108,14 +111,24 @@ func TestSetDefaultDaemonSetSpec(t *testing.T) {
|
|||||||
},
|
},
|
||||||
Template: defaultTemplate,
|
Template: defaultTemplate,
|
||||||
UpdateStrategy: appsv1beta2.DaemonSetUpdateStrategy{
|
UpdateStrategy: appsv1beta2.DaemonSetUpdateStrategy{
|
||||||
Type: appsv1beta2.OnDeleteDaemonSetStrategyType,
|
Type: appsv1beta2.RollingUpdateStatefulSetStrategyType,
|
||||||
|
RollingUpdate: &appsv1beta2.RollingUpdateDaemonSet{
|
||||||
|
MaxUnavailable: &maxUnavailable,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
RevisionHistoryLimit: newInt32(1),
|
RevisionHistoryLimit: newInt32(1),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{ // Update strategy.
|
{ // OnDeleteDaemonSetStrategyType update strategy.
|
||||||
original: &appsv1beta2.DaemonSet{},
|
original: &appsv1beta2.DaemonSet{
|
||||||
|
Spec: appsv1beta2.DaemonSetSpec{
|
||||||
|
Template: templateNoLabel,
|
||||||
|
UpdateStrategy: appsv1beta2.DaemonSetUpdateStrategy{
|
||||||
|
Type: appsv1beta2.OnDeleteDaemonSetStrategyType,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
expected: &appsv1beta2.DaemonSet{
|
expected: &appsv1beta2.DaemonSet{
|
||||||
Spec: appsv1beta2.DaemonSetSpec{
|
Spec: appsv1beta2.DaemonSetSpec{
|
||||||
Template: templateNoLabel,
|
Template: templateNoLabel,
|
||||||
@ -134,7 +147,10 @@ func TestSetDefaultDaemonSetSpec(t *testing.T) {
|
|||||||
Spec: appsv1beta2.DaemonSetSpec{
|
Spec: appsv1beta2.DaemonSetSpec{
|
||||||
Template: templateNoLabel,
|
Template: templateNoLabel,
|
||||||
UpdateStrategy: appsv1beta2.DaemonSetUpdateStrategy{
|
UpdateStrategy: appsv1beta2.DaemonSetUpdateStrategy{
|
||||||
Type: appsv1beta2.OnDeleteDaemonSetStrategyType,
|
Type: appsv1beta2.RollingUpdateStatefulSetStrategyType,
|
||||||
|
RollingUpdate: &appsv1beta2.RollingUpdateDaemonSet{
|
||||||
|
MaxUnavailable: &maxUnavailable,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
RevisionHistoryLimit: newInt32(10),
|
RevisionHistoryLimit: newInt32(10),
|
||||||
},
|
},
|
||||||
@ -157,6 +173,128 @@ func TestSetDefaultDaemonSetSpec(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSetDefaultStatefulSet(t *testing.T) {
|
||||||
|
defaultLabels := map[string]string{"foo": "bar"}
|
||||||
|
var defaultPartition int32 = 0
|
||||||
|
var defaultReplicas int32 = 1
|
||||||
|
|
||||||
|
period := int64(v1.DefaultTerminationGracePeriodSeconds)
|
||||||
|
defaultTemplate := v1.PodTemplateSpec{
|
||||||
|
Spec: v1.PodSpec{
|
||||||
|
DNSPolicy: v1.DNSClusterFirst,
|
||||||
|
RestartPolicy: v1.RestartPolicyAlways,
|
||||||
|
SecurityContext: &v1.PodSecurityContext{},
|
||||||
|
TerminationGracePeriodSeconds: &period,
|
||||||
|
SchedulerName: api.DefaultSchedulerName,
|
||||||
|
},
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Labels: defaultLabels,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
tests := []struct {
|
||||||
|
original *appsv1beta2.StatefulSet
|
||||||
|
expected *appsv1beta2.StatefulSet
|
||||||
|
}{
|
||||||
|
{ // Selector, labels and default update strategy
|
||||||
|
original: &appsv1beta2.StatefulSet{
|
||||||
|
Spec: appsv1beta2.StatefulSetSpec{
|
||||||
|
Template: defaultTemplate,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
expected: &appsv1beta2.StatefulSet{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Labels: defaultLabels,
|
||||||
|
},
|
||||||
|
Spec: appsv1beta2.StatefulSetSpec{
|
||||||
|
Selector: &metav1.LabelSelector{
|
||||||
|
MatchLabels: defaultLabels,
|
||||||
|
},
|
||||||
|
Replicas: &defaultReplicas,
|
||||||
|
Template: defaultTemplate,
|
||||||
|
PodManagementPolicy: appsv1beta2.OrderedReadyPodManagement,
|
||||||
|
UpdateStrategy: appsv1beta2.StatefulSetUpdateStrategy{
|
||||||
|
Type: appsv1beta2.RollingUpdateStatefulSetStrategyType,
|
||||||
|
RollingUpdate: &appsv1beta2.RollingUpdateStatefulSetStrategy{
|
||||||
|
Partition: &defaultPartition,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
RevisionHistoryLimit: newInt32(10),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ // Alternate update strategy
|
||||||
|
original: &appsv1beta2.StatefulSet{
|
||||||
|
Spec: appsv1beta2.StatefulSetSpec{
|
||||||
|
Template: defaultTemplate,
|
||||||
|
UpdateStrategy: appsv1beta2.StatefulSetUpdateStrategy{
|
||||||
|
Type: appsv1beta2.OnDeleteStatefulSetStrategyType,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
expected: &appsv1beta2.StatefulSet{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Labels: defaultLabels,
|
||||||
|
},
|
||||||
|
Spec: appsv1beta2.StatefulSetSpec{
|
||||||
|
Selector: &metav1.LabelSelector{
|
||||||
|
MatchLabels: defaultLabels,
|
||||||
|
},
|
||||||
|
Replicas: &defaultReplicas,
|
||||||
|
Template: defaultTemplate,
|
||||||
|
PodManagementPolicy: appsv1beta2.OrderedReadyPodManagement,
|
||||||
|
UpdateStrategy: appsv1beta2.StatefulSetUpdateStrategy{
|
||||||
|
Type: appsv1beta2.OnDeleteStatefulSetStrategyType,
|
||||||
|
},
|
||||||
|
RevisionHistoryLimit: newInt32(10),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ // Parallel pod management policy.
|
||||||
|
original: &appsv1beta2.StatefulSet{
|
||||||
|
Spec: appsv1beta2.StatefulSetSpec{
|
||||||
|
Template: defaultTemplate,
|
||||||
|
PodManagementPolicy: appsv1beta2.ParallelPodManagement,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
expected: &appsv1beta2.StatefulSet{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Labels: defaultLabels,
|
||||||
|
},
|
||||||
|
Spec: appsv1beta2.StatefulSetSpec{
|
||||||
|
Selector: &metav1.LabelSelector{
|
||||||
|
MatchLabels: defaultLabels,
|
||||||
|
},
|
||||||
|
Replicas: &defaultReplicas,
|
||||||
|
Template: defaultTemplate,
|
||||||
|
PodManagementPolicy: appsv1beta2.ParallelPodManagement,
|
||||||
|
UpdateStrategy: appsv1beta2.StatefulSetUpdateStrategy{
|
||||||
|
Type: appsv1beta2.RollingUpdateStatefulSetStrategyType,
|
||||||
|
RollingUpdate: &appsv1beta2.RollingUpdateStatefulSetStrategy{
|
||||||
|
Partition: &defaultPartition,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
RevisionHistoryLimit: newInt32(10),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for i, test := range tests {
|
||||||
|
original := test.original
|
||||||
|
expected := test.expected
|
||||||
|
obj2 := roundTrip(t, runtime.Object(original))
|
||||||
|
got, ok := obj2.(*appsv1beta2.StatefulSet)
|
||||||
|
if !ok {
|
||||||
|
t.Errorf("(%d) unexpected object: %v", i, got)
|
||||||
|
t.FailNow()
|
||||||
|
}
|
||||||
|
if !apiequality.Semantic.DeepEqual(got.Spec, expected.Spec) {
|
||||||
|
t.Errorf("(%d) got different than expected\ngot:\n\t%+v\nexpected:\n\t%+v", i, got.Spec, expected.Spec)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestSetDefaultDeployment(t *testing.T) {
|
func TestSetDefaultDeployment(t *testing.T) {
|
||||||
defaultIntOrString := intstr.FromString("25%")
|
defaultIntOrString := intstr.FromString("25%")
|
||||||
differentIntOrString := intstr.FromInt(5)
|
differentIntOrString := intstr.FromInt(5)
|
||||||
|
@ -157,8 +157,7 @@ message DaemonSetStatus {
|
|||||||
|
|
||||||
// WIP: This is not ready to be used and we plan to make breaking changes to it.
|
// WIP: This is not ready to be used and we plan to make breaking changes to it.
|
||||||
message DaemonSetUpdateStrategy {
|
message DaemonSetUpdateStrategy {
|
||||||
// Type of daemon set update. Can be "RollingUpdate" or "OnDelete".
|
// Type of daemon set update. Can be "RollingUpdate" or "OnDelete". Default is RollingUpdate.
|
||||||
// Default is OnDelete.
|
|
||||||
// +optional
|
// +optional
|
||||||
optional string type = 1;
|
optional string type = 1;
|
||||||
|
|
||||||
@ -496,6 +495,8 @@ message RollingUpdateDeployment {
|
|||||||
message RollingUpdateStatefulSetStrategy {
|
message RollingUpdateStatefulSetStrategy {
|
||||||
// Partition indicates the ordinal at which the StatefulSet should be
|
// Partition indicates the ordinal at which the StatefulSet should be
|
||||||
// partitioned.
|
// partitioned.
|
||||||
|
// Default value is 0.
|
||||||
|
// +optional
|
||||||
optional int32 partition = 1;
|
optional int32 partition = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -673,9 +674,12 @@ message StatefulSetStatus {
|
|||||||
// necessary to perform the update for the indicated strategy.
|
// necessary to perform the update for the indicated strategy.
|
||||||
message StatefulSetUpdateStrategy {
|
message StatefulSetUpdateStrategy {
|
||||||
// Type indicates the type of the StatefulSetUpdateStrategy.
|
// Type indicates the type of the StatefulSetUpdateStrategy.
|
||||||
|
// Default is RollingUpdate.
|
||||||
|
// +optional
|
||||||
optional string type = 1;
|
optional string type = 1;
|
||||||
|
|
||||||
// RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.
|
// RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.
|
||||||
|
// +optional
|
||||||
optional RollingUpdateStatefulSetStrategy rollingUpdate = 2;
|
optional RollingUpdateStatefulSetStrategy rollingUpdate = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -123,8 +123,11 @@ const (
|
|||||||
// necessary to perform the update for the indicated strategy.
|
// necessary to perform the update for the indicated strategy.
|
||||||
type StatefulSetUpdateStrategy struct {
|
type StatefulSetUpdateStrategy struct {
|
||||||
// Type indicates the type of the StatefulSetUpdateStrategy.
|
// Type indicates the type of the StatefulSetUpdateStrategy.
|
||||||
|
// Default is RollingUpdate.
|
||||||
|
// +optional
|
||||||
Type StatefulSetUpdateStrategyType `json:"type,omitempty" protobuf:"bytes,1,opt,name=type,casttype=StatefulSetStrategyType"`
|
Type StatefulSetUpdateStrategyType `json:"type,omitempty" protobuf:"bytes,1,opt,name=type,casttype=StatefulSetStrategyType"`
|
||||||
// RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.
|
// RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.
|
||||||
|
// +optional
|
||||||
RollingUpdate *RollingUpdateStatefulSetStrategy `json:"rollingUpdate,omitempty" protobuf:"bytes,2,opt,name=rollingUpdate"`
|
RollingUpdate *RollingUpdateStatefulSetStrategy `json:"rollingUpdate,omitempty" protobuf:"bytes,2,opt,name=rollingUpdate"`
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -152,6 +155,8 @@ const (
|
|||||||
type RollingUpdateStatefulSetStrategy struct {
|
type RollingUpdateStatefulSetStrategy struct {
|
||||||
// Partition indicates the ordinal at which the StatefulSet should be
|
// Partition indicates the ordinal at which the StatefulSet should be
|
||||||
// partitioned.
|
// partitioned.
|
||||||
|
// Default value is 0.
|
||||||
|
// +optional
|
||||||
Partition *int32 `json:"partition,omitempty" protobuf:"varint,1,opt,name=partition"`
|
Partition *int32 `json:"partition,omitempty" protobuf:"varint,1,opt,name=partition"`
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -479,8 +484,7 @@ type DeploymentList struct {
|
|||||||
|
|
||||||
// WIP: This is not ready to be used and we plan to make breaking changes to it.
|
// WIP: This is not ready to be used and we plan to make breaking changes to it.
|
||||||
type DaemonSetUpdateStrategy struct {
|
type DaemonSetUpdateStrategy struct {
|
||||||
// Type of daemon set update. Can be "RollingUpdate" or "OnDelete".
|
// Type of daemon set update. Can be "RollingUpdate" or "OnDelete". Default is RollingUpdate.
|
||||||
// Default is OnDelete.
|
|
||||||
// +optional
|
// +optional
|
||||||
Type DaemonSetUpdateStrategyType `json:"type,omitempty" protobuf:"bytes,1,opt,name=type"`
|
Type DaemonSetUpdateStrategyType `json:"type,omitempty" protobuf:"bytes,1,opt,name=type"`
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ func (DaemonSetStatus) SwaggerDoc() map[string]string {
|
|||||||
|
|
||||||
var map_DaemonSetUpdateStrategy = map[string]string{
|
var map_DaemonSetUpdateStrategy = map[string]string{
|
||||||
"": "WIP: This is not ready to be used and we plan to make breaking changes to it.",
|
"": "WIP: This is not ready to be used and we plan to make breaking changes to it.",
|
||||||
"type": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is OnDelete.",
|
"type": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.",
|
||||||
"rollingUpdate": "Rolling update config params. Present only if type = \"RollingUpdate\".",
|
"rollingUpdate": "Rolling update config params. Present only if type = \"RollingUpdate\".",
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -247,7 +247,7 @@ func (RollingUpdateDeployment) SwaggerDoc() map[string]string {
|
|||||||
|
|
||||||
var map_RollingUpdateStatefulSetStrategy = map[string]string{
|
var map_RollingUpdateStatefulSetStrategy = map[string]string{
|
||||||
"": "WIP: This is not ready to be used and we plan to make breaking changes to it. RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.",
|
"": "WIP: This is not ready to be used and we plan to make breaking changes to it. RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.",
|
||||||
"partition": "Partition indicates the ordinal at which the StatefulSet should be partitioned.",
|
"partition": "Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0.",
|
||||||
}
|
}
|
||||||
|
|
||||||
func (RollingUpdateStatefulSetStrategy) SwaggerDoc() map[string]string {
|
func (RollingUpdateStatefulSetStrategy) SwaggerDoc() map[string]string {
|
||||||
@ -336,7 +336,7 @@ func (StatefulSetStatus) SwaggerDoc() map[string]string {
|
|||||||
|
|
||||||
var map_StatefulSetUpdateStrategy = map[string]string{
|
var map_StatefulSetUpdateStrategy = map[string]string{
|
||||||
"": "WIP: This is not ready to be used and we plan to make breaking changes to it. StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.",
|
"": "WIP: This is not ready to be used and we plan to make breaking changes to it. StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.",
|
||||||
"type": "Type indicates the type of the StatefulSetUpdateStrategy.",
|
"type": "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.",
|
||||||
"rollingUpdate": "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.",
|
"rollingUpdate": "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user