mirror of
https://github.com/kubernetes/sample-controller.git
synced 2026-08-03 00:00:02 +08:00
Merge pull request #58394 from deads2k/controller-08-redeliver
Automatic merge from submit-queue (batch tested with PRs 58412, 56132, 58506, 58542, 58394). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. don't stop informer delivery on error If an informer delivery fails today, we stop delivering to it entirely. The pull updates the code to skip that particular notification, delay, and continue delivery with the next time. /assign derekwaynecarr /assign ncdc /assign ash2k @derekwaynecarr This would change the "the controller isn't doing anything?!" to "the controller missed my (individual) resource!" ```release-note NONE ``` Kubernetes-commit: 71426ba59fd4a37e5da7deac6298ab33101bb5b6
This commit is contained in:
Generated
+162
-158
@@ -264,635 +264,639 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/api/errors",
|
"ImportPath": "k8s.io/apimachinery/pkg/api/errors",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/api/meta",
|
"ImportPath": "k8s.io/apimachinery/pkg/api/meta",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/api/resource",
|
"ImportPath": "k8s.io/apimachinery/pkg/api/resource",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion",
|
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1",
|
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured",
|
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1alpha1",
|
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1alpha1",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/conversion",
|
"ImportPath": "k8s.io/apimachinery/pkg/conversion",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams",
|
"ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/fields",
|
"ImportPath": "k8s.io/apimachinery/pkg/fields",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/labels",
|
"ImportPath": "k8s.io/apimachinery/pkg/labels",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime",
|
"ImportPath": "k8s.io/apimachinery/pkg/runtime",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/schema",
|
"ImportPath": "k8s.io/apimachinery/pkg/runtime/schema",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer",
|
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json",
|
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf",
|
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer",
|
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming",
|
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning",
|
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/selection",
|
"ImportPath": "k8s.io/apimachinery/pkg/selection",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/types",
|
"ImportPath": "k8s.io/apimachinery/pkg/types",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/cache",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/cache",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/clock",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/clock",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/diff",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/diff",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/errors",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/errors",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/framer",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/framer",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/intstr",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/intstr",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/json",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/json",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/net",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/net",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/runtime",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/runtime",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/sets",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/sets",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/validation",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/validation",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/validation/field",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/validation/field",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/wait",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/wait",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/yaml",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/yaml",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/version",
|
"ImportPath": "k8s.io/apimachinery/pkg/version",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/watch",
|
"ImportPath": "k8s.io/apimachinery/pkg/watch",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json",
|
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect",
|
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect",
|
||||||
"Rev": "baafc3365acf1aa0c6c9c9aa169340d9fc2d3c6c"
|
"Rev": "2f1e02d3e57b8fb5206c5326bcb65217edc63a8e"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/discovery",
|
"ImportPath": "k8s.io/client-go/discovery",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/discovery/fake",
|
"ImportPath": "k8s.io/client-go/discovery/fake",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers",
|
"ImportPath": "k8s.io/client-go/informers",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/admissionregistration",
|
"ImportPath": "k8s.io/client-go/informers/admissionregistration",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/admissionregistration/v1alpha1",
|
"ImportPath": "k8s.io/client-go/informers/admissionregistration/v1alpha1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/admissionregistration/v1beta1",
|
"ImportPath": "k8s.io/client-go/informers/admissionregistration/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/apps",
|
"ImportPath": "k8s.io/client-go/informers/apps",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/apps/v1",
|
"ImportPath": "k8s.io/client-go/informers/apps/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/apps/v1beta1",
|
"ImportPath": "k8s.io/client-go/informers/apps/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/apps/v1beta2",
|
"ImportPath": "k8s.io/client-go/informers/apps/v1beta2",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/autoscaling",
|
"ImportPath": "k8s.io/client-go/informers/autoscaling",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/autoscaling/v1",
|
"ImportPath": "k8s.io/client-go/informers/autoscaling/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/autoscaling/v2beta1",
|
"ImportPath": "k8s.io/client-go/informers/autoscaling/v2beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/batch",
|
"ImportPath": "k8s.io/client-go/informers/batch",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/batch/v1",
|
"ImportPath": "k8s.io/client-go/informers/batch/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/batch/v1beta1",
|
"ImportPath": "k8s.io/client-go/informers/batch/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/batch/v2alpha1",
|
"ImportPath": "k8s.io/client-go/informers/batch/v2alpha1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/certificates",
|
"ImportPath": "k8s.io/client-go/informers/certificates",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/certificates/v1beta1",
|
"ImportPath": "k8s.io/client-go/informers/certificates/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/core",
|
"ImportPath": "k8s.io/client-go/informers/core",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/core/v1",
|
"ImportPath": "k8s.io/client-go/informers/core/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/events",
|
"ImportPath": "k8s.io/client-go/informers/events",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/events/v1beta1",
|
"ImportPath": "k8s.io/client-go/informers/events/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/extensions",
|
"ImportPath": "k8s.io/client-go/informers/extensions",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/extensions/v1beta1",
|
"ImportPath": "k8s.io/client-go/informers/extensions/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/internalinterfaces",
|
"ImportPath": "k8s.io/client-go/informers/internalinterfaces",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/networking",
|
"ImportPath": "k8s.io/client-go/informers/networking",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/networking/v1",
|
"ImportPath": "k8s.io/client-go/informers/networking/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/policy",
|
"ImportPath": "k8s.io/client-go/informers/policy",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/policy/v1beta1",
|
"ImportPath": "k8s.io/client-go/informers/policy/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/rbac",
|
"ImportPath": "k8s.io/client-go/informers/rbac",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/rbac/v1",
|
"ImportPath": "k8s.io/client-go/informers/rbac/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/rbac/v1alpha1",
|
"ImportPath": "k8s.io/client-go/informers/rbac/v1alpha1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/rbac/v1beta1",
|
"ImportPath": "k8s.io/client-go/informers/rbac/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/scheduling",
|
"ImportPath": "k8s.io/client-go/informers/scheduling",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/scheduling/v1alpha1",
|
"ImportPath": "k8s.io/client-go/informers/scheduling/v1alpha1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/settings",
|
"ImportPath": "k8s.io/client-go/informers/settings",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/settings/v1alpha1",
|
"ImportPath": "k8s.io/client-go/informers/settings/v1alpha1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/storage",
|
"ImportPath": "k8s.io/client-go/informers/storage",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/storage/v1",
|
"ImportPath": "k8s.io/client-go/informers/storage/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/storage/v1alpha1",
|
"ImportPath": "k8s.io/client-go/informers/storage/v1alpha1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/informers/storage/v1beta1",
|
"ImportPath": "k8s.io/client-go/informers/storage/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes",
|
"ImportPath": "k8s.io/client-go/kubernetes",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/scheme",
|
"ImportPath": "k8s.io/client-go/kubernetes/scheme",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta2",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta2",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1beta1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1beta1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1beta1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v2alpha1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v2alpha1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/certificates/v1beta1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/certificates/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/core/v1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/core/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/events/v1beta1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/events/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/extensions/v1beta1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/extensions/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/networking/v1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/networking/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/policy/v1beta1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/policy/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1beta1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/settings/v1alpha1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/settings/v1alpha1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1alpha1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1alpha1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1beta1",
|
"ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/admissionregistration/v1alpha1",
|
"ImportPath": "k8s.io/client-go/listers/admissionregistration/v1alpha1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/admissionregistration/v1beta1",
|
"ImportPath": "k8s.io/client-go/listers/admissionregistration/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/apps/v1",
|
"ImportPath": "k8s.io/client-go/listers/apps/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/apps/v1beta1",
|
"ImportPath": "k8s.io/client-go/listers/apps/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/apps/v1beta2",
|
"ImportPath": "k8s.io/client-go/listers/apps/v1beta2",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/autoscaling/v1",
|
"ImportPath": "k8s.io/client-go/listers/autoscaling/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/autoscaling/v2beta1",
|
"ImportPath": "k8s.io/client-go/listers/autoscaling/v2beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/batch/v1",
|
"ImportPath": "k8s.io/client-go/listers/batch/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/batch/v1beta1",
|
"ImportPath": "k8s.io/client-go/listers/batch/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/batch/v2alpha1",
|
"ImportPath": "k8s.io/client-go/listers/batch/v2alpha1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/certificates/v1beta1",
|
"ImportPath": "k8s.io/client-go/listers/certificates/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/core/v1",
|
"ImportPath": "k8s.io/client-go/listers/core/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/events/v1beta1",
|
"ImportPath": "k8s.io/client-go/listers/events/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/extensions/v1beta1",
|
"ImportPath": "k8s.io/client-go/listers/extensions/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/networking/v1",
|
"ImportPath": "k8s.io/client-go/listers/networking/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/policy/v1beta1",
|
"ImportPath": "k8s.io/client-go/listers/policy/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/rbac/v1",
|
"ImportPath": "k8s.io/client-go/listers/rbac/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/rbac/v1alpha1",
|
"ImportPath": "k8s.io/client-go/listers/rbac/v1alpha1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/rbac/v1beta1",
|
"ImportPath": "k8s.io/client-go/listers/rbac/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/scheduling/v1alpha1",
|
"ImportPath": "k8s.io/client-go/listers/scheduling/v1alpha1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/settings/v1alpha1",
|
"ImportPath": "k8s.io/client-go/listers/settings/v1alpha1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/storage/v1",
|
"ImportPath": "k8s.io/client-go/listers/storage/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/storage/v1alpha1",
|
"ImportPath": "k8s.io/client-go/listers/storage/v1alpha1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/listers/storage/v1beta1",
|
"ImportPath": "k8s.io/client-go/listers/storage/v1beta1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/pkg/version",
|
"ImportPath": "k8s.io/client-go/pkg/version",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/rest",
|
"ImportPath": "k8s.io/client-go/rest",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/rest/watch",
|
"ImportPath": "k8s.io/client-go/rest/watch",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/testing",
|
"ImportPath": "k8s.io/client-go/testing",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/tools/auth",
|
"ImportPath": "k8s.io/client-go/tools/auth",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/tools/cache",
|
"ImportPath": "k8s.io/client-go/tools/cache",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/tools/clientcmd",
|
"ImportPath": "k8s.io/client-go/tools/clientcmd",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/tools/clientcmd/api",
|
"ImportPath": "k8s.io/client-go/tools/clientcmd/api",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/tools/clientcmd/api/latest",
|
"ImportPath": "k8s.io/client-go/tools/clientcmd/api/latest",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/tools/clientcmd/api/v1",
|
"ImportPath": "k8s.io/client-go/tools/clientcmd/api/v1",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/tools/metrics",
|
"ImportPath": "k8s.io/client-go/tools/metrics",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/tools/pager",
|
"ImportPath": "k8s.io/client-go/tools/pager",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/tools/record",
|
"ImportPath": "k8s.io/client-go/tools/record",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/tools/reference",
|
"ImportPath": "k8s.io/client-go/tools/reference",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/transport",
|
"ImportPath": "k8s.io/client-go/transport",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/util/buffer",
|
"ImportPath": "k8s.io/client-go/util/buffer",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/util/cert",
|
"ImportPath": "k8s.io/client-go/util/cert",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/util/flowcontrol",
|
"ImportPath": "k8s.io/client-go/util/flowcontrol",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/util/homedir",
|
"ImportPath": "k8s.io/client-go/util/homedir",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/util/integer",
|
"ImportPath": "k8s.io/client-go/util/integer",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/client-go/util/retry",
|
||||||
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/client-go/util/workqueue",
|
"ImportPath": "k8s.io/client-go/util/workqueue",
|
||||||
"Rev": "8a8517e82fc13125243513ecac9aaf98789ced90"
|
"Rev": "b044414c7d52baaf48bc86edb5c89bbd73524c0f"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/kube-openapi/pkg/util/proto",
|
"ImportPath": "k8s.io/kube-openapi/pkg/util/proto",
|
||||||
|
|||||||
+12
-2
@@ -18,6 +18,8 @@ package net
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"net"
|
"net"
|
||||||
|
"net/url"
|
||||||
|
"os"
|
||||||
"reflect"
|
"reflect"
|
||||||
"syscall"
|
"syscall"
|
||||||
)
|
)
|
||||||
@@ -38,8 +40,16 @@ func IPNetEqual(ipnet1, ipnet2 *net.IPNet) bool {
|
|||||||
|
|
||||||
// Returns if the given err is "connection reset by peer" error.
|
// Returns if the given err is "connection reset by peer" error.
|
||||||
func IsConnectionReset(err error) bool {
|
func IsConnectionReset(err error) bool {
|
||||||
opErr, ok := err.(*net.OpError)
|
if urlErr, ok := err.(*url.Error); ok {
|
||||||
if ok && opErr.Err.Error() == syscall.ECONNRESET.Error() {
|
err = urlErr.Err
|
||||||
|
}
|
||||||
|
if opErr, ok := err.(*net.OpError); ok {
|
||||||
|
err = opErr.Err
|
||||||
|
}
|
||||||
|
if osErr, ok := err.(*os.SyscallError); ok {
|
||||||
|
err = osErr.Err
|
||||||
|
}
|
||||||
|
if errno, ok := err.(syscall.Errno); ok && errno == syscall.ECONNRESET {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
|
|||||||
+1
@@ -83,6 +83,7 @@ go_library(
|
|||||||
"//vendor/k8s.io/client-go/rest:go_default_library",
|
"//vendor/k8s.io/client-go/rest:go_default_library",
|
||||||
"//vendor/k8s.io/client-go/tools/pager:go_default_library",
|
"//vendor/k8s.io/client-go/tools/pager:go_default_library",
|
||||||
"//vendor/k8s.io/client-go/util/buffer:go_default_library",
|
"//vendor/k8s.io/client-go/util/buffer:go_default_library",
|
||||||
|
"//vendor/k8s.io/client-go/util/retry:go_default_library",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+28
-12
@@ -26,6 +26,7 @@ import (
|
|||||||
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
|
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
|
||||||
"k8s.io/apimachinery/pkg/util/wait"
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
"k8s.io/client-go/util/buffer"
|
"k8s.io/client-go/util/buffer"
|
||||||
|
"k8s.io/client-go/util/retry"
|
||||||
|
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
)
|
)
|
||||||
@@ -540,20 +541,35 @@ func (p *processorListener) pop() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *processorListener) run() {
|
func (p *processorListener) run() {
|
||||||
defer utilruntime.HandleCrash()
|
// this call blocks until the channel is closed. When a panic happens during the notification
|
||||||
|
// we will catch it, **the offending item will be skipped!**, and after a short delay (one second)
|
||||||
|
// the next notification will be attempted. This is usually better than the alternative of never
|
||||||
|
// delivering again.
|
||||||
|
stopCh := make(chan struct{})
|
||||||
|
wait.Until(func() {
|
||||||
|
// this gives us a few quick retries before a long pause and then a few more quick retries
|
||||||
|
err := wait.ExponentialBackoff(retry.DefaultRetry, func() (bool, error) {
|
||||||
|
for next := range p.nextCh {
|
||||||
|
switch notification := next.(type) {
|
||||||
|
case updateNotification:
|
||||||
|
p.handler.OnUpdate(notification.oldObj, notification.newObj)
|
||||||
|
case addNotification:
|
||||||
|
p.handler.OnAdd(notification.newObj)
|
||||||
|
case deleteNotification:
|
||||||
|
p.handler.OnDelete(notification.oldObj)
|
||||||
|
default:
|
||||||
|
utilruntime.HandleError(fmt.Errorf("unrecognized notification: %#v", next))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// the only way to get here is if the p.nextCh is empty and closed
|
||||||
|
return true, nil
|
||||||
|
})
|
||||||
|
|
||||||
for next := range p.nextCh {
|
// the only way to get here is if the p.nextCh is empty and closed
|
||||||
switch notification := next.(type) {
|
if err == nil {
|
||||||
case updateNotification:
|
close(stopCh)
|
||||||
p.handler.OnUpdate(notification.oldObj, notification.newObj)
|
|
||||||
case addNotification:
|
|
||||||
p.handler.OnAdd(notification.newObj)
|
|
||||||
case deleteNotification:
|
|
||||||
p.handler.OnDelete(notification.oldObj)
|
|
||||||
default:
|
|
||||||
utilruntime.HandleError(fmt.Errorf("unrecognized notification: %#v", next))
|
|
||||||
}
|
}
|
||||||
}
|
}, 1*time.Minute, stopCh)
|
||||||
}
|
}
|
||||||
|
|
||||||
// shouldResync deterimines if the listener needs a resync. If the listener's resyncPeriod is 0,
|
// shouldResync deterimines if the listener needs a resync. If the listener's resyncPeriod is 0,
|
||||||
|
|||||||
+42
@@ -0,0 +1,42 @@
|
|||||||
|
package(default_visibility = ["//visibility:public"])
|
||||||
|
|
||||||
|
load(
|
||||||
|
"@io_bazel_rules_go//go:def.bzl",
|
||||||
|
"go_library",
|
||||||
|
"go_test",
|
||||||
|
)
|
||||||
|
|
||||||
|
go_library(
|
||||||
|
name = "go_default_library",
|
||||||
|
srcs = ["util.go"],
|
||||||
|
importpath = "k8s.io/client-go/util/retry",
|
||||||
|
deps = [
|
||||||
|
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
||||||
|
"//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
go_test(
|
||||||
|
name = "go_default_test",
|
||||||
|
srcs = ["util_test.go"],
|
||||||
|
embed = [":go_default_library"],
|
||||||
|
importpath = "k8s.io/client-go/util/retry",
|
||||||
|
deps = [
|
||||||
|
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
||||||
|
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
||||||
|
"//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "package-srcs",
|
||||||
|
srcs = glob(["**"]),
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:private"],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "all-srcs",
|
||||||
|
srcs = [":package-srcs"],
|
||||||
|
tags = ["automanaged"],
|
||||||
|
)
|
||||||
+2
@@ -0,0 +1,2 @@
|
|||||||
|
reviewers:
|
||||||
|
- caesarxuchao
|
||||||
+79
@@ -0,0 +1,79 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2016 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package retry
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"k8s.io/apimachinery/pkg/api/errors"
|
||||||
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
|
)
|
||||||
|
|
||||||
|
// DefaultRetry is the recommended retry for a conflict where multiple clients
|
||||||
|
// are making changes to the same resource.
|
||||||
|
var DefaultRetry = wait.Backoff{
|
||||||
|
Steps: 5,
|
||||||
|
Duration: 10 * time.Millisecond,
|
||||||
|
Factor: 1.0,
|
||||||
|
Jitter: 0.1,
|
||||||
|
}
|
||||||
|
|
||||||
|
// DefaultBackoff is the recommended backoff for a conflict where a client
|
||||||
|
// may be attempting to make an unrelated modification to a resource under
|
||||||
|
// active management by one or more controllers.
|
||||||
|
var DefaultBackoff = wait.Backoff{
|
||||||
|
Steps: 4,
|
||||||
|
Duration: 10 * time.Millisecond,
|
||||||
|
Factor: 5.0,
|
||||||
|
Jitter: 0.1,
|
||||||
|
}
|
||||||
|
|
||||||
|
// RetryConflict executes the provided function repeatedly, retrying if the server returns a conflicting
|
||||||
|
// write. Callers should preserve previous executions if they wish to retry changes. It performs an
|
||||||
|
// exponential backoff.
|
||||||
|
//
|
||||||
|
// var pod *api.Pod
|
||||||
|
// err := RetryOnConflict(DefaultBackoff, func() (err error) {
|
||||||
|
// pod, err = c.Pods("mynamespace").UpdateStatus(podStatus)
|
||||||
|
// return
|
||||||
|
// })
|
||||||
|
// if err != nil {
|
||||||
|
// // may be conflict if max retries were hit
|
||||||
|
// return err
|
||||||
|
// }
|
||||||
|
// ...
|
||||||
|
//
|
||||||
|
// TODO: Make Backoff an interface?
|
||||||
|
func RetryOnConflict(backoff wait.Backoff, fn func() error) error {
|
||||||
|
var lastConflictErr error
|
||||||
|
err := wait.ExponentialBackoff(backoff, func() (bool, error) {
|
||||||
|
err := fn()
|
||||||
|
switch {
|
||||||
|
case err == nil:
|
||||||
|
return true, nil
|
||||||
|
case errors.IsConflict(err):
|
||||||
|
lastConflictErr = err
|
||||||
|
return false, nil
|
||||||
|
default:
|
||||||
|
return false, err
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if err == wait.ErrWaitTimeout {
|
||||||
|
err = lastConflictErr
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user