argoproj / argoproj/argo-cd

Compression for all data queried by Argo CD UI

Open
#7,232 1 comment 19 reactions 0 assignees View on GitHub
enhancement
Dominant language
Go
Stars
24.2k
Forks
7.8k
Avg merge
1d 6h
Merged PRs (30d)
239

Description

# Summary

It would be great if all of the endpoints queried by Argo CD UI supported compression.

https://github.com/argoproj/argo-cd/issues/4226 covered most of the endpoints, however that change does not cover the endpoints returning the content type of `text/event-stream`. Some examples of the endpoints with this content type include `/api/v1/stream/applications`, `/api/v1/stream/applications/$app/resource-tree`.

# Motivation

The response sizes on these endpoints reach several megabytes in some of our deployments. With development teams being spread all over the world, limited VPN throughput, etc. Argo CD UI becomes slow and sometimes unusable.

# Proposal

The easiest approach would be to enable compression on the endpoints in question (the browsers request it already), but I don't know if that's supported uniformly across all of the targeted browsers for this content type.
If that is not an option, for some reason, consider implementing a different set of APIs with compression-friendly content types and using those from the UI code.

Contributor guide

Open the contributing guide

Research direction

Start by inspecting the handlers for /api/v1/stream/applications and /api/v1/stream/applications/$app/resource-tree, then compare them with the endpoints covered by issue #4226. Done means the text/event-stream responses support compression across the targeted browsers, or a compression-friendly API is implemented and used by the Argo CD UI.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
api, backend, performance
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.