diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index 4edb6245..a8f55596 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -424,487 +424,487 @@ }, { "ImportPath": "k8s.io/client-go/discovery", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/discovery/fake", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/admissionregistration", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/admissionregistration/v1alpha1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/admissionregistration/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/apps", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/apps/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/apps/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/apps/v1beta2", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/autoscaling", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/autoscaling/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/autoscaling/v2beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/batch", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/batch/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/batch/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/batch/v2alpha1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/certificates", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/certificates/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/core", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/core/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/events", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/events/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/extensions", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/extensions/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/internalinterfaces", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/networking", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/networking/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/policy", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/policy/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/rbac", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/rbac/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/rbac/v1alpha1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/rbac/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/scheduling", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/scheduling/v1alpha1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/settings", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/settings/v1alpha1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/storage", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/storage/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/storage/v1alpha1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/informers/storage/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/scheme", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta2", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v2alpha1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/certificates/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/core/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/events/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/extensions/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/networking/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/policy/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/settings/v1alpha1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1alpha1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/admissionregistration/v1alpha1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/admissionregistration/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/apps/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/apps/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/apps/v1beta2", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/autoscaling/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/autoscaling/v2beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/batch/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/batch/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/batch/v2alpha1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/certificates/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/core/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/events/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/extensions/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/networking/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/policy/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/rbac/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/rbac/v1alpha1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/rbac/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/scheduling/v1alpha1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/settings/v1alpha1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/storage/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/storage/v1alpha1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/listers/storage/v1beta1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/pkg/apis/clientauthentication", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/pkg/version", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/plugin/pkg/client/auth/exec", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/rest", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/rest/watch", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/testing", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/tools/auth", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/tools/cache", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/tools/clientcmd", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/tools/clientcmd/api", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/tools/clientcmd/api/latest", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/tools/clientcmd/api/v1", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/tools/metrics", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/tools/pager", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/tools/record", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/tools/reference", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/transport", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/util/buffer", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/util/cert", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/util/flowcontrol", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/util/homedir", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/util/integer", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/util/retry", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/client-go/util/workqueue", - "Rev": "47c485781f23208b2c4e345f52dfa9d7fe6975b4" + "Rev": "b7d03ad8c68365c7c0623d94f74ece73e0cd64d4" }, { "ImportPath": "k8s.io/kube-openapi/pkg/util/proto", diff --git a/pkg/client/informers/externalversions/factory.go b/pkg/client/informers/externalversions/factory.go index e68cfa31..b6cf4fe8 100644 --- a/pkg/client/informers/externalversions/factory.go +++ b/pkg/client/informers/externalversions/factory.go @@ -32,12 +32,16 @@ import ( samplecontroller "k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller" ) +// SharedInformerOption defines the functional option type for SharedInformerFactory. +type SharedInformerOption func(*sharedInformerFactory) *sharedInformerFactory + type sharedInformerFactory struct { client versioned.Interface namespace string tweakListOptions internalinterfaces.TweakListOptionsFunc lock sync.Mutex defaultResync time.Duration + customResync map[reflect.Type]time.Duration informers map[reflect.Type]cache.SharedIndexInformer // startedInformers is used for tracking which informers have been started. @@ -45,23 +49,62 @@ type sharedInformerFactory struct { startedInformers map[reflect.Type]bool } -// NewSharedInformerFactory constructs a new instance of sharedInformerFactory +// WithCustomResyncConfig sets a custom resync period for the specified informer types. +func WithCustomResyncConfig(resyncConfig map[v1.Object]time.Duration) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + for k, v := range resyncConfig { + factory.customResync[reflect.TypeOf(k)] = v + } + return factory + } +} + +// WithTweakListOptions sets a custom filter on all listers of the configured SharedInformerFactory. +func WithTweakListOptions(tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + factory.tweakListOptions = tweakListOptions + return factory + } +} + +// WithNamespace limits the SharedInformerFactory to the specified namespace. +func WithNamespace(namespace string) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + factory.namespace = namespace + return factory + } +} + +// NewSharedInformerFactory constructs a new instance of sharedInformerFactory for all namespaces. func NewSharedInformerFactory(client versioned.Interface, defaultResync time.Duration) SharedInformerFactory { - return NewFilteredSharedInformerFactory(client, defaultResync, v1.NamespaceAll, nil) + return NewSharedInformerFactoryWithOptions(client, defaultResync) } // NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. // Listers obtained via this SharedInformerFactory will be subject to the same filters // as specified here. +// Deprecated: Please use NewSharedInformerFactoryWithOptions instead func NewFilteredSharedInformerFactory(client versioned.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { - return &sharedInformerFactory{ + return NewSharedInformerFactoryWithOptions(client, defaultResync, WithNamespace(namespace), WithTweakListOptions(tweakListOptions)) +} + +// NewSharedInformerFactoryWithOptions constructs a new instance of a SharedInformerFactory with additional options. +func NewSharedInformerFactoryWithOptions(client versioned.Interface, defaultResync time.Duration, options ...SharedInformerOption) SharedInformerFactory { + factory := &sharedInformerFactory{ client: client, - namespace: namespace, - tweakListOptions: tweakListOptions, + namespace: v1.NamespaceAll, defaultResync: defaultResync, informers: make(map[reflect.Type]cache.SharedIndexInformer), startedInformers: make(map[reflect.Type]bool), + customResync: make(map[reflect.Type]time.Duration), } + + // Apply all options + for _, opt := range options { + factory = opt(factory) + } + + return factory } // Start initializes all requested informers. @@ -110,7 +153,13 @@ func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internal if exists { return informer } - informer = newFunc(f.client, f.defaultResync) + + resyncPeriod, exists := f.customResync[informerType] + if !exists { + resyncPeriod = f.defaultResync + } + + informer = newFunc(f.client, resyncPeriod) f.informers[informerType] = informer return informer diff --git a/vendor/k8s.io/client-go/informers/factory.go b/vendor/k8s.io/client-go/informers/factory.go index a35b965f..902195d6 100644 --- a/vendor/k8s.io/client-go/informers/factory.go +++ b/vendor/k8s.io/client-go/informers/factory.go @@ -45,12 +45,16 @@ import ( cache "k8s.io/client-go/tools/cache" ) +// SharedInformerOption defines the functional option type for SharedInformerFactory. +type SharedInformerOption func(*sharedInformerFactory) *sharedInformerFactory + type sharedInformerFactory struct { client kubernetes.Interface namespace string tweakListOptions internalinterfaces.TweakListOptionsFunc lock sync.Mutex defaultResync time.Duration + customResync map[reflect.Type]time.Duration informers map[reflect.Type]cache.SharedIndexInformer // startedInformers is used for tracking which informers have been started. @@ -58,23 +62,62 @@ type sharedInformerFactory struct { startedInformers map[reflect.Type]bool } -// NewSharedInformerFactory constructs a new instance of sharedInformerFactory +// WithCustomResyncConfig sets a custom resync period for the specified informer types. +func WithCustomResyncConfig(resyncConfig map[v1.Object]time.Duration) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + for k, v := range resyncConfig { + factory.customResync[reflect.TypeOf(k)] = v + } + return factory + } +} + +// WithTweakListOptions sets a custom filter on all listers of the configured SharedInformerFactory. +func WithTweakListOptions(tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + factory.tweakListOptions = tweakListOptions + return factory + } +} + +// WithNamespace limits the SharedInformerFactory to the specified namespace. +func WithNamespace(namespace string) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + factory.namespace = namespace + return factory + } +} + +// NewSharedInformerFactory constructs a new instance of sharedInformerFactory for all namespaces. func NewSharedInformerFactory(client kubernetes.Interface, defaultResync time.Duration) SharedInformerFactory { - return NewFilteredSharedInformerFactory(client, defaultResync, v1.NamespaceAll, nil) + return NewSharedInformerFactoryWithOptions(client, defaultResync) } // NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. // Listers obtained via this SharedInformerFactory will be subject to the same filters // as specified here. +// Deprecated: Please use NewSharedInformerFactoryWithOptions instead func NewFilteredSharedInformerFactory(client kubernetes.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { - return &sharedInformerFactory{ + return NewSharedInformerFactoryWithOptions(client, defaultResync, WithNamespace(namespace), WithTweakListOptions(tweakListOptions)) +} + +// NewSharedInformerFactoryWithOptions constructs a new instance of a SharedInformerFactory with additional options. +func NewSharedInformerFactoryWithOptions(client kubernetes.Interface, defaultResync time.Duration, options ...SharedInformerOption) SharedInformerFactory { + factory := &sharedInformerFactory{ client: client, - namespace: namespace, - tweakListOptions: tweakListOptions, + namespace: v1.NamespaceAll, defaultResync: defaultResync, informers: make(map[reflect.Type]cache.SharedIndexInformer), startedInformers: make(map[reflect.Type]bool), + customResync: make(map[reflect.Type]time.Duration), } + + // Apply all options + for _, opt := range options { + factory = opt(factory) + } + + return factory } // Start initializes all requested informers. @@ -123,7 +166,13 @@ func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internal if exists { return informer } - informer = newFunc(f.client, f.defaultResync) + + resyncPeriod, exists := f.customResync[informerType] + if !exists { + resyncPeriod = f.defaultResync + } + + informer = newFunc(f.client, resyncPeriod) f.informers[informerType] = informer return informer diff --git a/vendor/k8s.io/code-generator/_examples/apiserver/informers/externalversions/factory.go b/vendor/k8s.io/code-generator/_examples/apiserver/informers/externalversions/factory.go index fa3f6644..fc4aa0d3 100644 --- a/vendor/k8s.io/code-generator/_examples/apiserver/informers/externalversions/factory.go +++ b/vendor/k8s.io/code-generator/_examples/apiserver/informers/externalversions/factory.go @@ -33,12 +33,16 @@ import ( internalinterfaces "k8s.io/code-generator/_examples/apiserver/informers/externalversions/internalinterfaces" ) +// SharedInformerOption defines the functional option type for SharedInformerFactory. +type SharedInformerOption func(*sharedInformerFactory) *sharedInformerFactory + type sharedInformerFactory struct { client versioned.Interface namespace string tweakListOptions internalinterfaces.TweakListOptionsFunc lock sync.Mutex defaultResync time.Duration + customResync map[reflect.Type]time.Duration informers map[reflect.Type]cache.SharedIndexInformer // startedInformers is used for tracking which informers have been started. @@ -46,23 +50,62 @@ type sharedInformerFactory struct { startedInformers map[reflect.Type]bool } -// NewSharedInformerFactory constructs a new instance of sharedInformerFactory +// WithCustomResyncConfig sets a custom resync period for the specified informer types. +func WithCustomResyncConfig(resyncConfig map[v1.Object]time.Duration) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + for k, v := range resyncConfig { + factory.customResync[reflect.TypeOf(k)] = v + } + return factory + } +} + +// WithTweakListOptions sets a custom filter on all listers of the configured SharedInformerFactory. +func WithTweakListOptions(tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + factory.tweakListOptions = tweakListOptions + return factory + } +} + +// WithNamespace limits the SharedInformerFactory to the specified namespace. +func WithNamespace(namespace string) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + factory.namespace = namespace + return factory + } +} + +// NewSharedInformerFactory constructs a new instance of sharedInformerFactory for all namespaces. func NewSharedInformerFactory(client versioned.Interface, defaultResync time.Duration) SharedInformerFactory { - return NewFilteredSharedInformerFactory(client, defaultResync, v1.NamespaceAll, nil) + return NewSharedInformerFactoryWithOptions(client, defaultResync) } // NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. // Listers obtained via this SharedInformerFactory will be subject to the same filters // as specified here. +// Deprecated: Please use NewSharedInformerFactoryWithOptions instead func NewFilteredSharedInformerFactory(client versioned.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { - return &sharedInformerFactory{ + return NewSharedInformerFactoryWithOptions(client, defaultResync, WithNamespace(namespace), WithTweakListOptions(tweakListOptions)) +} + +// NewSharedInformerFactoryWithOptions constructs a new instance of a SharedInformerFactory with additional options. +func NewSharedInformerFactoryWithOptions(client versioned.Interface, defaultResync time.Duration, options ...SharedInformerOption) SharedInformerFactory { + factory := &sharedInformerFactory{ client: client, - namespace: namespace, - tweakListOptions: tweakListOptions, + namespace: v1.NamespaceAll, defaultResync: defaultResync, informers: make(map[reflect.Type]cache.SharedIndexInformer), startedInformers: make(map[reflect.Type]bool), + customResync: make(map[reflect.Type]time.Duration), } + + // Apply all options + for _, opt := range options { + factory = opt(factory) + } + + return factory } // Start initializes all requested informers. @@ -111,7 +154,13 @@ func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internal if exists { return informer } - informer = newFunc(f.client, f.defaultResync) + + resyncPeriod, exists := f.customResync[informerType] + if !exists { + resyncPeriod = f.defaultResync + } + + informer = newFunc(f.client, resyncPeriod) f.informers[informerType] = informer return informer diff --git a/vendor/k8s.io/code-generator/_examples/apiserver/informers/internalversion/factory.go b/vendor/k8s.io/code-generator/_examples/apiserver/informers/internalversion/factory.go index 2b43be7e..ca6d4def 100644 --- a/vendor/k8s.io/code-generator/_examples/apiserver/informers/internalversion/factory.go +++ b/vendor/k8s.io/code-generator/_examples/apiserver/informers/internalversion/factory.go @@ -33,12 +33,16 @@ import ( internalinterfaces "k8s.io/code-generator/_examples/apiserver/informers/internalversion/internalinterfaces" ) +// SharedInformerOption defines the functional option type for SharedInformerFactory. +type SharedInformerOption func(*sharedInformerFactory) *sharedInformerFactory + type sharedInformerFactory struct { client internalversion.Interface namespace string tweakListOptions internalinterfaces.TweakListOptionsFunc lock sync.Mutex defaultResync time.Duration + customResync map[reflect.Type]time.Duration informers map[reflect.Type]cache.SharedIndexInformer // startedInformers is used for tracking which informers have been started. @@ -46,23 +50,62 @@ type sharedInformerFactory struct { startedInformers map[reflect.Type]bool } -// NewSharedInformerFactory constructs a new instance of sharedInformerFactory +// WithCustomResyncConfig sets a custom resync period for the specified informer types. +func WithCustomResyncConfig(resyncConfig map[v1.Object]time.Duration) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + for k, v := range resyncConfig { + factory.customResync[reflect.TypeOf(k)] = v + } + return factory + } +} + +// WithTweakListOptions sets a custom filter on all listers of the configured SharedInformerFactory. +func WithTweakListOptions(tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + factory.tweakListOptions = tweakListOptions + return factory + } +} + +// WithNamespace limits the SharedInformerFactory to the specified namespace. +func WithNamespace(namespace string) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + factory.namespace = namespace + return factory + } +} + +// NewSharedInformerFactory constructs a new instance of sharedInformerFactory for all namespaces. func NewSharedInformerFactory(client internalversion.Interface, defaultResync time.Duration) SharedInformerFactory { - return NewFilteredSharedInformerFactory(client, defaultResync, v1.NamespaceAll, nil) + return NewSharedInformerFactoryWithOptions(client, defaultResync) } // NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. // Listers obtained via this SharedInformerFactory will be subject to the same filters // as specified here. +// Deprecated: Please use NewSharedInformerFactoryWithOptions instead func NewFilteredSharedInformerFactory(client internalversion.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { - return &sharedInformerFactory{ + return NewSharedInformerFactoryWithOptions(client, defaultResync, WithNamespace(namespace), WithTweakListOptions(tweakListOptions)) +} + +// NewSharedInformerFactoryWithOptions constructs a new instance of a SharedInformerFactory with additional options. +func NewSharedInformerFactoryWithOptions(client internalversion.Interface, defaultResync time.Duration, options ...SharedInformerOption) SharedInformerFactory { + factory := &sharedInformerFactory{ client: client, - namespace: namespace, - tweakListOptions: tweakListOptions, + namespace: v1.NamespaceAll, defaultResync: defaultResync, informers: make(map[reflect.Type]cache.SharedIndexInformer), startedInformers: make(map[reflect.Type]bool), + customResync: make(map[reflect.Type]time.Duration), } + + // Apply all options + for _, opt := range options { + factory = opt(factory) + } + + return factory } // Start initializes all requested informers. @@ -111,7 +154,13 @@ func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internal if exists { return informer } - informer = newFunc(f.client, f.defaultResync) + + resyncPeriod, exists := f.customResync[informerType] + if !exists { + resyncPeriod = f.defaultResync + } + + informer = newFunc(f.client, resyncPeriod) f.informers[informerType] = informer return informer diff --git a/vendor/k8s.io/code-generator/_examples/crd/informers/externalversions/factory.go b/vendor/k8s.io/code-generator/_examples/crd/informers/externalversions/factory.go index bcd98aa4..7d6d1f93 100644 --- a/vendor/k8s.io/code-generator/_examples/crd/informers/externalversions/factory.go +++ b/vendor/k8s.io/code-generator/_examples/crd/informers/externalversions/factory.go @@ -33,12 +33,16 @@ import ( internalinterfaces "k8s.io/code-generator/_examples/crd/informers/externalversions/internalinterfaces" ) +// SharedInformerOption defines the functional option type for SharedInformerFactory. +type SharedInformerOption func(*sharedInformerFactory) *sharedInformerFactory + type sharedInformerFactory struct { client versioned.Interface namespace string tweakListOptions internalinterfaces.TweakListOptionsFunc lock sync.Mutex defaultResync time.Duration + customResync map[reflect.Type]time.Duration informers map[reflect.Type]cache.SharedIndexInformer // startedInformers is used for tracking which informers have been started. @@ -46,23 +50,62 @@ type sharedInformerFactory struct { startedInformers map[reflect.Type]bool } -// NewSharedInformerFactory constructs a new instance of sharedInformerFactory +// WithCustomResyncConfig sets a custom resync period for the specified informer types. +func WithCustomResyncConfig(resyncConfig map[v1.Object]time.Duration) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + for k, v := range resyncConfig { + factory.customResync[reflect.TypeOf(k)] = v + } + return factory + } +} + +// WithTweakListOptions sets a custom filter on all listers of the configured SharedInformerFactory. +func WithTweakListOptions(tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + factory.tweakListOptions = tweakListOptions + return factory + } +} + +// WithNamespace limits the SharedInformerFactory to the specified namespace. +func WithNamespace(namespace string) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + factory.namespace = namespace + return factory + } +} + +// NewSharedInformerFactory constructs a new instance of sharedInformerFactory for all namespaces. func NewSharedInformerFactory(client versioned.Interface, defaultResync time.Duration) SharedInformerFactory { - return NewFilteredSharedInformerFactory(client, defaultResync, v1.NamespaceAll, nil) + return NewSharedInformerFactoryWithOptions(client, defaultResync) } // NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. // Listers obtained via this SharedInformerFactory will be subject to the same filters // as specified here. +// Deprecated: Please use NewSharedInformerFactoryWithOptions instead func NewFilteredSharedInformerFactory(client versioned.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { - return &sharedInformerFactory{ + return NewSharedInformerFactoryWithOptions(client, defaultResync, WithNamespace(namespace), WithTweakListOptions(tweakListOptions)) +} + +// NewSharedInformerFactoryWithOptions constructs a new instance of a SharedInformerFactory with additional options. +func NewSharedInformerFactoryWithOptions(client versioned.Interface, defaultResync time.Duration, options ...SharedInformerOption) SharedInformerFactory { + factory := &sharedInformerFactory{ client: client, - namespace: namespace, - tweakListOptions: tweakListOptions, + namespace: v1.NamespaceAll, defaultResync: defaultResync, informers: make(map[reflect.Type]cache.SharedIndexInformer), startedInformers: make(map[reflect.Type]bool), + customResync: make(map[reflect.Type]time.Duration), } + + // Apply all options + for _, opt := range options { + factory = opt(factory) + } + + return factory } // Start initializes all requested informers. @@ -111,7 +154,13 @@ func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internal if exists { return informer } - informer = newFunc(f.client, f.defaultResync) + + resyncPeriod, exists := f.customResync[informerType] + if !exists { + resyncPeriod = f.defaultResync + } + + informer = newFunc(f.client, resyncPeriod) f.informers[informerType] = informer return informer diff --git a/vendor/k8s.io/code-generator/cmd/informer-gen/generators/factory.go b/vendor/k8s.io/code-generator/cmd/informer-gen/generators/factory.go index 2a91aaa9..5c557db7 100644 --- a/vendor/k8s.io/code-generator/cmd/informer-gen/generators/factory.go +++ b/vendor/k8s.io/code-generator/cmd/informer-gen/generators/factory.go @@ -89,6 +89,7 @@ func (g *factoryGenerator) GenerateType(c *generator.Context, t *types.Type, w i "syncMutex": c.Universe.Type(syncMutex), "timeDuration": c.Universe.Type(timeDuration), "namespaceAll": c.Universe.Type(metav1NamespaceAll), + "object": c.Universe.Type(metav1Object), } sw.Do(sharedInformerFactoryStruct, m) @@ -98,12 +99,16 @@ func (g *factoryGenerator) GenerateType(c *generator.Context, t *types.Type, w i } var sharedInformerFactoryStruct = ` +// SharedInformerOption defines the functional option type for SharedInformerFactory. +type SharedInformerOption func(*sharedInformerFactory) *sharedInformerFactory + type sharedInformerFactory struct { client {{.clientSetInterface|raw}} namespace string tweakListOptions {{.interfacesTweakListOptionsFunc|raw}} lock {{.syncMutex|raw}} defaultResync {{.timeDuration|raw}} + customResync map[{{.reflectType|raw}}]{{.timeDuration|raw}} informers map[{{.reflectType|raw}}]{{.cacheSharedIndexInformer|raw}} // startedInformers is used for tracking which informers have been started. @@ -111,23 +116,62 @@ type sharedInformerFactory struct { startedInformers map[{{.reflectType|raw}}]bool } -// NewSharedInformerFactory constructs a new instance of sharedInformerFactory +// WithCustomResyncConfig sets a custom resync period for the specified informer types. +func WithCustomResyncConfig(resyncConfig map[{{.object|raw}}]{{.timeDuration|raw}}) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + for k, v := range resyncConfig { + factory.customResync[reflect.TypeOf(k)] = v + } + return factory + } +} + +// WithTweakListOptions sets a custom filter on all listers of the configured SharedInformerFactory. +func WithTweakListOptions(tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + factory.tweakListOptions = tweakListOptions + return factory + } +} + +// WithNamespace limits the SharedInformerFactory to the specified namespace. +func WithNamespace(namespace string) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + factory.namespace = namespace + return factory + } +} + +// NewSharedInformerFactory constructs a new instance of sharedInformerFactory for all namespaces. func NewSharedInformerFactory(client {{.clientSetInterface|raw}}, defaultResync {{.timeDuration|raw}}) SharedInformerFactory { - return NewFilteredSharedInformerFactory(client, defaultResync, {{.namespaceAll|raw}}, nil) + return NewSharedInformerFactoryWithOptions(client, defaultResync) } // NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. // Listers obtained via this SharedInformerFactory will be subject to the same filters // as specified here. +// Deprecated: Please use NewSharedInformerFactoryWithOptions instead func NewFilteredSharedInformerFactory(client {{.clientSetInterface|raw}}, defaultResync {{.timeDuration|raw}}, namespace string, tweakListOptions {{.interfacesTweakListOptionsFunc|raw}}) SharedInformerFactory { - return &sharedInformerFactory{ - client: client, - namespace: namespace, - tweakListOptions: tweakListOptions, - defaultResync: defaultResync, - informers: make(map[{{.reflectType|raw}}]{{.cacheSharedIndexInformer|raw}}), - startedInformers: make(map[{{.reflectType|raw}}]bool), - } + return NewSharedInformerFactoryWithOptions(client, defaultResync, WithNamespace(namespace), WithTweakListOptions(tweakListOptions)) +} + +// NewSharedInformerFactoryWithOptions constructs a new instance of a SharedInformerFactory with additional options. +func NewSharedInformerFactoryWithOptions(client {{.clientSetInterface|raw}}, defaultResync {{.timeDuration|raw}}, options ...SharedInformerOption) SharedInformerFactory { + factory := &sharedInformerFactory{ + client: client, + namespace: v1.NamespaceAll, + defaultResync: defaultResync, + informers: make(map[{{.reflectType|raw}}]{{.cacheSharedIndexInformer|raw}}), + startedInformers: make(map[{{.reflectType|raw}}]bool), + customResync: make(map[{{.reflectType|raw}}]{{.timeDuration|raw}}), + } + + // Apply all options + for _, opt := range options { + factory = opt(factory) + } + + return factory } // Start initializes all requested informers. @@ -176,7 +220,13 @@ func (f *sharedInformerFactory) InformerFor(obj {{.runtimeObject|raw}}, newFunc if exists { return informer } - informer = newFunc(f.client, f.defaultResync) + + resyncPeriod, exists := f.customResync[informerType] + if !exists { + resyncPeriod = f.defaultResync + } + + informer = newFunc(f.client, resyncPeriod) f.informers[informerType] = informer return informer diff --git a/vendor/k8s.io/code-generator/cmd/informer-gen/generators/types.go b/vendor/k8s.io/code-generator/cmd/informer-gen/generators/types.go index ecefb078..27d4bd51 100644 --- a/vendor/k8s.io/code-generator/cmd/informer-gen/generators/types.go +++ b/vendor/k8s.io/code-generator/cmd/informer-gen/generators/types.go @@ -37,5 +37,6 @@ var ( timeDuration = types.Name{Package: "time", Name: "Duration"} v1ListOptions = types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "ListOptions"} metav1NamespaceAll = types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "NamespaceAll"} + metav1Object = types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "Object"} watchInterface = types.Name{Package: "k8s.io/apimachinery/pkg/watch", Name: "Interface"} )