mirror of
https://github.com/wshobson/agents.git
synced 2026-03-18 17:47:16 +00:00
- Add 47 Agent Skills across 14 plugins following Anthropic's specification - Python (5): async patterns, testing, packaging, performance, UV package manager - JavaScript/TypeScript (4): advanced types, Node.js patterns, testing, modern JS - Kubernetes (4): manifests, Helm charts, GitOps, security policies - Cloud Infrastructure (4): Terraform, multi-cloud, hybrid networking, cost optimization - CI/CD (4): pipeline design, GitHub Actions, GitLab CI, secrets management - Backend (3): API design, architecture patterns, microservices - LLM Applications (4): LangChain, prompt engineering, RAG, evaluation - Blockchain/Web3 (4): DeFi protocols, NFT standards, Solidity security, Web3 testing - Framework Migration (4): React, Angular, database, dependency upgrades - Observability (4): Prometheus, Grafana, distributed tracing, SLO - Payment Processing (4): Stripe, PayPal, PCI compliance, billing - API Scaffolding (1): FastAPI templates - ML Operations (1): ML pipeline workflow - Security (1): SAST configuration - Restructure documentation into /docs directory - agent-skills.md: Complete guide to all 47 skills - agents.md: All 85 agents with model configuration - plugins.md: Complete catalog of 63 plugins - usage.md: Commands, workflows, and best practices - architecture.md: Design principles and patterns - Update README.md - Add Agent Skills banner announcement - Reduce length by ~75% with links to detailed docs - Add What's New section showcasing Agent Skills - Add Popular Use Cases with real examples - Improve navigation with Core Guides and Quick Links - Update marketplace.json with skills arrays for 14 plugins All 47 skills follow Agent Skills Specification: - Required YAML frontmatter (name, description) - Use when activation clauses - Progressive disclosure architecture - Under 1024 character descriptions
172 lines
3.6 KiB
YAML
172 lines
3.6 KiB
YAML
# Kubernetes Service Templates
|
|
|
|
---
|
|
# Template 1: ClusterIP Service (Internal Only)
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: <app-name>
|
|
namespace: <namespace>
|
|
labels:
|
|
app.kubernetes.io/name: <app-name>
|
|
app.kubernetes.io/instance: <instance-name>
|
|
annotations:
|
|
description: "Internal service for <app-name>"
|
|
spec:
|
|
type: ClusterIP
|
|
selector:
|
|
app.kubernetes.io/name: <app-name>
|
|
app.kubernetes.io/instance: <instance-name>
|
|
ports:
|
|
- name: http
|
|
port: 80
|
|
targetPort: http # Named port from container
|
|
protocol: TCP
|
|
sessionAffinity: None
|
|
|
|
---
|
|
# Template 2: LoadBalancer Service (External Access)
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: <app-name>-lb
|
|
namespace: <namespace>
|
|
labels:
|
|
app.kubernetes.io/name: <app-name>
|
|
annotations:
|
|
# AWS NLB annotations
|
|
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
|
|
service.beta.kubernetes.io/aws-load-balancer-scheme: "internet-facing"
|
|
service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true"
|
|
# SSL certificate (optional)
|
|
# service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "arn:aws:acm:..."
|
|
spec:
|
|
type: LoadBalancer
|
|
externalTrafficPolicy: Local # Preserves client IP
|
|
selector:
|
|
app.kubernetes.io/name: <app-name>
|
|
ports:
|
|
- name: http
|
|
port: 80
|
|
targetPort: http
|
|
protocol: TCP
|
|
- name: https
|
|
port: 443
|
|
targetPort: https
|
|
protocol: TCP
|
|
# Restrict access to specific IPs (optional)
|
|
# loadBalancerSourceRanges:
|
|
# - 203.0.113.0/24
|
|
|
|
---
|
|
# Template 3: NodePort Service (Direct Node Access)
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: <app-name>-np
|
|
namespace: <namespace>
|
|
labels:
|
|
app.kubernetes.io/name: <app-name>
|
|
spec:
|
|
type: NodePort
|
|
selector:
|
|
app.kubernetes.io/name: <app-name>
|
|
ports:
|
|
- name: http
|
|
port: 80
|
|
targetPort: 8080
|
|
nodePort: 30080 # Optional, 30000-32767 range
|
|
protocol: TCP
|
|
|
|
---
|
|
# Template 4: Headless Service (StatefulSet)
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: <app-name>-headless
|
|
namespace: <namespace>
|
|
labels:
|
|
app.kubernetes.io/name: <app-name>
|
|
spec:
|
|
clusterIP: None # Headless
|
|
selector:
|
|
app.kubernetes.io/name: <app-name>
|
|
ports:
|
|
- name: client
|
|
port: 9042
|
|
targetPort: 9042
|
|
publishNotReadyAddresses: true # Include not-ready pods in DNS
|
|
|
|
---
|
|
# Template 5: Multi-Port Service with Metrics
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: <app-name>-multi
|
|
namespace: <namespace>
|
|
labels:
|
|
app.kubernetes.io/name: <app-name>
|
|
annotations:
|
|
prometheus.io/scrape: "true"
|
|
prometheus.io/port: "9090"
|
|
prometheus.io/path: "/metrics"
|
|
spec:
|
|
type: ClusterIP
|
|
selector:
|
|
app.kubernetes.io/name: <app-name>
|
|
ports:
|
|
- name: http
|
|
port: 80
|
|
targetPort: 8080
|
|
protocol: TCP
|
|
- name: https
|
|
port: 443
|
|
targetPort: 8443
|
|
protocol: TCP
|
|
- name: grpc
|
|
port: 9090
|
|
targetPort: 9090
|
|
protocol: TCP
|
|
- name: metrics
|
|
port: 9091
|
|
targetPort: 9091
|
|
protocol: TCP
|
|
|
|
---
|
|
# Template 6: Service with Session Affinity
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: <app-name>-sticky
|
|
namespace: <namespace>
|
|
labels:
|
|
app.kubernetes.io/name: <app-name>
|
|
spec:
|
|
type: ClusterIP
|
|
selector:
|
|
app.kubernetes.io/name: <app-name>
|
|
ports:
|
|
- name: http
|
|
port: 80
|
|
targetPort: 8080
|
|
protocol: TCP
|
|
sessionAffinity: ClientIP
|
|
sessionAffinityConfig:
|
|
clientIP:
|
|
timeoutSeconds: 10800 # 3 hours
|
|
|
|
---
|
|
# Template 7: ExternalName Service (External Service Mapping)
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: external-db
|
|
namespace: <namespace>
|
|
spec:
|
|
type: ExternalName
|
|
externalName: db.example.com
|
|
ports:
|
|
- port: 5432
|
|
targetPort: 5432
|
|
protocol: TCP
|