Introduce KUBECACHEDIR environment variable to override default discovery cache dir

This PR introduces new environment variable, namely `KUBECACHEDIR`. `KUBECACHEDIR`
is used to override default discovery cache directory for all commands(whose default value
is $HOME/.kube/cache).

`--cache-dir` flag per command has higher precedence than `KUBECACHEDIR` and default
directory path.
This commit is contained in:
Arda Güçlü 2022-04-14 10:52:31 +03:00
parent f33ca23065
commit 3d8cfaacbe

View File

@ -276,12 +276,18 @@ func (f *ConfigFlags) toDiscoveryClient() (discovery.CachedDiscoveryInterface, e
config.QPS = f.discoveryQPS
cacheDir := defaultCacheDir
if kcd := os.Getenv("KUBECACHEDIR"); kcd != "" {
cacheDir = kcd
}
// retrieve a user-provided value for the "cache-dir"
// override httpCacheDir and discoveryCacheDir if user-value is given.
if f.CacheDir != nil {
// user-provided value has higher precedence than default
// and KUBECACHEDIR environment variable.
if f.CacheDir != nil && *f.CacheDir != "" {
cacheDir = *f.CacheDir
}
httpCacheDir := filepath.Join(cacheDir, "http")
discoveryCacheDir := computeDiscoverCacheDir(filepath.Join(cacheDir, "discovery"), config.Host)
@ -420,7 +426,7 @@ func NewConfigFlags(usePersistentConfig bool) *ConfigFlags {
Timeout: utilpointer.String("0"),
KubeConfig: utilpointer.String(""),
CacheDir: utilpointer.String(defaultCacheDir),
CacheDir: utilpointer.String(""),
ClusterName: utilpointer.String(""),
AuthInfoName: utilpointer.String(""),
Context: utilpointer.String(""),