|
6 | 6 | utils,
|
7 | 7 | ...
|
8 | 8 | }: {
|
| 9 | + templates.accelerator = lib.mkIf (values.useAccelerator && values.ingress.enabled) { |
| 10 | + apiVersion = "operator.h3poteto.dev/v1alpha1"; |
| 11 | + kind = "EndpointGroupBinding"; |
| 12 | + metadata.name = "${chart.name}-main"; |
| 13 | + spec = { |
| 14 | + endpointGroupArn = values.acceleratorArn; |
| 15 | + ingressRef.name = "${chart.name}-backend"; |
| 16 | + }; |
| 17 | + }; |
| 18 | + |
9 | 19 | templates.backend-ingress = lib.mkIf values.ingress.enabled {
|
10 | 20 | apiVersion = "networking.k8s.io/v1";
|
11 | 21 | kind = "Ingress";
|
12 | 22 | metadata = {
|
13 | 23 | name = "${chart.name}-backend";
|
14 | 24 | labels = utils.appLabels "backend";
|
15 |
| - annotations = { |
16 |
| - "alb.ingress.kubernetes.io/actions.ssl-redirect" = builtins.toJSON { |
17 |
| - Type = "redirect"; |
18 |
| - RedirectConfig = { |
19 |
| - Protocol = "HTTPS"; |
20 |
| - Port = "443"; |
21 |
| - StatusCode = "HTTP_301"; |
| 25 | + annotations = |
| 26 | + if values.useAccelerator |
| 27 | + then { |
| 28 | + "service.beta.kubernetes.io/aws-load-balancer-backend-protocol" = "tcp"; |
| 29 | + "service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled" = "true"; |
| 30 | + "service.beta.kubernetes.io/aws-load-balancer-type" = "external"; |
| 31 | + "alb.ingress.kubernetes.io/scheme" = "internet-facing"; |
| 32 | + "service.beta.kubernetes.io/aws-load-balancer-scheme" = "internet-facing"; |
| 33 | + "alb.ingress.kubernetes.io/target-type" = "ip"; |
| 34 | + "service.beta.kubernetes.io/aws-load-balancer-nlb-target-type" = "ip"; |
| 35 | + "service.beta.kubernetes.io/aws-load-balancer-proxy-protocol" = "*"; |
| 36 | + "service.beta.kubernetes.io/aws-load-balancer-target-group-attributes" = "proxy_protocol_v2.enabled=true,preserve_client_ip.enabled=true"; |
| 37 | + |
| 38 | + "alb.ingress.kubernetes.io/listen-ports" = builtins.toJSON [{HTTP = 80;} {HTTPS = 443;}]; |
| 39 | + #"alb.ingress.kubernetes.io/wafv2-acl-arn" = values.backend.wafARN; |
| 40 | + "alb.ingress.kubernetes.io/healthcheck-path" = "${values.cardano-services.httpPrefix}/health"; |
| 41 | + "alb.ingress.kubernetes.io/healthcheck-interval-seconds" = toString values.backend.albHealthcheck.interval; |
| 42 | + "alb.ingress.kubernetes.io/healthcheck-timeout-seconds" = toString values.backend.albHealthcheck.timeout; |
| 43 | + "alb.ingress.kubernetes.io/group.order" = toString values.cardano-services.ingresOrder; |
| 44 | + "external-dns.alpha.kubernetes.io/disabled" = "true"; |
| 45 | + } |
| 46 | + else { |
| 47 | + "alb.ingress.kubernetes.io/actions.ssl-redirect" = builtins.toJSON { |
| 48 | + Type = "redirect"; |
| 49 | + RedirectConfig = { |
| 50 | + Protocol = "HTTPS"; |
| 51 | + Port = "443"; |
| 52 | + StatusCode = "HTTP_301"; |
| 53 | + }; |
22 | 54 | };
|
| 55 | + "alb.ingress.kubernetes.io/listen-ports" = builtins.toJSON [{HTTP = 80;} {HTTPS = 443;}]; |
| 56 | + "alb.ingress.kubernetes.io/target-type" = "ip"; |
| 57 | + "alb.ingress.kubernetes.io/scheme" = "internet-facing"; |
| 58 | + "alb.ingress.kubernetes.io/wafv2-acl-arn" = values.backend.wafARN; |
| 59 | + "alb.ingress.kubernetes.io/healthcheck-path" = "${values.cardano-services.httpPrefix}/health"; |
| 60 | + "alb.ingress.kubernetes.io/healthcheck-interval-seconds" = toString values.backend.albHealthcheck.interval; |
| 61 | + "alb.ingress.kubernetes.io/healthcheck-timeout-seconds" = toString values.backend.albHealthcheck.timeout; |
| 62 | + # Use latency routing policy |
| 63 | + "external-dns.alpha.kubernetes.io/aws-region" = config.region; |
| 64 | + "external-dns.alpha.kubernetes.io/set-identifier" = values.backend.dnsId; |
| 65 | + "alb.ingress.kubernetes.io/group.name" = chart.namespace; |
| 66 | + "alb.ingress.kubernetes.io/group.order" = toString values.cardano-services.ingresOrder; |
23 | 67 | };
|
24 |
| - "alb.ingress.kubernetes.io/listen-ports" = builtins.toJSON [{HTTP = 80;} {HTTPS = 443;}]; |
25 |
| - "alb.ingress.kubernetes.io/target-type" = "ip"; |
26 |
| - "alb.ingress.kubernetes.io/scheme" = "internet-facing"; |
27 |
| - "alb.ingress.kubernetes.io/wafv2-acl-arn" = values.backend.wafARN; |
28 |
| - "alb.ingress.kubernetes.io/healthcheck-path" = "${values.cardano-services.httpPrefix}/health"; |
29 |
| - "alb.ingress.kubernetes.io/healthcheck-interval-seconds" = toString values.backend.albHealthcheck.interval; |
30 |
| - "alb.ingress.kubernetes.io/healthcheck-timeout-seconds" = toString values.backend.albHealthcheck.timeout; |
31 |
| - # Use latency routing policy |
32 |
| - "external-dns.alpha.kubernetes.io/aws-region" = config.region; |
33 |
| - "external-dns.alpha.kubernetes.io/set-identifier" = values.backend.dnsId; |
34 |
| - "alb.ingress.kubernetes.io/group.name" = chart.namespace; |
35 |
| - # ACM |
36 |
| - "alb.ingress.kubernetes.io/group.order" = toString values.cardano-services.ingresOrder; |
37 |
| - }; |
38 | 68 | };
|
39 | 69 | spec = {
|
40 | 70 | ingressClassName = "alb";
|
|
0 commit comments