Agent skill
crossplane
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/crossplane
SKILL.md
馃攢 Skill: Crossplane Multi-Cloud Management
馃搵 Metadata
| Atributo | Valor |
|---|---|
| ID | cicd-crossplane |
| Nivel | 馃敶 Avanzado |
| Versi贸n | 1.0.0 |
| Keywords | crossplane, multi-cloud, kubernetes, infrastructure |
馃攽 Keywords
crossplane,multi-cloud,k8s-native,infrastructure-api,@skill:crossplane
馃摉 Descripci贸n
Crossplane extiende Kubernetes para gestionar infraestructura cloud usando custom resources. Permite provisioning declarativo multi-cloud para backends Flutter usando APIs de Kubernetes.
馃捇 Implementaci贸n
1. Install Crossplane
# Install Crossplane
helm repo add crossplane-stable https://charts.crossplane.io/stable
helm repo update
helm install crossplane \
crossplane-stable/crossplane \
--namespace crossplane-system \
--create-namespace
# Verify installation
kubectl get pods -n crossplane-system
2. Install Provider (AWS Example)
# aws-provider.yaml
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-aws
spec:
package: xpkg.upbound.io/upbound/provider-aws:v0.40.0
kubectl apply -f aws-provider.yaml
# Configure AWS credentials
kubectl create secret generic aws-creds \
-n crossplane-system \
--from-file=credentials=./aws-credentials.txt
# Create ProviderConfig
kubectl apply -f - <<EOF
apiVersion: aws.upbound.io/v1beta1
kind: ProviderConfig
metadata:
name: default
spec:
credentials:
source: Secret
secretRef:
namespace: crossplane-system
name: aws-creds
key: credentials
EOF
3. Provision RDS Database
# rds-instance.yaml
apiVersion: rds.aws.upbound.io/v1beta1
kind: Instance
metadata:
name: myapp-postgres
spec:
forProvider:
region: us-east-1
dbInstanceClass: db.t3.micro
engine: postgres
engineVersion: "15.4"
allocatedStorage: 20
storageType: gp3
storageEncrypted: true
username: admin
passwordSecretRef:
name: db-password
namespace: default
key: password
multiAz: true
backupRetentionPeriod: 7
skipFinalSnapshot: false
providerConfigRef:
name: default
4. Provision S3 Bucket
# s3-bucket.yaml
apiVersion: s3.aws.upbound.io/v1beta1
kind: Bucket
metadata:
name: myapp-storage-prod
spec:
forProvider:
region: us-east-1
versioning:
- enabled: true
serverSideEncryptionConfiguration:
- rule:
- applyServerSideEncryptionByDefault:
- sseAlgorithm: AES256
providerConfigRef:
name: default
5. Composite Resource Definition (XRD)
# backend-xrd.yaml
apiVersion: apiextensions.crossplane.io/v1
kind: CompositeResourceDefinition
metadata:
name: xbackends.myapp.io
spec:
group: myapp.io
names:
kind: XBackend
plural: xbackends
claimNames:
kind: Backend
plural: backends
versions:
- name: v1alpha1
served: true
referenceable: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
parameters:
type: object
properties:
environment:
type: string
enum: [dev, staging, production]
dbSize:
type: string
enum: [small, medium, large]
storageSize:
type: integer
required:
- environment
- dbSize
6. Composition
# backend-composition.yaml
apiVersion: apiextensions.crossplane.io/v1
kind: Composition
metadata:
name: backend-aws
spec:
compositeTypeRef:
apiVersion: myapp.io/v1alpha1
kind: XBackend
resources:
- name: database
base:
apiVersion: rds.aws.upbound.io/v1beta1
kind: Instance
spec:
forProvider:
region: us-east-1
engine: postgres
engineVersion: "15.4"
patches:
- fromFieldPath: spec.parameters.dbSize
toFieldPath: spec.forProvider.dbInstanceClass
transforms:
- type: map
map:
small: db.t3.micro
medium: db.t3.small
large: db.t3.medium
- name: storage
base:
apiVersion: s3.aws.upbound.io/v1beta1
kind: Bucket
spec:
forProvider:
region: us-east-1
patches:
- fromFieldPath: spec.parameters.environment
toFieldPath: metadata.labels.environment
7. Claim Backend Resources
# backend-claim.yaml
apiVersion: myapp.io/v1alpha1
kind: Backend
metadata:
name: myapp-production
namespace: default
spec:
parameters:
environment: production
dbSize: large
storageSize: 100
compositionSelector:
matchLabels:
provider: aws
8. Multi-Cloud Support
# Install multiple providers
---
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-aws
spec:
package: xpkg.upbound.io/upbound/provider-aws:v0.40.0
---
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-gcp
spec:
package: xpkg.upbound.io/upbound/provider-gcp:v0.40.0
---
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-azure
spec:
package: xpkg.upbound.io/upbound/provider-azure:v0.40.0
馃幆 Mejores Pr谩cticas
- Use Compositions para abstraer cloud providers
- XRDs para APIs consistentes
- GitOps con ArgoCD para gesti贸n
- RBAC para control de acceso
- Policy con OPA para governance
- Observability con Prometheus
- Multi-tenancy con namespaces
馃摎 Recursos
Versi贸n: 1.0.0
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?