diff --git a/.github/workflows/stac-browser.yml b/.github/workflows/stac-browser.yml new file mode 100644 index 00000000..59a5768a --- /dev/null +++ b/.github/workflows/stac-browser.yml @@ -0,0 +1,71 @@ +name: Build STAC Browser + +on: + release: + types: [released] + workflow_dispatch: + inputs: + TAG_NAME: + description: "Tag name for this image" + required: true + default: "eoapi-k8s-stac-browser" + STAC_BROWSER_VERSION: + description: "STAC Browser version to build (e.g. v3.3.4)" + required: true + default: "v3.3.4" + +env: + REGISTRY: ghcr.io + TAG_NAME: ${{ github.event.inputs.TAG_NAME || github.event.release.tag_name }} + +jobs: + build-and-push: + runs-on: ubuntu-latest + name: Build and push STAC Browser image + + steps: + - name: Checkout STAC Browser repository + uses: actions/checkout@v4 + with: + repository: radiantearth/stac-browser + ref: ${{ github.event.inputs.STAC_BROWSER_VERSION }} + + - name: Set environment variables + run: | + echo VERSION=${TAG_NAME#v} >> $GITHUB_ENV + echo IMAGE_NAME=$REGISTRY/$(echo ${GITHUB_REPOSITORY,,})/stac-browser >> $GITHUB_ENV + echo COMMITED_AT=$(git show -s --format=%cI `git rev-parse HEAD`) >> $GITHUB_ENV + echo REVISION=$(git rev-parse --short HEAD) >> $GITHUB_ENV + + - name: Collect Docker image metadata + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.IMAGE_NAME }} + labels: | + org.opencontainers.image.created=${{ env.COMMITED_AT }} + org.opencontainers.image.version=v${{ env.VERSION }} + org.opencontainers.image.maintainer=${{ github.repository_owner }} + tags: | + type=semver,pattern={{version}},value=v${{ env.VERSION }} + + - name: Log in to the GitHub container registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + push: true + build-args: | + VERSION=${{ env.VERSION }} + REVISION=${{ env.REVISION }} + pathPrefix=/browser/ + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:edge + cache-to: type=inline diff --git a/helm-chart/eoapi/templates/services/browser/deployment.yaml b/helm-chart/eoapi/templates/services/browser/deployment.yaml new file mode 100644 index 00000000..ac11ff7a --- /dev/null +++ b/helm-chart/eoapi/templates/services/browser/deployment.yaml @@ -0,0 +1,24 @@ +{{- if .Values.browser.enabled }} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: browser-{{ .Release.Name }} +spec: + replicas: {{.Values.browser.replicaCount}} + selector: + matchLabels: + app: browser-{{ .Release.Name }} + template: + metadata: + labels: + app: browser-{{ .Release.Name }} + spec: + containers: + - name: browser + image: {{ .Values.browser.image.name }}:{{ .Values.browser.image.tag }} + ports: + - containerPort: 8080 + env: + - name: SB_catalogUrl + value: "/stac" +{{- end }} diff --git a/helm-chart/eoapi/templates/services/browser/service.yaml b/helm-chart/eoapi/templates/services/browser/service.yaml new file mode 100644 index 00000000..0d6c72f0 --- /dev/null +++ b/helm-chart/eoapi/templates/services/browser/service.yaml @@ -0,0 +1,13 @@ +{{- if .Values.browser.enabled }} +apiVersion: v1 +kind: Service +metadata: + name: browser-{{ .Release.Name }} +spec: + selector: + app: browser-{{ .Release.Name }} + ports: + - protocol: TCP + port: 8080 + targetPort: 8080 +{{- end }} diff --git a/helm-chart/eoapi/templates/services/doc-server.yaml b/helm-chart/eoapi/templates/services/doc-server.yaml index 57298e13..19753f8b 100644 --- a/helm-chart/eoapi/templates/services/doc-server.yaml +++ b/helm-chart/eoapi/templates/services/doc-server.yaml @@ -19,6 +19,7 @@ data: {{- if .Values.multidim.enabled }}