diff options
author | Jaime Martinez <jmartinez@gitlab.com> | 2020-11-12 09:54:46 +0300 |
---|---|---|
committer | Jaime Martinez <jmartinez@gitlab.com> | 2020-11-30 02:15:09 +0300 |
commit | b0e17d6a69a6e81cd1ca693cba47840de1f230da (patch) | |
tree | 5a3e902a9fa427f53fd09feec4f107dbe1ac6242 /main.go | |
parent | 84abda0e2cc2d47078d20abc1dad338402060b90 (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.go | 30 |
1 files changed, 30 insertions, 0 deletions
@@ -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 } |