Skip to content

Commit 3aed7b3

Browse files
Add stac-browser (#168)
* feat: Add stac-browser * Implement browser service and ingress configuration; remove deprecated stac-browser resources * Refactor browser service configuration; update image and ingress settings, and simplify conditionals in Helm templates * Add GitHub Actions workflow for building and pushing STAC Browser image * Disable browser feature in ingress tests for all configurations * Update ingress configuration to use dynamic service name for doc-server * Update ingress tests to use dynamic service name for doc-server --------- Co-authored-by: Emmanuel Mathot <[email protected]>
1 parent 5cdf18e commit 3aed7b3

File tree

13 files changed

+151
-15
lines changed

13 files changed

+151
-15
lines changed

.github/workflows/stac-browser.yml

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
name: Build STAC Browser
2+
3+
on:
4+
release:
5+
types: [released]
6+
workflow_dispatch:
7+
inputs:
8+
TAG_NAME:
9+
description: "Tag name for this image"
10+
required: true
11+
default: "eoapi-k8s-stac-browser"
12+
STAC_BROWSER_VERSION:
13+
description: "STAC Browser version to build (e.g. v3.3.4)"
14+
required: true
15+
default: "v3.3.4"
16+
17+
env:
18+
REGISTRY: ghcr.io
19+
TAG_NAME: ${{ github.event.inputs.TAG_NAME || github.event.release.tag_name }}
20+
21+
jobs:
22+
build-and-push:
23+
runs-on: ubuntu-latest
24+
name: Build and push STAC Browser image
25+
26+
steps:
27+
- name: Checkout STAC Browser repository
28+
uses: actions/checkout@v4
29+
with:
30+
repository: radiantearth/stac-browser
31+
ref: ${{ github.event.inputs.STAC_BROWSER_VERSION }}
32+
33+
- name: Set environment variables
34+
run: |
35+
echo VERSION=${TAG_NAME#v} >> $GITHUB_ENV
36+
echo IMAGE_NAME=$REGISTRY/$(echo ${GITHUB_REPOSITORY,,})/stac-browser >> $GITHUB_ENV
37+
echo COMMITED_AT=$(git show -s --format=%cI `git rev-parse HEAD`) >> $GITHUB_ENV
38+
echo REVISION=$(git rev-parse --short HEAD) >> $GITHUB_ENV
39+
40+
- name: Collect Docker image metadata
41+
id: meta
42+
uses: docker/metadata-action@v5
43+
with:
44+
images: ${{ env.IMAGE_NAME }}
45+
labels: |
46+
org.opencontainers.image.created=${{ env.COMMITED_AT }}
47+
org.opencontainers.image.version=v${{ env.VERSION }}
48+
org.opencontainers.image.maintainer=${{ github.repository_owner }}
49+
tags: |
50+
type=semver,pattern={{version}},value=v${{ env.VERSION }}
51+
52+
- name: Log in to the GitHub container registry
53+
uses: docker/login-action@v3
54+
with:
55+
registry: ${{ env.REGISTRY }}
56+
username: ${{ github.repository_owner }}
57+
password: ${{ secrets.GITHUB_TOKEN }}
58+
59+
- name: Build and push Docker image
60+
uses: docker/build-push-action@v5
61+
with:
62+
context: .
63+
push: true
64+
build-args: |
65+
VERSION=${{ env.VERSION }}
66+
REVISION=${{ env.REVISION }}
67+
pathPrefix=/browser/
68+
tags: ${{ steps.meta.outputs.tags }}
69+
labels: ${{ steps.meta.outputs.labels }}
70+
cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:edge
71+
cache-to: type=inline
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{{- if .Values.browser.enabled }}
2+
apiVersion: apps/v1
3+
kind: Deployment
4+
metadata:
5+
name: browser-{{ .Release.Name }}
6+
spec:
7+
replicas: {{.Values.browser.replicaCount}}
8+
selector:
9+
matchLabels:
10+
app: browser-{{ .Release.Name }}
11+
template:
12+
metadata:
13+
labels:
14+
app: browser-{{ .Release.Name }}
15+
spec:
16+
containers:
17+
- name: browser
18+
image: {{ .Values.browser.image.name }}:{{ .Values.browser.image.tag }}
19+
ports:
20+
- containerPort: 8080
21+
env:
22+
- name: SB_catalogUrl
23+
value: "/stac"
24+
{{- end }}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{{- if .Values.browser.enabled }}
2+
apiVersion: v1
3+
kind: Service
4+
metadata:
5+
name: browser-{{ .Release.Name }}
6+
spec:
7+
selector:
8+
app: browser-{{ .Release.Name }}
9+
ports:
10+
- protocol: TCP
11+
port: 8080
12+
targetPort: 8080
13+
{{- end }}

helm-chart/eoapi/templates/services/doc-server.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ data:
1919
{{- if .Values.multidim.enabled }}
2020
<li><a href="/multidim" target="_blank" rel="noopener noreferrer">/multidim</a></li>
2121
{{- end}}
22+
<li><a href="/browser/" target="_blank" rel="noopener noreferrer">/browser</a></li>
2223
</ul>
2324
</body>
2425
</html>

helm-chart/eoapi/templates/services/ingress.yaml

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ spec:
3838
path: /raster{{ .Values.ingress.pathSuffix }}
3939
backend:
4040
service:
41-
name: raster
41+
name: raster-{{ $.Release.Name }}
4242
port:
4343
number: {{ .Values.service.port }}
4444
{{- end }}
@@ -48,7 +48,7 @@ spec:
4848
path: /stac{{ .Values.ingress.pathSuffix }}
4949
backend:
5050
service:
51-
name: stac
51+
name: stac-{{ $.Release.Name }}
5252
port:
5353
number: {{ .Values.service.port }}
5454
{{- end }}
@@ -58,7 +58,7 @@ spec:
5858
path: /vector{{ .Values.ingress.pathSuffix }}
5959
backend:
6060
service:
61-
name: vector
61+
name: vector-{{ $.Release.Name }}
6262
port:
6363
number: {{ .Values.service.port }}
6464
{{- end }}
@@ -68,17 +68,28 @@ spec:
6868
path: /multidim{{ .Values.ingress.pathSuffix }}
6969
backend:
7070
service:
71-
name: multidim
71+
name: multidim-{{ $.Release.Name }}
7272
port:
7373
number: {{ .Values.service.port }}
7474
{{- end }}
7575

76+
{{- if and .Values.browser.enabled (or (not (hasKey .Values.browser "ingress")) .Values.browser.ingress.enabled) }}
77+
# We need a separate path because browser does not play well with nginx rewrite_path directive
78+
- pathType: {{ .Values.ingress.pathType }}
79+
path: "/browser"
80+
backend:
81+
service:
82+
name: browser-{{ $.Release.Name }}
83+
port:
84+
number: 8080
85+
{{- end }}
86+
7687
{{- if .Values.docServer.enabled }}
7788
- pathType: {{ $.Values.ingress.pathType | default "Prefix" }}
7889
path: "/{{ $.Values.ingress.rootPath | default "" }}"
7990
backend:
8091
service:
81-
name: eoapi-doc-server
92+
name: doc-server-{{ $.Release.Name }}
8293
port:
8394
number: 80
8495
{{- end }}

helm-chart/eoapi/templates/services/multidim/service.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
apiVersion: v1
33
kind: Service
44
metadata:
5-
name: multidim
5+
name: multidim-{{ $.Release.Name }}
66
labels:
77
app: multidim-{{ .Release.Name }}
88
spec:

helm-chart/eoapi/templates/services/raster/service.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
apiVersion: v1
33
kind: Service
44
metadata:
5-
name: raster
5+
name: raster-{{ $.Release.Name }}
66
labels:
77
app: raster-{{ .Release.Name }}
88
spec:

helm-chart/eoapi/templates/services/stac/service.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
apiVersion: v1
33
kind: Service
44
metadata:
5-
name: stac
5+
name: stac-{{ $.Release.Name }}
66
labels:
77
app: stac-{{ .Release.Name }}
88
spec:

helm-chart/eoapi/templates/services/traefik-middleware.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,7 @@ spec:
1919
{{- if .Values.multidim.enabled }}
2020
- /multidim
2121
{{- end }}
22+
# {{- if .Values.browser.enabled }}
23+
# - /browser
24+
# {{- end }}
2225
{{- end }}

helm-chart/eoapi/templates/services/vector/service.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
apiVersion: v1
33
kind: Service
44
metadata:
5-
name: vector
5+
name: vector-{{ $.Release.Name }}
66
labels:
77
app: vector-{{ .Release.Name }}
88
spec:

0 commit comments

Comments
 (0)