mirror of
https://github.com/ceph/ceph-csi.git
synced 2025-06-14 18:53:35 +00:00
Fresh dep ensure
This commit is contained in:
52
vendor/k8s.io/kubernetes/pkg/controller/history/BUILD
generated
vendored
52
vendor/k8s.io/kubernetes/pkg/controller/history/BUILD
generated
vendored
@ -14,18 +14,18 @@ go_test(
|
||||
"//pkg/api/legacyscheme:go_default_library",
|
||||
"//pkg/api/testapi:go_default_library",
|
||||
"//pkg/controller:go_default_library",
|
||||
"//vendor/k8s.io/api/apps/v1:go_default_library",
|
||||
"//vendor/k8s.io/api/core/v1:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/labels:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/types:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/util/strategicpatch:go_default_library",
|
||||
"//vendor/k8s.io/client-go/informers:go_default_library",
|
||||
"//vendor/k8s.io/client-go/kubernetes/fake:go_default_library",
|
||||
"//vendor/k8s.io/client-go/testing:go_default_library",
|
||||
"//staging/src/k8s.io/api/apps/v1:go_default_library",
|
||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/util/strategicpatch:go_default_library",
|
||||
"//staging/src/k8s.io/client-go/informers:go_default_library",
|
||||
"//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library",
|
||||
"//staging/src/k8s.io/client-go/testing:go_default_library",
|
||||
],
|
||||
)
|
||||
|
||||
@ -35,20 +35,20 @@ go_library(
|
||||
importpath = "k8s.io/kubernetes/pkg/controller/history",
|
||||
deps = [
|
||||
"//pkg/util/hash:go_default_library",
|
||||
"//vendor/k8s.io/api/apps/v1:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/labels:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/types:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/util/rand:go_default_library",
|
||||
"//vendor/k8s.io/client-go/informers/apps/v1:go_default_library",
|
||||
"//vendor/k8s.io/client-go/kubernetes:go_default_library",
|
||||
"//vendor/k8s.io/client-go/listers/apps/v1:go_default_library",
|
||||
"//vendor/k8s.io/client-go/tools/cache:go_default_library",
|
||||
"//vendor/k8s.io/client-go/util/retry:go_default_library",
|
||||
"//staging/src/k8s.io/api/apps/v1:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/api/equality:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library",
|
||||
"//staging/src/k8s.io/client-go/informers/apps/v1:go_default_library",
|
||||
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
|
||||
"//staging/src/k8s.io/client-go/listers/apps/v1:go_default_library",
|
||||
"//staging/src/k8s.io/client-go/tools/cache:go_default_library",
|
||||
"//staging/src/k8s.io/client-go/util/retry:go_default_library",
|
||||
],
|
||||
)
|
||||
|
||||
|
2
vendor/k8s.io/kubernetes/pkg/controller/history/OWNERS
generated
vendored
2
vendor/k8s.io/kubernetes/pkg/controller/history/OWNERS
generated
vendored
@ -11,3 +11,5 @@ reviewers:
|
||||
- kow3ns
|
||||
- smarterclayton
|
||||
- tnozicka
|
||||
labels:
|
||||
- sig/apps
|
||||
|
25
vendor/k8s.io/kubernetes/pkg/controller/history/controller_history.go
generated
vendored
25
vendor/k8s.io/kubernetes/pkg/controller/history/controller_history.go
generated
vendored
@ -47,12 +47,12 @@ const ControllerRevisionHashLabel = "controller.kubernetes.io/hash"
|
||||
|
||||
// ControllerRevisionName returns the Name for a ControllerRevision in the form prefix-hash. If the length
|
||||
// of prefix is greater than 223 bytes, it is truncated to allow for a name that is no larger than 253 bytes.
|
||||
func ControllerRevisionName(prefix string, hash uint32) string {
|
||||
func ControllerRevisionName(prefix string, hash string) string {
|
||||
if len(prefix) > 223 {
|
||||
prefix = prefix[:223]
|
||||
}
|
||||
|
||||
return fmt.Sprintf("%s-%s", prefix, rand.SafeEncodeString(strconv.FormatInt(int64(hash), 10)))
|
||||
return fmt.Sprintf("%s-%s", prefix, hash)
|
||||
}
|
||||
|
||||
// NewControllerRevision returns a ControllerRevision with a ControllerRef pointing to parent and indicating that
|
||||
@ -91,13 +91,13 @@ func NewControllerRevision(parent metav1.Object,
|
||||
}
|
||||
hash := HashControllerRevision(cr, collisionCount)
|
||||
cr.Name = ControllerRevisionName(parent.GetName(), hash)
|
||||
cr.Labels[ControllerRevisionHashLabel] = strconv.FormatInt(int64(hash), 10)
|
||||
cr.Labels[ControllerRevisionHashLabel] = hash
|
||||
return cr, nil
|
||||
}
|
||||
|
||||
// HashControllerRevision hashes the contents of revision's Data using FNV hashing. If probe is not nil, the byte value
|
||||
// of probe is added written to the hash as well.
|
||||
func HashControllerRevision(revision *apps.ControllerRevision, probe *int32) uint32 {
|
||||
// of probe is added written to the hash as well. The returned hash will be a safe encoded string to avoid bad words.
|
||||
func HashControllerRevision(revision *apps.ControllerRevision, probe *int32) string {
|
||||
hf := fnv.New32()
|
||||
if len(revision.Data.Raw) > 0 {
|
||||
hf.Write(revision.Data.Raw)
|
||||
@ -108,8 +108,7 @@ func HashControllerRevision(revision *apps.ControllerRevision, probe *int32) uin
|
||||
if probe != nil {
|
||||
hf.Write([]byte(strconv.FormatInt(int64(*probe), 10)))
|
||||
}
|
||||
return hf.Sum32()
|
||||
|
||||
return rand.SafeEncodeString(fmt.Sprint(hf.Sum32()))
|
||||
}
|
||||
|
||||
// SortControllerRevisions sorts revisions by their Revision.
|
||||
@ -249,10 +248,18 @@ func (rh *realHistory) CreateControllerRevision(parent metav1.Object, revision *
|
||||
// Continue to attempt to create the revision updating the name with a new hash on each iteration
|
||||
for {
|
||||
hash := HashControllerRevision(revision, collisionCount)
|
||||
// Update the revisions name and labels
|
||||
// Update the revisions name
|
||||
clone.Name = ControllerRevisionName(parent.GetName(), hash)
|
||||
created, err := rh.client.AppsV1().ControllerRevisions(parent.GetNamespace()).Create(clone)
|
||||
ns := parent.GetNamespace()
|
||||
created, err := rh.client.AppsV1().ControllerRevisions(ns).Create(clone)
|
||||
if errors.IsAlreadyExists(err) {
|
||||
exists, err := rh.client.AppsV1().ControllerRevisions(ns).Get(clone.Name, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if bytes.Equal(exists.Data.Raw, clone.Data.Raw) {
|
||||
return exists, nil
|
||||
}
|
||||
*collisionCount++
|
||||
continue
|
||||
}
|
||||
|
21
vendor/k8s.io/kubernetes/pkg/controller/history/controller_history_test.go
generated
vendored
21
vendor/k8s.io/kubernetes/pkg/controller/history/controller_history_test.go
generated
vendored
@ -258,8 +258,8 @@ func TestRealHistory_CreateControllerRevision(t *testing.T) {
|
||||
history := NewHistory(client, informer.Lister())
|
||||
|
||||
var collisionCount int32
|
||||
for i := range test.existing {
|
||||
_, err := history.CreateControllerRevision(test.existing[i].parent, test.existing[i].revision, &collisionCount)
|
||||
for _, item := range test.existing {
|
||||
_, err := client.AppsV1().ControllerRevisions(item.parent.GetNamespace()).Create(item.revision)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -280,12 +280,12 @@ func TestRealHistory_CreateControllerRevision(t *testing.T) {
|
||||
t.Errorf("%s: on name collision wanted new name %s got %s", test.name, expectedName, created.Name)
|
||||
}
|
||||
|
||||
// Second name collision should have incremented collisionCount to 2
|
||||
// Second name collision will be caused by an identical revision, so no need to do anything
|
||||
_, err = history.CreateControllerRevision(test.parent, test.revision, &collisionCount)
|
||||
if err != nil {
|
||||
t.Errorf("%s: %s", test.name, err)
|
||||
}
|
||||
if collisionCount != 2 {
|
||||
if collisionCount != 1 {
|
||||
t.Errorf("%s: on second name collision wanted collisionCount 1 got %d", test.name, collisionCount)
|
||||
}
|
||||
}
|
||||
@ -302,7 +302,16 @@ func TestRealHistory_CreateControllerRevision(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
ss1Rev1.Namespace = ss1.Namespace
|
||||
ss1Rev2, err := NewControllerRevision(ss1, parentKind, ss1.Spec.Template.Labels, rawTemplate(&ss1.Spec.Template), 2, ss1.Status.CollisionCount)
|
||||
|
||||
// Create a new revision with the same name and hash label as an existing revision, but with
|
||||
// a different template. This could happen as a result of a hash collision, but in this test
|
||||
// this situation is created by setting name and hash label to values known to be in use by
|
||||
// an existing revision.
|
||||
modTemplate := ss1.Spec.Template.DeepCopy()
|
||||
modTemplate.Labels["foo"] = "not_bar"
|
||||
ss1Rev2, err := NewControllerRevision(ss1, parentKind, ss1.Spec.Template.Labels, rawTemplate(modTemplate), 2, ss1.Status.CollisionCount)
|
||||
ss1Rev2.Name = ss1Rev1.Name
|
||||
ss1Rev2.Labels[ControllerRevisionHashLabel] = ss1Rev1.Labels[ControllerRevisionHashLabel]
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -347,7 +356,7 @@ func TestRealHistory_CreateControllerRevision(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
parent: ss1,
|
||||
revision: ss1Rev1,
|
||||
revision: ss1Rev2,
|
||||
},
|
||||
},
|
||||
rename: true,
|
||||
|
Reference in New Issue
Block a user