Change:
Here are the hash label keys of all controllers: Deployment: DaemonSet: (new in 1.7) StatefulSet: (new in 1.7) Had a brief discussion with and about this, it should be consistent. We can use for DaemonSet and StatefulSet, and keep Deployment as-is. Deployment hash label key should be different from other two because Deployment pods hash labels is used by selector (unlike the other two controllers). We probably should have used hash annotations instead of hash labels for DaemonSet and StatefulSet, since we don't use hash labels to select their history or pods. Hash labels are chosen for consistency. This is fine since we don't modify hash label values.
There are no sig labels on this issue. Please by:<br(1) mentioning a sig: <br(2) specifying the label manually: <br<brNote: method (1) will trigger a notification to the team. You can find the team list and label list
Actually, controller revisions created by statefulset, daemonset has different label: // controller revision created by statefulset label: "" // controller revision created by daemonset label: controller-revision-hash: "" should be consistent?

Discussion:
deps = [ "//pkg/api:go_default_library", "//pkg/api/v1:go_default_library", <ins> "//pkg/apis/apps/v1beta1:go_default_library", </ins> "//pkg/apis/extensions:go_default_library", "//pkg/apis/networking:go_default_library", "//vendor/github.com/gogo/protobuf/proto:go_default_library",

metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/kubernetes/pkg/api/v1" <ins> appsv1beta1 "k8s.io/kubernetes/pkg/apis/apps/v1beta1" </ins> ) // describes the attributes of a scale subresource

deps = [ "//pkg/api/testapi:go_default_library", "//pkg/api/v1:go_default_library", <del> "//pkg/apis/extensions:go_default_library", </del> <ins> "//pkg/apis/extensions/v1beta1:go_default_library", </ins> "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", ], )

metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/pkg/api/v1" <del> "k8s.io/kubernetes/pkg/apis/extensions" </del> <ins> extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" </ins> ) func newPod(podName string, nodeName string, label map[string]string) *v1.Pod {

const ( // StatefulSetInitAnnotation if present, and set to false, indicates that a Pod's readiness should be ignored. <del> StatefulSetInitAnnotation = "pod.alpha.kubernetes.io/initialized" StatefulSetRevisionLabel  = "statefulset.beta.kubernetes.io/revision" </del> <ins> StatefulSetInitAnnotation      = "pod.alpha.kubernetes.io/initialized" ControllerRevisionHashLabelKey = "controller-revision-hash" StatefulSetRevisionLabel       = ControllerRevisionHashLabelKey </ins> ) // ScaleSpec describes the attributes of a scale subresource

// to daemon set pods to distinguish between old and new pod templates // during DaemonSet template update. DaemonSetTemplateGenerationKey string = "pod-template-generation" <del> // DefaultDaemonSetUniqueLabelKey is the default label key that is added // to existing DaemonSet pods to distinguish between old and new // DaemonSet pods during DaemonSet template updates. DefaultDaemonSetUniqueLabelKey string = "daemonset-controller-hash" </del> ) // DaemonSetList is a collection of daemon sets.

"//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", "//vendor/k8s.io/client-go/pkg/api:go_default_library", "//vendor/k8s.io/client-go/pkg/api/v1:go_default_library", <ins> "//vendor/k8s.io/client-go/pkg/apis/apps/v1beta1:go_default_library", </ins> "//vendor/k8s.io/client-go/pkg/apis/extensions:go_default_library", "//vendor/k8s.io/client-go/pkg/apis/networking:go_default_library", ],

metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/client-go/pkg/api/v1" <ins> appsv1beta1 "k8s.io/client-go/pkg/apis/apps/v1beta1" </ins> ) // describes the attributes of a scale subresource

// DefaultDaemonSetUniqueLabelKey is the default label key that is added // to existing DaemonSet pods to distinguish between old and new // DaemonSet pods during DaemonSet template updates. <del> DefaultDaemonSetUniqueLabelKey string = "daemonset-controller-hash" </del> <ins> DefaultDaemonSetUniqueLabelKey = appsv1beta1.ControllerRevisionHashLabelKey </ins> ) // DaemonSetList is a collection of daemon sets.