Files
claude-code/workflows/deploy/deploy-app.md
OpenCode Test a80f714fc2 feat: Implement Phase 1 K8s agent orchestrator system
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>
2025-12-26 11:25:11 -08:00

2.2 KiB

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:
    resources:
      requests:
        memory: "64Mi"
        cpu: "50m"
      limits:
        memory: "128Mi"
        cpu: "200m"
    
  • If targeting Pi 3, add tolerations:
    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.