# Willyu1007 AI First Template Devops Deploy Service

> Scaffold: HTTP Service Deployment

- Skill: `tomevault-io/willyu1007-ai-first-template-devops-deploy-service` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/willyu1007-ai-first-template-devops-deploy-service`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/willyu1007-ai-first-template-devops-deploy-service/raw
- Safety review: pending (external: skill-scanner PASS, skillspector CAUTION)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/willyu1007-ai-first-template-devops-deploy-service

---

# Scaffold: HTTP Service Deployment

This document is an entrypoint for service deployment scaffolding. The step-by-step flow is in
/.system/skills/ssot/repo/scaffolding/devops-deploy-service/SKILL.md.

---

## 1. Purpose & Scope

**Purpose**: Generate deployment skeleton for running an HTTP service in target environments (Kubernetes, cloud platforms, etc.).

**Scope**:
- Creates deployment configuration files
- Sets up environment-specific configurations
- Generates deployment scripts
- Records deployment decisions in workdocs

**Out of scope**:
- Actual deployment execution (requires human with credentials)
- Packaging/Docker build (see devops_packaging_service.md)
- Job deployment (see devops_deploy_job.md)
- Infrastructure provisioning

---

## 2. Inputs & Preconditions

### Required Inputs

| Parameter | Type | Description |
|-----------|------|-------------|
| `service_name` | string | Service identifier (matches packaging) |
| `environment` | string | Target environment: `dev`, `staging`, `prod` |
| `replicas` | integer | Number of replicas (default: 1) |

### Optional Inputs

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `image_tag` | string | `latest` | Docker image tag |
| `port` | integer | 8080 | Service port |
| `resources` | object | {} | CPU/memory limits |
| `env_vars` | object | {} | Environment variables |
| `secrets` | array | [] | Secret references |
| `ingress` | object | {} | Ingress configuration |

### Preconditions

1. Service has been packaged (see devops_packaging_service.md)
2. `/ops/deploy/` directory exists
3. Human has deployment credentials for target environment
4. Target environment infrastructure exists

---

## 3. Step-by-Step Flow (AI + Human)

See /.system/skills/ssot/repo/scaffolding/devops-deploy-service/SKILL.md.

---

## 4. Tools & Scripts

| Tool | Purpose |
|------|---------|
| `scripts/devops/scaffold/devops_deploy_service.py` | Orchestrator script |
| `/ops/deploy/scripts/deploy.sh` | Generated deploy script |

---

## 5. Outputs & Side Effects

### Files Created

```
ops/deploy/services/<service_name>/<environment>/
  deployment.yaml     # Kubernetes Deployment
  service.yaml        # Kubernetes Service
  ingress.yaml        # Ingress (if configured)
  configmap.yaml      # ConfigMap (if env_vars)
  config.yaml         # Deployment configuration
  deploy.sh           # Deployment script
  README.md           # Human-facing documentation
```

### Kubernetes Deployment Template

```yaml
# Auto-generated by devops_deploy_service scaffold
apiVersion: apps/v1
kind: Deployment
metadata:
  name: <service_name>
  namespace: <environment>
spec:
  replicas: <replicas>
  selector:
    matchLabels:
      app: <service_name>
  template:
    metadata:
      labels:
        app: <service_name>
    spec:
      containers:
        - name: <service_name>
          image: <registry>/<service_name>:<image_tag>
          ports:
            - containerPort: <port>
          resources:
            limits:
              cpu: "500m"
              memory: "512Mi"
            requests:
              cpu: "100m"
              memory: "128Mi"
          livenessProbe:
            httpGet:
              path: /health
              port: <port>
            initialDelaySeconds: 30
            periodSeconds: 10
```

### Configuration File

```yaml
service_name: <service_name>
environment: <environment>
replicas: <replicas>
image_tag: latest
port: 8080
resources:
  limits:
    cpu: "500m"
    memory: "512Mi"
  requests:
    cpu: "100m"
    memory: "128Mi"
env_vars: {}
secrets: []
ingress:
  enabled: false
  host: ""
```

---

## 6. Safety & Rollback

### Safety Measures

- `--dry-run` always available for preview
- Human approval required before execution
- No actual deployment during scaffold
- Credentials not stored in generated files
- Production deployments require additional approval

### Rollback Procedure

For deployment rollback (human executes):
```bash
kubectl rollout undo deployment/<service_name> -n <environment>
```

For scaffold rollback:
1. Delete the deployment directory:
   ```bash
   rm -rf ops/deploy/services/<service_name>/<environment>/
   ```

---

## 7. Deployment Execution (Human Required)

After scaffold, human executes deployment:

1. Review configuration:
   ```bash
   cat ops/deploy/services/<service_name>/<environment>/config.yaml
   ```

2. Apply to cluster:
   ```bash
   kubectl apply -f ops/deploy/services/<service_name>/<environment>/
   ```

3. Verify deployment:
   ```bash
   kubectl get pods -n <environment> -l app=<service_name>
   kubectl logs -n <environment> -l app=<service_name>
   ```

4. Record outcome in workdocs

---

## 8. Related Documents

- `/.system/skills/ssot/repo/scaffolding/devops-deploy-job/templates/deploy_template.md` - Deployment knowledge template
- `/.system/skills/ssot/repo/scaffolding/devops-packaging-service/SKILL.md` - Service packaging scaffold
- `/.system/skills/ssot/repo/scaffolding/devops-deploy-job/SKILL.md` - Job deployment scaffold
- `/ops/deploy/AGENTS.md` - Deployment strategy

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/willyu1007) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-14 -->

