Commit e553d6eb authored by Kubernetes Submit Queue's avatar Kubernetes Submit Queue Committed by GitHub

Merge pull request #50575 from dixudx/CollisionCount_int64_to_int32

Automatic merge from submit-queue CollisionCount should have type int32 across controllers that use it for collision avoidance **What this PR does / why we need it**: **Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #50530 **Special notes for your reviewer**: /cc @liyinan926 /assign @kow3ns @thockin @janetkuo **Release note**: ```release-note Change CollisionCount from int64 to int32 across controllers ```
parents 4564f3d8 b36320be
......@@ -55087,7 +55087,7 @@
"collisionCount": {
"description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.",
"type": "integer",
"format": "int64"
"format": "int32"
},
"conditions": {
"description": "Represents the latest available observations of a deployment's current state.",
......@@ -55355,7 +55355,7 @@
"collisionCount": {
"description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.",
"type": "integer",
"format": "int64"
"format": "int32"
},
"currentReplicas": {
"description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.",
......@@ -55583,7 +55583,7 @@
"collisionCount": {
"description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.",
"type": "integer",
"format": "int64"
"format": "int32"
},
"currentNumberScheduled": {
"description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/",
......@@ -55794,7 +55794,7 @@
"collisionCount": {
"description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.",
"type": "integer",
"format": "int64"
"format": "int32"
},
"conditions": {
"description": "Represents the latest available observations of a deployment's current state.",
......@@ -56221,7 +56221,7 @@
"collisionCount": {
"description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.",
"type": "integer",
"format": "int64"
"format": "int32"
},
"currentReplicas": {
"description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.",
......@@ -62440,7 +62440,7 @@
"collisionCount": {
"description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.",
"type": "integer",
"format": "int64"
"format": "int32"
},
"currentNumberScheduled": {
"description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/",
......@@ -62693,7 +62693,7 @@
"collisionCount": {
"description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.",
"type": "integer",
"format": "int64"
"format": "int32"
},
"conditions": {
"description": "Represents the latest available observations of a deployment's current state.",
......@@ -5909,7 +5909,7 @@
},
"collisionCount": {
"type": "integer",
"format": "int64",
"format": "int32",
"description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet."
}
}
......@@ -6282,7 +6282,7 @@
},
"collisionCount": {
"type": "integer",
"format": "int64",
"format": "int32",
"description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision."
}
}
......
......@@ -8041,7 +8041,7 @@
},
"collisionCount": {
"type": "integer",
"format": "int64",
"format": "int32",
"description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision."
}
}
......@@ -8216,7 +8216,7 @@
},
"collisionCount": {
"type": "integer",
"format": "int64",
"format": "int32",
"description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet."
}
}
......@@ -8708,7 +8708,7 @@
},
"collisionCount": {
"type": "integer",
"format": "int64",
"format": "int32",
"description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision."
}
}
......
......@@ -8594,7 +8594,7 @@
},
"collisionCount": {
"type": "integer",
"format": "int64",
"format": "int32",
"description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision."
}
}
......@@ -8853,7 +8853,7 @@
},
"collisionCount": {
"type": "integer",
"format": "int64",
"format": "int32",
"description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet."
}
}
......
......@@ -476,7 +476,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<td class="tableblock halign-left valign-top"><p class="tableblock">collisionCount</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.</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 (int64)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">integer (int32)</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
......@@ -5139,7 +5139,7 @@ Examples:<br>
<td class="tableblock halign-left valign-top"><p class="tableblock">collisionCount</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.</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 (int64)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">integer (int32)</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
......
......@@ -1653,7 +1653,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<td class="tableblock halign-left valign-top"><p class="tableblock">collisionCount</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.</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 (int64)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">integer (int32)</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
......@@ -2190,7 +2190,7 @@ When an object is created, the system will populate this list with the current s
<td class="tableblock halign-left valign-top"><p class="tableblock">collisionCount</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.</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 (int64)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">integer (int32)</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
......@@ -2410,7 +2410,7 @@ When an object is created, the system will populate this list with the current s
<td class="tableblock halign-left valign-top"><p class="tableblock">collisionCount</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.</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 (int64)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">integer (int32)</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
......
......@@ -494,7 +494,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<td class="tableblock halign-left valign-top"><p class="tableblock">collisionCount</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.</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 (int64)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">integer (int32)</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
......@@ -687,7 +687,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<td class="tableblock halign-left valign-top"><p class="tableblock">collisionCount</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.</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 (int64)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">integer (int32)</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
......
......@@ -12269,7 +12269,7 @@
"collisionCount": {
"description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.",
"type": "integer",
"format": "int64"
"format": "int32"
},
"currentNumberScheduled": {
"description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/",
......@@ -12522,7 +12522,7 @@
"collisionCount": {
"description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.",
"type": "integer",
"format": "int64"
"format": "int32"
},
"conditions": {
"description": "Represents the latest available observations of a deployment's current state.",
......
......@@ -6953,7 +6953,7 @@
},
"collisionCount": {
"type": "integer",
"format": "int64",
"format": "int32",
"description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision."
}
}
......@@ -7212,7 +7212,7 @@
},
"collisionCount": {
"type": "integer",
"format": "int64",
"format": "int32",
"description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet."
}
}
......
......@@ -482,7 +482,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<td class="tableblock halign-left valign-top"><p class="tableblock">collisionCount</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.</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 (int64)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">integer (int32)</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
......@@ -675,7 +675,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<td class="tableblock halign-left valign-top"><p class="tableblock">collisionCount</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.</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 (int64)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">integer (int32)</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
......
......@@ -44,7 +44,7 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} {
s.Status.ObservedGeneration = new(int64)
}
if s.Status.CollisionCount == nil {
s.Status.CollisionCount = new(int64)
s.Status.CollisionCount = new(int32)
}
},
}
......
......@@ -192,7 +192,7 @@ type StatefulSetStatus struct {
// uses this field as a collision avoidance mechanism when it needs to create the name for the
// newest ControllerRevision.
// +optional
CollisionCount *int64
CollisionCount *int32
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
......
......@@ -332,7 +332,7 @@ func autoConvert_v1beta1_DeploymentStatus_To_extensions_DeploymentStatus(in *v1b
out.AvailableReplicas = in.AvailableReplicas
out.UnavailableReplicas = in.UnavailableReplicas
out.Conditions = *(*[]extensions.DeploymentCondition)(unsafe.Pointer(&in.Conditions))
out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount))
out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount))
return nil
}
......@@ -349,7 +349,7 @@ func autoConvert_extensions_DeploymentStatus_To_v1beta1_DeploymentStatus(in *ext
out.AvailableReplicas = in.AvailableReplicas
out.UnavailableReplicas = in.UnavailableReplicas
out.Conditions = *(*[]v1beta1.DeploymentCondition)(unsafe.Pointer(&in.Conditions))
out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount))
out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount))
return nil
}
......@@ -625,7 +625,7 @@ func autoConvert_v1beta1_StatefulSetStatus_To_apps_StatefulSetStatus(in *v1beta1
out.UpdatedReplicas = in.UpdatedReplicas
out.CurrentRevision = in.CurrentRevision
out.UpdateRevision = in.UpdateRevision
out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount))
out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount))
return nil
}
......@@ -642,7 +642,7 @@ func autoConvert_apps_StatefulSetStatus_To_v1beta1_StatefulSetStatus(in *apps.St
out.UpdatedReplicas = in.UpdatedReplicas
out.CurrentRevision = in.CurrentRevision
out.UpdateRevision = in.UpdateRevision
out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount))
out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount))
return nil
}
......
......@@ -244,7 +244,7 @@ func Convert_v1beta2_StatefulSetStatus_To_apps_StatefulSetStatus(in *appsv1beta2
out.CurrentRevision = in.CurrentRevision
out.UpdateRevision = in.UpdateRevision
if in.CollisionCount != nil {
out.CollisionCount = new(int64)
out.CollisionCount = new(int32)
*out.CollisionCount = *in.CollisionCount
}
return nil
......@@ -261,7 +261,7 @@ func Convert_apps_StatefulSetStatus_To_v1beta2_StatefulSetStatus(in *apps.Statef
out.CurrentRevision = in.CurrentRevision
out.UpdateRevision = in.UpdateRevision
if in.CollisionCount != nil {
out.CollisionCount = new(int64)
out.CollisionCount = new(int32)
*out.CollisionCount = *in.CollisionCount
}
return nil
......
......@@ -272,7 +272,7 @@ func autoConvert_v1beta2_DaemonSetStatus_To_extensions_DaemonSetStatus(in *v1bet
out.UpdatedNumberScheduled = in.UpdatedNumberScheduled
out.NumberAvailable = in.NumberAvailable
out.NumberUnavailable = in.NumberUnavailable
out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount))
out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount))
return nil
}
......@@ -290,7 +290,7 @@ func autoConvert_extensions_DaemonSetStatus_To_v1beta2_DaemonSetStatus(in *exten
out.UpdatedNumberScheduled = in.UpdatedNumberScheduled
out.NumberAvailable = in.NumberAvailable
out.NumberUnavailable = in.NumberUnavailable
out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount))
out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount))
return nil
}
......@@ -466,7 +466,7 @@ func autoConvert_v1beta2_DeploymentStatus_To_extensions_DeploymentStatus(in *v1b
out.AvailableReplicas = in.AvailableReplicas
out.UnavailableReplicas = in.UnavailableReplicas
out.Conditions = *(*[]extensions.DeploymentCondition)(unsafe.Pointer(&in.Conditions))
out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount))
out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount))
return nil
}
......@@ -483,7 +483,7 @@ func autoConvert_extensions_DeploymentStatus_To_v1beta2_DeploymentStatus(in *ext
out.AvailableReplicas = in.AvailableReplicas
out.UnavailableReplicas = in.UnavailableReplicas
out.Conditions = *(*[]v1beta2.DeploymentCondition)(unsafe.Pointer(&in.Conditions))
out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount))
out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount))
return nil
}
......@@ -905,7 +905,7 @@ func autoConvert_v1beta2_StatefulSetStatus_To_apps_StatefulSetStatus(in *v1beta2
out.UpdatedReplicas = in.UpdatedReplicas
out.CurrentRevision = in.CurrentRevision
out.UpdateRevision = in.UpdateRevision
out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount))
out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount))
return nil
}
......@@ -917,7 +917,7 @@ func autoConvert_apps_StatefulSetStatus_To_v1beta2_StatefulSetStatus(in *apps.St
out.UpdatedReplicas = in.UpdatedReplicas
out.CurrentRevision = in.CurrentRevision
out.UpdateRevision = in.UpdateRevision
out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount))
out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount))
return nil
}
......
......@@ -302,7 +302,8 @@ func TestValidateStatefulSet(t *testing.T) {
}
func TestValidateStatefulSetStatus(t *testing.T) {
minusOne := int64(-1)
observedGenerationMinusOne := int64(-1)
collisionCountMinusOne := int32(-1)
tests := []struct {
name string
replicas int32
......@@ -310,7 +311,7 @@ func TestValidateStatefulSetStatus(t *testing.T) {
currentReplicas int32
updatedReplicas int32
observedGeneration *int64
collisionCount *int64
collisionCount *int32
expectedErr bool
}{
{
......@@ -359,7 +360,7 @@ func TestValidateStatefulSetStatus(t *testing.T) {
readyReplicas: 3,
currentReplicas: 2,
updatedReplicas: 1,
observedGeneration: &minusOne,
observedGeneration: &observedGenerationMinusOne,
expectedErr: true,
},
{
......@@ -368,7 +369,7 @@ func TestValidateStatefulSetStatus(t *testing.T) {
readyReplicas: 3,
currentReplicas: 2,
updatedReplicas: 1,
collisionCount: &minusOne,
collisionCount: &collisionCountMinusOne,
expectedErr: true,
},
{
......
......@@ -278,7 +278,7 @@ func (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) {
if *in == nil {
*out = nil
} else {
*out = new(int64)
*out = new(int32)
**out = **in
}
}
......
......@@ -345,7 +345,7 @@ type DeploymentStatus struct {
// field as a collision avoidance mechanism when it needs to create the name for the
// newest ReplicaSet.
// +optional
CollisionCount *int64
CollisionCount *int32
}
type DeploymentConditionType string
......@@ -519,7 +519,7 @@ type DaemonSetStatus struct {
// uses this field as a collision avoidance mechanism when it needs to
// create the name for the newest ControllerRevision.
// +optional
CollisionCount *int64
CollisionCount *int32
}
// +genclient
......
......@@ -378,7 +378,7 @@ func autoConvert_v1beta1_DaemonSetStatus_To_extensions_DaemonSetStatus(in *v1bet
out.UpdatedNumberScheduled = in.UpdatedNumberScheduled
out.NumberAvailable = in.NumberAvailable
out.NumberUnavailable = in.NumberUnavailable
out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount))
out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount))
return nil
}
......@@ -396,7 +396,7 @@ func autoConvert_extensions_DaemonSetStatus_To_v1beta1_DaemonSetStatus(in *exten
out.UpdatedNumberScheduled = in.UpdatedNumberScheduled
out.NumberAvailable = in.NumberAvailable
out.NumberUnavailable = in.NumberUnavailable
out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount))
out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount))
return nil
}
......@@ -621,7 +621,7 @@ func autoConvert_v1beta1_DeploymentStatus_To_extensions_DeploymentStatus(in *v1b
out.AvailableReplicas = in.AvailableReplicas
out.UnavailableReplicas = in.UnavailableReplicas
out.Conditions = *(*[]extensions.DeploymentCondition)(unsafe.Pointer(&in.Conditions))
out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount))
out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount))
return nil
}
......@@ -638,7 +638,7 @@ func autoConvert_extensions_DeploymentStatus_To_v1beta1_DeploymentStatus(in *ext
out.AvailableReplicas = in.AvailableReplicas
out.UnavailableReplicas = in.UnavailableReplicas
out.Conditions = *(*[]v1beta1.DeploymentCondition)(unsafe.Pointer(&in.Conditions))
out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount))
out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount))
return nil
}
......
......@@ -95,7 +95,7 @@ func ValidateDaemonSetStatusUpdate(ds, oldDS *extensions.DaemonSet) field.ErrorL
allErrs := apivalidation.ValidateObjectMetaUpdate(&ds.ObjectMeta, &oldDS.ObjectMeta, field.NewPath("metadata"))
allErrs = append(allErrs, validateDaemonSetStatus(&ds.Status, field.NewPath("status"))...)
if isDecremented(ds.Status.CollisionCount, oldDS.Status.CollisionCount) {
value := int64(0)
value := int32(0)
if ds.Status.CollisionCount != nil {
value = *ds.Status.CollisionCount
}
......@@ -311,7 +311,7 @@ func ValidateDeploymentStatus(status *extensions.DeploymentStatus, fldPath *fiel
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.AvailableReplicas), fldPath.Child("availableReplicas"))...)
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.UnavailableReplicas), fldPath.Child("unavailableReplicas"))...)
if status.CollisionCount != nil {
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(*status.CollisionCount, fldPath.Child("collisionCount"))...)
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(*status.CollisionCount), fldPath.Child("collisionCount"))...)
}
msg := "cannot be greater than status.replicas"
if status.UpdatedReplicas > status.Replicas {
......@@ -342,7 +342,7 @@ func ValidateDeploymentStatusUpdate(update, old *extensions.Deployment) field.Er
fldPath := field.NewPath("status")
allErrs = append(allErrs, ValidateDeploymentStatus(&update.Status, fldPath)...)
if isDecremented(update.Status.CollisionCount, old.Status.CollisionCount) {
value := int64(0)
value := int32(0)
if update.Status.CollisionCount != nil {
value = *update.Status.CollisionCount
}
......@@ -352,7 +352,7 @@ func ValidateDeploymentStatusUpdate(update, old *extensions.Deployment) field.Er
}
// TODO: Move in "k8s.io/kubernetes/pkg/api/validation"
func isDecremented(update, old *int64) bool {
func isDecremented(update, old *int32) bool {
if update == nil && old != nil {
return true
}
......
......@@ -1238,6 +1238,7 @@ func int64p(i int) *int64 {
}
func TestValidateDeploymentStatus(t *testing.T) {
collisionCount := int32(-3)
tests := []struct {
name string
......@@ -1246,7 +1247,7 @@ func TestValidateDeploymentStatus(t *testing.T) {
readyReplicas int32
availableReplicas int32
observedGeneration int64
collisionCount *int64
collisionCount *int32
expectedErr bool
}{
......@@ -1347,7 +1348,7 @@ func TestValidateDeploymentStatus(t *testing.T) {
name: "invalid collisionCount",
replicas: 3,
observedGeneration: 1,
collisionCount: int64p(-3),
collisionCount: &collisionCount,
expectedErr: true,
},
}
......@@ -1371,6 +1372,8 @@ func TestValidateDeploymentStatus(t *testing.T) {
}
func TestValidateDeploymentStatusUpdate(t *testing.T) {
collisionCount := int32(1)
otherCollisionCount := int32(2)
tests := []struct {
name string
......@@ -1384,24 +1387,24 @@ func TestValidateDeploymentStatusUpdate(t *testing.T) {
CollisionCount: nil,
},
to: extensions.DeploymentStatus{
CollisionCount: int64p(1),
CollisionCount: &collisionCount,
},
expectedErr: false,
},
{
name: "stable: valid update",
from: extensions.DeploymentStatus{
CollisionCount: int64p(1),
CollisionCount: &collisionCount,
},
to: extensions.DeploymentStatus{
CollisionCount: int64p(1),
CollisionCount: &collisionCount,
},
expectedErr: false,
},
{
name: "unset: invalid update",
from: extensions.DeploymentStatus{
CollisionCount: int64p(1),
CollisionCount: &collisionCount,
},
to: extensions.DeploymentStatus{
CollisionCount: nil,
......@@ -1411,10 +1414,10 @@ func TestValidateDeploymentStatusUpdate(t *testing.T) {
{
name: "decrease: invalid update",
from: extensions.DeploymentStatus{
CollisionCount: int64p(2),
CollisionCount: &otherCollisionCount,
},
to: extensions.DeploymentStatus{
CollisionCount: int64p(1),
CollisionCount: &collisionCount,
},
expectedErr: true,
},
......
......@@ -456,7 +456,7 @@ func (in *DaemonSetStatus) DeepCopyInto(out *DaemonSetStatus) {
if *in == nil {
*out = nil
} else {
*out = new(int64)
*out = new(int32)
**out = **in
}
}
......@@ -682,7 +682,7 @@ func (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus) {
if *in == nil {
*out = nil
} else {
*out = new(int64)
*out = new(int32)
**out = **in
}
}
......
......@@ -1030,14 +1030,14 @@ func WaitForCacheSync(controllerName string, stopCh <-chan struct{}, cacheSyncs
}
// ComputeHash returns a hash value calculated from pod template and a collisionCount to avoid hash collision
func ComputeHash(template *v1.PodTemplateSpec, collisionCount *int64) uint32 {
func ComputeHash(template *v1.PodTemplateSpec, collisionCount *int32) uint32 {
podTemplateSpecHasher := fnv.New32a()
hashutil.DeepHashObject(podTemplateSpecHasher, *template)
// Add collisionCount in the hash if it exists.
if collisionCount != nil {
collisionCountBytes := make([]byte, 8)
binary.LittleEndian.PutUint64(collisionCountBytes, uint64(*collisionCount))
binary.LittleEndian.PutUint32(collisionCountBytes, uint32(*collisionCount))
podTemplateSpecHasher.Write(collisionCountBytes)
}
......
......@@ -453,23 +453,26 @@ func int64P(num int64) *int64 {
}
func TestComputeHash(t *testing.T) {
collisionCount := int32(1)
otherCollisionCount := int32(2)
maxCollisionCount := int32(math.MaxInt32)
tests := []struct {
name string
template *v1.PodTemplateSpec
collisionCount *int64
otherCollisionCount *int64
collisionCount *int32
otherCollisionCount *int32
}{
{
name: "simple",
template: &v1.PodTemplateSpec{},
collisionCount: int64P(1),
otherCollisionCount: int64P(2),
collisionCount: &collisionCount,
otherCollisionCount: &otherCollisionCount,
},
{
name: "using math.MaxInt64",
template: &v1.PodTemplateSpec{},
collisionCount: nil,
otherCollisionCount: int64P(int64(math.MaxInt64)),
otherCollisionCount: &maxCollisionCount,
},
}
......
......@@ -368,7 +368,7 @@ func (dsc *DaemonSetsController) snapshot(ds *extensions.DaemonSet, revision int
return nil, getErr
}
if currDS.Status.CollisionCount == nil {
currDS.Status.CollisionCount = new(int64)
currDS.Status.CollisionCount = new(int32)
}
*currDS.Status.CollisionCount++
_, updateErr := dsc.kubeClient.ExtensionsV1beta1().DaemonSets(ds.Namespace).UpdateStatus(currDS)
......
......@@ -160,7 +160,7 @@ func (dc *DeploymentController) rsAndPodsWithHashKeySynced(d *extensions.Deploym
// 1. Add hash label to the rs's pod template, and make sure the controller sees this update so that no orphaned pods will be created
// 2. Add hash label to all pods this rs owns, wait until replicaset controller reports rs.Status.FullyLabeledReplicas equal to the desired number of replicas
// 3. Add hash label to the rs's label and selector
func (dc *DeploymentController) addHashKeyToRSAndPods(rs *extensions.ReplicaSet, podList *v1.PodList, collisionCount *int64) (*extensions.ReplicaSet, error) {
func (dc *DeploymentController) addHashKeyToRSAndPods(rs *extensions.ReplicaSet, podList *v1.PodList, collisionCount *int32) (*extensions.ReplicaSet, error) {
// If the rs already has the new hash label in its selector, it's done syncing
if labelsutil.SelectorHasLabel(rs.Spec.Selector, extensions.DefaultDeploymentUniqueLabelKey) {
return rs, nil
......@@ -349,7 +349,7 @@ func (dc *DeploymentController) getNewReplicaSet(d *extensions.Deployment, rsLis
// and requeue the Deployment.
if !isEqual {
if d.Status.CollisionCount == nil {
d.Status.CollisionCount = new(int64)
d.Status.CollisionCount = new(int32)
}
preCollisionCount := *d.Status.CollisionCount
*d.Status.CollisionCount++
......
......@@ -70,7 +70,7 @@ func UpdateRSWithRetries(rsClient unversionedextensions.ReplicaSetInterface, rsL
}
// GetReplicaSetHash returns the pod template hash of a ReplicaSet's pod template space
func GetReplicaSetHash(rs *extensions.ReplicaSet, uniquifier *int64) (string, error) {
func GetReplicaSetHash(rs *extensions.ReplicaSet, uniquifier *int32) (string, error) {
template, err := scheme.Scheme.DeepCopy(rs.Spec.Template)
if err != nil {
return "", err
......
......@@ -208,7 +208,7 @@ message DeploymentStatus {
// field as a collision avoidance mechanism when it needs to create the name for the
// newest ReplicaSet.
// +optional
optional int64 collisionCount = 8;
optional int32 collisionCount = 8;
}
// DeploymentStrategy describes how to replace existing pods with new ones.
......@@ -434,7 +434,7 @@ message StatefulSetStatus {
// uses this field as a collision avoidance mechanism when it needs to create the name for the
// newest ControllerRevision.
// +optional
optional int64 collisionCount = 9;
optional int32 collisionCount = 9;
}
// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet
......
......@@ -2812,13 +2812,13 @@ func (x *StatefulSetStatus) codecDecodeSelfFromMap(l int, d *codec1978.Decoder)
}
} else {
if x.CollisionCount == nil {
x.CollisionCount = new(int64)
x.CollisionCount = new(int32)
}
yym19 := z.DecBinary()
_ = yym19
if false {
} else {
*((*int64)(x.CollisionCount)) = int64(r.DecodeInt(64))
*((*int32)(x.CollisionCount)) = int32(r.DecodeInt(32))
}
}
default:
......@@ -3010,13 +3010,13 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder
}
} else {
if x.CollisionCount == nil {
x.CollisionCount = new(int64)
x.CollisionCount = new(int32)
}
yym36 := z.DecBinary()
_ = yym36
if false {
} else {
*((*int64)(x.CollisionCount)) = int64(r.DecodeInt(64))
*((*int32)(x.CollisionCount)) = int32(r.DecodeInt(32))
}
}
for {
......@@ -6008,13 +6008,13 @@ func (x *DeploymentStatus) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
}
} else {
if x.CollisionCount == nil {
x.CollisionCount = new(int64)
x.CollisionCount = new(int32)
}
yym19 := z.DecBinary()
_ = yym19
if false {
} else {
*((*int64)(x.CollisionCount)) = int64(r.DecodeInt(64))
*((*int32)(x.CollisionCount)) = int32(r.DecodeInt(32))
}
}
default:
......@@ -6202,13 +6202,13 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
}
} else {
if x.CollisionCount == nil {
x.CollisionCount = new(int64)
x.CollisionCount = new(int32)
}
yym36 := z.DecBinary()
_ = yym36
if false {
} else {
*((*int64)(x.CollisionCount)) = int64(r.DecodeInt(64))
*((*int32)(x.CollisionCount)) = int32(r.DecodeInt(32))
}
}
for {
......
......@@ -244,7 +244,7 @@ type StatefulSetStatus struct {
// uses this field as a collision avoidance mechanism when it needs to create the name for the
// newest ControllerRevision.
// +optional
CollisionCount *int64 `json:"collisionCount,omitempty" protobuf:"varint,9,opt,name=collisionCount"`
CollisionCount *int32 `json:"collisionCount,omitempty" protobuf:"varint,9,opt,name=collisionCount"`
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
......@@ -445,7 +445,7 @@ type DeploymentStatus struct {
// field as a collision avoidance mechanism when it needs to create the name for the
// newest ReplicaSet.
// +optional
CollisionCount *int64 `json:"collisionCount,omitempty" protobuf:"varint,8,opt,name=collisionCount"`
CollisionCount *int32 `json:"collisionCount,omitempty" protobuf:"varint,8,opt,name=collisionCount"`
}
type DeploymentConditionType string
......
......@@ -377,7 +377,7 @@ func (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus) {
if *in == nil {
*out = nil
} else {
*out = new(int64)
*out = new(int32)
**out = **in
}
}
......@@ -694,7 +694,7 @@ func (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) {
if *in == nil {
*out = nil
} else {
*out = new(int64)
*out = new(int32)
**out = **in
}
}
......
......@@ -174,7 +174,7 @@ message DaemonSetStatus {
// uses this field as a collision avoidance mechanism when it needs to
// create the name for the newest ControllerRevision.
// +optional
optional int64 collisionCount = 9;
optional int32 collisionCount = 9;
}
// DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.
......@@ -318,7 +318,7 @@ message DeploymentStatus {
// field as a collision avoidance mechanism when it needs to create the name for the
// newest ReplicaSet.
// +optional
optional int64 collisionCount = 8;
optional int32 collisionCount = 8;
}
// DeploymentStrategy describes how to replace existing pods with new ones.
......@@ -672,7 +672,7 @@ message StatefulSetStatus {
// uses this field as a collision avoidance mechanism when it needs to create the name for the
// newest ControllerRevision.
// +optional
optional int64 collisionCount = 9;
optional int32 collisionCount = 9;
}
// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet
......
......@@ -251,7 +251,7 @@ type StatefulSetStatus struct {
// uses this field as a collision avoidance mechanism when it needs to create the name for the
// newest ControllerRevision.
// +optional
CollisionCount *int64 `json:"collisionCount,omitempty" protobuf:"varint,9,opt,name=collisionCount"`
CollisionCount *int32 `json:"collisionCount,omitempty" protobuf:"varint,9,opt,name=collisionCount"`
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
......@@ -425,7 +425,7 @@ type DeploymentStatus struct {
// field as a collision avoidance mechanism when it needs to create the name for the
// newest ReplicaSet.
// +optional
CollisionCount *int64 `json:"collisionCount,omitempty" protobuf:"varint,8,opt,name=collisionCount"`
CollisionCount *int32 `json:"collisionCount,omitempty" protobuf:"varint,8,opt,name=collisionCount"`
}
type DeploymentConditionType string
......@@ -598,7 +598,7 @@ type DaemonSetStatus struct {
// uses this field as a collision avoidance mechanism when it needs to
// create the name for the newest ControllerRevision.
// +optional
CollisionCount *int64 `json:"collisionCount,omitempty" protobuf:"varint,9,opt,name=collisionCount"`
CollisionCount *int32 `json:"collisionCount,omitempty" protobuf:"varint,9,opt,name=collisionCount"`
}
// +genclient
......
......@@ -327,7 +327,7 @@ func (in *DaemonSetStatus) DeepCopyInto(out *DaemonSetStatus) {
if *in == nil {
*out = nil
} else {
*out = new(int64)
*out = new(int32)
**out = **in
}
}
......@@ -519,7 +519,7 @@ func (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus) {
if *in == nil {
*out = nil
} else {
*out = new(int64)
*out = new(int32)
**out = **in
}
}
......@@ -974,7 +974,7 @@ func (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) {
if *in == nil {
*out = nil
} else {
*out = new(int64)
*out = new(int32)
**out = **in
}
}
......
......@@ -181,7 +181,7 @@ message DaemonSetStatus {
// uses this field as a collision avoidance mechanism when it needs to
// create the name for the newest ControllerRevision.
// +optional
optional int64 collisionCount = 9;
optional int32 collisionCount = 9;
}
message DaemonSetUpdateStrategy {
......@@ -344,7 +344,7 @@ message DeploymentStatus {
// field as a collision avoidance mechanism when it needs to create the name for the
// newest ReplicaSet.
// +optional
optional int64 collisionCount = 8;
optional int32 collisionCount = 8;
}
// DeploymentStrategy describes how to replace existing pods with new ones.
......
......@@ -6000,13 +6000,13 @@ func (x *DeploymentStatus) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
}
} else {
if x.CollisionCount == nil {
x.CollisionCount = new(int64)
x.CollisionCount = new(int32)
}
yym19 := z.DecBinary()
_ = yym19
if false {
} else {
*((*int64)(x.CollisionCount)) = int64(r.DecodeInt(64))
*((*int32)(x.CollisionCount)) = int32(r.DecodeInt(32))
}
}
default:
......@@ -6194,13 +6194,13 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
}
} else {
if x.CollisionCount == nil {
x.CollisionCount = new(int64)
x.CollisionCount = new(int32)
}
yym36 := z.DecBinary()
_ = yym36
if false {
} else {
*((*int64)(x.CollisionCount)) = int64(r.DecodeInt(64))
*((*int32)(x.CollisionCount)) = int32(r.DecodeInt(32))
}
}
for {
......@@ -8424,13 +8424,13 @@ func (x *DaemonSetStatus) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
}
} else {
if x.CollisionCount == nil {
x.CollisionCount = new(int64)
x.CollisionCount = new(int32)
}
yym21 := z.DecBinary()
_ = yym21
if false {
} else {
*((*int64)(x.CollisionCount)) = int64(r.DecodeInt(64))
*((*int32)(x.CollisionCount)) = int32(r.DecodeInt(32))
}
}
default:
......@@ -8640,13 +8640,13 @@ func (x *DaemonSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
}
} else {
if x.CollisionCount == nil {
x.CollisionCount = new(int64)
x.CollisionCount = new(int32)
}
yym40 := z.DecBinary()
_ = yym40
if false {
} else {
*((*int64)(x.CollisionCount)) = int64(r.DecodeInt(64))
*((*int32)(x.CollisionCount)) = int32(r.DecodeInt(32))
}
}
for {
......
......@@ -345,7 +345,7 @@ type DeploymentStatus struct {
// field as a collision avoidance mechanism when it needs to create the name for the
// newest ReplicaSet.
// +optional
CollisionCount *int64 `json:"collisionCount,omitempty" protobuf:"varint,8,opt,name=collisionCount"`
CollisionCount *int32 `json:"collisionCount,omitempty" protobuf:"varint,8,opt,name=collisionCount"`
}
type DeploymentConditionType string
......@@ -524,7 +524,7 @@ type DaemonSetStatus struct {
// uses this field as a collision avoidance mechanism when it needs to
// create the name for the newest ControllerRevision.
// +optional
CollisionCount *int64 `json:"collisionCount,omitempty" protobuf:"varint,9,opt,name=collisionCount"`
CollisionCount *int32 `json:"collisionCount,omitempty" protobuf:"varint,9,opt,name=collisionCount"`
}
// +genclient
......
......@@ -477,7 +477,7 @@ func (in *DaemonSetStatus) DeepCopyInto(out *DaemonSetStatus) {
if *in == nil {
*out = nil
} else {
*out = new(int64)
*out = new(int32)
**out = **in
}
}
......@@ -712,7 +712,7 @@ func (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus) {
if *in == nil {
*out = nil
} else {
*out = new(int64)
*out = new(int32)
**out = **in
}
}
......
......@@ -1449,7 +1449,7 @@ func testDeploymentHashCollisionAvoidance(f *framework.Framework) {
return false, nil
}
framework.Logf(spew.Sprintf("deployment status: %#v", d.Status))
return d.Status.CollisionCount != nil && *d.Status.CollisionCount == int64(1), nil
return d.Status.CollisionCount != nil && *d.Status.CollisionCount == int32(1), nil
}); err != nil {
framework.Failf("Failed to increment collision counter for deployment %q: %v", deploymentName, err)
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment