Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-pages.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaime Martinez <jmartinez@gitlab.com>2020-11-12 09:54:46 +0300
committerJaime Martinez <jmartinez@gitlab.com>2020-11-30 02:15:09 +0300
commitb0e17d6a69a6e81cd1ca693cba47840de1f230da (patch)
tree5a3e902a9fa427f53fd09feec4f107dbe1ac6242 /main.go
parent84abda0e2cc2d47078d20abc1dad338402060b90 (diff)
Add zip config flags
Adds a config package with specific zip configuration structure that can be shared between packages.
Diffstat (limited to 'main.go')
-rw-r--r--main.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/main.go b/main.go
index 7defd281..b5056fa9 100644
--- a/main.go
+++ b/main.go
@@ -13,8 +13,10 @@ import (
"github.com/namsral/flag"
log "github.com/sirupsen/logrus"
+
"gitlab.com/gitlab-org/labkit/errortracking"
+ cfg "gitlab.com/gitlab-org/gitlab-pages/internal/config"
"gitlab.com/gitlab-org/gitlab-pages/internal/logging"
"gitlab.com/gitlab-org/gitlab-pages/internal/request"
"gitlab.com/gitlab-org/gitlab-pages/internal/tlsconfig"
@@ -78,6 +80,22 @@ var (
disableCrossOriginRequests = flag.Bool("disable-cross-origin-requests", false, "Disable cross-origin requests")
+ // zip serving settings
+ zipCacheExpiration = flag.Duration("zip-cache-expiration", 60*time.Second, "Zip serving archive cache expiration interval (default: 60s)")
+ zipCacheCleanup = flag.Duration("zip-cache-cleanup", 30*time.Second, "Zip serving archive cache cleanup interval (default: 30s)")
+ zipCacheRefresh = flag.Duration("zip-cache-refresh", 30*time.Second, "Zip serving archive cache refresh interval (default: 30s)")
+
+ // we assume that each item costs around 100 bytes
+ // this gives around 5MB of raw memory needed without acceleration structures
+ zipCacheDataOffsetItems = flag.Int64("zip-cache-dataoffset-items", 50000, "Zip serving number of files to cache per archive (default: 50,000)")
+ zipCachetDataOffsetExpiration = flag.Duration("zip-cache-dataoffset-expiration", time.Hour, "Zip serving cached files expiration interval (default: 1h)")
+ // we assume that each item costs around 200 bytes
+ // this gives around 2MB of raw memory needed without acceleration structures
+ zipCacheReadlinkItems = flag.Int64("zip-cache-readlink-items", 10000, "Zip serving number of symbolic links to cache per archive (default: 10,000)")
+ zipCacheReadlinkExpirationInterval = flag.Duration("zip-cache-readlink-expiration", time.Hour, "Zip serving cached symbolic links expiration interval (default: 1h)")
+
+ zipOpenTimeout = flag.Duration("zip-open-timeout", 30*time.Second, "Zip archive open timeout (default: 30s)")
+
// See init()
listenHTTP MultiStringFlag
listenHTTPS MultiStringFlag
@@ -212,6 +230,18 @@ func configFromFlags() appConfig {
checkAuthenticationConfig(config)
+ cfg.ZipVFSConfig = &cfg.ZipServing{
+ ExpirationInterval: *zipCacheExpiration,
+ CleanupInterval: *zipCacheCleanup,
+ RefreshInterval: *zipCacheRefresh,
+ OpenTimeout: *zipOpenTimeout,
+ DataOffsetItems: *zipCacheDataOffsetItems,
+ DataOffsetExpirationInterval: *zipCachetDataOffsetExpiration,
+ ReadlinkItems: *zipCacheReadlinkItems,
+ ReadlinkExpirationInterval: *zipCacheReadlinkExpirationInterval,
+ }
+
+ fmt.Printf("THE CONFIG FIRST:\n%+v\n", cfg.ZipVFSConfig)
return config
}