An ArgoCD Proxy enhances the performance of the ArgoCD list application API by integrating with Redis and performing in-memory RBAC filtering. This significantly improves the efficiency of application queries and reduces latency in large-scale environments.
Features
Redis Cache Integration: Reads application data from Redis instead of querying Kubernetes Application CRs.
In-Memory RBAC Filtering: Drop the use of the casbin package but use in-memory filtering instead.
Improved Performance: Optimized for faster response times and reduced resource consumption.
Seamless Integration: Works in conjunction with argocd-watcher to keep the Redis cache up-to-date.
Use Cases
Scalable API Performance: Ideal for environments with numerous applications, improving API responsiveness.
Real-Time Application Data: Provides quick access to updated application information through Redis.
Requirements
ArgoCD: A working ArgoCD setup.
Redis: A running Redis instance to store application data.
Kubernetes: A Kubernetes cluster where ArgoCD is deployed.
Go: Installed Go environment for building and running the proxy.
Installation
Clone this repository:
git clone git@github.com:hsiaoairplane/argocd-proxy.git
cd argocd-proxy
Build the proxy:
go build -o argocd-proxy *.go
Deploy to Kubernetes:
Ensure Redis is running and accessible.
Configure the proxy to connect to the Redis instance.