返回 Skill 列表
extension
分类: 开发与工程无需 API Key

infrastructure-testing

在Kubernetes集群上运行TestKube和PGBouncer测试,并进行必要的上下文验证,以防止意外部署到错误的环境中

person作者: jakexiaohubgithub

Infrastructure Testing

Test infrastructure components (TestKube, PGBouncer) on Kubernetes clusters. CRITICAL: Always verify context to prevent wrong-cluster operations.

⚠️ SAFETY FIRST

MANDATORY before ANY operation:

# Verify current context
kubectl config current-context

# Confirm it matches your intended environment
# NEVER proceed if context is wrong

Pre-Flight Checklist

  • [ ] Verified kubectl context matches target environment
  • [ ] TestKube CLI installed and configured
  • [ ] Required secrets exist in testkube namespace
  • [ ] Understood which environment you're targeting

TestKube Workflow

1. Set Context (MANDATORY)

# Switch to correct context
kubectl config use-context fbg-inf-dev-1

# Verify
kubectl config current-context

2. Configure TestKube CLI

# Use proxy client mode with current context
testkube set context --client proxy --kubeconfig ~/.kube/config --namespace testkube

3. Run TestWorkflows

# Run with real-time output
testkube run testworkflow <workflow-name> --watch

# Example
testkube run testworkflow k6-pgbouncer-rolling-restart-psql --watch

4. Alternative: kubectl Direct

kubectl create -f - <<EOF
apiVersion: testworkflows.testkube.io/v1
kind: TestWorkflowExecution
metadata:
  name: test-$(date +%s)
  namespace: testkube
spec:
  testWorkflow:
    name: <workflow-name>
EOF

Legacy Test Commands

ALWAYS specify --context explicitly:

# Run test
kubectl --context=fbg-inf-dev-1 testkube run test <test-name> -v TEST_ENVIRONMENT=fbg-inf-dev-1

# With secrets
kubectl --context=fbg-inf-dev-1 testkube run testworkflow <name> \
  -v TEST_ENVIRONMENT=fbg-inf-dev-1 \
  --secret-variable IGT_USER=username \
  --secret-variable IGT_PW=password

# Deploy test
kubectl --context=fbg-inf-dev-1 apply -f tests/your-test.yaml

Verification Commands

# List tests
kubectl --context=fbg-inf-dev-1 get tests -n testkube

# List pods
kubectl --context=fbg-inf-dev-1 get pods -n testkube

# Check execution status
testkube get testworkflowexecution <execution-id>

Environment Reference

| Environment | Context | Notes | |-------------|---------|-------| | Dev | fbg-inf-dev-1 | Safe for testing | | Staging | fbg-inf-staging-1 | Pre-prod validation | | Prod | fbg-inf-prod-1 | EXTREME CAUTION |

PGBouncer Configuration

  • Service: pgbouncer-ats port 5432
  • Auth: AWS IAM roles + SSM Parameter Store
  • Role: arn:aws:iam::222019643140:role/eks-application-iam-pgbouncer-role

Best Practices

  • ✅ Always use proxy client mode locally
  • ✅ Set kubectl context before testkube configuration
  • ✅ Use --watch flag for real-time output
  • ✅ Verify branch targeting in test YAML files
  • ✅ Never hardcode credentials - use SSM/secrets

Web UI

Access: https://testkube.cicd.fanatics.bet/clusters/inf-dev-1/tests