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

View File

@ -26,13 +26,21 @@ import (
"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.
func init() {
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.
type GlogWriter struct{}