diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index 3917d6dc..12fc9b7e 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -372,331 +372,331 @@ }, { "ImportPath": "k8s.io/api/admissionregistration/v1alpha1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/admissionregistration/v1beta1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/apps/v1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/apps/v1beta1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/apps/v1beta2", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/authentication/v1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/authentication/v1beta1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/authorization/v1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/authorization/v1beta1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/autoscaling/v1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/autoscaling/v2beta1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/batch/v1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/batch/v1beta1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/batch/v2alpha1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/certificates/v1beta1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/core/v1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/events/v1beta1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/extensions/v1beta1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/imagepolicy/v1alpha1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/networking/v1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/policy/v1beta1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/rbac/v1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/rbac/v1alpha1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/rbac/v1beta1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/scheduling/v1alpha1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/settings/v1alpha1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/storage/v1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/storage/v1alpha1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/api/storage/v1beta1", - "Rev": "3b9b65abe0aa9d995259dad1469ff3e1f18802c5" + "Rev": "1afd21c1b728221c821dfe71c17ce5ee8061e31b" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/equality", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/errors", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/meta", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/resource", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/testing", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/testing/fuzzer", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/testing/roundtrip", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/apimachinery", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/apimachinery/announced", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/apimachinery/registered", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/fuzzer", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1alpha1", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/conversion", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/fields", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/labels", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/schema", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/selection", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/types", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/cache", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/clock", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/diff", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/errors", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/framer", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/httpstream", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/httpstream/spdy", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/intstr", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/json", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/net", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/remotecommand", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/runtime", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/sets", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/validation", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/validation/field", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/wait", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/yaml", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/version", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/pkg/watch", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/netutil", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect", - "Rev": "5250765d28a6a1e07c6f09fe814a4b58ad74cc11" + "Rev": "e7ad5e783d5cc59c1aa137f0b13c51baee6ee7c1" }, { "ImportPath": "k8s.io/kube-openapi/pkg/common", diff --git a/transport/cache.go b/transport/cache.go index da22cdee..7c40848c 100644 --- a/transport/cache.go +++ b/transport/cache.go @@ -31,12 +31,28 @@ import ( // the config has no custom TLS options, http.DefaultTransport is returned. type tlsTransportCache struct { mu sync.Mutex - transports map[string]*http.Transport + transports map[tlsCacheKey]*http.Transport } const idleConnsPerHost = 25 -var tlsCache = &tlsTransportCache{transports: make(map[string]*http.Transport)} +var tlsCache = &tlsTransportCache{transports: make(map[tlsCacheKey]*http.Transport)} + +type tlsCacheKey struct { + insecure bool + caData string + certData string + keyData string + serverName string +} + +func (t tlsCacheKey) String() string { + keyText := "" + if len(t.keyData) > 0 { + keyText = "" + } + return fmt.Sprintf("insecure:%v, caData:%#v, certData:%#v, keyData:%s, serverName:%s", t.insecure, t.caData, t.certData, keyText, t.serverName) +} func (c *tlsTransportCache) get(config *Config) (http.RoundTripper, error) { key, err := tlsConfigKey(config) @@ -82,11 +98,16 @@ func (c *tlsTransportCache) get(config *Config) (http.RoundTripper, error) { } // tlsConfigKey returns a unique key for tls.Config objects returned from TLSConfigFor -func tlsConfigKey(c *Config) (string, error) { +func tlsConfigKey(c *Config) (tlsCacheKey, error) { // Make sure ca/key/cert content is loaded if err := loadTLSFiles(c); err != nil { - return "", err + return tlsCacheKey{}, err } - // Only include the things that actually affect the tls.Config - return fmt.Sprintf("%v/%x/%x/%x/%v", c.TLS.Insecure, c.TLS.CAData, c.TLS.CertData, c.TLS.KeyData, c.TLS.ServerName), nil + return tlsCacheKey{ + insecure: c.TLS.Insecure, + caData: string(c.TLS.CAData), + certData: string(c.TLS.CertData), + keyData: string(c.TLS.KeyData), + serverName: c.TLS.ServerName, + }, nil }