AgentSkillsCN

devops-deploy-service

服务部署配置的脚手架搭建。关键词:部署、服务、DevOps、脚手架搭建。

SKILL.md
--- frontmatter
name: devops-deploy-service
description: "Scaffold service deployment configuration. Keywords: deploy, service, devops, scaffolding."

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

ParameterTypeDescription
service_namestringService identifier (matches packaging)
environmentstringTarget environment: dev, staging, prod
replicasintegerNumber of replicas (default: 1)

Optional Inputs

ParameterTypeDefaultDescription
image_tagstringlatestDocker image tag
portinteger8080Service port
resourcesobject{}CPU/memory limits
env_varsobject{}Environment variables
secretsarray[]Secret references
ingressobject{}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

ToolPurpose
scripts/devops/scaffold/devops_deploy_service.pyOrchestrator script
/ops/deploy/scripts/deploy.shGenerated deploy script

5. Outputs & Side Effects

Files Created

code
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