mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-02 00:07:50 +00:00
Merge pull request #109479 from ardaguclu/new-kubecachedir-env
Introduce KUBECACHEDIR environment variable to override default discovery cache dir
This commit is contained in:
commit
b2ed6ca64f
@ -57,10 +57,6 @@ const (
|
||||
flagCacheDir = "cache-dir"
|
||||
)
|
||||
|
||||
var (
|
||||
defaultCacheDir = filepath.Join(homedir.HomeDir(), ".kube", "cache")
|
||||
)
|
||||
|
||||
// RESTClientGetter is an interface that the ConfigFlags describe to provide an easier way to mock for commands
|
||||
// and eliminate the direct coupling to a struct type. Users may wish to duplicate this type in their own packages
|
||||
// as per the golang type overlapping.
|
||||
@ -275,19 +271,33 @@ func (f *ConfigFlags) toDiscoveryClient() (discovery.CachedDiscoveryInterface, e
|
||||
config.Burst = f.discoveryBurst
|
||||
config.QPS = f.discoveryQPS
|
||||
|
||||
cacheDir := defaultCacheDir
|
||||
cacheDir := getDefaultCacheDir()
|
||||
|
||||
// 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 != "" && *f.CacheDir != getDefaultCacheDir() {
|
||||
cacheDir = *f.CacheDir
|
||||
}
|
||||
|
||||
httpCacheDir := filepath.Join(cacheDir, "http")
|
||||
discoveryCacheDir := computeDiscoverCacheDir(filepath.Join(cacheDir, "discovery"), config.Host)
|
||||
|
||||
return diskcached.NewCachedDiscoveryClientForConfig(config, discoveryCacheDir, httpCacheDir, time.Duration(6*time.Hour))
|
||||
}
|
||||
|
||||
// getDefaultCacheDir returns default caching directory path.
|
||||
// it first looks at KUBECACHEDIR env var if it is set, otherwise
|
||||
// it returns standard kube cache dir.
|
||||
func getDefaultCacheDir() string {
|
||||
if kcd := os.Getenv("KUBECACHEDIR"); kcd != "" {
|
||||
return kcd
|
||||
}
|
||||
|
||||
return filepath.Join(homedir.HomeDir(), ".kube", "cache")
|
||||
}
|
||||
|
||||
// ToRESTMapper returns a mapper.
|
||||
func (f *ConfigFlags) ToRESTMapper() (meta.RESTMapper, error) {
|
||||
if f.usePersistentConfig {
|
||||
@ -420,7 +430,7 @@ func NewConfigFlags(usePersistentConfig bool) *ConfigFlags {
|
||||
Timeout: utilpointer.String("0"),
|
||||
KubeConfig: utilpointer.String(""),
|
||||
|
||||
CacheDir: utilpointer.String(defaultCacheDir),
|
||||
CacheDir: utilpointer.String(getDefaultCacheDir()),
|
||||
ClusterName: utilpointer.String(""),
|
||||
AuthInfoName: utilpointer.String(""),
|
||||
Context: utilpointer.String(""),
|
||||
|
Loading…
Reference in New Issue
Block a user