kubernetes/vendor/github.com
Kubernetes Submit Queue 0f2c2bd847 Merge pull request #50404 from apelisse/http-cache
Automatic merge from submit-queue (batch tested with PRs 51480, 49616, 50123, 50846, 50404)

Kubectl to use http caching to cache openapi responses from the server

**What this PR does / why we need it**: 

This PR is trying to address the problems raised in #50254 

> * uses a disk-based cache that is not safe between processes (does not use atomic fs operations)
> * writes get/list responses to disk that should not be cached (like kubectl get secrets)
> * is vulnerable to partially written cache responses being used as responses to future requests
> * breaks uses of the client transport that make use of websockets
> * defaults to enabling the cache for any client builder using RecommendedConfigOverrideFlags or DefaultClientConfig which affects more components than just kubectl

All of these points are addressed by this pull-request:
1. It now uses atomic fs operations
2. Doesn't cache by default, only if requested by the client (and it's only done by openapi client)
3. Fixed because of atomic fs operations
4. Found the reason for the bug: Cache wrapper couldn't be unwrapped. I implemented the `WrappedRoundTripper` interface.
5. Since 2. is fixed, I think that should be fine

@smarterclayton @liggitt 

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #50254

**Special notes for your reviewer**:

**Release note**:

```release-note
Allows kubectl to use http caching mechanism for the OpenAPI schema. The cache directory can be configured through `--cache-dir` command line flag to kubectl. If set to empty string, caching will be disabled.
```
2017-08-31 20:08:46 -07:00
..
abbot/go-http-auth Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
appc/spec Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
armon/circbuf Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
asaskevich/govalidator Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
aws/aws-sdk-go AWS: check validity of KSM key before creating a new encrypted disk. 2017-08-28 12:52:57 +02:00
Azure Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
beorn7/perks Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
blang/semver Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
boltdb/bolt Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
chai2010/gettext-go Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
cloudflare/cfssl Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
clusterhq/flocker-go Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
codedellemc/goscaleio Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
codegangsta/negroni Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
containernetworking/cni Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
coreos Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
cpuguy83/go-md2man Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
davecgh/go-spew Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
daviddengcn/go-colortext Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
dgrijalva/jwt-go Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
docker implement ipvs mode of kube-proxy 2017-08-30 10:03:02 +08:00
elazarl Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
emicklei Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
evanphx/json-patch Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
exponent-io/jsonpath Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
fatih/camelcase Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
fsnotify/fsnotify Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
garyburd/redigo Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
ghodss/yaml Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
go-ini/ini Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
go-openapi Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
godbus/dbus Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
gogo/protobuf Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
golang Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
google bump(github.com/google/cadvisor): 27e1acbb4ef0fe1889208b21f8f4a6d0863e02f6 2017-08-18 13:58:23 -05:00
googleapis/gnostic Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
gophercloud/gophercloud Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
gorilla Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
gregjones/httpcache c-go: Update diskv to get atomic fs cache write 2017-08-25 08:31:49 -07:00
grpc-ecosystem Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
hashicorp Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
hawkular/hawkular-client-go Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
heketi/heketi Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
howeyc/gopass Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
imdario/mergo Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
inconshreveable/mousetrap Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
influxdata/influxdb Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
jmespath/go-jmespath Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
jonboulle/clockwork Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
jteeuwen/go-bindata Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
juju/ratelimit Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
kardianos/osext Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
karlseguin/ccache Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
kr Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
libopenstorage/openstorage Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
lpabon/godbc Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
magiconair/properties Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
mailru/easyjson Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
MakeNowJust/heredoc Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
matttproud/golang_protobuf_extensions Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
Microsoft/go-winio Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
miekg Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
mistifyio/go-zfs Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
mitchellh Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
mreiferson/go-httpclient Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
mvdan/xurls Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
mxk/go-flowrate Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
NYTimes/gziphandler Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
onsi Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
opencontainers/runc Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
pborman/uuid Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
pelletier Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
peterbourgon/diskv c-go: Update diskv to get atomic fs cache write 2017-08-25 08:31:49 -07:00
pkg Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
pmezard/go-difflib Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
prometheus Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
PuerkitoBio Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
quobyte/api Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
rackspace/gophercloud Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
rancher/go-rancher Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
renstrom/dedent Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
robfig/cron Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
rubiojr/go-vhd Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
russross/blackfriday Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
satori/uuid Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
seccomp/libseccomp-golang Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
shurcooL/sanitized_anchor_name Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
Sirupsen/logrus Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
spf13 Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
square/go-jose Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
storageos/go-api Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
stretchr Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
syndtr/gocapability Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
ugorji/go Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
vishvananda wrapper ipvs API as util 2017-08-30 10:01:21 +08:00
vmware Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
xanzy/go-cloudstack Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
xiang90/probing Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
xyproto/simpleredis Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00