Cloud-Specific Progressive Delivery Configurations
AWS Implementation
EKS Configuration
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: progressive-delivery-cluster
region: us-west-2
spec:
iam:
withOIDC: true
addons:
- name: aws-load-balancer-controller
- name: aws-for-fluent-bit
- name: aws-cloudwatch-metrics
flux:
gitProvider: github
flags:
components-extra: image-reflector-controller,image-automation-controller
AWS App Mesh Integration
apiVersion: appmesh.k8s.aws/v1beta2
kind: VirtualService
metadata:
name: app-service
spec:
provider:
virtualRouter:
virtualRouterRef:
name: app-router
---
apiVersion: appmesh.k8s.aws/v1beta2
kind: VirtualRouter
metadata:
name: app-router
spec:
listeners:
- portMapping:
port: 8080
protocol: http
routes:
- name: primary-route
httpRoute:
match:
prefix: /
action:
weightedTargets:
- virtualNodeRef:
name: app-primary
weight: 90
- virtualNodeRef:
name: app-canary
weight: 10
Azure Implementation
AKS Configuration
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
azure.workload.identity/client-id: ${AZURE_CLIENT_ID}
azure.workload.identity/tenant-id: ${AZURE_TENANT_ID}
spec:
template:
metadata:
labels:
azure.workload.identity/use: "true"
Azure Traffic Manager
apiVersion: network.azure.io/v1
kind: TrafficManagerProfile
metadata:
name: app-traffic
spec:
trafficRoutingMethod: Weighted
dnsConfig:
relativeName: app-progressive
ttl: 30
monitorConfig:
protocol: HTTPS
port: 443
path: /health
endpoints:
- name: primary
type: ExternalEndpoints
weight: 90
- name: canary
type: ExternalEndpoints
weight: 10
GCP Implementation
GKE Configuration
apiVersion: container.google.com/v1beta1
kind: ClusterConfig
metadata:
name: progressive-delivery-gke
spec:
workloadIdentityConfig:
workloadPool: ${PROJECT_ID}.svc.id.goog
meshConfig:
mode: ENABLED
Cloud Load Balancing
apiVersion: networking.gke.io/v1
kind: MultiClusterIngress
metadata:
name: app-ingress
spec:
template:
spec:
backend:
serviceName: app-backend
servicePort: 80
rules:
- http:
paths:
- path: /*
backend:
serviceName: app-service
servicePort: 80
Cloud-Specific Best Practices
- AWS
- Use AWS App Mesh for service mesh
- Implement AWS X-Ray for tracing
- Configure CloudWatch metrics
- Leverage IAM roles for service accounts
- Azure
- Use Azure Service Mesh
- Implement Application Insights
- Configure Azure Monitor
- Use Azure Workload Identity
- GCP
- Use Anthos Service Mesh
- Implement Cloud Trace
- Configure Cloud Monitoring
- Use Workload Identity
- Common Patterns
- Container Registry setup
- DNS configuration
- SSL/TLS management
- Backup and DR strategies