administering-linux
Manage Linux systems covering systemd services, process management, filesystems, networking, performance tuning, and…
Managing secrets (API keys, database credentials, certificates) with Vault, cloud providers, and Kubernetes. Use when storing sensitive data, rotating credentials, syncing secrets to Kubernetes, implementing dynamic secrets, or scanning code for leaked secrets.
Claude Code
$ npx -y skills add ancoleman/ai-design-components --skill secret-management --agent claude-code
Codex
$ npx skills add ancoleman/ai-design-components --skill secret-management -a codex -y
Cursor
$ npx skills add ancoleman/ai-design-components --skill secret-management -a cursor -y
Gemini CLI
$ npx skills add ancoleman/ai-design-components --skill secret-management -a gemini-cli -y
GitHub Copilot
$ npx skills add ancoleman/ai-design-components --skill secret-management -a github-copilot -y
OpenCode
$ npx skills add ancoleman/ai-design-components --skill secret-management -a opencode -y
Windsurf
$ npx skills add ancoleman/ai-design-components --skill secret-management -a windsurf -y
name: managing-secrets description: Managing secrets (API keys, database credentials, certificates) with Vault, cloud providers, and Kubernetes. Use when storing sensitive data, rotating credentials, syncing secrets to Kubernetes, implementing dynamic secrets, or scanning code for leaked secrets.
Secure storage, rotation, and delivery of secrets (API keys, database credentials, TLS certificates) for applications and infrastructure.
Use when:
| Scenario | Primary Choice | Alternative | |----------|----------------|-------------| | Kubernetes + Multi-Cloud | Vault + ESO | Cloud Secret Manager + ESO | | Kubernetes + Single Cloud | Cloud Secret Manager + ESO | Vault + ESO | | Serverless (AWS Lambda) | AWS Secrets Manager | AWS Parameter Store | | Multi-Cloud Enterprise | HashiCorp Vault | Doppler (SaaS) | | Small Team (<10 apps) | Doppler, Infisical | 1Password Secrets Automation | | GitOps-Centric | SOPS (git-encrypted) | Sealed Secrets (K8s-only) |
**Decision Tree:**
| Secret Type | Use Dynamic? | TTL | Solution | |-------------|-------------|-----|----------| | Database credentials | YES | 1 hour | Vault DB engine | | Cloud IAM (AWS/GCP) | YES | 15 min | Vault cloud engine | | SSH/RDP access | YES | 5 min | Vault SSH engine | | TLS certificates | YES | 24 hours | Vault PKI / cert-manager | | Third-party API keys | NO | Quarterly | Vault KV v2 (manual rotation) |
| Method | Use Case | Rotation | Restart Required | |--------|----------|----------|------------------| | **External Secrets Operator** | Static secrets, periodic sync | Polling (1h) | Yes | | **Secrets Store CSI Driver** | File-based, watch rotation | inotify | No | | **Vault Secrets Operator** | Vault-specific, dynamic | Automatic renewal | Optional |
# Create secret vault kv put secret/myapp/config api_key=sk_live_EXAMPLE # Read secret vault kv get secret/myapp/config # List versions vault kv metadata get secret/myapp/config
# Configure PostgreSQL
vault write database/config/postgres \
plugin_name=postgresql-database-plugin \
connection_url="postgresql://{{username}}:{{password}}@postgres:5432/mydb"
# Create role
vault write database/roles/app-role \
db_name=postgres \
creation_statements="CREATE ROLE \"{{name}}\"..." \
default_ttl="1h"
# Generate credentials
vault read database/creds/app-roleFor detailed Vault architecture, see `references/vault-architecture.md`.
Syncs secrets from 30+ providers to Kubernetes Secrets.
apiVersion: external-secrets.io/v1beta1
kind: SecretStore
metadata:
name: vault-backend
spec:
provider:
vault:
server: "https://vault.example.com"
auth:
kubernetes:
role: "app-role"apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: database-credentials
spec:
refreshInterval: 1h
secretStoreRef:
name: vault-backend
target:
name: db-credentials
data:
- secretKey: password
remoteRef:
key: secret/data/database/configKubernetes-native Vault integration with automatic lease renewal.
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultDynamicSecret
metadata:
name: postgres-creds
spec:
vaultAuthRef: vault-auth
mount: database
path: creds/app-role
renewalPercent: 67 # Renew at 67% of TTL
destination:
name: dynamic-db-credsFor ESO vs CSI vs VSO comparison, see `references/kubernetes-integration.md`.
1. Create new secret version in Vault 2. Update staging environment 3. Monitor for errors (24-48 hours) 4. Gradual production rollout (10% → 50% → 100%) 5. Revoke old secret (after 7 days)
Vault auto-generates credentials with short TTL:
Using cert-manager + Vault PKI:
For detailed rotation workflows, see `references/rotation-patterns.md`.
import hvac client = hvac.Client(url='https://vault.example.com') client.auth.kubernetes(role='app-role', jwt=jwt) # Fetch dynamic credentials response = client.secrets.database.generate_credentials(name='postgres-role') username = response['data']['username'] password = response['data']['password']
import vault "github.com/hashicorp/vault/api" client, _ := va
Comprehensive UI/UX and Backend component design skills for AI-assisted development with Claude
Manage Linux systems covering systemd services, process management, filesystems, networking, performance tuning, and…
Data pipelines, feature stores, and embedding generation for AI/ML systems. Use when building RAG pipelines, ML feature serving,…
Strategic guidance for designing modern data platforms, covering storage paradigms (data lake, warehouse, lakehouse), modeling…
Design cloud network architectures with VPC patterns, subnet strategies, zero trust principles, and hybrid connectivity. Use when…
Design comprehensive security architectures using defense-in-depth, zero trust principles, threat modeling (STRIDE, PASTA), and…
Assembles component outputs from AI Design Components skills into unified, production-ready component systems with validated…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.