# Deploy Application Deploy a new application or update an existing one on the Raspberry Pi Kubernetes cluster. ## Usage ``` /deploy /deploy --image /deploy --update ``` ## What it does Guides you through deploying an application using the GitOps workflow with ArgoCD. ## Interactive Mode When run without full arguments, the skill will ask for: 1. **Application name** - Name for the deployment 2. **Container image** - Full image path with tag 3. **Namespace** - Target namespace (default: default) 4. **Ports** - Exposed ports (comma-separated) 5. **Resources** - Memory/CPU limits (defaults provided for Pi) 6. **Pi 3 compatible?** - Whether to add tolerations for Pi 3 node ## Quick Deploy ``` /deploy myapp --image ghcr.io/user/myapp:latest --namespace apps --port 8080 ``` ## Steps 1. **Check existing state** - See if app exists, current status 2. **Generate manifests** - Create deployment, service, kustomization 3. **Create PR** - Push to GitOps repo, create PR 4. **Sync** - After PR merge, trigger ArgoCD sync 5. **Verify** - Confirm pods are running ## Resource Defaults (Pi-optimized) ```yaml # Standard workload requests: memory: "64Mi" cpu: "50m" limits: memory: "128Mi" cpu: "200m" # Lightweight (Pi 3 compatible) requests: memory: "32Mi" cpu: "25m" limits: memory: "64Mi" cpu: "100m" ``` ## Examples ### Deploy new app ``` /deploy homepage --image nginx:alpine --port 80 --namespace web ``` ### Update existing app ``` /deploy api --update --image api:v2.0.0 ``` ### Deploy to Pi 3 ``` /deploy lightweight-app --image app:latest --pi3 ``` ## Confirmation Points - **[CONFIRM]** Creating PR in GitOps repo - **[CONFIRM]** Syncing ArgoCD application - **[CONFIRM]** Rollback if deployment fails