Overview
Argo CD’s web interface can be extended with custom UI elements written in JavaScript/React. Extensions are loaded from JavaScript files placed in the argocd-server Pods.Extension TypesArgo CD supports several extension points:
- Resource tab extensions
- Application tab extensions
- System-level extensions
- Status panel extensions
- Top bar action menu extensions
- App view extensions
Installation
Place extension JavaScript files in/tmp/extensions directory of argocd-server Pods:
^extension(.*)\.js$
Extension Basics
JavaScript Structure
Extensions register themselves using theextensionsAPI global variable:
Using React
Resource Tab Extensions
Add custom tabs to the resource sliding panel on the Application details page.API
application: Application- Argo CD Application resourceresource: State- The Kubernetes resource objecttree: ApplicationTree- List of all resources in the application
Example
Glob Patterns
Use glob expressions to match multiple resource types:Application Tab Extensions
Since Applications are Kubernetes resources, useregisterResourceExtension with:
- group:
argoproj.io - kind:
Application
System-Level Extensions
Add new pages to the sidebar navigation.API
Example
Status Panel Extensions
Add custom items to the status bar at the top of the Application view.API
Basic Example
With Flyout Panel
Top Bar Action Menu Extensions
Add buttons to the action bar at the top of the Application view.API
Conditional Display Example
App View Extensions
Create custom application detail views alongside Tree, Pods, and Network views.API
Example
Development Tips
Local Development
Local Development
Mount extensions during local development:
Debugging
Debugging
Use browser DevTools:
Error Handling
Error Handling
Wrap components with error boundaries:
Build Process
Build Process
Use webpack to bundle your extension:
TypeScript Support
For better type safety, define types for your extensions:Best Practices
Keep It Simple
Extensions should be focused and lightweight. Complex logic should call external services.
Handle Loading States
Show loading indicators for async operations to improve UX.
Error Boundaries
Implement error handling to prevent extension failures from breaking the UI.
Responsive Design
Ensure extensions work well on different screen sizes.
Security Considerations
Example: Complete Extension
Next Steps
Resource Actions
Add custom actions to resources
Custom Health Checks
Define custom health checks
React Documentation
Learn React fundamentals
Argo CD API
View API type definitions