|
1 | 1 | --- |
2 | | -# The stalwart-migration-proxy-redis service maps to the Serverless Redis cache's master endpoint |
3 | | -apiVersion: v1 |
4 | | -kind: Service |
5 | | -metadata: |
6 | | - name: stalwart-migration-proxy-redis |
7 | | - annotations: |
8 | | - argocd.argoproj.io/sync-wave: "2" |
9 | | -spec: |
10 | | - type: ExternalName |
11 | | - externalName: "" # Populate with Kustomize |
12 | | - |
13 | | ---- |
14 | | -# Creates an internal access point for the Stalwart migration proxy |
| 2 | +# The stalwart-migration-proxy service creates a public load balancer exposing |
| 3 | +# our migration proxy to the world. |
15 | 4 | apiVersion: v1 |
16 | 5 | kind: Service |
17 | 6 | metadata: |
18 | 7 | name: stalwart-migration-proxy |
19 | 8 | annotations: |
20 | 9 | argocd.argoproj.io/sync-wave: "2" |
| 10 | + # EKS-specific annotations are documented in "Use Service Annotations to configure Network Load Balancers": |
| 11 | + # https://docs.aws.amazon.com/eks/latest/userguide/auto-configure-nlb.html |
| 12 | + # A full list of annotations supported by the AWS Load Balancer controller can be found here: |
| 13 | + # https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/guide/service/annotations/ |
| 14 | + service.beta.kubernetes.io/aws-load-balancer-name: stalwart-migration-proxy-public |
| 15 | + service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: ip |
| 16 | + service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing |
| 17 | + service.beta.kubernetes.io/aws-load-balancer-attributes: "load_balancing.cross_zone.enabled=true" |
| 18 | + |
| 19 | + # Update the below values in overlays. Use public subnets, appropriate tags, and the LB's SG. |
| 20 | + service.beta.kubernetes.io/aws-load-balancer-subnets: "" |
| 21 | + service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags: "environment=not_set,project=not_set" |
| 22 | + service.beta.kubernetes.io/aws-load-balancer-security-groups: "" # stalwart-migration-proxy-lb |
21 | 23 | spec: |
22 | | - type: ClusterIP |
| 24 | + type: LoadBalancer |
23 | 25 | selector: |
| 26 | + # The public load balancer should always route traffic to our internal proxy, which will route |
| 27 | + # that traffic internally according to our rules. |
24 | 28 | app: stalwart-migration-proxy |
| 29 | + loadBalancerSourceRanges: |
| 30 | + - 0.0.0.0/0 |
25 | 31 | ports: |
26 | 32 | - name: https |
27 | 33 | port: 443 |
|
39 | 45 | port: 4190 |
40 | 46 | targetPort: sieve |
41 | 47 |
|
| 48 | +--- |
| 49 | +# The stalwart-migration-proxy-redis service maps to the Serverless Redis cache's master endpoint |
| 50 | +apiVersion: v1 |
| 51 | +kind: Service |
| 52 | +metadata: |
| 53 | + name: stalwart-migration-proxy-redis |
| 54 | + annotations: |
| 55 | + argocd.argoproj.io/sync-wave: "2" |
| 56 | +spec: |
| 57 | + type: ExternalName |
| 58 | + externalName: "" # Populate with Kustomize |
| 59 | + |
42 | 60 | --- |
43 | 61 | # Exposes the Stalwart migration proxy admin API internally for Tailscale to grant human access |
44 | 62 | apiVersion: v1 |
|
0 commit comments