Skip to content
Snippets Groups Projects
Commit f3f05ed4 authored by Martin Weise's avatar Martin Weise
Browse files

Merge branch '404-integrate-the-helm-chart-into-this-repository' into 'dev'

Resolve "Integrate the Helm chart into this repository"

See merge request !230
parents 464c6b94 473bfcd3
No related branches found
No related tags found
3 merge requests!235Master,!233Master,!230Resolve "Integrate the Helm chart into this repository"
Showing
with 317 additions and 3 deletions
...@@ -7,6 +7,8 @@ target/ ...@@ -7,6 +7,8 @@ target/
# generated # generated
ready ready
schema.xsd schema.xsd
final/
build/
# docs # docs
.docs/.swagger/dist/ .docs/.swagger/dist/
...@@ -68,7 +70,7 @@ debug.txt ...@@ -68,7 +70,7 @@ debug.txt
.DS_Store .DS_Store
# IDE # IDE
fda-analyse-service/venv venv/
.git.bfg-* .git.bfg-*
# Docs # Docs
......
...@@ -5,7 +5,7 @@ variables: ...@@ -5,7 +5,7 @@ variables:
TRIVY_CACHE_DIR: ".trivycache/" TRIVY_CACHE_DIR: ".trivycache/"
DOCKER_HOST: "unix:///var/run/dind/docker.sock" DOCKER_HOST: "unix:///var/run/dind/docker.sock"
TESTCONTAINERS_RYUK_DISABLED: "false" TESTCONTAINERS_RYUK_DISABLED: "false"
VERSION: "1.4.0" VERSION: "1.4.1"
image: debian:12-slim image: debian:12-slim
...@@ -502,6 +502,37 @@ release-1.4: ...@@ -502,6 +502,37 @@ release-1.4:
- "apk add make" - "apk add make"
- "TAG=${VERSION} make release" - "TAG=${VERSION} make release"
release-helm-latest:
stage: release
image: docker:24-dind
only:
refs:
- dev
- master
before_script:
- echo "$CI_REGISTRY2_PASSWORD" | docker login --username "$CI_REGISTRY2_USER" --password-stdin $CI_REGISTRY2_URL
script:
- apk add sed helm
- 'sed -i -e "s/^version:.*/version: \"${VERSION}-0.git.${CI_PIPELINE_ID}.${CI_COMMIT_SHORT_SHA}\"/g" ./helm-charts/dbrepo/Chart.yaml'
- 'sed -i -e "s/^appVersion:.*/appVersion: \"${VERSION}-0.git.${CI_PIPELINE_ID}.${CI_COMMIT_SHORT_SHA}\"/g" ./helm-charts/dbrepo/Chart.yaml'
- helm package ./helm-charts/dbrepo --destination ./build
- helm push "./build/dbrepo-${VERSION}-0.git.${CI_PIPELINE_ID}.${CI_COMMIT_SHORT_SHA}.tgz" "oci://${CI_REGISTRY2_URL}/helm"
release-helm-1.4:
stage: release
image: docker:24-dind
only:
refs:
- release-v1.4
before_script:
- echo "$CI_REGISTRY2_PASSWORD" | docker login --username "$CI_REGISTRY2_USER" --password-stdin $CI_REGISTRY2_URL
script:
- apk add sed helm
- 'sed -i -e "s/^version:.*/version: \"${VERSION}\"/g" ./helm-charts/dbrepo/Chart.yaml'
- 'sed -i -e "s/^appVersion:.*/appVersion: \"${VERSION}\"/g" ./helm-charts/dbrepo/Chart.yaml'
- helm package ./helm-charts/dbrepo --destination ./build
- helm push "./build/dbrepo-${VERSION}.tgz" "oci://${CI_REGISTRY2_URL}/helm"
build-api-latest: build-api-latest:
stage: build stage: build
image: docker.io/alpine:3.18 image: docker.io/alpine:3.18
......
.PHONY: all .PHONY: all
TAG ?= latest TAG ?= latest
TRIVY_VERSION ?= v0.41.0
REPOSITORY_1_URL ?= docker.io/dbrepo REPOSITORY_1_URL ?= docker.io/dbrepo
REPOSITORY_2_URL ?= s210.dl.hpc.tuwien.ac.at/dbrepo REPOSITORY_2_URL ?= s210.dl.hpc.tuwien.ac.at/dbrepo
...@@ -37,6 +36,11 @@ build-frontend: ...@@ -37,6 +36,11 @@ build-frontend:
build-swagger: build-swagger:
bash ./.docs/generate.sh bash ./.docs/generate.sh
build-helm-chart:
sed -i -e "s/^version:.*/version: \"${TAG}-dev\"/g" ./helm-charts/dbrepo/Chart.yaml
sed -i -e "s/^appVersion:.*/appVersion: \"${TAG}-dev\"/g" ./helm-charts/dbrepo/Chart.yaml
helm package ./helm-charts/dbrepo --destination ./build
tag: tag-analyse-service tag-authentication-service tag-metadata-db tag-ui tag-metadata-service tag-data-service tag-search-db tag-search-db-init tag-search-service tag-data-db-sidecar tag: tag-analyse-service tag-authentication-service tag-metadata-db tag-ui tag-metadata-service tag-data-service tag-search-db tag-search-db-init tag-search-service tag-data-db-sidecar
tag-analyse-service: tag-analyse-service:
...@@ -129,6 +133,10 @@ release-storage-service-init: tag-storage-service-init ...@@ -129,6 +133,10 @@ release-storage-service-init: tag-storage-service-init
docker push "${REPOSITORY_1_URL}/storage-service-init:${TAG}" docker push "${REPOSITORY_1_URL}/storage-service-init:${TAG}"
docker push "${REPOSITORY_2_URL}/storage-service-init:${TAG}" docker push "${REPOSITORY_2_URL}/storage-service-init:${TAG}"
release-helm-chart: build-helm-chart
helm package ./helm-charts/dbrepo --destination ./build
helm push ./build/dbrepo-${TAG}-dev.tgz "oci://${REPOSITORY_2_URL}/helm"
test-backend: test-metadata-service test-analyse-service test-data-service test-backend: test-metadata-service test-analyse-service test-data-service
test-data-service: build-data-service test-data-service: build-data-service
......
# DBRepo
\ No newline at end of file
repositoryID: c3dd3e89-e742-4a55-99e3-9681a521fb3e
owners:
- name: dbrepo
email: martinweiseat@gmail.com
- name: mweise
email: martin.weise@tuwien.ac.at
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
dependencies:
- name: opensearch
repository: https://opensearch-project.github.io/helm-charts/
version: 2.15.0
- name: opensearch-dashboards
repository: https://opensearch-project.github.io/helm-charts/
version: 2.13.0
- name: keycloak
repository: https://charts.bitnami.com/bitnami
version: 17.3.3
- name: mariadb-galera
repository: https://charts.bitnami.com/bitnami
version: 11.0.1
- name: mariadb-galera
repository: https://charts.bitnami.com/bitnami
version: 11.0.1
- name: postgresql-ha
repository: https://charts.bitnami.com/bitnami
version: 12.1.7
- name: rabbitmq
repository: https://charts.bitnami.com/bitnami
version: 12.5.1
- name: fluent-bit
repository: https://fluent.github.io/helm-charts
version: 0.40.0
- name: seaweedfs
repository: https://seaweedfs.github.io/seaweedfs/helm
version: 3.59.4
digest: sha256:408d622f6f8b819434771021ba4144bd3d58aef6b1302f323f0acba672b0e7ec
generated: "2024-01-07T22:24:18.122775309+01:00"
apiVersion: v2
name: dbrepo
description: |
We present a database repository system that allows researchers to ingest data into a central, versioned repository
through common interfaces, provides efficient access to arbitrary subsets of data even when the underlying data store
is evolving, allows reproducing of query results and supports findable-, accessible-, interoperable- and reusable
data.
type: application
version: "1.4.0-dev.667653b51"
appVersion: "1.4.0-dev.667653b51"
keywords:
- dbrepo
maintainers:
- name: Martin Weise
email: martin.weise@tuwien.ac.at
home: https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/
icon:
https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/dbrepo-ui/static/favicon.png
dependencies:
- name: opensearch
alias: search-db
version: 2.15.0 # app version 2.10.0
repository: https://opensearch-project.github.io/helm-charts/
- name: opensearch-dashboards
alias: search-db-dashboard
version: 2.13.0 # app version 2.10.0
repository: https://opensearch-project.github.io/helm-charts/
- name: keycloak
alias: auth-service
version: 17.3.3
repository: https://charts.bitnami.com/bitnami
- name: mariadb-galera
alias: data-db
version: 11.0.1
repository: https://charts.bitnami.com/bitnami
- name: mariadb-galera
alias: metadata-db
version: 11.0.1
repository: https://charts.bitnami.com/bitnami
- name: postgresql-ha
alias: auth-db
version: 12.1.7
repository: https://charts.bitnami.com/bitnami
- name: rabbitmq
alias: broker-service
version: 12.5.1
repository: https://charts.bitnami.com/bitnami
- name: fluent-bit
alias: log-service
version: 0.40.0
repository: https://fluent.github.io/helm-charts
- name: seaweedfs
alias: storage-service
version: 3.59.4
repository: https://seaweedfs.github.io/seaweedfs/helm
File added
File added
File added
File added
File added
File added
File added
File added
1. Get the application URL by running these commands:
{{- if .Values.ingress.enabled }}
{{- range $ingress := .Values.ingress.data }}
{{- range $host := $ingress.hosts }}
{{- range .paths }}
http{{ if $ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{/*
Expand the name of the chart.
*/}}
{{- define "kubernetes.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "kubernetes.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "kubernetes.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "kubernetes.labels" -}}
helm.sh/chart: {{ include "kubernetes.chart" . }}
{{ include "kubernetes.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "kubernetes.selectorLabels" -}}
app.kubernetes.io/name: {{ include "kubernetes.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "kubernetes.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "kubernetes.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}
{{- if .Values.analyseService.enabled }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: analyse-service
namespace: {{ $.Values.namespace }}
labels:
app: analyse-service
service: analyse-service
spec:
replicas: {{ .Values.analyseService.replicaCount }}
strategy:
type: {{ $.Values.strategyType }}
selector:
matchLabels:
app: analyse-service
service: analyse-service
template:
metadata:
labels:
app: analyse-service
service: analyse-service
spec:
securityContext:
fsGroup: 0
runAsUser: 0
runAsGroup: 0
containers:
- name: analyse-service
image: {{ printf "%s/%s:%s" .Values.analyseService.image.registry .Values.analyseService.image.repository .Values.analyseService.image.tag }}
imagePullPolicy: {{ .Values.analyseService.image.pullPolicy | default "IfNotPresent" }}
ports:
- containerPort: 5000
protocol: TCP
env:
- name: LOG_LEVEL
valueFrom:
secretKeyRef:
name: analyse-service-secret
key: log-level
- name: S3_STORAGE_ENDPOINT
valueFrom:
secretKeyRef:
name: analyse-service-secret
key: s3-storage-endpoint
- name: S3_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: analyse-service-secret
key: s3-access-key-id
- name: S3_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: analyse-service-secret
key: s3-secret-access-key
livenessProbe:
exec:
command:
- /bin/bash
- -ec
- "curl -sSL localhost:5000/health | grep 'UP' || exit 1"
initialDelaySeconds: 120
periodSeconds: 30
readinessProbe:
exec:
command:
- /bin/bash
- -ec
- "curl -sSL localhost:5000/health | grep 'UP' || exit 1"
initialDelaySeconds: 10
periodSeconds: 30
{{- end }}
{{- if .Values.analyseService.enabled }}
---
apiVersion: v1
kind: Secret
metadata:
name: analyse-service-secret
namespace: {{ .Values.namespace }}
stringData:
log-level: "{{ ternary "DEBUG" "INFO" .Values.analyseService.image.debug }}"
s3-storage-endpoint: "http://storage-service-s3:9000"
s3-access-key-id: "seaweedfsadmin"
s3-secret-access-key: "seaweedfsadmin"
{{- end }}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment