Merge pull request #57613 from mtaufen/explicit-kubelet-flags

Automatic merge from submit-queue (batch tested with PRs 57733, 57613, 57953). 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>.

Explicit kubelet flags

The Kubelet was using the global flag set.
Libraries also often use the global flag set.
There are flags in the Kubelet's usage statement for which the Kubelet does not control registration.
This is bad, we must have full control of our command-line API.
This PR puts a stop to it.

I worked through the Kubelet's usage printout and tracked down the flags.

In the below list, flags with checkboxes are one of:
- explicitly **registered** in this PR
- thought about and outright **rejected**
- thought about and **registered-deprecated** for legacy reasons

For the others we need to figure out whether they should be **registered** or **rejected** or **registered-deprecated**.

### cadvisor:
grep commands, for reference:
```
# flag definitions in cadvisor
git grep -E "\"application_metrics_count_limit\"|\"boot_id_file\"|\"container_hints\"|\"containerd\"|\"docker\"|\"docker_env_metadata_whitelist\"|\"docker_only\"|\"docker_root\"|\"docker-tls\"|\"docker-tls-ca\"|\"docker-tls-cert\"|\"docker-tls-key\"|\"enable_load_reader\"|\"event_storage_age_limit\"|\"event_storage_event_limit\"|\"global_housekeeping_interval\"|\"housekeeping_interval\"|\"log_cadvisor_usage\"|\"machine_id_file\"|\"storage_driver_buffer_duration\"|\"storage_driver_db\"|\"storage_driver_host\"|\"storage_driver_password\"|\"storage_driver_secure\"|\"storage_driver_table\"|\"storage_driver_user\"" -- vendor/github.com/google/cadvisor
# flag invocations
git grep -E "\--application_metrics_count_limit|--boot_id_file|--container_hints|--containerd|--docker|--docker_env_metadata_whitelist|--docker_only|--docker_root|--docker_tls|--docker_tls_ca|--docker_tls_cert|--docker_tls_key|--enable_load_reader|--event_storage_age_limit|--event_storage_event_limit|--global_housekeeping_interval|--housekeeping_interval|--log_cadvisor_usage|--machine_id_file|--storage_driver_buffer_duration|--storage_driver_db|--storage_driver_host|--storage_driver_password|--storage_driver_secure|--storage_driver_table|--storage_driver_user" -- ':(exclude)pkg/generated/bindata.go' ':(exclude)Godeps' ':(exclude)CHANGELOG*' ':(exclude)vendor'
# normalized flag invocations
git grep -E "\--application-metrics-count-limit|--boot-id-file|--container-hints|--containerd|--docker|--docker-env-metadata-whitelist|--docker-only|--docker-root|--docker-tls|--docker-tls-ca|--docker-tls-cert|--docker-tls-key|--enable-load-reader|--event-storage-age-limit|--event-storage-event-limit|--global-housekeeping-interval|--housekeeping-interval|--log-cadvisor-usage|--machine-id-file|--storage-driver-buffer-duration|--storage-driver-db|--storage-driver-host|--storage-driver-password|--storage-driver-secure|--storage-driver-table|--storage-driver-user" -- ':(exclude)pkg/generated/bindata.go' ':(exclude)Godeps' ':(exclude)CHANGELOG*' ':(exclude)vendor'
# flag names
git grep -E "application_metrics_count_limit|boot_id_file|container_hints|containerd|docker|docker_env_metadata_whitelist|docker_only|docker_root|docker_tls|docker_tls_ca|docker_tls_cert|docker_tls_key|enable_load_reader|event_storage_age_limit|event_storage_event_limit|global_housekeeping_interval|housekeeping_interval|log_cadvisor_usage|machine_id_file|storage_driver_buffer_duration|storage_driver_db|storage_driver_host|storage_driver_password|storage_driver_secure|storage_driver_table|storage_driver_user"  ':(exclude)pkg/generated/bindata.go' ':(exclude)Godeps' ':(exclude)CHANGELOG*' ':(exclude)vendor'
# normalized flag names
git grep -E "application-metrics-count-limit|boot-id-file|container-hints|containerd|docker|docker-env-metadata-whitelist|docker-only|docker-root|docker-tls|docker-tls-ca|docker-tls-cert|docker-tls-key|enable-load-reader|event-storage-age-limit|event-storage-event-limit|global-housekeeping-interval|housekeeping-interval|log-cadvisor-usage|machine-id-file|storage-driver-buffer-duration|storage-driver-db|storage-driver-host|storage-driver-password|storage-driver-secure|storage-driver-table|storage-driver-user"  ':(exclude)pkg/generated/bindata.go' ':(exclude)Godeps' ':(exclude)CHANGELOG*' ':(exclude)vendor'
# normalized and underscore names combined
git grep -E "application_metrics_count_limit|boot_id_file|container_hints|containerd|docker|docker_env_metadata_whitelist|docker_only|docker_root|docker_tls|docker_tls_ca|docker_tls_cert|docker_tls_key|enable_load_reader|event_storage_age_limit|event_storage_event_limit|global_housekeeping_interval|housekeeping_interval|log_cadvisor_usage|machine_id_file|storage_driver_buffer_duration|storage_driver_db|storage_driver_host|storage_driver_password|storage_driver_secure|storage_driver_table|storage_driver_user|application-metrics-count-limit|boot-id-file|container-hints|containerd|docker-env-metadata-whitelist|docker-only|docker-root|docker-tls|docker-tls-ca|docker-tls-cert|docker-tls-key|enable-load-reader|event-storage-age-limit|event-storage-event-limit|global-housekeeping-interval|housekeeping-interval|log-cadvisor-usage|machine-id-file|storage-driver-buffer-duration|storage-driver-db|storage-driver-host|storage-driver-password|storage-driver-secure|storage-driver-table|storage-driver-user"  ':(exclude)pkg/generated/bindata.go' ':(exclude)Godeps' ':(exclude)CHANGELOG*' ':(exclude)vendor'
```
- [x]      --docker-root (**registered** - this is used in `cluster/saltbase/salt/kubelet/default`)
- [x]      --housekeeping-interval (**registered** - e2e node tests rely on this (`test/e2e_node/resource_collector.go`))
- [x]      --application-metrics-count-limit (**registered-deprecated** - temporarily register for legacy)
- [x]      --boot-id-file (**registered-deprecated** - temporarily register for legacy)
- [x]      --container-hints (**registered-deprecated** - temporarily register for legacy)
- [x]      --containerd (**registered-deprecated** - temporarily register for legacy)
- [x]      --docker (**registered-deprecated** - temporarily register for legacy)
- [x]      --docker-env-metadata-whitelist (**registered-deprecated** - temporarily register for legacy)
- [x]      --docker-only (**registered-deprecated** - temporarily register for legacy)
- [x]      --docker-tls (**registered-deprecated** - temporarily register for legacy)
- [x]      --docker-tls-ca (**registered-deprecated** - temporarily register for legacy)
- [x]      --docker-tls-cert (**registered-deprecated** - temporarily register for legacy)
- [x]      --docker-tls-key (**registered-deprecated** - temporarily register for legacy)
- [x]      --enable-load-reader (**registered-deprecated** - temporarily register for legacy)
- [x]      --event-storage-age-limit (**registered-deprecated** - the Kubelet overrides the default via the global flagset (`pkg/kubelet/cadvisor/cadvisor_linux.go`), but nothing else in core repo provides)
- [x]      --event-storage-event-limit (**registered-deprecated** - the Kubelet overrides the default via the global flagset (`pkg/kubelet/cadvisor/cadvisor_linux.go`), but nothing else in core repo provides)
- [x]      --global-housekeeping-interval (**registered-deprecated** - temporarily register for legacy)
- [x]      --log-cadvisor-usage (**registered-deprecated** - temporarily register for legacy)
- [x]      --machine-id-file (**registered-deprecated** - temporarily register for legacy)
- [x]      --storage-driver-user (**registered-deprecated** - temporarily register for legacy)
- [x]      --storage-driver-password (**registered-deprecated** - temporarily register for legacy)
- [x]      --storage-driver-host (**registered-deprecated** - temporarily register for legacy)
- [x]      --storage-driver-db (**registered-deprecated** - temporarily register for legacy)
- [x]      --storage-driver-table (**registered-deprecated** - temporarily register for legacy)
- [x]      --storage-driver-secure (**registered-deprecated** - temporarily register for legacy)
- [x]      --storage-driver-buffer-duration (**registered-deprecated** - temporarily register for legacy)

### pkg/apiserver/util/logs:
- [x]      --log-flush-frequency (**registered** - like the glog flags, this is probably useful)

### pkg/credentialprovider/azure/azure_credentials.go:
- [x]      --azure-container-registry-config (**registered** - This isn't quite as straightforward as --google-json-key, because the file it points to isn't static. For now we will just register, and we will deprecate it when there is an alternative. See below comments.)

### pkg/credentialprovider/gcp/jwt.go:
- [x]      --google-json-key (**registered-deprecated** - This is really old legacy stuff to allow kubelets to authenticate with gcr (see: d5e0054eb039e90defc55464a2d938bc38fddb0d). See @liggit's below comment for what should be used instead.)

### pkg/cloudprovider/providers/gce/gce_loadbalancer.go:
- [x]      --cloud-provider-gce-lb-src-cidrs (**rejected** - Kubelet doesn't need to know about the cidrs that were opened in the firewall for the load balancer)

### glog:
I registered all of these, since this logging library is used pretty much everywhere in the Kubelet, and all of its toggles are probably useful.
- [x]      --logtostderr (**registered**)
- [x]      --alsologtostderr (**registered**)
- [x]  -v, --v (**registered**)
- [x]      --stderrthreshold (**registered**)
- [x]      --vmodule (**registered**)
- [x]      --log-backtrace-at (**registered**)
- [x]      --log-dir (**registered**)

### verflag:
This is how you get the Kubelet's version, absolutely necessary to register this.
- [x]      --version (**registered**)

```release-note
The Kubelet now explicitly registers all of its command-line flags with an internal flagset, which prevents flags from third party libraries from unintentionally leaking into the Kubelet's command-line API. Many unintentionally leaked flags are now marked deprecated, so that users have a chance to migrate away from them before they are removed. One previously leaked flag, --cloud-provider-gce-lb-src-cidrs, was entirely removed from the Kubelet's command-line API, because it is irrelevant to Kubelet operation.
```

Thanks to @liggitt for being surprised that we didn't already do this.
Thanks to @dashpole for realizing cadvisor flags were leaked after seeing #55863.
Thanks to @tallclair who recognized this problem a long time ago in #19432.

Kubernetes-commit: 5e444bbe12b36d03975d4cd43a1ed167bfc638ab
This commit is contained in:
Kubernetes Publisher 2018-01-09 21:51:37 -08:00
commit f452c8f2c5
2 changed files with 153 additions and 145 deletions

288
Godeps/Godeps.json generated
View File

@ -1212,579 +1212,579 @@
}, },
{ {
"ImportPath": "k8s.io/client-go/discovery", "ImportPath": "k8s.io/client-go/discovery",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/discovery/fake", "ImportPath": "k8s.io/client-go/discovery/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers", "ImportPath": "k8s.io/client-go/informers",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/admissionregistration", "ImportPath": "k8s.io/client-go/informers/admissionregistration",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/admissionregistration/v1alpha1", "ImportPath": "k8s.io/client-go/informers/admissionregistration/v1alpha1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/admissionregistration/v1beta1", "ImportPath": "k8s.io/client-go/informers/admissionregistration/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/apps", "ImportPath": "k8s.io/client-go/informers/apps",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/apps/v1", "ImportPath": "k8s.io/client-go/informers/apps/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/apps/v1beta1", "ImportPath": "k8s.io/client-go/informers/apps/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/apps/v1beta2", "ImportPath": "k8s.io/client-go/informers/apps/v1beta2",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/autoscaling", "ImportPath": "k8s.io/client-go/informers/autoscaling",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/autoscaling/v1", "ImportPath": "k8s.io/client-go/informers/autoscaling/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/autoscaling/v2beta1", "ImportPath": "k8s.io/client-go/informers/autoscaling/v2beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/batch", "ImportPath": "k8s.io/client-go/informers/batch",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/batch/v1", "ImportPath": "k8s.io/client-go/informers/batch/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/batch/v1beta1", "ImportPath": "k8s.io/client-go/informers/batch/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/batch/v2alpha1", "ImportPath": "k8s.io/client-go/informers/batch/v2alpha1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/certificates", "ImportPath": "k8s.io/client-go/informers/certificates",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/certificates/v1beta1", "ImportPath": "k8s.io/client-go/informers/certificates/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/core", "ImportPath": "k8s.io/client-go/informers/core",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/core/v1", "ImportPath": "k8s.io/client-go/informers/core/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/events", "ImportPath": "k8s.io/client-go/informers/events",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/events/v1beta1", "ImportPath": "k8s.io/client-go/informers/events/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/extensions", "ImportPath": "k8s.io/client-go/informers/extensions",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/extensions/v1beta1", "ImportPath": "k8s.io/client-go/informers/extensions/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/internalinterfaces", "ImportPath": "k8s.io/client-go/informers/internalinterfaces",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/networking", "ImportPath": "k8s.io/client-go/informers/networking",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/networking/v1", "ImportPath": "k8s.io/client-go/informers/networking/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/policy", "ImportPath": "k8s.io/client-go/informers/policy",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/policy/v1beta1", "ImportPath": "k8s.io/client-go/informers/policy/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/rbac", "ImportPath": "k8s.io/client-go/informers/rbac",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/rbac/v1", "ImportPath": "k8s.io/client-go/informers/rbac/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/rbac/v1alpha1", "ImportPath": "k8s.io/client-go/informers/rbac/v1alpha1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/rbac/v1beta1", "ImportPath": "k8s.io/client-go/informers/rbac/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/scheduling", "ImportPath": "k8s.io/client-go/informers/scheduling",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/scheduling/v1alpha1", "ImportPath": "k8s.io/client-go/informers/scheduling/v1alpha1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/settings", "ImportPath": "k8s.io/client-go/informers/settings",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/settings/v1alpha1", "ImportPath": "k8s.io/client-go/informers/settings/v1alpha1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/storage", "ImportPath": "k8s.io/client-go/informers/storage",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/storage/v1", "ImportPath": "k8s.io/client-go/informers/storage/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/storage/v1alpha1", "ImportPath": "k8s.io/client-go/informers/storage/v1alpha1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/informers/storage/v1beta1", "ImportPath": "k8s.io/client-go/informers/storage/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes", "ImportPath": "k8s.io/client-go/kubernetes",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/fake", "ImportPath": "k8s.io/client-go/kubernetes/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/scheme", "ImportPath": "k8s.io/client-go/kubernetes/scheme",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1", "ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1", "ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1", "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta1", "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta2", "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta2",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1", "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1beta1", "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1", "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1beta1", "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v1", "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1", "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1", "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1beta1", "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v2alpha1", "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v2alpha1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/certificates/v1beta1", "ImportPath": "k8s.io/client-go/kubernetes/typed/certificates/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/core/v1", "ImportPath": "k8s.io/client-go/kubernetes/typed/core/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/core/v1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/core/v1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/events/v1beta1", "ImportPath": "k8s.io/client-go/kubernetes/typed/events/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/events/v1beta1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/events/v1beta1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/extensions/v1beta1", "ImportPath": "k8s.io/client-go/kubernetes/typed/extensions/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/networking/v1", "ImportPath": "k8s.io/client-go/kubernetes/typed/networking/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/networking/v1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/networking/v1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/policy/v1beta1", "ImportPath": "k8s.io/client-go/kubernetes/typed/policy/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1", "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1", "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1beta1", "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1", "ImportPath": "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/settings/v1alpha1", "ImportPath": "k8s.io/client-go/kubernetes/typed/settings/v1alpha1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1", "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1alpha1", "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1alpha1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1beta1", "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake", "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/admissionregistration/v1alpha1", "ImportPath": "k8s.io/client-go/listers/admissionregistration/v1alpha1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/admissionregistration/v1beta1", "ImportPath": "k8s.io/client-go/listers/admissionregistration/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/apps/v1", "ImportPath": "k8s.io/client-go/listers/apps/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/apps/v1beta1", "ImportPath": "k8s.io/client-go/listers/apps/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/apps/v1beta2", "ImportPath": "k8s.io/client-go/listers/apps/v1beta2",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/autoscaling/v1", "ImportPath": "k8s.io/client-go/listers/autoscaling/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/autoscaling/v2beta1", "ImportPath": "k8s.io/client-go/listers/autoscaling/v2beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/batch/v1", "ImportPath": "k8s.io/client-go/listers/batch/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/batch/v1beta1", "ImportPath": "k8s.io/client-go/listers/batch/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/batch/v2alpha1", "ImportPath": "k8s.io/client-go/listers/batch/v2alpha1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/certificates/v1beta1", "ImportPath": "k8s.io/client-go/listers/certificates/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/core/v1", "ImportPath": "k8s.io/client-go/listers/core/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/events/v1beta1", "ImportPath": "k8s.io/client-go/listers/events/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/extensions/v1beta1", "ImportPath": "k8s.io/client-go/listers/extensions/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/networking/v1", "ImportPath": "k8s.io/client-go/listers/networking/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/policy/v1beta1", "ImportPath": "k8s.io/client-go/listers/policy/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/rbac/v1", "ImportPath": "k8s.io/client-go/listers/rbac/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/rbac/v1alpha1", "ImportPath": "k8s.io/client-go/listers/rbac/v1alpha1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/rbac/v1beta1", "ImportPath": "k8s.io/client-go/listers/rbac/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/scheduling/v1alpha1", "ImportPath": "k8s.io/client-go/listers/scheduling/v1alpha1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/settings/v1alpha1", "ImportPath": "k8s.io/client-go/listers/settings/v1alpha1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/storage/v1", "ImportPath": "k8s.io/client-go/listers/storage/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/storage/v1alpha1", "ImportPath": "k8s.io/client-go/listers/storage/v1alpha1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/listers/storage/v1beta1", "ImportPath": "k8s.io/client-go/listers/storage/v1beta1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/pkg/version", "ImportPath": "k8s.io/client-go/pkg/version",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/rest", "ImportPath": "k8s.io/client-go/rest",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/rest/watch", "ImportPath": "k8s.io/client-go/rest/watch",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/testing", "ImportPath": "k8s.io/client-go/testing",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/tools/auth", "ImportPath": "k8s.io/client-go/tools/auth",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/tools/cache", "ImportPath": "k8s.io/client-go/tools/cache",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/tools/clientcmd", "ImportPath": "k8s.io/client-go/tools/clientcmd",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/tools/clientcmd/api", "ImportPath": "k8s.io/client-go/tools/clientcmd/api",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/tools/clientcmd/api/latest", "ImportPath": "k8s.io/client-go/tools/clientcmd/api/latest",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/tools/clientcmd/api/v1", "ImportPath": "k8s.io/client-go/tools/clientcmd/api/v1",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/tools/metrics", "ImportPath": "k8s.io/client-go/tools/metrics",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/tools/pager", "ImportPath": "k8s.io/client-go/tools/pager",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/tools/reference", "ImportPath": "k8s.io/client-go/tools/reference",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/transport", "ImportPath": "k8s.io/client-go/transport",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/util/buffer", "ImportPath": "k8s.io/client-go/util/buffer",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/util/cert", "ImportPath": "k8s.io/client-go/util/cert",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/util/flowcontrol", "ImportPath": "k8s.io/client-go/util/flowcontrol",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/util/homedir", "ImportPath": "k8s.io/client-go/util/homedir",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/client-go/util/integer", "ImportPath": "k8s.io/client-go/util/integer",
"Rev": "1b825e3a786379cb2ae2edc98a39e9c8cd68ee3c" "Rev": "21ab0aa61a13eb1ea583b24c69943f9fea5929bd"
}, },
{ {
"ImportPath": "k8s.io/kube-openapi/pkg/builder", "ImportPath": "k8s.io/kube-openapi/pkg/builder",

View File

@ -26,13 +26,21 @@ import (
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
) )
var logFlushFreq = pflag.Duration("log-flush-frequency", 5*time.Second, "Maximum number of seconds between log flushes") const logFlushFreqFlagName = "log-flush-frequency"
var logFlushFreq = pflag.Duration(logFlushFreqFlagName, 5*time.Second, "Maximum number of seconds between log flushes")
// TODO(thockin): This is temporary until we agree on log dirs and put those into each cmd. // TODO(thockin): This is temporary until we agree on log dirs and put those into each cmd.
func init() { func init() {
flag.Set("logtostderr", "true") flag.Set("logtostderr", "true")
} }
// AddFlags registers this package's flags on arbitrary FlagSets, such that they point to the
// same value as the global flags.
func AddFlags(fs *pflag.FlagSet) {
fs.AddFlag(pflag.Lookup(logFlushFreqFlagName))
}
// GlogWriter serves as a bridge between the standard log package and the glog package. // GlogWriter serves as a bridge between the standard log package and the glog package.
type GlogWriter struct{} type GlogWriter struct{}