@gonzih/skills-devops 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@gonzih/skills-devops","version":"1.0.0","description":"DevOps skills for Claude Code","type":"module","scripts":{"postinstall":"node install.js"},"files":["skills/","install.js","README.md"],"keywords":["claude","mcp","skills","devops"],"license":"MIT"}
1
+ {"name":"@gonzih/skills-devops","version":"1.1.0","description":"DevOps skills for Claude Code","type":"module","scripts":{"postinstall":"node install.js"},"files":["skills/","install.js","README.md"],"keywords":["claude","mcp","skills","devops"],"license":"MIT"}
@@ -20,6 +20,15 @@ Diagnose failing CI/CD pipelines, identify root causes, and propose or apply fix
20
20
  4. Propose a fix and explain the root cause
21
21
  5. Offer to apply the fix to the config file
22
22
 
23
+ ## Pulumi CI patterns (GitHub Actions)
24
+ When the pipeline deploys infrastructure with Pulumi, check for:
25
+ - Action: `pulumi/actions@v5` — required for `pulumi preview` and `pulumi up` steps
26
+ - Required env var: `PULUMI_ACCESS_TOKEN` (must be stored as a repository secret)
27
+ - Common failures:
28
+ - **Stack lock**: another run holds the state lock — cancel or use `pulumi cancel`
29
+ - **Config missing**: stack config not committed or secret not set — run `pulumi config set <key>`
30
+ - **Passphrase prompt**: `PULUMI_CONFIG_PASSPHRASE` env var missing for self-managed backends
31
+
23
32
  ## Example
24
33
  User: "My GitHub Actions deploy job is failing with 'Error: Unable to locate executable file: docker'"
25
34
  → Diagnose missing Docker setup step, suggest `docker/setup-buildx-action`, apply to workflow YAML.
@@ -21,6 +21,12 @@ Guide incident response from detection through resolution, coordinate communicat
21
21
  5. **Resolve**: Confirm resolution criteria met; set follow-up review time
22
22
  6. **Postmortem**: Generate blameless postmortem doc with 5-whys root cause analysis and action items
23
23
 
24
+ ## Infra rollback (Pulumi)
25
+ When the incident involves infrastructure managed by Pulumi:
26
+ 1. Run `pulumi stack history` to list recent deployments and identify the last known-good deploy
27
+ 2. Re-deploy the previous version: check out the corresponding commit and run `pulumi up`, or use `pulumi up --target-replace <urn>` for surgical replacement of a single resource
28
+ 3. Use `pulumi refresh` after rollback to confirm state matches real infrastructure
29
+
24
30
  ## Example
25
31
  User: "Production database is down, started 14:32 UTC, ~10k users affected"
26
32
  → Declares SEV1, drafts initial stakeholder update, starts timeline, prompts for on-call contacts, and guides through mitigation steps to resolution and postmortem.
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: pulumi-stack
3
+ description: Scaffold, manage, and deploy infrastructure as code using Pulumi (TypeScript-first).
4
+ triggers: ["pulumi", "infrastructure as code", "iac", "deploy infrastructure", "pulumi stack"]
5
+ ---
6
+ # Pulumi Stack
7
+
8
+ ## What this skill does
9
+ Helps you scaffold new Pulumi stacks, convert from Terraform, write programs for common cloud patterns, and manage the full deploy lifecycle using real TypeScript/Python/Go — not DSLs.
10
+
11
+ ## How to invoke
12
+ /pulumi-stack
13
+
14
+ ## Workflow steps
15
+
16
+ ### Step 1 — Choose stack type
17
+ Identify cloud target (AWS/GCP/Azure/K8s) and language preference (default: TypeScript).
18
+
19
+ ### Step 2 — Scaffold or convert
20
+ New stack: `pulumi new aws-typescript` (or relevant template)
21
+ From Terraform: `pulumi convert --from terraform --language typescript`
22
+
23
+ ### Step 3 — Write the program
24
+ Common patterns:
25
+ - VPC + subnets: use `@pulumi/awsx` NetworkX components
26
+ - ECS/EKS cluster: `awsx.ecs.Cluster` or `aws.eks.Cluster`
27
+ - RDS: `aws.rds.Instance` with `skipFinalSnapshot: false`
28
+ - S3 + CloudFront CDN: `aws.s3.Bucket` + `aws.cloudfront.Distribution`
29
+ - Secrets: `pulumi config set --secret DATABASE_PASSWORD`
30
+
31
+ ### Step 4 — Preview and deploy
32
+ ```bash
33
+ pulumi preview # dry run, shows what will change
34
+ pulumi up # apply changes
35
+ pulumi stack history # audit trail
36
+ ```
37
+
38
+ ### Step 5 — Drift detection
39
+ ```bash
40
+ pulumi refresh # sync state with real infra
41
+ ```
42
+
43
+ ## Example outputs
44
+ - Scaffolded TypeScript Pulumi program for AWS VPC + ECS
45
+ - Converted Terraform module to Pulumi TypeScript
46
+ - Deploy preview showing resource changes
@@ -20,6 +20,12 @@ Generate clear, actionable operational runbooks for services, infrastructure com
20
20
  4. Review for completeness: every step has a verification command, rollback is covered
21
21
  5. Save to the appropriate location (e.g., `docs/runbooks/<service>.md`)
22
22
 
23
+ ## Infra change runbooks (Pulumi)
24
+ When the runbook covers an infrastructure change managed by Pulumi, include:
25
+ - `pulumi preview` output showing the planned resource changes (paste or link)
26
+ - Link to the stack in Pulumi Cloud (e.g. `https://app.pulumi.com/<org>/<project>/<stack>`)
27
+ - Rollback step using `pulumi stack history` to identify the previous deployment and re-run it
28
+
23
29
  ## Example
24
30
  User: "Write a runbook for restarting the payment-service in Kubernetes"
25
31
  → Produces a runbook covering health checks, drain, rolling restart, verification, and rollback with `kubectl` commands.