From 52ba42389a52806c8b80510b59cc62598507aca1 Mon Sep 17 00:00:00 2001 From: Ben Ye Date: Mon, 21 Feb 2022 13:44:22 -0800 Subject: [PATCH] feat: expose cluster sync retry duration (#8481) Signed-off-by: Ben Ye --- controller/cache/cache.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/controller/cache/cache.go b/controller/cache/cache.go index f22160bf7a5f4..47fcbc075b68b 100644 --- a/controller/cache/cache.go +++ b/controller/cache/cache.go @@ -40,6 +40,9 @@ const ( // EnvClusterCacheWatchResyncDuration is the env variable that holds cluster cache watch re-sync duration EnvClusterCacheWatchResyncDuration = "ARGOCD_CLUSTER_CACHE_WATCH_RESYNC_DURATION" + // EnvClusterRetryTimeoutDuration is the env variable that holds cluster retry duration when sync error happens + EnvClusterSyncRetryTimeoutDuration = "ARGOCD_CLUSTER_SYNC_RETRY_TIMEOUT_DURATION" + // EnvClusterCacheListPageSize is the env variable to control size of the list page size when making K8s queries EnvClusterCacheListPageSize = "ARGOCD_CLUSTER_CACHE_LIST_PAGE_SIZE" @@ -65,6 +68,9 @@ var ( // for before relisting & restarting the watch clusterCacheWatchResyncDuration = 10 * time.Minute + // clusterSyncRetryTimeoutDuration controls the sync retry duration when cluster sync error happens + clusterSyncRetryTimeoutDuration = 10 * time.Second + // The default limit of 50 is chosen based on experiments. clusterCacheListSemaphoreSize int64 = 50 @@ -83,6 +89,7 @@ var ( func init() { clusterCacheResyncDuration = env.ParseDurationFromEnv(EnvClusterCacheResyncDuration, clusterCacheResyncDuration, 0, math.MaxInt64) clusterCacheWatchResyncDuration = env.ParseDurationFromEnv(EnvClusterCacheWatchResyncDuration, clusterCacheWatchResyncDuration, 0, math.MaxInt64) + clusterSyncRetryTimeoutDuration = env.ParseDurationFromEnv(EnvClusterSyncRetryTimeoutDuration, clusterSyncRetryTimeoutDuration, 0, math.MaxInt64) clusterCacheListPageSize = env.ParseInt64FromEnv(EnvClusterCacheListPageSize, clusterCacheListPageSize, 0, math.MaxInt64) clusterCacheListSemaphoreSize = env.ParseInt64FromEnv(EnvClusterCacheListSemaphore, clusterCacheListSemaphoreSize, 0, math.MaxInt64) clusterCacheAttemptLimit = int32(env.ParseInt64FromEnv(EnvClusterCacheAttemptLimit, 1, 1, math.MaxInt32)) @@ -341,6 +348,7 @@ func (c *liveStateCache) getCluster(server string) (clustercache.ClusterCache, e clustercache.SetListSemaphore(semaphore.NewWeighted(clusterCacheListSemaphoreSize)), clustercache.SetListPageSize(clusterCacheListPageSize), clustercache.SetWatchResyncTimeout(clusterCacheWatchResyncDuration), + clustercache.SetClusterSyncRetryTimeout(clusterSyncRetryTimeoutDuration), clustercache.SetResyncTimeout(clusterCacheResyncDuration), clustercache.SetSettings(cacheSettings.clusterSettings), clustercache.SetNamespaces(cluster.Namespaces),