Compare commits

..

9 Commits

Author SHA1 Message Date
Kubernetes Publisher
7621a5ebb8 Merge pull request #74672 from logicalhan/automated-cherry-pick-of-#74636-upstream-release-1.13
Automated cherry pick of #74636: Remove reflector metrics as they currently cause a memory

Kubernetes-commit: b5f55a8fc542efd87871b02991e3d930692c64a2
2019-03-07 16:13:46 +00:00
Han Kang
adcd4a6e94 Remove reflector metrics as they currently cause a memory leak
Kubernetes-commit: 48cfdd8c5b14643d93042b9eeb38772386cc86e8
2019-02-26 16:22:24 -08:00
Kubernetes Publisher
f8e521c159 Merge pull request #74102 from caesarxuchao/automated-cherry-pick-of-#73443-#73713-#73805-#74000-upstream-release-1.13
Automated cherry pick of #73443: update json-patch to pick up bug fixes

Kubernetes-commit: de4225fa13bfb50581f80e6af63b326a3c1028b1
2019-02-21 21:43:11 +00:00
Chao Xu
99c0ce7cfe Importing latest json-patch.
Kubernetes-commit: f80a5504d88b9029a4323a7c6bd31e034badc315
2019-02-04 09:47:54 -08:00
Chao Xu
21a91e3c21 update json-patch to pick up bug fixes
Kubernetes-commit: f0a495cff09087e38f39ac2dd4864b38e14da7be
2019-01-28 17:42:01 -08:00
Kubernetes Publisher
86dbf26d38 Merge pull request #72837 from liggitt/automated-cherry-pick-of-#72825-upstream-release-1.13
Automated cherry pick of #72825: Find current resourceVersion for waiting for

Kubernetes-commit: f5d6de398b219e9c85081582f42e0755587ef9fa
2019-01-15 09:52:54 -08:00
Jordan Liggitt
2c40298487 Find current resourceVersion for waiting for deletion/conditions
Kubernetes-commit: a0fa584f3edda46b9ccf9916051ca0b9d8d1fe0a
2019-01-11 10:38:18 -05:00
Kubernetes Publisher
73dad31f02 Merge pull request #72672 from liggitt/automated-cherry-pick-of-#72437-upstream-release-1.13
Automated cherry pick of #72437: Shorten re-read period for token files to work with

Kubernetes-commit: abc71e373ff5a5a701c5e48e2cd07b28f18b3b48
2019-01-10 19:35:54 +00:00
Jordan Liggitt
db82653708 Shorten re-read period for token files to work with ProjectedTokenVolumeSource
Kubernetes-commit: cf878b9332c8875ed0fcb8ce07cccd99547ce099
2018-12-29 22:18:28 -05:00
4 changed files with 93 additions and 117 deletions

170
Godeps/Godeps.json generated
View File

@@ -56,7 +56,7 @@
},
{
"ImportPath": "github.com/evanphx/json-patch",
"Rev": "36442dbdb585210f8d5a1b45e67aa323c197d5c4"
"Rev": "5858425f75500d40c52783dce87d085a483ce135"
},
{
"ImportPath": "github.com/gogo/protobuf/proto",
@@ -272,339 +272,339 @@
},
{
"ImportPath": "k8s.io/api/admissionregistration/v1alpha1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/admissionregistration/v1beta1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/apps/v1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/apps/v1beta1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/apps/v1beta2",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/auditregistration/v1alpha1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/authentication/v1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/authentication/v1beta1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/authorization/v1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/authorization/v1beta1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/autoscaling/v1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/autoscaling/v2beta1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/autoscaling/v2beta2",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/batch/v1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/batch/v1beta1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/batch/v2alpha1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/certificates/v1beta1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/coordination/v1beta1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/core/v1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/events/v1beta1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/extensions/v1beta1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/imagepolicy/v1alpha1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/networking/v1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/policy/v1beta1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/rbac/v1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/rbac/v1alpha1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/rbac/v1beta1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/scheduling/v1alpha1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/scheduling/v1beta1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/settings/v1alpha1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/storage/v1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/storage/v1alpha1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/api/storage/v1beta1",
"Rev": "05914d821849570fba9eacfb29466f2d8d3cd229"
"Rev": "5cb15d34447165a97c76ed5a60e4e99c8a01ecfe"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/apitesting",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/apitesting/fuzzer",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/apitesting/roundtrip",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/equality",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/errors",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/meta",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/resource",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/fuzzer",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1beta1",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/conversion",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/fields",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/labels",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/schema",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/selection",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/types",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/cache",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/clock",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/diff",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/errors",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/framer",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream/spdy",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/intstr",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/json",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/naming",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/net",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/remotecommand",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/runtime",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/sets",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/validation",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/validation/field",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/wait",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/yaml",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/version",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/watch",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/netutil",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect",
"Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd"
"Rev": "86fb29eff6288413d76bd8506874fddd9fccdff0"
},
{
"ImportPath": "k8s.io/klog",

View File

@@ -303,6 +303,7 @@ func (c *dynamicResourceClient) List(opts metav1.ListOptions) (*unstructured.Uns
}
list := &unstructured.UnstructuredList{}
list.SetResourceVersion(entireList.GetResourceVersion())
for i := range entireList.Items {
item := &entireList.Items[i]
metadata, err := meta.Accessor(item)

View File

@@ -24,10 +24,8 @@ import (
"net"
"net/url"
"reflect"
"strconv"
"strings"
"sync"
"sync/atomic"
"syscall"
"time"
@@ -95,17 +93,10 @@ func NewReflector(lw ListerWatcher, expectedType interface{}, store Store, resyn
return NewNamedReflector(naming.GetNameFromCallsite(internalPackages...), lw, expectedType, store, resyncPeriod)
}
// reflectorDisambiguator is used to disambiguate started reflectors.
// initialized to an unstable value to ensure meaning isn't attributed to the suffix.
var reflectorDisambiguator = int64(time.Now().UnixNano() % 12345)
// NewNamedReflector same as NewReflector, but with a specified name for logging
func NewNamedReflector(name string, lw ListerWatcher, expectedType interface{}, store Store, resyncPeriod time.Duration) *Reflector {
reflectorSuffix := atomic.AddInt64(&reflectorDisambiguator, 1)
r := &Reflector{
name: name,
// we need this to be unique per process (some names are still the same) but obvious who it belongs to
metrics: newReflectorMetrics(makeValidPrometheusMetricLabel(fmt.Sprintf("reflector_"+name+"_%d", reflectorSuffix))),
name: name,
listerWatcher: lw,
store: store,
expectedType: reflect.TypeOf(expectedType),
@@ -173,13 +164,10 @@ func (r *Reflector) ListAndWatch(stopCh <-chan struct{}) error {
// to be served from cache and potentially be delayed relative to
// etcd contents. Reflector framework will catch up via Watch() eventually.
options := metav1.ListOptions{ResourceVersion: "0"}
r.metrics.numberOfLists.Inc()
start := r.clock.Now()
list, err := r.listerWatcher.List(options)
if err != nil {
return fmt.Errorf("%s: Failed to list %v: %v", r.name, r.expectedType, err)
}
r.metrics.listDuration.Observe(time.Since(start).Seconds())
listMetaInterface, err := meta.ListAccessor(list)
if err != nil {
return fmt.Errorf("%s: Unable to understand list result %#v: %v", r.name, list, err)
@@ -189,7 +177,6 @@ func (r *Reflector) ListAndWatch(stopCh <-chan struct{}) error {
if err != nil {
return fmt.Errorf("%s: Unable to understand list result %#v (%v)", r.name, list, err)
}
r.metrics.numberOfItemsInList.Observe(float64(len(items)))
if err := r.syncWith(items, resourceVersion); err != nil {
return fmt.Errorf("%s: Unable to sync list result: %v", r.name, err)
}
@@ -239,7 +226,6 @@ func (r *Reflector) ListAndWatch(stopCh <-chan struct{}) error {
TimeoutSeconds: &timeoutSeconds,
}
r.metrics.numberOfWatches.Inc()
w, err := r.listerWatcher.Watch(options)
if err != nil {
switch err {
@@ -291,11 +277,6 @@ func (r *Reflector) watchHandler(w watch.Interface, resourceVersion *string, err
// Stopping the watcher should be idempotent and if we return from this function there's no way
// we're coming back in with the same watch interface.
defer w.Stop()
// update metrics
defer func() {
r.metrics.numberOfItemsInWatch.Observe(float64(eventCount))
r.metrics.watchDuration.Observe(time.Since(start).Seconds())
}()
loop:
for {
@@ -351,7 +332,6 @@ loop:
watchDuration := r.clock.Now().Sub(start)
if watchDuration < 1*time.Second && eventCount == 0 {
r.metrics.numberOfShortWatches.Inc()
return fmt.Errorf("very short watch: %s: Unexpected watch close - watch lasted less than a second and no items received", r.name)
}
klog.V(4).Infof("%s: Watch close - %v total %v items received", r.name, r.expectedType, eventCount)
@@ -370,9 +350,4 @@ func (r *Reflector) setLastSyncResourceVersion(v string) {
r.lastSyncResourceVersionMutex.Lock()
defer r.lastSyncResourceVersionMutex.Unlock()
r.lastSyncResourceVersion = v
rv, err := strconv.Atoi(v)
if err == nil {
r.metrics.lastResourceVersion.Set(float64(rv))
}
}

View File

@@ -47,14 +47,14 @@ func TokenSourceWrapTransport(ts oauth2.TokenSource) func(http.RoundTripper) htt
func NewCachedFileTokenSource(path string) oauth2.TokenSource {
return &cachingTokenSource{
now: time.Now,
leeway: 1 * time.Minute,
leeway: 10 * time.Second,
base: &fileTokenSource{
path: path,
// This period was picked because it is half of the minimum validity
// duration for a token provisioned by they TokenRequest API. This is
// unsophisticated and should induce rotation at a frequency that should
// work with the token volume source.
period: 5 * time.Minute,
// This period was picked because it is half of the duration between when the kubelet
// refreshes a projected service account token and when the original token expires.
// Default token lifetime is 10 minutes, and the kubelet starts refreshing at 80% of lifetime.
// This should induce re-reading at a frequency that works with the token volume source.
period: time.Minute,
},
}
}