Cannot upload cache to Azure Blob (getting : "413 The request body is too large and exceeds the maximum permissible limit.")
## Summary When using the `[runners.cache.azure]`, and if the file is exceeding a certain size (not sure yet what size, I'm trying to find some elements in the documentation), the cache will fail with the following message: ## Actual behavior The cache might be failing because of Azure blob storage limitation. ## Expected behavior We might have to use "chunked upload" to upload the cache when exceeding a certain limit ## Relevant logs and/or screenshots ![Capture_d_écran_2020-10-20_à_15.21.14](/uploads/61b81babc6300f42be5252470f660688/Capture_d_écran_2020-10-20_à_15.21.14.png) (text:) ``` Saving cache 02:02 Creating cache e5c3ef9838d165f51d91c13e47efd7df65ee8eef... node_modules/: found 82486 matching files and directories .yarn-cache/: found 76412 matching files and directories .cypress-cache/: found 39144 matching files and directories .node-sass-cache/: found 3 matching files and directories Uploading cache.zip to https://xxxxx.blob.core.windows.net/gitlab-cache/runner/J1jMMku-/project/103/e5c3ef9838d165f51d91c13e47efd7df65ee8eef FATAL: received: 413 The request body is too large and exceeds the maximum permissible limit. Failed to create cache Uploading artifacts for successful job 00:39 Uploading artifacts... ``` ## Environment description <!-- Are you using shared Runners on GitLab.com? Or is it a custom installation? Which executors are used? Please also provide the versions of related tools like `docker info` if you are using the Docker executor. --> <!-- Please add the contents of `config.toml` inside of the code blocks (```) below, remember to remove any secret tokens! --> <details> <summary> config.toml contents </summary> ```toml log_format = "json" listen_address = "0.0.0.0:9252" [session_server] session_timeout = 1800 [[runners]] name = "aks-runner" url = "https://xxxxx/" token = "xxxx" executor = "kubernetes" environment = ["K8S_AUTH_KUBECONFIG=/home/ops/.kube/config"] [runners.custom_build_dir] [runners.cache] Type = "azure" [runners.cache.azure] StorageDomain = "blob.core.windows.net" AccountName = "xxxxx" AccountKey = "xxxxx" ContainerName = "gitlab-cache" [runners.kubernetes] namespace = "gitlab-jobs" namespace_overwrite_allowed = "" cpu_request = "200m" # https://docs.gitlab.com/runner/executors/kubernetes.html#overwriting-build-resources cpu_request_overwrite_max_allowed = "2" memory_request = "200Mi" memory_request_overwrite_max_allowed = "2Gi" privileged = false poll_timeout = 360 host = "" bearer_token_overwrite_allowed = false image = "" pull_policy = "always" service_account = "" service_account_overwrite_allowed = "" pod_annotations_overwrite_allowed = "" image_pull_secrets = [ "acrpullsecret" ] cpu_limit = "2" cpu_limit_overwrite_max_allowed = "4" memory_limit = "2Gi" memory_limit_overwrite_max_allowed = "4Gi" [runners.kubernetes.pod_security_context] [runners.kubernetes.volumes] ``` </details> ### Used GitLab Runner version <!-- Please run and paste the output of `gitlab-runner --version`. If you are using a Runner where you don't have access to, please paste at least the first lines the from build log, like: --> ``` Running with gitlab/gitlab-runner:v13.4.1 ``` ## Possible fixes Implement chunk upload for Azure blob. <!-- (If you can, link to the line of code that might be responsible for the problem) --->
issue