| name | deploy-extension |
| description | Build and deploy an extension to the local kind cluster. Use when the user wants to test an extension end-to-end in ArgoCD. |
| user-invocable | true |
| argument-hint | [extension-name] |
| allowed-tools | Bash(make *), Bash(docker *), Bash(kind *), Bash(kubectl *), Bash(npm *) |
Deploy Extension to Local Cluster
Build and deploy the $ARGUMENTS extension to the local kind cluster.
Steps
-
Build the UI extension bundle:
cd extensions/$ARGUMENTS/ui && npm ci && npm run build
-
Build the backend Docker image:
docker build -t argoplane-$ARGUMENTS-backend:dev extensions/$ARGUMENTS/backend/
-
Load the image into kind:
kind load docker-image argoplane-$ARGUMENTS-backend:dev --name argoplane-dev
-
Deploy the backend service:
kubectl apply -f deploy/extensions/$ARGUMENTS/deployment.yaml
-
Configure the ArgoCD proxy extension (patch, not apply, to preserve argocd-cm):
kubectl -n argocd patch cm argocd-cm --type merge --patch-file deploy/argocd/proxy-extensions.json
-
Mount the UI extension into argocd-server (if not already done):
- The UI bundle needs to be available at
/tmp/extensions/ inside the argocd-server pod
- For local dev, create a ConfigMap from the built JS and mount it
-
Restart argocd-server to pick up the new extension:
kubectl -n argocd rollout restart deployment argocd-server
kubectl -n argocd rollout status deployment argocd-server --timeout=120s
-
Verify the backend is running:
kubectl -n argocd get pods -l app.kubernetes.io/name=argoplane-$ARGUMENTS-backend
Verification
- Open ArgoCD UI (http://localhost:8080)
- Navigate to an application
- Check for the new extension tab or status panel item