veza/k8s/cdn/cloudfront-config.yaml

59 lines
1.6 KiB
YAML

# AWS CloudFront CDN Configuration
# This file contains example configuration for AWS CloudFront CDN integration
---
apiVersion: v1
kind: ConfigMap
metadata:
name: cloudfront-config
namespace: veza-production
data:
# CloudFront Distribution ID
distribution-id: "your-cloudfront-distribution-id"
# CloudFront Domain
cloudfront-domain: "d1234567890.cloudfront.net"
# Origin settings
origin-domain: "app.veza.com"
origin-protocol: "https"
# Cache behaviors
cache-behaviors: |
# Default cache behavior
PathPattern: "*"
ViewerProtocolPolicy: redirect-to-https
AllowedMethods: GET, HEAD, OPTIONS
CachedMethods: GET, HEAD
CachePolicyId: CachingOptimized
# Static assets - long cache
PathPattern: "/static/*"
ViewerProtocolPolicy: redirect-to-https
AllowedMethods: GET, HEAD, OPTIONS
CachedMethods: GET, HEAD
CachePolicyId: CachingOptimized
MinTTL: 31536000 # 1 year
# Audio files - medium cache
PathPattern: "/audio/*"
ViewerProtocolPolicy: redirect-to-https
AllowedMethods: GET, HEAD, OPTIONS
CachedMethods: GET, HEAD
CachePolicyId: CachingOptimized
MinTTL: 2592000 # 30 days
# API - no cache
PathPattern: "/api/*"
ViewerProtocolPolicy: https-only
AllowedMethods: GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE
CachedMethods: GET, HEAD
CachePolicyId: CachingDisabled
---
# Note: AWS credentials should be stored in a secret
# kubectl create secret generic aws-secrets \
# --from-literal=access-key-id=your-access-key \
# --from-literal=secret-access-key=your-secret-key \
# -n veza-production