Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions helm-chart/eoapi/templates/services/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,20 @@ spec:
containers:
- image: {{ index $v "image" "name" }}:{{ index $v "image" "tag" }}
name: {{ $serviceName }}
{{- if (and ($.Values.ingress.className) (eq $.Values.ingress.className "nginx")) }}
command:
- "uvicorn"
{{ if (eq $serviceName "vector") }}
- "tipg.main:app"
{{- else if (eq $serviceName "raster") }}
- "titiler.pgstac.main:app"
{{- else if (eq $serviceName "stac") }}
- "stac_fastapi.pgstac.app:app"
{{- end }}
- "--host=$(HOST)"
- "--port=$(PORT)"
- "--root-path=/{{ $serviceName }}"
{{- end }}{{/* needed for proxies and path rewrites on NLB */}}
ports:
- containerPort: {{ $.Values.service.port }}
resources:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{{- range $serviceName, $v := .Values -}}
{{- if (or (eq $serviceName "raster") (eq $serviceName "stac") (eq $serviceName "vector")) }}
{{- if index $v "enabled" }}
{{- if (eq $.Values.service.port_type "NodePort") }}
{{- if (eq $.Values.ingress.className "alb") }}
{{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1
{{- else if semverCompare ">=1.14-0" $.Capabilities.KubeVersion.GitVersion -}}
Expand All @@ -12,13 +12,13 @@ apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: {{ $serviceName }}
{{- with $.Values.ingress.annotations }}
# AWS EKS:
# https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.4/guide/ingress/annotations/
# GCP GKE:
# https://cloud.google.com/kubernetes-engine/docs/concepts/ingress
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- if $.Values.ingress.enable_shared_ingress }}
alb.ingress.kubernetes.io/group.name: shared-ingress
{{- end }}
alb.ingress.kubernetes.io/target-type: instance
alb.ingress.kubernetes.io/scheme: internet-facing
spec:
{{- if (and ($.Values.ingress.className) (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion)) }}
ingressClassName: {{ $.Values.ingress.className }}
Expand All @@ -27,18 +27,14 @@ spec:
- http:
paths:
- pathType: Prefix
{{- if $.Values.ingress.enable_shared_ingress }}
path: "/{{ $serviceName }}"
{{ else }}
path: "/"
{{- end }}
backend:
service:
name: {{ $serviceName }}
port:
number: {{ $.Values.service.port }}
---
{{/* END: if .Values.service.port_type */}}
{{/* END: if .Values.ingress.className "alb" */}}
{{- end }}
{{/* END: if index $v "enabled" */}}
{{- end }}
Expand Down
38 changes: 38 additions & 0 deletions helm-chart/eoapi/templates/services/ingress-nginx.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{{- if (eq .Values.ingress.className "nginx") }}
{{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1
{{- else if semverCompare ">=1.14-0" $.Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1beta1
{{- else -}}
apiVersion: extensions/v1beta1
{{- end }}
kind: Ingress
metadata:
name: nginx-service-ingress-shared
annotations:
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: /$2
nginx.ingress.kubernetes.io/enable-cors: "true"
spec:
{{- if (and (.Values.ingress.className) (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion)) }}
ingressClassName: {{ .Values.ingress.className }}
{{- end }}
rules:
- http:
paths:
{{- range $serviceName, $v := .Values }}
{{- if (or (eq $serviceName "raster") (eq $serviceName "stac") (eq $serviceName "vector")) }}
{{- if index $v "enabled" }}
- pathType: Prefix
path: "/{{ $serviceName }}(/|$)(.*)"
backend:
service:
name: {{ $serviceName }}
port:
number: {{ $.Values.service.port }}
{{- end }}{{/* END: if index $v "enabled" */}}
{{- end }}{{/* END: if (or (eq $serviceName "raster") (eq $serviceName "stac") (eq $serviceName "vector")) */}}
{{- end }}{{/* END: range $serviceName, $v := .Values*/}}
---
{{/* END: if .Values.ingress.className "alb" */}}
{{- end }}
116 changes: 0 additions & 116 deletions helm-chart/eoapi/templates/services/manifest.yaml

This file was deleted.

6 changes: 5 additions & 1 deletion helm-chart/eoapi/templates/services/service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,11 @@ metadata:
app: {{ $serviceName }}
name: {{ $serviceName }}
spec:
type: {{ $.Values.service.port_type }}
{{- if (and ($.Values.ingress.className) (eq $.Values.ingress.className "alb")) }}
type: "NodePort"
{{- else if (and ($.Values.ingress.className) (eq $.Values.ingress.className "nginx")) }}
type: "ClusterIP"
{{- end }}
ports:
- name: '{{ $.Values.service.port }}'
port: {{ $.Values.service.port }}
Expand Down
4 changes: 2 additions & 2 deletions helm-chart/eoapi/tests/config_tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,5 +42,5 @@ tests:
path: metadata.name
pattern: ^stac-envvar-configmap$
- equal:
path: data.TITILER_ENDPOINT
value: "raster:8080"
path: data.WEB_CONCURRENCY
value: "10"
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
suite: service defaults ingress
templates:
- templates/services/ingress.yaml
- templates/services/ingress-alb.yaml
tests:
- it: "vector ingress defaults"
set:
ingress.className: "alb"
raster.enabled: false
stac.enabled: false
vector.enabled: true
Expand All @@ -23,6 +24,7 @@ tests:
value: "alb"
- it: "raster ingress defaults"
set:
ingress.className: "alb"
raster.enabled: true
stac.enabled: false
vector.enabled: false
Expand All @@ -42,6 +44,7 @@ tests:
value: "alb"
- it: "stac ingress defaults"
set:
ingress.className: "alb"
raster.enabled: false
stac.enabled: true
vector.enabled: false
Expand All @@ -59,28 +62,3 @@ tests:
- equal:
path: spec.ingressClassName
value: "alb"
- it: "vector enabled_shared_ingress override"
set:
raster.enabled: false
stac.enabled: false
vector.enabled: true
ingress.enable_shared_ingress: true
asserts:
- isKind:
of: Ingress
- matchRegex:
path: metadata.name
pattern: ^vector$
- equal:
path: metadata.annotations
value:
alb.ingress.kubernetes.io/group.name: shared-ingress
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: instance
- equal:
path: spec.rules[0].http.paths[0].path
value: "/vector"
- equal:
path: spec.ingressClassName
value: "alb"

67 changes: 67 additions & 0 deletions helm-chart/eoapi/tests/ingress_tests_nginx.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
suite: service defaults ingress
templates:
- templates/services/ingress-nginx.yaml
tests:
- it: "vector ingress defaults"
set:
ingress.className: "nginx"
raster.enabled: false
stac.enabled: false
vector.enabled: true
asserts:
- isKind:
of: Ingress
- matchRegex:
path: spec.rules[0].http.paths[0].path
pattern: ^/vector\(\/\|\$\)\(\.\*\)$
- equal:
path: metadata.annotations
value:
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: /$2
nginx.ingress.kubernetes.io/enable-cors: "true"
- equal:
path: spec.ingressClassName
value: "nginx"
- it: "raster ingress defaults"
set:
ingress.className: "nginx"
raster.enabled: true
stac.enabled: false
vector.enabled: false
asserts:
- isKind:
of: Ingress
- matchRegex:
path: spec.rules[0].http.paths[0].path
pattern: ^/raster\(\/\|\$\)\(\.\*\)$
- equal:
path: metadata.annotations
value:
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: /$2
nginx.ingress.kubernetes.io/enable-cors: "true"
- equal:
path: spec.ingressClassName
value: "nginx"
- it: "stac ingress defaults"
set:
ingress.className: "nginx"
raster.enabled: false
stac.enabled: true
vector.enabled: false
asserts:
- isKind:
of: Ingress
- matchRegex:
path: spec.rules[0].http.paths[0].path
pattern: ^/stac\(\/\|\$\)\(\.\*\)$
- equal:
path: metadata.annotations
value:
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: /$2
nginx.ingress.kubernetes.io/enable-cors: "true"
- equal:
path: spec.ingressClassName
value: "nginx"
Loading