mirror of
https://github.com/kubernetes/client-go.git
synced 2025-08-13 21:15:27 +00:00
Merge pull request #49919 from liggitt/deconflict-reflector
Automatic merge from submit-queue (batch tested with PRs 49898, 49897, 49919, 48860, 49491) Fix duplicate metrics collector registration attempted error Fixes "duplicate metrics collector registration attempted" error seen in https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/pr-logs/pull/batch/pull-kubernetes-unit/43931/ Kubernetes-commit: f5b4f9a07dc27ac7ce6340b32a8660074e10daec
This commit is contained in:
commit
ccbff9fa83
98
Godeps/Godeps.json
generated
98
Godeps/Godeps.json
generated
@ -436,199 +436,199 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/api/equality",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/api/errors",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/api/meta",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/api/resource",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery/registered",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1alpha1",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/conversion",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/conversion/unstructured",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/fields",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/labels",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/openapi",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/schema",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/selection",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/types",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/cache",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/clock",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/diff",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/errors",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/framer",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream/spdy",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/intstr",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/json",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/net",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/remotecommand",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/runtime",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/sets",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/validation",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/validation/field",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/wait",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/yaml",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/version",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/watch",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/netutil",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect",
|
||||
"Rev": "dc1f89aff9a7509782bde3b68824c8043a3e58cc"
|
||||
"Rev": "806e2e07933f50f9edcf738b14a53ae8d2011ab3"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
8
tools/cache/reflector.go
vendored
8
tools/cache/reflector.go
vendored
@ -30,6 +30,7 @@ import (
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
"sync/atomic"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
@ -98,12 +99,17 @@ func NewReflector(lw ListerWatcher, expectedType interface{}, store Store, resyn
|
||||
return NewNamedReflector(getDefaultReflectorName(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(makeValidPromethusMetricName(fmt.Sprintf("reflector_"+name+"_%07d", rand.Intn(1000000)))),
|
||||
metrics: newReflectorMetrics(makeValidPromethusMetricName(fmt.Sprintf("reflector_"+name+"_%d", reflectorSuffix))),
|
||||
listerWatcher: lw,
|
||||
store: store,
|
||||
expectedType: reflect.TypeOf(expectedType),
|
||||
|
Loading…
Reference in New Issue
Block a user