apiVersion: apps/v1
kind: Deployment
metadata:
name: api-service
namespace: production
spec:
replicas: 3
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
template:
spec:
containers:
- name: api
image: 123.dkr.ecr.aws/api:v2.1
resources:
requests: cpu: 250m, mem: 256Mi
limits: cpu: 500m, mem: 512Mi
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: api-ingress
annotations:
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: ip
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:...
spec:
ingressClassName: alb
rules:
- host: api.example.com
http:
paths:
- pathType: Prefix
path: /
apiVersion: v1
kind: Secret
metadata:
name: api-secrets
namespace: production
annotations:
secret-store: aws-secrets-manager
type: Opaque
data:
DATABASE_URL: <KMS-encrypted>
API_KEY: <KMS-encrypted>
JWT_SECRET: <KMS-encrypted>