Core agent system for Raspberry Pi k0s cluster management: Agents: - k8s-orchestrator: Central task delegation and decision making - k8s-diagnostician: Cluster health, logs, troubleshooting - argocd-operator: GitOps deployments and rollbacks - prometheus-analyst: Metrics queries and alert analysis - git-operator: Manifest management and PR workflows Workflows: - cluster-health-check.yaml: Scheduled health assessment - deploy-app.md: Application deployment guide - pod-crashloop.yaml: Automated incident response Skills: - /cluster-status: Quick health overview - /deploy: Deploy or update applications - /diagnose: Investigate cluster issues Configuration: - Agent definitions with model assignments (Opus/Sonnet) - Autonomy rules (safe/confirm/forbidden actions) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
98 lines
2.2 KiB
Markdown
98 lines
2.2 KiB
Markdown
# Deploy Application Workflow
|
|
|
|
A simple workflow for deploying new applications or updating existing ones.
|
|
|
|
## When to use
|
|
|
|
Use this workflow when:
|
|
- Deploying a new application to the cluster
|
|
- Updating an existing application's configuration
|
|
- Rolling out a new version of an application
|
|
|
|
## Steps
|
|
|
|
### 1. Gather Requirements
|
|
|
|
Ask the user for:
|
|
- Application name
|
|
- Container image and tag
|
|
- Namespace (default: `default`)
|
|
- Resource requirements (CPU/memory limits)
|
|
- Exposed ports
|
|
- Any special requirements (tolerations for Pi 3, etc.)
|
|
|
|
### 2. Check Existing State
|
|
|
|
Delegate to **argocd-operator** (haiku):
|
|
- Check if application already exists in ArgoCD
|
|
- If exists, get current status and version
|
|
|
|
Delegate to **k8s-diagnostician** (haiku):
|
|
- If exists, check current pod status
|
|
- Check namespace exists
|
|
|
|
### 3. Create/Update Manifests
|
|
|
|
Delegate to **git-operator** (sonnet):
|
|
- Create or update deployment manifest
|
|
- Create or update service manifest (if ports exposed)
|
|
- Create or update kustomization.yaml
|
|
- Include appropriate resource limits for Pi cluster:
|
|
```yaml
|
|
resources:
|
|
requests:
|
|
memory: "64Mi"
|
|
cpu: "50m"
|
|
limits:
|
|
memory: "128Mi"
|
|
cpu: "200m"
|
|
```
|
|
- If targeting Pi 3, add tolerations:
|
|
```yaml
|
|
tolerations:
|
|
- key: "node-type"
|
|
operator: "Equal"
|
|
value: "pi3"
|
|
effect: "NoSchedule"
|
|
```
|
|
|
|
### 4. Commit Changes
|
|
|
|
Delegate to **git-operator** (sonnet):
|
|
- Create feature branch: `deploy/<app-name>`
|
|
- Commit with message: `feat: deploy <app-name>`
|
|
- Push branch to origin
|
|
- Create pull request
|
|
|
|
**[CONFIRM]** User must approve the PR creation.
|
|
|
|
### 5. Sync Application
|
|
|
|
After PR is merged:
|
|
|
|
Delegate to **argocd-operator** (sonnet):
|
|
- Create ArgoCD application if new
|
|
- Trigger sync for the application
|
|
- Wait for sync to complete
|
|
|
|
**[CONFIRM]** User must approve the sync operation.
|
|
|
|
### 6. Verify Deployment
|
|
|
|
Delegate to **k8s-diagnostician** (haiku):
|
|
- Check pods are running
|
|
- Check no restart loops
|
|
- Verify resource usage is within limits
|
|
|
|
Report final status to user.
|
|
|
|
## Rollback
|
|
|
|
If deployment fails:
|
|
|
|
Delegate to **argocd-operator**:
|
|
- Check application history
|
|
- Propose rollback to previous version
|
|
|
|
**[CONFIRM]** User must approve rollback.
|