diff --git a/pkg/cmd/builder.go b/pkg/cmd/builder.go index e85348a4..eb44ca11 100644 --- a/pkg/cmd/builder.go +++ b/pkg/cmd/builder.go @@ -67,6 +67,10 @@ type AdapterBase struct { // DiscoveryInterval specifies the interval at which to recheck discovery // information for the discovery RESTMapper. It's set from a flag. DiscoveryInterval time.Duration + // ClientQPS specifies the maximum QPS for the client. It's set from a flag. + ClientQPS float32 + // ClientBurst specifies the maximum burst for client-side throttle. It's set from a flag. + ClientBurst int // FlagSet is the flagset to add flags to. // It defaults to the normal CommandLine flags @@ -111,6 +115,8 @@ func (b *AdapterBase) InstallFlags() { "any described objects") b.FlagSet.DurationVar(&b.DiscoveryInterval, "discovery-interval", b.DiscoveryInterval, "interval at which to refresh API discovery information") + b.FlagSet.Float32Var(&b.ClientQPS, "client-qps", b.ClientQPS, "maximum QPS for client") + b.FlagSet.IntVar(&b.ClientBurst, "client-burst", b.ClientBurst, "maximum burst for client-side throttle") }) } @@ -153,6 +159,13 @@ func (b *AdapterBase) ClientConfig() (*rest.Config, error) { } b.clientConfig = clientConfig } + + if b.ClientQPS > 0 { + b.clientConfig.QPS = b.ClientQPS + } + if b.ClientBurst > 0 { + b.clientConfig.Burst = b.ClientBurst + } return b.clientConfig, nil }