Skip to content

Commit 46431db

Browse files
authored
fix(cas): improve upload speeds (#381)
Signed-off-by: Miguel Martinez Trivino <[email protected]>
1 parent fd2c59e commit 46431db

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

deployment/chainloop/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Chainloop is an open source software supply chain control plane, a
44

55
type: application
66
# Bump the patch (not minor, not major) version on each change in the Chart Source code
7-
version: 1.18.0
7+
version: 1.18.1
88
# Do not update appVersion, this is handled automatically by the release process
99
appVersion: v0.19.1
1010

deployment/chainloop/README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,19 @@ helm install [RELEASE_NAME] oci://ghcr.io/chainloop-dev/charts/chainloop \
159159

160160
## How to guides
161161

162+
### CAS upload speeds are slow, what can I do?
163+
164+
Chainloop uses gRPC streaming to perform artifact uploads. This method is susceptible to being very slow on high latency scenarios. [#375](https://github.com/chainloop-dev/chainloop/issues/375)
165+
166+
To improve upload speeds, you need to increase [http2 flow control buffer](https://httpwg.org/specs/rfc7540.html#DisableFlowControl). This can be done in NGINX by setting the following annotation in the ingress resource.
167+
168+
```
169+
# Improve upload speed by adding client buffering used by http2 control-flows
170+
nginx.ingress.kubernetes.io/client-body-buffer-size: "3M"
171+
```
172+
173+
Note: For other reverse proxies, you'll need to find the equivalent configuration.
174+
162175
### Generate a ECDSA key-pair
163176

164177
An ECDSA key-pair is required to perform authentication between the control-plane and the Artifact CAS

deployment/chainloop/values.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -634,6 +634,9 @@ cas:
634634
## @skip cas.ingressAPI.annotations.nginx.ingress.kubernetes.io/backend-protocol
635635
## Tell Nginx Ingress Controller to expect gRPC traffic
636636
nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
637+
# Improve upload speed by adding client buffering used by http2 control-flows
638+
# https://github.com/chainloop-dev/chainloop/issues/375
639+
nginx.ingress.kubernetes.io/client-body-buffer-size: "3M"
637640

638641
## @param cas.ingressAPI.tls Enable TLS configuration for the host defined at `controlplane.ingress.hostname` parameter
639642
## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.controlplane.ingress.hostname }}`

0 commit comments

Comments
 (0)