diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml
index d7a2199f7..9410a12b5 100644
--- a/.github/dependabot.yaml
+++ b/.github/dependabot.yaml
@@ -17,7 +17,7 @@ updates:
reviewers:
- "neicnordic/sensitive-data-development-collaboration"
- package-ecosystem: docker
- directory: "/postgres"
+ directory: "/postgresql"
schedule:
interval: weekly
open-pull-requests-limit: 10
@@ -52,7 +52,7 @@ updates:
reviewers:
- "neicnordic/sensitive-data-development-collaboration"
- package-ecosystem: docker
- directory: "/sda-sftp-iinbox"
+ directory: "/sda-sftp-inbox"
schedule:
interval: weekly
open-pull-requests-limit: 10
diff --git a/.github/integration/scripts/charts/dependencies.sh b/.github/integration/scripts/charts/dependencies.sh
new file mode 100644
index 000000000..d0d752e35
--- /dev/null
+++ b/.github/integration/scripts/charts/dependencies.sh
@@ -0,0 +1,76 @@
+#!/bin/bash
+set -ex
+
+YQ_VERSION="v4.20.1"
+C4GH_VERSION="$(curl -sL https://api.github.com/repos/neicnordic/crypt4gh/releases/latest | jq -r '.name')"
+
+random-string() {
+ head -c 32 /dev/urandom | base64 -w0 | tr -d '/+' | fold -w 32 | head -n 1
+}
+
+sudo curl -sLO "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64" -O /usr/bin/yq &&
+ sudo chmod +x /usr/bin/yq
+
+curl -sL https://github.com/neicnordic/crypt4gh/releases/download/"${C4GH_VERSION}"/crypt4gh_linux_x86_64.tar.gz | sudo tar -xz -C /usr/bin/ &&
+ sudo chmod +x /usr/bin/crypt4gh
+
+# secret for the crypt4gh keypair
+C4GHPASSPHRASE="$(random-string)"
+export C4GHPASSPHRASE
+crypt4gh generate -n c4gh -p "$C4GHPASSPHRASE"
+kubectl create secret generic c4gh --from-file="c4gh.sec.pem" --from-file="c4gh.pub.pem" --from-literal=passphrase="${C4GHPASSPHRASE}"
+
+# secret for the OIDC keypair
+openssl ecparam -name prime256v1 -genkey -noout -out "jwt.key"
+openssl ec -in "jwt.key" -pubout -out "jwt.pub"
+kubectl create secret generic jwk --from-file="jwt.key" --from-file="jwt.pub"
+
+## OIDC
+SELF=$(dirname "$0")
+kubectl create configmap oidc --from-file="$SELF/../../sda/oidc.py"
+
+helm repo add jetstack https://charts.jetstack.io
+helm repo add minio https://charts.min.io/
+
+helm repo update
+
+helm install \
+ cert-manager jetstack/cert-manager \
+ --namespace cert-manager \
+ --create-namespace \
+ --set installCRDs=true
+
+kubectl create namespace minio
+kubectl apply -f .github/integration/scripts/charts/dependencies.yaml
+
+## S3 storage backend
+MINIO_ACCESS="$(random-string)"
+export MINIO_ACCESS
+MINIO_SECRET="$(random-string)"
+export MINIO_SECRET
+helm install minio minio/minio \
+ --namespace minio \
+ --set rootUser="$MINIO_ACCESS",rootPassword="$MINIO_SECRET",persistence.enabled=false,mode=standalone,resources.requests.memory=128Mi
+
+PGPASSWORD="$(random-string)"
+export PGPASSWORD
+
+MQPASSWORD="$(random-string)"
+export MQPASSWORD
+
+TEST_TOKEN="$(bash .github/integration/scripts/sign_jwt.sh ES256 jwt.key)"
+export TEST_TOKEN
+
+## update values file with all credentials
+yq -i '
+.global.archive.s3AccessKey = strenv(MINIO_ACCESS) |
+.global.archive.s3SecretKey = strenv(MINIO_SECRET) |
+.global.backupArchive.s3AccessKey = strenv(MINIO_ACCESS) |
+.global.backupArchive.s3SecretKey = strenv(MINIO_SECRET) |
+.global.broker.password = strenv(MQPASSWORD) |
+.global.c4gh.passphrase = strenv(C4GHPASSPHRASE) |
+.global.db.password = strenv(PGPASSWORD) |
+.global.inbox.s3AccessKey = strenv(MINIO_ACCESS) |
+.global.inbox.s3SecretKey = strenv(MINIO_SECRET) |
+.releasetest.secrets.accessToken = strenv(TEST_TOKEN)
+' .github/integration/scripts/charts/values.yaml
diff --git a/.github/integration/scripts/charts/dependencies.yaml b/.github/integration/scripts/charts/dependencies.yaml
new file mode 100644
index 000000000..13d6c2fa5
--- /dev/null
+++ b/.github/integration/scripts/charts/dependencies.yaml
@@ -0,0 +1,118 @@
+apiVersion: cert-manager.io/v1
+kind: Issuer
+metadata:
+ name: selfsigned-issuer
+ namespace: cert-manager
+spec:
+ selfSigned: {}
+---
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+ name: selfsigned-ca
+ namespace: cert-manager
+spec:
+ isCA: true
+ commonName: selfsigned-ca
+ secretName: root-secret
+ privateKey:
+ algorithm: ECDSA
+ size: 256
+ issuerRef:
+ name: selfsigned-issuer
+ kind: Issuer
+ group: cert-manager.io
+---
+apiVersion: cert-manager.io/v1
+kind: ClusterIssuer
+metadata:
+ name: cert-issuer
+ namespace: cert-manager
+spec:
+ ca:
+ secretName: root-secret
+---
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+ name: minio-cert
+ namespace: minio
+spec:
+ secretName: minio-cert
+ duration: 24h
+ commonName: minio
+ isCA: false
+ privateKey:
+ algorithm: ECDSA
+ size: 256
+ usages:
+ - server auth
+ dnsNames:
+ - localhost
+ - minio
+ - minio.minio.svc
+ - minio.minio.svc.cluster.local
+ ipAddresses:
+ - 127.0.0.1
+ issuerRef:
+ name: cert-issuer
+ # We can reference ClusterIssuers by changing the kind here.
+ # The default value is Issuer (i.e. a locally namespaced Issuer)
+ kind: ClusterIssuer
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: oidc-server
+spec:
+ selector:
+ matchLabels:
+ app: oidc-server
+ replicas: 1
+ template:
+ metadata:
+ labels:
+ app: oidc-server
+ spec:
+ securityContext:
+ runAsNonRoot: true
+ runAsGroup: 1000
+ runAsUser: 1000
+ fsGroup: 1000
+ containers:
+ - name: oidc-server
+ image: neicnordic/mock-oidc:latest
+ ports:
+ - containerPort: 8080
+ env:
+ - name: PORT
+ value: "8080"
+ - name: HOST
+ value: oidc-server
+ - name: CLIENT_ID
+ value: DfCieZLuBU
+ - name: CLIENT_SECRET
+ value: DfCieZLuBU
+ - name: CLIENT_REDIRECT_URI
+ value: https://sda-auth/elixir/login
+ resources:
+ limits:
+ cpu: 250m
+ memory: 256Mi
+ requests:
+ cpu: 100m
+ memory: 128Mi
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: oidc-server
+ labels:
+ app: oidc-server
+spec:
+ type: ClusterIP
+ ports:
+ - port: 8080
+ targetPort: 8080
+ selector:
+ app: oidc-server
diff --git a/.github/integration/scripts/charts/deploy_charts.sh b/.github/integration/scripts/charts/deploy_charts.sh
new file mode 100644
index 000000000..b4b69705a
--- /dev/null
+++ b/.github/integration/scripts/charts/deploy_charts.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+set -ex
+
+if [ -z "$2" ];then
+ echo "PR number missing"
+ exit 1
+fi
+
+if [ "$1" == "sda-db" ]; then
+ ROOTPASS=$(yq e '.global.db.password' .github/integration/scripts/charts/values.yaml)
+ helm install postgres charts/sda-db \
+ --set image.tag="PR$2-postgres" \
+ --set image.pullPolicy=IfNotPresent \
+ --set global.postgresAdminPassword="$ROOTPASS" \
+ --set global.tls.enabled=false \
+ --set persistence.enabled=false \
+ --set resources=null \
+ --wait
+fi
+
+if [ "$1" == "sda-mq" ]; then
+ ADMINPASS=$(yq e '.global.broker.password' .github/integration/scripts/charts/values.yaml)
+ helm install broker charts/sda-mq \
+ --set image.tag="PR$2-rabbitmq" \
+ --set image.pullPolicy=IfNotPresent \
+ --set global.adminPassword="$ADMINPASS" \
+ --set global.adminUser=admin \
+ --set global.tls.enabled=false \
+ --set persistence.enabled=false \
+ --set resources=null \
+ --wait
+fi
+
+if [ "$1" == "sda-svc" ]; then
+ helm install pipeline charts/sda-svc \
+ --set image.tag="PR$2" \
+ --set image.pullPolicy=IfNotPresent \
+ -f .github/integration/scripts/charts/values.yaml \
+ --wait
+fi
diff --git a/.github/integration/scripts/charts/k3d.sh b/.github/integration/scripts/charts/k3d.sh
new file mode 100755
index 000000000..4afe4425e
--- /dev/null
+++ b/.github/integration/scripts/charts/k3d.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+set -ex
+
+k8s="$(curl -L -s https://dl.k8s.io/release/stable.txt)"
+
+curl -s -L https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | sudo bash
+
+if [ -n "$1" ]; then
+ k8s=$(k3d version list k3s | grep "$1" | head -n 1 | cut -d '-' -f 1)
+fi
+
+curl -sLO https://dl.k8s.io/release/"$k8s"/bin/linux/amd64/kubectl
+chmod +x ./kubectl
+sudo mv ./kubectl /usr/local/bin/kubectl
+
+k3d cluster create sda --image=rancher/k3s:"$k8s"-k3s1 --wait --timeout 10m
+k3d kubeconfig merge sda --kubeconfig-switch-context
+mkdir -p ~/.kube/ && cp ~/.config/kubeconfig-sda.yaml ~/.kube/config
diff --git a/.github/integration/scripts/charts/values.yaml b/.github/integration/scripts/charts/values.yaml
new file mode 100644
index 000000000..a2c5c58a5
--- /dev/null
+++ b/.github/integration/scripts/charts/values.yaml
@@ -0,0 +1,92 @@
+global:
+ schemaType: "isolated"
+ ingress:
+ deploy: false
+ hostName:
+ auth: pipeline-sda-svc-auth
+ download: pipeline-sda-svc-download
+ s3Inbox: pipeline-sda-svc-inbox
+ log:
+ level: "debug"
+ tls:
+ enabled: false
+ issuer: "cert-issuer"
+ clusterIssuer: ""
+ archive:
+ s3Url: "http://minio.minio"
+ s3Bucket: "archive"
+ s3Port: 9000
+ backupArchive:
+ storageType: "s3"
+ s3Url: "http://minio.minio"
+ s3Bucket: "backup"
+ s3Port: 9000
+ auth:
+ jwtSecret: jwk
+ jwtAlg: ES256
+ jwtKey: jwt.key
+ jwtPub: jwt.pub
+ resignJwt: true
+ broker:
+ durable: true
+ host: "broker-sda-mq"
+ port: 5672
+ routingError: "error"
+ backupRoutingKey: "backup"
+ ssl: false
+ username: "admin"
+ c4gh:
+ secretName: c4gh
+ keyFile: c4gh.sec.pem
+ publicFile: c4gh.pub.pem
+ db:
+ host: "postgres-sda-db"
+ user: "postgres"
+ doa:
+ enabled: false
+ download:
+ enabled: true
+ trusted:
+ configPath: "iss"
+ configFile: "iss.json"
+ iss:
+ - iss: "http://oidc-server:8080"
+ jku: "http://oidc-server:8080/jwks"
+ oidc:
+ provider: "http://oidc-server:8080"
+ jwkPath: "/jwks"
+ id: DfCieZLuBU
+ secret: DfCieZLuBU
+ inbox:
+ storageType: s3
+ s3Url: http://minio.minio
+ s3Port: 9000
+ s3Bucket: "inbox"
+ s3ReadyPath: "/minio/health/ready"
+
+auth:
+ replicaCount: 1
+ resources: null
+backup:
+ deploy: true
+ resources: null
+doa:
+ deploy: false
+download:
+ resources: null
+ replicaCount: 1
+finalize:
+ resources: null
+ingest:
+ resources: null
+intercept:
+ deploy: false
+mapper:
+ resources: null
+releasetest:
+ run: false
+s3Inbox:
+ resources: null
+ replicaCount: 1
+verify:
+ resources: null
\ No newline at end of file
diff --git a/.github/integration/tests/postgres/60_mapper_queries.sh b/.github/integration/tests/postgres/60_mapper_queries.sh
index 68732807b..cb651ac56 100644
--- a/.github/integration/tests/postgres/60_mapper_queries.sh
+++ b/.github/integration/tests/postgres/60_mapper_queries.sh
@@ -6,14 +6,39 @@ export PGPASSWORD=mapper
## map file to dataset
accession="urn:uuid:7964e232-8830-4351-8adb-e4ebb71fafed"
dataset="urn:neic:ci-test-dataset"
-file_id=$(psql -U mapper -h postgres -d sda -At -c "SELECT file_id from local_ega.archive_files WHERE stable_id = '$accession';")
-if [ "$file_id" -ne 1 ]; then
+
+file_id=$(psql -U mapper -h postgres -d sda -At -c "SELECT id FROM sda.files WHERE stable_id = '$accession';")
+if [ -z "$file_id" ]; then
echo "get file_id failed"
exit 1
fi
-resp=$(psql -U mapper -h postgres -d sda -At -c "INSERT INTO local_ega_ebi.filedataset (file_id, dataset_stable_id) VALUES ('$file_id', '$dataset') ON CONFLICT DO NOTHING;")
+dataset_id=$(psql -U mapper -h postgres -d sda -At -c "INSERT INTO sda.datasets (stable_id) VALUES ('$dataset') ON CONFLICT DO NOTHING;")
+if [ "$dataset_id" != "INSERT 0 1" ]; then
+ echo "insert dataset failed"
+ exit 1
+fi
+
+resp=$(psql -U mapper -h postgres -d sda -At -c "INSERT INTO sda.file_dataset (file_id, dataset_id) SELECT '$file_id', id FROM sda.datasets WHERE stable_id = '$dataset' ON CONFLICT DO NOTHING;")
if [ "$resp" != "INSERT 0 1" ]; then
- echo "map to dataset failed"
+ echo "map file to dataset failed"
+ exit 1
+fi
+
+register=$(psql -U mapper -h postgres -d sda -At -c "INSERT INTO sda.dataset_event_log(dataset_id, event, message) VALUES('$dataset', 'registered', '{\"type\": \"mapping\"}');")
+if [ "$register" != "INSERT 0 1" ]; then
+ echo "update dataset event failed"
+ exit 1
+fi
+
+release=$(psql -U mapper -h postgres -d sda -At -c "INSERT INTO sda.dataset_event_log(dataset_id, event, message) VALUES('$dataset', 'released', '{\"type\": \"release\"}');")
+if [ "$release" != "INSERT 0 1" ]; then
+ echo "update dataset event failed"
+ exit 1
+fi
+
+deprecate=$(psql -U mapper -h postgres -d sda -At -c "INSERT INTO sda.dataset_event_log(dataset_id, event, message) VALUES('$dataset', 'deprecated', '{\"type\": \"deprecate\"}');")
+if [ "$deprecate" != "INSERT 0 1" ]; then
+ echo "update dataset event failed"
exit 1
fi
\ No newline at end of file
diff --git a/.github/workflows/build_pr_container.yaml b/.github/workflows/build_pr_container.yaml
index 9be96eb9d..c20075cf1 100644
--- a/.github/workflows/build_pr_container.yaml
+++ b/.github/workflows/build_pr_container.yaml
@@ -20,7 +20,7 @@ jobs:
security-events: write
steps:
- name: Checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Log in to the Github Container registry
uses: docker/login-action@v2
@@ -90,7 +90,7 @@ jobs:
security-events: write
steps:
- name: Checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Log in to the Github Container registry
uses: docker/login-action@v2
@@ -126,7 +126,7 @@ jobs:
org.opencontainers.image.revision=${{ github.sha }}
- name: Run Trivy vulnerability scanner on postgres
- uses: aquasecurity/trivy-action@0.11.2
+ uses: aquasecurity/trivy-action@0.12.0
with:
image-ref: ghcr.io/${{ github.repository }}:sha-${{ github.sha }}-postgres
format: "sarif"
@@ -141,7 +141,7 @@ jobs:
category: postgres
- name: Run Trivy vulnerability scanner on rabbitmq
- uses: aquasecurity/trivy-action@0.11.2
+ uses: aquasecurity/trivy-action@0.12.0
with:
image-ref: ghcr.io/${{ github.repository }}:sha-${{ github.sha }}-rabbitmq
format: "sarif"
@@ -164,7 +164,7 @@ jobs:
security-events: write
steps:
- name: Checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Log in to the Github Container registry
uses: docker/login-action@v2
@@ -187,7 +187,7 @@ jobs:
org.opencontainers.image.revision=${{ github.sha }}
- name: Run Trivy vulnerability scanner on sftp-inbox
- uses: aquasecurity/trivy-action@0.11.2
+ uses: aquasecurity/trivy-action@0.12.0
with:
image-ref: ghcr.io/${{ github.repository }}:sha-${{ github.sha }}-sftp-inbox
format: "sarif"
@@ -209,7 +209,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Test rabbitmq federation
run: docker compose -f .github/integration/rabbitmq-federation.yml run federation_test
@@ -221,7 +221,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Test postgres
run: docker compose -f .github/integration/postgres.yml run tests
@@ -233,7 +233,62 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Test sensitive-data-archive
- run: docker compose -f .github/integration/sda-integration.yml run integration_test
\ No newline at end of file
+ run: docker compose -f .github/integration/sda-integration.yml run integration_test
+
+ chart:
+ needs:
+ - build_go_images
+ - build_server_images
+ - build_java_images
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ version: ["1.26", "1.27"]
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Install Helm
+ uses: azure/setup-helm@v3.5
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Initialise k3d
+ run: bash .github/integration/scripts/charts/k3d.sh ${{matrix.version}}
+ shell: bash
+
+ - name: debug
+ if: failure()
+ run: k3d version list k3s | grep ${{matrix.version}}
+ shell: bash
+
+ - name: Deploy external services
+ run: bash .github/integration/scripts/charts/dependencies.sh
+ shell: bash
+
+ - name: Deploy DB
+ run: bash .github/integration/scripts/charts/deploy_charts.sh sda-db ${{ github.event.number }}
+
+ - name: Deploy MQ
+ run: bash .github/integration/scripts/charts/deploy_charts.sh sda-mq ${{ github.event.number }}
+ shell: bash
+
+ - name: Deploy pipeline
+ run: bash .github/integration/scripts/charts/deploy_charts.sh sda-svc ${{ github.event.number }}
+ shell: bash
+
+ - name: test
+ if: always()
+ run: |
+ kubectl get secret broker-sda-mq -o json
+ kubectl get secret pipeline-sda-svc-mapper -o json
+ kubectl get pods
+ echo "describe mapper" && kubectl describe pod -l role=mapper
+ sleep 1
+ echo "logs mapper" && kubectl logs -l role=mapper
+ sleep 1
+ echo "describe broker" && kubectl logs -l role=broker
+ shell: bash
\ No newline at end of file
diff --git a/.github/workflows/code-linter.yaml b/.github/workflows/code-linter.yaml
index d4742b92b..bed6ff117 100644
--- a/.github/workflows/code-linter.yaml
+++ b/.github/workflows/code-linter.yaml
@@ -22,10 +22,10 @@ jobs:
id: go
- name: Check out code into the Go module directory
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Run golangci-lint
- uses: golangci/golangci-lint-action@v3.6.0
+ uses: golangci/golangci-lint-action@v3.7.0
with:
args: -E bodyclose,gocritic,gofmt,gosec,govet,nestif,nlreturn,revive,rowserrcheck --timeout 5m
working-directory: sda-auth
@@ -45,13 +45,13 @@ jobs:
id: go
- name: Check out code into the Go module directory
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Run golangci-lint
- uses: golangci/golangci-lint-action@v3.6.0
+ uses: golangci/golangci-lint-action@v3.7.0
with:
args: -E bodyclose,gocritic,gofmt,gosec,govet,nestif,nlreturn,revive,rowserrcheck -e G401,G501,G107 --timeout 5m
- working-directory: sda-auth
+ working-directory: sda-download
lint_pipeline:
name: Lint pipeline code
@@ -68,10 +68,10 @@ jobs:
id: go
- name: Check out code into the Go module directory
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Run golangci-lint
- uses: golangci/golangci-lint-action@v3.6.0
+ uses: golangci/golangci-lint-action@v3.7.0
with:
args: -E bodyclose,gocritic,gofmt,gosec,govet,nestif,nlreturn,rowserrcheck --timeout 5m
working-directory: sda-pipeline
@@ -91,10 +91,10 @@ jobs:
id: go
- name: Check out code into the Go module directory
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Run golangci-lint
- uses: golangci/golangci-lint-action@v3.6.0
+ uses: golangci/golangci-lint-action@v3.7.0
with:
args: -E bodyclose,gocritic,gofmt,gosec,govet,nestif,nlreturn,rowserrcheck --timeout 5m
working-directory: sda
\ No newline at end of file
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 1cfa98341..2c92cacdd 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -17,7 +17,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
diff --git a/.github/workflows/functionality.yml b/.github/workflows/functionality.yml
index b5c70f02d..920a4dd8f 100644
--- a/.github/workflows/functionality.yml
+++ b/.github/workflows/functionality.yml
@@ -12,13 +12,13 @@ jobs:
strategy:
fail-fast: false
matrix:
- go-version: [1.19]
+ go-version: ['1.20']
steps:
- name: Set up Go ${{ matrix.go-version }}
uses: actions/setup-go@v4
with:
go-version: ${{ matrix.go-version }}
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Set up Python 3.7
uses: actions/setup-python@v4
with:
@@ -54,7 +54,7 @@ jobs:
python-version: '3.9'
- name: Check out code into the Go module directory
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Run setup scripts
run: |
@@ -89,7 +89,7 @@ jobs:
python-version: '3.9'
- name: Check out code into the Go module directory
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Run setup scripts
run: |
@@ -111,7 +111,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Build image
run: |
diff --git a/.github/workflows/ghcr-actions.yml b/.github/workflows/ghcr-actions.yml
index 3115059a0..acc283201 100644
--- a/.github/workflows/ghcr-actions.yml
+++ b/.github/workflows/ghcr-actions.yml
@@ -17,7 +17,7 @@ jobs:
packages: write
steps:
- name: Delete 'PR' containers older than a week
- uses: snok/container-retention-policy@v2.1.1
+ uses: snok/container-retention-policy@v2.1.2
with:
image-names: sensitive-data-archive
filter-tags: PR*,sha-*
diff --git a/.github/workflows/publish_charts.yml b/.github/workflows/publish_charts.yml
index c931cb7e3..c9593ecf3 100644
--- a/.github/workflows/publish_charts.yml
+++ b/.github/workflows/publish_charts.yml
@@ -1,19 +1,21 @@
name: Publish charts
on:
- push:
+ pull_request:
branches:
- main
paths:
- "charts/**"
+ types: [ closed ]
jobs:
- release:
+ release_chart:
+ if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
diff --git a/.github/workflows/publish_container.yml b/.github/workflows/publish_container.yml
index 32529f658..3e28e09ad 100644
--- a/.github/workflows/publish_container.yml
+++ b/.github/workflows/publish_container.yml
@@ -20,7 +20,7 @@ jobs:
new_tag: ${{ steps.bump_tag.outputs.new_tag }}
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
fetch-depth: '0'
- name: Bump version and push tag
@@ -41,7 +41,7 @@ jobs:
packages: write
steps:
- name: Check out the repo
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Log in to the Github Container registry
uses: docker/login-action@v2
diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml
index eeef6a813..ff8f0e6d2 100644
--- a/.github/workflows/shellcheck.yml
+++ b/.github/workflows/shellcheck.yml
@@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: check all scripts
uses: ludeeus/action-shellcheck@master
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 67fe22a0e..e4bb85de5 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Set up JDK ${{ matrix.java-version }}
uses: actions/setup-java@v3
with:
@@ -44,7 +44,7 @@ jobs:
id: go
- name: Check out code into the Go module directory
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Get dependencies
run: |
@@ -94,7 +94,7 @@ jobs:
id: go
- name: Check out code into the Go module directory
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Get dependencies
run: |
@@ -132,7 +132,7 @@ jobs:
id: go
- name: Check out code into the Go module directory
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Get dependencies
run: |
diff --git a/charts/sda-db/Chart.yaml b/charts/sda-db/Chart.yaml
index f73dd4842..a751eeb51 100644
--- a/charts/sda-db/Chart.yaml
+++ b/charts/sda-db/Chart.yaml
@@ -1,8 +1,8 @@
apiVersion: v2
name: sda-db
-version: "0.5.2"
+version: "0.6.0"
description: Database component for Sensitive Data Archive (SDA) installation
home: https://neic-sda.readthedocs.io
icon: https://neic.no/assets/images/logo.png
sources:
-- https://github.com/neicnordic/sda-helm
+- https://github.com/neicnordic/sensitive-data-archive
diff --git a/charts/sda-db/README.md b/charts/sda-db/README.md
index 2024f2a5a..d2856f248 100644
--- a/charts/sda-db/README.md
+++ b/charts/sda-db/README.md
@@ -1,6 +1,6 @@
# SDA Database
-Source repository: [https://github.com/neicnordic/sda-db](https://github.com/neicnordic/sda-db)
+Source repository: [https://github.com/neicnordic/sensitive-data-archive](https://github.com/neicnordic/sensitive-data-archive)
## Installing the Chart
@@ -8,8 +8,7 @@ Edit the values.yaml file and specify the relevant parts of the `global` section
Parameter | Description | Default
--------- | ----------- | -------
-`global.pg_in_password` | Password for `lega_in` user, used for `data in` services. |`""`
-`global.pg_out_password` | Password for `lega_out` user, used for `data out` services. |`""`
+`global.postgresAdminPassword` | PostgreSQL admin password (Random if empty) | `""`
`global.tls.enabled` | Enable TLS for all connections. |`true`
`global.tls.issuer` | Issuer for TLS certificate creation. |`""`
`global.tls.clusterIssuer` | ClusterIssuer for TLS certificate creation. |`""`
@@ -19,8 +18,8 @@ Parameter | Description | Default
`global.tls.CAFile` | CA root certificate. |`ca.crt`
`global.tls.verifyPeer` | Require client certificates. |`verify-ca`
`externalPkiService.tlsPath` | If an external PKI service is used, this is the path where the certifiates are placed | `""`
-`image.repository` | sda-db container image repository | `ghcr.io/neicnordic/sda-db`
-`image.tag` | sda-db container image version | `v1.4.0`
+`image.repository` | sda-db container image repository | `ghcr.io/neicnordic/sensitive-data-archive`
+`image.tag` | sda-db container image version | ``
`image.pullPolicy` | sda-db container image pull policy | `IfNotPresent`
`networkPolicy.create` | Use network isolation. | `false`
`networkPolicy.matchLabels` | App labels that are allowed to connect to the database. | `app: sda-svc`
@@ -31,8 +30,6 @@ Parameter | Description | Default
`persistence.existingClaim` | Use existing claim. | `null`
`persistence.volumePermissions` | Change the owner of the persist volume mountpoint to `RunAsUser:fsGroup`. | `true`
`podAnnotations` | `"key": "value"` list of annotations for the pod (optional) | `{}`
-`port` | Port the application will listen to (optional) | `5432`
-`postgresAdminPassword` | PostgreSQL admin password (optional) | `""`
`rbacEnabled` | Use role based access control. |`true`
`resources.requests.memory` | Memory request for container. |`128Mi`
`resources.requests.cpu` | CPU request for container. |`100m`
@@ -40,7 +37,7 @@ Parameter | Description | Default
`resources.limits.cpu` | CPU limit for container. |`200m`
`revisionHistory` | Number of revisions to keep for the option to rollback a deployment | `3`
`updateStrategyType` | Update strategy type. | `RollingUpdate`
-`securityPolicy.create` | Use pod security policy. | `true`
+`securityPolicy.create` | Use pod security policy. | `false`
`service.type` | Database service type. |`ClusterIP`
`service.port` | Database service port. |`5432`
diff --git a/charts/sda-db/templates/_helpers.tpl b/charts/sda-db/templates/_helpers.tpl
index a17860a6b..ba511299f 100644
--- a/charts/sda-db/templates/_helpers.tpl
+++ b/charts/sda-db/templates/_helpers.tpl
@@ -30,14 +30,6 @@ Create chart name and version as used by the chart label.
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
-{{- define "pgInPassword" -}}
- {{- ternary (randAlphaNum 12) .Values.global.pg_in_password (empty .Values.global.pg_in_password) -}}
-{{- end -}}
-
-{{- define "pgOutPassword" -}}
- {{- ternary (randAlphaNum 12) .Values.global.pg_out_password (empty .Values.global.pg_out_password) -}}
-{{- end -}}
-
{{- define "pgCert" -}}
{{- if .Values.externalPkiService.tlsPath -}}
{{- printf "%s" (regexReplaceAll "^/*|/+" (printf "%s/tls.crt" .Values.externalPkiService.tlsPath) "/") -}}
@@ -113,3 +105,11 @@ Create chart name and version as used by the chart label.
{{- "/var/lib/postgresql/data/pgdata/" }}
{{- end -}}
{{- end -}}
+
+{{- define "adminPass" -}}
+ {{- if .Values.global.postgresAdminPassword }}
+ {{- printf "%s" (.Values.global.postgresAdminPassword ) | b64enc }}
+ {{- else }}
+ {{- randAlphaNum 32 | b64enc }}
+ {{- end -}}
+{{- end -}}
\ No newline at end of file
diff --git a/charts/sda-db/templates/secrets.yaml b/charts/sda-db/templates/secrets.yaml
index 159211c77..8ada8be82 100644
--- a/charts/sda-db/templates/secrets.yaml
+++ b/charts/sda-db/templates/secrets.yaml
@@ -3,8 +3,7 @@ kind: Secret
metadata:
name: {{ template "sda.fullname" . }}
data:
- pgInPasswd: {{ include "pgInPassword" . | b64enc }}
- pgOutPasswd: {{ include "pgOutPassword" . | b64enc }}
-{{- if .Values.postgresAdminPassword }}
- postgresPassword: {{ .Values.postgresAdminPassword | b64enc }}
-{{- end }}
+ {{- $secretObj := (lookup "v1" "Secret" .Release.Namespace (include "sda.fullname" .)) | default dict }}
+ {{- $secretData := (get $secretObj "data") | default dict }}
+ {{- $postgresPassword := (get $secretData "postgresPassword") | default (include "adminPass" . ) }}
+ postgresPassword: {{ $postgresPassword | quote }}
diff --git a/charts/sda-db/templates/statefulset.yaml b/charts/sda-db/templates/statefulset.yaml
index e3ab1bb79..fd6da055a 100644
--- a/charts/sda-db/templates/statefulset.yaml
+++ b/charts/sda-db/templates/statefulset.yaml
@@ -77,37 +77,22 @@ spec:
resources:
{{ toYaml .Values.resources | trim | indent 10 }}
env:
- - name: DB_LEGA_IN_PASSWORD
- valueFrom:
- secretKeyRef:
- name: {{ template "sda.fullname" . }}
- key: pgInPasswd
- - name: DB_LEGA_OUT_PASSWORD
- valueFrom:
- secretKeyRef:
- name: {{ template "sda.fullname" . }}
- key: pgOutPasswd
- {{- if .Values.postgresAdminPassword }}
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: {{ template "sda.fullname" . }}
key: postgresPassword
- {{- end }}
{{- if .Values.global.tls.enabled }}
- - name: PG_SERVER_CERT
+ - name: POSTGRES_SERVER_CERT
value: {{ template "pgCert" . }}
- - name: PG_SERVER_KEY
+ - name: POSTGRES_SERVER_KEY
value: {{ template "pgKey" . }}
{{- if ne "verify-none" .Values.global.tls.verifyPeer }}
- - name: PG_CA
+ - name: POSTGRES_SERVER_CACERT
value: {{ template "caCert" . }}
- - name: PG_VERIFY_PEER
+ - name: POSTGRES_VERIFY_PEER
value: {{ .Values.global.tls.verifyPeer }}
{{- end }}
- {{- else }}
- - name: NOTLS
- value: "true"
{{- end }}
- name: PGDATA
value: {{ template "pgData" }}
@@ -118,21 +103,17 @@ spec:
livenessProbe:
exec:
command:
- - pg_isready
- - -h
- - localhost
- - -U
- - lega_out
+ - sh
+ - -c
+ - PGPASSWORD=$POSTGRES_PASSWORD psql -U postgres -h localhost -Atq -c "SELECT version();"
initialDelaySeconds: 30
timeoutSeconds: 5
readinessProbe:
exec:
command:
- - pg_isready
- - -h
- - localhost
- - -U
- - lega_out
+ - sh
+ - -c
+ - PGPASSWORD=$POSTGRES_PASSWORD psql -U postgres -h localhost -Atq -c "SELECT version();"
initialDelaySeconds: 5
timeoutSeconds: 1
volumeMounts:
diff --git a/charts/sda-db/values.yaml b/charts/sda-db/values.yaml
index 749bb0a17..eb26e5722 100644
--- a/charts/sda-db/values.yaml
+++ b/charts/sda-db/values.yaml
@@ -1,6 +1,5 @@
global:
- pg_in_password: ""
- pg_out_password: ""
+ postgresAdminPassword: ""
tls:
enabled: true
issuer: ""
@@ -25,8 +24,8 @@ externalPkiService:
extraSecurityContext: {}
image:
- repository: ghcr.io/neicnordic/sda-db
- tag: v2.1.10
+ repository: ghcr.io/neicnordic/sensitive-data-archive
+ tag: v0.0.65-postgres
pullPolicy: IfNotPresent
# utilize network isolation
@@ -61,13 +60,6 @@ persistence:
# podAnnotations: |
# "key": "value"
-# if a port other than the default 5432 is used in the pod set the value here.
-# port: 5432
-
-# if an admin user is to be created during the first setup, set the password below
-# This can only be done during the first setup
-# postgresAdminPassword:
-
# RBAC is assumed to be enabled in the cluster
rbacEnabled: true
@@ -84,8 +76,9 @@ resources:
## RevisionHistoryLimit is number of old ReplicaSets to retain to allow rollback.
# revisionHistory: 3
+## This is only available on clusters running k8s < v1.25.0
securityPolicy:
- create: true
+ create: false
service:
type: ClusterIP
@@ -93,7 +86,6 @@ service:
updateStrategyType: RollingUpdate
-
# secret containing the TLS certificates for the release tester
# if no certificate issuer is used
testimage:
diff --git a/charts/sda-mq/Chart.yaml b/charts/sda-mq/Chart.yaml
index a1b80b3cf..0031e9cf8 100644
--- a/charts/sda-mq/Chart.yaml
+++ b/charts/sda-mq/Chart.yaml
@@ -1,6 +1,6 @@
apiVersion: v2
name: sda-mq
-version: "0.4.6"
+version: "0.5.0"
description: RabbitMQ component for Sensitive Data Archive (SDA) installation
home: https://neic-sda.readthedocs.io
icon: https://neic.no/assets/images/logo.png
diff --git a/charts/sda-mq/README.md b/charts/sda-mq/README.md
index f539e9d83..c7e591d0e 100644
--- a/charts/sda-mq/README.md
+++ b/charts/sda-mq/README.md
@@ -1,6 +1,6 @@
# SDA Message broker
-Source repository: [https://github.com/neicnordic/sda-mq](https://github.com/neicnordic/sda-mq)
+Source repository: [https://github.com/neicnordic/sensitive-data-archive](https://github.com/neicnordic/sensitive-data-archive)
## Installing the Chart
@@ -8,11 +8,17 @@ Edit the values.yaml file and specify the relevant parts of the `config` section
Parameter | Description | Default
--------- | ----------- | -------
-`image.repository` | sda-mq container image repository | `ghcr.io/neicnordic/sda-mq`
-`image.tag` | sda-mq container image version | `v1.3.0`
+`image.repository` | sda-mq container image repository | `ghcr.io/neicnordic/sensitive-data-archive`
+`image.tag` | sda-mq container image version | ``
`image.pullPolicy` | sda-mq container image pull policy | `Always`
-`global.adminUser` | Username of admin user |`""`
-`global.adminPasswordHash` | Passwordhash for admin user. |`""`
+`global.adminUser` | Username of admin user |`admin`
+`global.adminPassword` | Password for admin user. |`Random if unset`
+`global.ingress.annotations` | extra annotations for the ingress objects | `""`
+`global.ingress.ingressClassName` | class of the ingress controller | `"nginx"`
+`global.ingress.clusterIssuer` | If cert-manager is set up to request certificates to the ingress endpoints, the configured clusterIssuer can be specified to automate certificate configuration for the ingress endpoint. | `""`
+`global.ingress.hostName` | hostname for the ingress endpoint | `""`
+`global.ingress.issuer` | If cert-manager is set up to request certificates to the ingress endpoints, the configured issuer can be specified to automate certificate configuration for the ingress endpoint. | `""`
+`global.ingress.secretName` | The name of a manually created secret holding the certificates for the ingress enpoint. | `""`
`global.tls.enabled` | Use TLS for all connections. |`true`
`global.tls.issuer` | Issuer for TLS certificate creation. |`""`
`global.tls.clusterIssuer` | ClusterIssuer for TLS certificate creation. |`""`
@@ -21,7 +27,7 @@ Parameter | Description | Default
`global.tls.serverCert` | Name of the certificate file. |`""`
`global.tls.caCert` | Name of the CA file. |`""`
`global.tls.verifyPeer` | Require client certificates. |`true`
-`global.vhost` | default vhost is '/' unless specifically named |`""`
+`global.vhost` | default vhost is 'sda' unless specifically named |`""`
`global.shovel.host` | Hostname of federated server |`""`
`global.shovel.pass` | Password to federated server |`""`
`global.shovel.port` | Port that federated server listens on |`5671`
@@ -33,7 +39,7 @@ Parameter | Description | Default
`updateStrategyType` | Update strategy type. | `RollingUpdate`
`networkPolicy.create` | Use network isolation. | `false`
`networkPolicy.matchLabels` | App labels that are allowed to connect to the Message broker. | `app: sda-svc`
-`securityPolicy.create` | Use pod security policy. | `true`
+`securityPolicy.create` | Use pod security policy. | `false`
`persistence.enabled` | Enable persistence. | `true`
`persistence.storageSize` | Volume size. | `8Gi`
`persistence.storageClass` | Use specific storage class, by default dynamic provisioning enabled. | `null`
@@ -41,10 +47,10 @@ Parameter | Description | Default
`persistence.volumePermissions` | Change the owner of the persist volume mountpoint to `RunAsUser:fsGroup`. | `true`
`service.type` | Message broker service type. |`ClusterIP`
`service.port` | Message broker service port. |`5671`
-`resources.requests.memory` | Memory request for container. |`128Mi`
-`resources.requests.cpu` | CPU request for container. |`100m`
-`resources.limits.memory` | Memory limit for container. |`256Mi`
-`resources.limits.cpu` | CPU limit for container. |`200m`
+`resources.requests.memory` | Memory request for container. |`1Gi`
+`resources.requests.cpu` | CPU request for container. |`1`
+`resources.limits.memory` | Memory limit for container. |`2Gi`
+`resources.limits.cpu` | CPU limit for container. |`2`
`testimage.tls.secretName` | Name of the testers secret that holds the certificates. |`""`
`testimage.tls.serverKey` | Name of the testers certificate private key file. |`""`
`testimage.tls.serverCert` | Name of testers the certificate file. |`""`
@@ -71,11 +77,3 @@ kubectl create secret generic tester-certs \
--from-file=tls.crt\
--from-file=tls.key
```
-
-## Password hash
-
-To create a password hash for the admin user run the followin command:
-
-```cmd
-sh ../dev_tools/scripts/mq-password-generator.sh ADMIN_PASSWORD
-```
diff --git a/charts/sda-mq/templates/_helpers.tpl b/charts/sda-mq/templates/_helpers.tpl
index dbc94bd05..35b449db1 100644
--- a/charts/sda-mq/templates/_helpers.tpl
+++ b/charts/sda-mq/templates/_helpers.tpl
@@ -99,3 +99,11 @@ Create chart name and version as used by the chart label.
{{- end -}}
{{- end -}}
{{- end -}}
+
+{{- define "adminPass" -}}
+ {{- if .Values.global.adminPassword }}
+ {{- printf "%s" (.Values.global.adminPassword ) | b64enc }}
+ {{- else }}
+ {{- randAlphaNum 32 | b64enc }}
+ {{- end -}}
+{{- end -}}
\ No newline at end of file
diff --git a/charts/sda-mq/templates/ingress.yaml b/charts/sda-mq/templates/ingress.yaml
new file mode 100644
index 000000000..fd0f30d58
--- /dev/null
+++ b/charts/sda-mq/templates/ingress.yaml
@@ -0,0 +1,45 @@
+{{- if .Values.global.ingress.hostname }}
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+ name: {{ template "sda.fullname" . }}-ingress
+ labels:
+ app: {{ template "sda.fullname" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ .Release.Name }}
+ heritage: {{ .Release.Service }}
+ annotations:
+ {{- if eq "nginx" .Values.global.ingress.ingressClassName }}
+ nginx.ingress.kubernetes.io/rewrite-target: "/"
+ nginx.ingress.kubernetes.io/backend-protocol: "{{ ternary "HTTPS" "HTTP" .Values.global.tls.enabled }}"
+ {{- end }}
+ {{- if .Values.global.ingress.clusterIssuer }}
+ cert-manager.io/cluster-issuer: {{ .Values.global.ingress.clusterIssuer | quote }}
+ {{- else if .Values.global.ingress.issuer }}
+ cert-manager.io/issuer: {{ .Values.global.ingress.issuer | quote }}
+ {{- end }}
+{{- if .Values.global.ingress.annotations }}
+{{ toYaml .Values.global.ingress.annotations | indent 4 }}
+{{- end }}
+spec:
+{{- if .Values.global.ingress.ingressClassName }}
+ ingressClassName: {{ .Values.global.ingress.ingressClassName }}
+{{- end }}
+ rules:
+ - host: {{ required "An ingress hostname is required!" .Values.global.ingress.hostName }}
+ http:
+ paths:
+ - pathType: Prefix
+ path: "/"
+ backend:
+ service:
+ name: {{ template "sda.fullname" . }}
+ port:
+ number: {{ ternary 15671 15672 .Values.global.tls.enabled }}
+{{- if .Values.global.tls.enabled }}
+ tls:
+ - hosts:
+ - {{ required "An ingress hostname is required!" .Values.global.ingress.hostName }}
+ secretName: {{ if .Values.global.ingress.secretName }}{{ .Values.global.ingress.secretName }}{{- else }}"{{ template "sda.fullname" . }}-ingress"{{- end }}
+{{- end }}
+{{- end }}
diff --git a/charts/sda-mq/templates/secrets.yaml b/charts/sda-mq/templates/secrets.yaml
index a1d8bac23..193d1abab 100644
--- a/charts/sda-mq/templates/secrets.yaml
+++ b/charts/sda-mq/templates/secrets.yaml
@@ -3,7 +3,10 @@ kind: Secret
metadata:
name: {{ template "sda.fullname" . }}
data:
- password_hash: {{ (required "A valid MQ password hash is required" .Values.global.adminPasswordHash) | quote | trimall "\"" | b64enc }}
+ {{- $secretObj := (lookup "v1" "Secret" .Release.Namespace (include "sda.fullname" .)) | default dict }}
+ {{- $secretData := (get $secretObj "data") | default dict }}
+ {{- $adminPassword := (get $secretData "password") | default (include "adminPass" . ) }}
+ password: {{ $adminPassword | quote }}
{{- if and .Values.global.shovel.host (and .Values.global.shovel.user .Values.global.shovel.pass) }}
shovel_connection: {{ printf "amqps://%s:%s@%s:%s/%s?server_name_indication=%s" .Values.global.shovel.user .Values.global.shovel.pass (required "A valid MQ shovel host is required" .Values.global.shovel.host) ( .Values.global.shovel.port | quote | trimall "\"" ) .Values.global.shovel.vhost .Values.global.shovel.host | quote | trimall "\"" | b64enc }}
{{- end }}
diff --git a/charts/sda-mq/templates/service.yaml b/charts/sda-mq/templates/service.yaml
index fcda5f364..b7df680e1 100644
--- a/charts/sda-mq/templates/service.yaml
+++ b/charts/sda-mq/templates/service.yaml
@@ -14,6 +14,8 @@ spec:
port: 4369
- name: rabbitmq-dist
port: 25672
+ - name: management
+ port: {{ ternary 15671 15672 (.Values.global.tls.enabled )}}
selector:
app: {{ template "sda.fullname" . }}
diff --git a/charts/sda-mq/templates/statefulset.yaml b/charts/sda-mq/templates/statefulset.yaml
index 1a97065f1..b9b1352d5 100644
--- a/charts/sda-mq/templates/statefulset.yaml
+++ b/charts/sda-mq/templates/statefulset.yaml
@@ -65,13 +65,13 @@ spec:
resources:
{{ toYaml .Values.resources | trim | indent 10 }}
env:
- - name: MQ_USER
- value: {{ required "The admin username is required" .Values.global.adminUser | quote }}
- - name: MQ_PASSWORD_HASH
+ - name: RABBITMQ_DEFAULT_USER
+ value: {{ .Values.global.adminUser | default "admin" }}
+ - name: RABBITMQ_DEFAULT_PASS
valueFrom:
secretKeyRef:
name: {{ template "sda.fullname" . }}
- key: password_hash
+ key: password
{{- if and .Values.global.shovel.host (and .Values.global.shovel.user .Values.global.shovel.pass) }}
- name: CEGA_CONNECTION
valueFrom:
@@ -90,16 +90,13 @@ spec:
- name: MQ_VERIFY
value: {{ template "verifyPeer" . }}
{{- end }}
- {{- else }}
- - name: NOTLS
- value: "true"
{{- end }}
{{- if .Values.global.vhost }}
- name: MQ_VHOST
value: {{ .Values.global.vhost | quote }}
{{- end }}
ports:
- - containerPort: 15672
+ - containerPort: {{ ternary 15671 15672 (.Values.global.tls.enabled )}}
name: management
protocol: TCP
- containerPort: {{ ternary 5671 5672 (.Values.global.tls.enabled )}}
@@ -111,8 +108,8 @@ spec:
- -ec
- rabbitmq-diagnostics -q ping
initialDelaySeconds: 20
- periodSeconds: 5
- timeoutSeconds: 5
+ periodSeconds: 10
+ timeoutSeconds: 3
readinessProbe:
exec:
command:
@@ -121,7 +118,7 @@ spec:
- rabbitmq-diagnostics -q check_running && rabbitmq-diagnostics -q check_local_alarms
initialDelaySeconds: 30
periodSeconds: 10
- timeoutSeconds: 10
+ timeoutSeconds: 3
volumeMounts:
- name: data
mountPath: "/var/lib/rabbitmq/"
diff --git a/charts/sda-mq/values.yaml b/charts/sda-mq/values.yaml
index 305aa62c8..8fab60cbc 100644
--- a/charts/sda-mq/values.yaml
+++ b/charts/sda-mq/values.yaml
@@ -1,6 +1,16 @@
global:
adminUser:
- adminPasswordHash:
+ adminPassword:
+ ingress:
+ # extra annotations for the ingress
+ annotations: {}
+ hostname: ""
+ ingressClassName: "nginx"
+ issuer: ""
+ clusterIssuer: ""
+ # If the certificates is generated by external providers
+ # the secrets containing them needs to be created manually.
+ secretName: ""
tls:
enabled: true
issuer: ""
@@ -10,7 +20,6 @@ global:
keyName: tls.key
caCert: ca.crt
verifyPeer: true
-# if a different vhost than the default `/` is to be used
vhost: ""
# Upstream shovel recipient
@@ -34,8 +43,8 @@ externalPkiService:
extraSecurityContext: {}
image:
- repository: ghcr.io/neicnordic/sda-mq
- tag: v1.4.38
+ repository: ghcr.io/neicnordic/sensitive-data-archive
+ tag: v0.0.65-rabbitmq
pullPolicy: Always
# utilize network isolation
@@ -56,7 +65,7 @@ networkPolicy:
## If undefined (the default) or set to null, no storageClassName spec is
## set, choosing the default provisioner.
persistence:
- enabled: false
+ enabled: true
storageSize: 8Gi
storageClass: null
existingClaim: null
@@ -74,19 +83,20 @@ rbacEnabled: true
resources:
requests:
- memory: "128Mi"
- cpu: "100m"
- limits:
memory: "1Gi"
cpu: "1"
+ limits:
+ memory: "2Gi"
+ cpu: "2"
## RevisionHistory
## If defined, set the revisionHistoryLimit of the deployment, defaults to 3
## RevisionHistoryLimit is number of old ReplicaSets to retain to allow rollback.
# revisionHistory: 3
+## This is only available on clusters running k8s < v1.25.0
securityPolicy:
- create: true
+ create: false
service:
type: ClusterIP
diff --git a/charts/sda-svc/Chart.yaml b/charts/sda-svc/Chart.yaml
index ab408cf04..d84ff4220 100644
--- a/charts/sda-svc/Chart.yaml
+++ b/charts/sda-svc/Chart.yaml
@@ -1,9 +1,9 @@
apiVersion: v2
name: sda-svc
-version: "0.18.9"
+version: "0.20.0"
kubeVersion: ">= 1.19.0-0"
description: Components for Sensitive Data Archive (SDA) installation
home: https://neic-sda.readthedocs.io
icon: https://neic.no/assets/images/logo.png
sources:
-- https://github.com/neicnordic/sda-helm
+- https://github.com/neicnordic/sensitive-data-archive
diff --git a/charts/sda-svc/README.md b/charts/sda-svc/README.md
index ed10fd400..73866f682 100644
--- a/charts/sda-svc/README.md
+++ b/charts/sda-svc/README.md
@@ -2,9 +2,8 @@
Source repositories:
-- [https://github.com/neicnordic/sda-pipeline](https://github.com/neicnordic/sda-pipeline)
+- [https://github.com/neicnordic/sensitive-data-archive](https://github.com/neicnordic/sensitive-data-archive)
- [https://github.com/neicnordic/sda-doa](https://github.com/neicnordic/sda-doa)
-- [https://github.com/neicnordic/sda-download](https://github.com/neicnordic/sda-download)
## Installing the Chart
@@ -17,6 +16,9 @@ The following table lists the configurable parameters of the `sda-svc` chart and
Parameter | Description | Default
--------- | ----------- | -------
+`global.repository` | Repository URI | `ghcr.io/neicnordic/sensitive-data-archive`
+`global.imageTag` | Tag version to deploy | ``
+`global.imagePullPolicy` | Image pull policy, `Always` or `IfNotPresent` | `Always`
`global.secretsPath` | Path where the sensitive files can be found | `/.secrets`
`global.c4ghPath` | This path will be a subpath to the secretsPath | `c4gh`
`global.tlsPath` | This path will be a subpath to the secretsPath | `tls`
@@ -120,10 +122,12 @@ Parameter | Description | Default
`global.download.trusted.configPath` | Path to the ISS config file | `$secrets/iss`
`global.download.trusted.configFile` | Name of ISS config file | `iss.json`
`global.download.trusted.iss` | Array of trusted OIDC endpoints | ``
-`global.download.trusted.iss[iss]` | URI to the OIDC service | `https://login.elixir-czech.org/oidc/`
-`global.download.trusted.iss[jku]` | The URI to the OIDCs jwk endpoint | `https://login.elixir-czech.org/oidc/jwk`
-`global.elixir.oidcdHost` | URL to the OIDc service. | `"https://login.elixir-czech.org/oidc/"`
-`global.elixir.jwkPath` | Public key path on the OIDC host. | `jwk`
+`global.download.trusted.iss[iss]` | URI to the OIDC service | `https://proxy.aai.lifescience-ri.eu`
+`global.download.trusted.iss[jku]` | The URI to the OIDCs jwk endpoint | `https://proxy.aai.lifescience-ri.eu/OIDC/jwks`
+`global.oidc.provider` | URL to the OIDc service. | `"https://proxy.aai.lifescience-ri.eu"`
+`global.oidc.jwkPath` | Public key path on the OIDC host. | `/OIDC/jwks`
+`global.oidc.id` | User ID to the OIDC host. | ``
+`global.oidc.secret` | User credentials to the OIDC host. | ``
`global.inbox.servicePort` | The port that the inbox is accessible via. | `2222`
`global.inbox.storageType` | Storage type for the inbox, available options are `s3` and `posix`. |`posix`
`global.inbox.path` | Path to the mounted `posix` volume. |`/inbox`
@@ -182,25 +186,19 @@ Parameter | Description | Default
Parameter | Description | Default
--------- | ----------- | -------
-`auth.replicaCount` | desired number of replicas | `1`
-`auth.repository` | auth container image repository | `neicnordic/sda-auth`
-`auth.imageTag` | auth container image version | `"latest"`
-`auth.imagePullPolicy` | auth container image pull policy | `Always`
+`auth.replicaCount` | desired number of replicas | `2`
`auth.annotations` | Specific annotation for the auth pod | `{}`
`auth.resources.requests.memory` | Memory request for container. |`128Mi`
`auth.resources.requests.cpu` | CPU request for container. |`100m`
`auth.resources.limits.memory` | Memory limit for container. |`256Mi`
`auth.resources.limits.cpu` | CPU limit for container. |`250m`
-`backup.repository` | inbox container image repository | `neicnordic/sda-pipeline`
-`backup.imageTag` | inbox container image version | `latest`
-`backup.imagePullPolicy` | inbox container image pull policy | `Always`
`backup.annotations` | Specific annotation for the backup pod | `{}`
`backup.resources.requests.memory` | Memory request for backup container. |`128Mi`
`backup.resources.requests.cpu` | CPU request for backup container. |`100m`
`backup.resources.limits.memory` | Memory limit for backup container. |`256Mi`
`backup.resources.limits.cpu` | CPU limit for backup container. |`250m`
`backup.deploy` | Set to true if the backup service should be active | `false`
-`doa.replicaCount` | desired number of replicas | `1`
+`doa.replicaCount` | desired number of replicas | `2`
`doa.repository` | dataedge container image repository | `neicnordic/sda-doa`
`doa.imageTag` | dataedge container image version | `"latest"`
`doa.imagePullPolicy` | dataedge container image pull policy | `Always`
@@ -210,36 +208,24 @@ Parameter | Description | Default
`doa.resources.requests.cpu` | CPU request for dataedge container. |`100m`
`doa.resources.limits.memory` | Memory limit for dataedge container. |`1024Mi`
`doa.resources.limits.cpu` | CPU limit for dataedge container. |`2000m`
-`download.replicaCount` | desired number of replicas | `1`
-`download.repository` | dataedge container image repository | `neicnordic/sda-doa`
-`download.imageTag` | dataedge container image version | `"latest"`
-`download.imagePullPolicy` | dataedge container image pull policy | `Always`
+`download.replicaCount` | desired number of replicas | `2`
`download.keystorePass` | keystore password | `changeit`
`download.annotations` | Specific annotation for the dataedge pod | `{}`
`download.resources.requests.memory` | Memory request for dataedge container. |`256Mi`
`download.resources.requests.cpu` | CPU request for dataedge container. |`100m`
`download.resources.limits.memory` | Memory limit for dataedge container. |`512Mi`
`download.resources.limits.cpu` | CPU limit for dataedge container. |`1000m`
-`finalize.repository` | inbox container image repository | `neicnordic/sda-pipeline`
-`finalize.imageTag` | inbox container image version | `latest`
-`finalize.imagePullPolicy` | inbox container image pull policy | `Always`
`finalize.annotations` | Specific annotation for the finalize pod | `{}`
`finalize.resources.requests.memory` | Memory request for finalize container. |`128Mi`
`finalize.resources.requests.cpu` | CPU request for finalize container. |`100m`
`finalize.resources.limits.memory` | Memory limit for finalize container. |`256Mi`
`finalize.resources.limits.cpu` | CPU limit for finalize container. |`250m`
-`ingest.repository` | inbox container image repository | `neicnordic/sda-pipeline`
-`ingest.imageTag` | inbox container image version | `latest`
-`ingest.imagePullPolicy` | inbox container image pull policy | `Always`
`ingest.replicaCount` | desired number of ingest workers | `1`
`ingest.annotations` | Specific annotation for the ingest pod | `{}`
`ingest.resources.requests.memory` | Memory request for ingest container. |`128Mi`
`ingest.resources.requests.cpu` | CPU request for ingest container. |`100m`
`ingest.resources.limits.memory` | Memory limit for ingest container. |`512Mi`
`ingest.resources.limits.cpu` | CPU limit for ingest container. |`2000m`
-`intercept.repository` | intercept container image repository | `neicnordic/sda-pipeline`
-`intercept.imageTag` | intercept container image version | `latest`
-`intercept.imagePullPolicy` | intercept container image pull policy | `Always`
`intercept.replicaCount` | desired number of intercept workers | `1`
`intercept.annotations` | Specific annotation for the intercept pod | `{}`
`intercept.deploy` | Set to false in a non federated deployment | `true`
@@ -247,19 +233,13 @@ Parameter | Description | Default
`intercept.resources.requests.cpu` | CPU request for intercept container. |`100m`
`intercept.resources.limits.memory` | Memory limit for intercept container. |`128Mi`
`intercept.resources.limits.cpu` | CPU limit for intercept container. |`2000m`
-`s3Inbox.repository` | S3inbox container image repository | `neicnordic/sda-s3proxy`
-`s3Inbox.imageTag` | S3inbox container image version | `latest`
-`s3Inbox.imagePullPolicy` | S3inbox container image pull policy | `Always`
-`s3Inbox.replicaCount`| desired number of S3inbox containers | `1`
+`s3Inbox.replicaCount`| desired number of S3inbox containers | `2`
`s3Inbox.annotations` | Specific annotation for the S3inbox pod | `{}`
`s3Inbox.resources.requests.memory` | Memory request for s3Inbox container. |`128Mi`
`s3Inbox.resources.requests.cpu` | CPU request for s3Inbox container. |`100m`
`s3Inbox.resources.limits.memory` | Memory limit for s3Inbox container. |`1024Mi`
`s3Inbox.resources.limits.cpu` | CPU limit for s3Inbox container. |`1000m`
-`sftpInbox.repository` | sftp inbox container image repository | `neicnordic/sda-inbox-sftp`
-`sftpInbox.imageTag` | sftp inbox container image version | `latest`
-`sftpInbox.imagePullPolicy` | sftp inbox container image pull policy | `Always`
-`sftpInbox.replicaCount`| desired number of sftp inbox containers | `1`
+`sftpInbox.replicaCount`| desired number of sftp inbox containers | `2`
`sftpInbox.keystorePass` | sftp inbox keystore password | `changeit`
`sftpInbox.nodeHostname` | Node name if the sftp inbox needs to be deployed on a specific node | `""`
`sftpInbox.annotations` | Specific annotation for the sftp inbox pod | `{}`
@@ -267,9 +247,6 @@ Parameter | Description | Default
`sftpInbox.resources.requests.cpu` | CPU request for sftpInbox container. |`100m`
`sftpInbox.resources.limits.memory` | Memory limit for sftpInbox container. |`256Mi`
`sftpInbox.resources.limits.cpu` | CPU limit for sftpInbox container. |`250m`
-`verify.repository` | inbox container image repository | `neicnordic/sda-pipeline`
-`verify.imageTag` | inbox container image version | `latest`
-`verify.imagePullPolicy` | inbox container image pull policy | `Always`
`verify.replicaCount`| desired number of verify containers | `1`
`verify.annotations` | Specific annotation for the verify pod | `{}`
`verify.resources.requests.memory` | Memory request for verify container. |`128Mi`
diff --git a/charts/sda-svc/templates/_helpers.yaml b/charts/sda-svc/templates/_helpers.yaml
index 1a1588e83..4e32654f6 100644
--- a/charts/sda-svc/templates/_helpers.yaml
+++ b/charts/sda-svc/templates/_helpers.yaml
@@ -135,10 +135,10 @@ Create chart name and version as used by the chart label.
{{/**/}}
{{- define "dbUserBackup" -}}
-{{- ternary "lega_in" .Values.credentials.backup.dbUser (empty .Values.credentials.backup.dbUser) -}}
+{{- ternary .Values.global.db.user .Values.credentials.backup.dbUser (empty .Values.credentials.backup.dbUser) -}}
{{- end -}}
{{- define "dbPassBackup" -}}
-{{- ternary .Values.global.db.passIngest .Values.credentials.backup.dbPassword (empty .Values.credentials.backup.dbPassword) -}}
+{{- ternary .Values.global.db.password .Values.credentials.backup.dbPassword (empty .Values.credentials.backup.dbPassword) -}}
{{- end -}}
{{- define "mqUserBackup" -}}
{{- ternary .Values.global.broker.username .Values.credentials.backup.mqUser (empty .Values.credentials.backup.mqUser) -}}
@@ -149,10 +149,10 @@ Create chart name and version as used by the chart label.
{{/**/}}
{{- define "dbUserDoa" -}}
-{{- ternary "lega_out" .Values.credentials.doa.dbUser (empty .Values.credentials.doa.dbUser) -}}
+{{- ternary .Values.global.db.user .Values.credentials.doa.dbUser (empty .Values.credentials.doa.dbUser) -}}
{{- end -}}
{{- define "dbPassDoa" -}}
-{{- ternary .Values.global.db.passOutgest .Values.credentials.doa.dbPassword (empty .Values.credentials.doa.dbPassword) -}}
+{{- ternary .Values.global.db.password .Values.credentials.doa.dbPassword (empty .Values.credentials.doa.dbPassword) -}}
{{- end -}}
{{- define "mqUserDoa" -}}
{{- ternary .Values.global.broker.username .Values.credentials.doa.mqUser (empty .Values.credentials.doa.mqUser) -}}
@@ -163,18 +163,18 @@ Create chart name and version as used by the chart label.
{{/**/}}
{{- define "dbUserDownload" -}}
-{{- ternary "lega_out" .Values.credentials.download.dbUser (empty .Values.credentials.download.dbUser) -}}
+{{- ternary .Values.global.db.user .Values.credentials.download.dbUser (empty .Values.credentials.download.dbUser) -}}
{{- end -}}
{{- define "dbPassDownload" -}}
-{{- ternary .Values.global.db.passOutgest .Values.credentials.download.dbPassword (empty .Values.credentials.download.dbPassword) -}}
+{{- ternary .Values.global.db.password .Values.credentials.download.dbPassword (empty .Values.credentials.download.dbPassword) -}}
{{- end -}}
{{/**/}}
{{- define "dbUserFinalize" -}}
-{{- ternary "lega_in" .Values.credentials.finalize.dbUser (empty .Values.credentials.finalize.dbUser) -}}
+{{- ternary .Values.global.db.user .Values.credentials.finalize.dbUser (empty .Values.credentials.finalize.dbUser) -}}
{{- end -}}
{{- define "dbPassFinalize" -}}
-{{- ternary .Values.global.db.passIngest .Values.credentials.finalize.dbPassword (empty .Values.credentials.finalize.dbPassword) -}}
+{{- ternary .Values.global.db.password .Values.credentials.finalize.dbPassword (empty .Values.credentials.finalize.dbPassword) -}}
{{- end -}}
{{- define "mqUserFinalize" -}}
{{- ternary .Values.global.broker.username .Values.credentials.finalize.mqUser (empty .Values.credentials.finalize.mqUser) -}}
@@ -185,10 +185,10 @@ Create chart name and version as used by the chart label.
{{/**/}}
{{- define "dbUserIngest" -}}
-{{- ternary "lega_in" .Values.credentials.ingest.dbUser (empty .Values.credentials.ingest.dbUser) -}}
+{{- ternary .Values.global.db.user .Values.credentials.ingest.dbUser (empty .Values.credentials.ingest.dbUser) -}}
{{- end -}}
{{- define "dbPassIngest" -}}
-{{- ternary .Values.global.db.passIngest .Values.credentials.ingest.dbPassword (empty .Values.credentials.ingest.dbPassword) -}}
+{{- ternary .Values.global.db.password .Values.credentials.ingest.dbPassword (empty .Values.credentials.ingest.dbPassword) -}}
{{- end -}}
{{- define "mqUserIngest" -}}
{{- ternary .Values.global.broker.username .Values.credentials.ingest.mqUser (empty .Values.credentials.ingest.mqUser) -}}
@@ -199,10 +199,10 @@ Create chart name and version as used by the chart label.
{{/**/}}
{{- define "dbUserInbox" -}}
-{{- ternary "lega_in" .Values.credentials.inbox.dbUser (empty .Values.credentials.inbox.dbUser) -}}
+{{- ternary .Values.global.db.user .Values.credentials.inbox.dbUser (empty .Values.credentials.inbox.dbUser) -}}
{{- end -}}
{{- define "dbPassInbox" -}}
-{{- ternary .Values.global.db.passIngest .Values.credentials.inbox.dbPassword (empty .Values.credentials.inbox.dbPassword) -}}
+{{- ternary .Values.global.db.password .Values.credentials.inbox.dbPassword (empty .Values.credentials.inbox.dbPassword) -}}
{{- end -}}
{{- define "mqUserInbox" -}}
{{- ternary .Values.global.broker.username .Values.credentials.inbox.mqUser (empty .Values.credentials.inbox.mqUser) -}}
@@ -221,10 +221,10 @@ Create chart name and version as used by the chart label.
{{/**/}}
{{- define "dbUserMapper" -}}
-{{- ternary "lega_out" .Values.credentials.mapper.dbUser (empty .Values.credentials.mapper.dbUser) -}}
+{{- ternary .Values.global.db.user .Values.credentials.mapper.dbUser (empty .Values.credentials.mapper.dbUser) -}}
{{- end -}}
{{- define "dbPassMapper" -}}
-{{- ternary .Values.global.db.passOutgest .Values.credentials.mapper.dbPassword (empty .Values.credentials.mapper.dbPassword) -}}
+{{- ternary .Values.global.db.password .Values.credentials.mapper.dbPassword (empty .Values.credentials.mapper.dbPassword) -}}
{{- end -}}
{{- define "mqUserMapper" -}}
{{- ternary .Values.global.broker.username .Values.credentials.mapper.mqUser (empty .Values.credentials.mapper.mqUser) -}}
@@ -236,10 +236,10 @@ Create chart name and version as used by the chart label.
{{/**/}}
{{- define "dbUserReleaseTest" -}}
-{{- ternary "lega_in" .Values.credentials.releasetest.dbUser (empty .Values.credentials.releasetest.dbUser) -}}
+{{- ternary .Values.global.db.user .Values.credentials.releasetest.dbUser (empty .Values.credentials.releasetest.dbUser) -}}
{{- end -}}
{{- define "dbPassReleaseTest" -}}
-{{- ternary .Values.global.db.passIngest .Values.credentials.releasetest.dbPassword (empty .Values.credentials.releasetest.dbPassword) -}}
+{{- ternary .Values.global.db.password .Values.credentials.releasetest.dbPassword (empty .Values.credentials.releasetest.dbPassword) -}}
{{- end -}}
{{- define "mqUserReleaseTest" -}}
{{- ternary .Values.global.broker.username .Values.credentials.releasetest.mqUser (empty .Values.credentials.releasetest.mqUser) -}}
@@ -252,10 +252,10 @@ Create chart name and version as used by the chart label.
{{/**/}}
{{- define "dbUserVerify" -}}
-{{- ternary "lega_in" .Values.credentials.verify.dbUser (empty .Values.credentials.verify.dbUser) -}}
+{{- ternary .Values.global.db.user .Values.credentials.verify.dbUser (empty .Values.credentials.verify.dbUser) -}}
{{- end -}}
{{- define "dbPassVerify" -}}
-{{- ternary .Values.global.db.passIngest .Values.credentials.verify.dbPassword (empty .Values.credentials.verify.dbPassword) -}}
+{{- ternary .Values.global.db.password .Values.credentials.verify.dbPassword (empty .Values.credentials.verify.dbPassword) -}}
{{- end -}}
{{- define "mqUserVerify" -}}
{{- ternary .Values.global.broker.username .Values.credentials.verify.mqUser (empty .Values.credentials.verify.mqUser) -}}
diff --git a/charts/sda-svc/templates/auth-certificate.yaml b/charts/sda-svc/templates/auth-certificate.yaml
index f9693d639..7d7a2b743 100644
--- a/charts/sda-svc/templates/auth-certificate.yaml
+++ b/charts/sda-svc/templates/auth-certificate.yaml
@@ -1,3 +1,4 @@
+{{- if .Values.global.tls.enabled }}
{{- if or .Values.global.tls.clusterIssuer .Values.global.tls.issuer }}
{{- if eq "s3" .Values.global.inbox.storageType }}
apiVersion: cert-manager.io/v1
@@ -36,3 +37,4 @@ spec:
group: cert-manager.io
{{- end -}}
{{- end -}}
+{{- end -}}
diff --git a/charts/sda-svc/templates/auth-deploy.yaml b/charts/sda-svc/templates/auth-deploy.yaml
index 48030c25f..cef75c1dd 100644
--- a/charts/sda-svc/templates/auth-deploy.yaml
+++ b/charts/sda-svc/templates/auth-deploy.yaml
@@ -53,13 +53,13 @@ spec:
serviceAccountName: {{ .Release.Name }}
{{- end }}
securityContext:
- runAsUser: 1000
- runAsGroup: 1000
- fsGroup: 1000
+ runAsUser: 65534
+ runAsGroup: 65534
+ fsGroup: 65534
containers:
- name: auth
- image: "{{ .Values.auth.repository }}:{{ .Values.auth.imageTag }}"
- imagePullPolicy: {{ .Values.auth.imagePullPolicy | quote }}
+ image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}-auth"
+ imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
securityContext:
allowPrivilegeEscalation: false
{{- if .Values.global.extraSecurityContext }}
@@ -79,12 +79,12 @@ spec:
valueFrom:
secretKeyRef:
name: {{ template "sda.fullname" . }}-auth
- key: elixirID
+ key: oidcID
- name: ELIXIR_SECRET
valueFrom:
secretKeyRef:
name: {{ template "sda.fullname" . }}-auth
- key: elixirSecret
+ key: oidcSecret
{{- if or ( eq "federated" .Values.global.schemaType) ( eq "" .Values.global.schemaType) }}
- name: CEGA_ID
valueFrom:
@@ -104,11 +104,11 @@ spec:
- name: ELIXIR_REDIRECTURL
value: {{ template "authRedirect" .}}
- name: ELIXIR_PROVIDER
- value: "{{ .Values.global.elixir.provider }}"
+ value: "{{ .Values.global.oidc.provider }}"
- name: ELIXIR_SCOPE
value: "ga4gh_passport_v1"
- name: ELIXIR_JWKPATH
- value: {{ .Values.global.elixir.jwkPath | quote }}
+ value: {{ .Values.global.oidc.jwkPath | quote }}
{{- if .Values.global.auth.corsOrigins }}
- name: CORS_ORIGINS
value: {{ .Values.global.auth.corsOrigins | quote }}
diff --git a/charts/sda-svc/templates/auth-secrets.yaml b/charts/sda-svc/templates/auth-secrets.yaml
index 647f0180f..7127bd259 100644
--- a/charts/sda-svc/templates/auth-secrets.yaml
+++ b/charts/sda-svc/templates/auth-secrets.yaml
@@ -7,8 +7,8 @@ metadata:
name: {{ template "sda.fullname" . }}-auth
type: Opaque
data:
- elixirID: {{ .Values.global.auth.elixirID | quote | trimall "\"" | b64enc }}
- elixirSecret: {{ .Values.global.auth.elixirSecret | quote | trimall "\"" | b64enc }}
+ oidcID: {{ .Values.global.oidc.id | quote | trimall "\"" | b64enc }}
+ oidcSecret: {{ .Values.global.oidc.secret | quote | trimall "\"" | b64enc }}
{{- if or ( eq "federated" .Values.global.schemaType) ( eq "" .Values.global.schemaType) }}
cegaID: {{ .Values.global.cega.user | quote | trimall "\"" | b64enc }}
cegaSecret: {{ .Values.global.cega.password | quote | trimall "\"" | b64enc }}
diff --git a/charts/sda-svc/templates/backup-certificate.yaml b/charts/sda-svc/templates/backup-certificate.yaml
index 44753ace8..cbde0c6d2 100644
--- a/charts/sda-svc/templates/backup-certificate.yaml
+++ b/charts/sda-svc/templates/backup-certificate.yaml
@@ -1,3 +1,4 @@
+{{- if .Values.global.tls.enabled }}
{{- if or .Values.global.tls.clusterIssuer .Values.global.tls.issuer }}
{{- if .Values.backup.deploy}}
apiVersion: cert-manager.io/v1
@@ -36,3 +37,4 @@ spec:
group: cert-manager.io
{{- end -}}
{{- end -}}
+{{- end -}}
\ No newline at end of file
diff --git a/charts/sda-svc/templates/backup-deploy.yaml b/charts/sda-svc/templates/backup-deploy.yaml
index e733921a2..3593da14a 100644
--- a/charts/sda-svc/templates/backup-deploy.yaml
+++ b/charts/sda-svc/templates/backup-deploy.yaml
@@ -61,8 +61,8 @@ spec:
{{- end }}
containers:
- name: backup
- image: "{{ .Values.backup.repository }}:{{ .Values.backup.imageTag }}"
- imagePullPolicy: {{ .Values.backup.imagePullPolicy | quote }}
+ image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}-pipeline"
+ imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
command: ["sda-backup"]
securityContext:
allowPrivilegeEscalation: false
diff --git a/charts/sda-svc/templates/doa-deploy.yaml b/charts/sda-svc/templates/doa-deploy.yaml
index e38804476..31e1d2486 100644
--- a/charts/sda-svc/templates/doa-deploy.yaml
+++ b/charts/sda-svc/templates/doa-deploy.yaml
@@ -181,9 +181,9 @@ spec:
- name: ARCHIVE_PATH
value: {{ .Values.global.archive.volumePath | quote }}
{{- end }}
- {{- if .Values.global.elixir.pubKey }}
+ {{- if .Values.global.oidc.pubKey }}
- name: PASSPORT_PUBLIC_KEY_PATH
- value: "{{ include "secretsPath" . }}/{{ .Values.global.elixir.pubKey }}"
+ value: "{{ include "secretsPath" . }}/{{ .Values.global.oidc.pubKey }}"
{{- end }}
- name: KEYSTORE_PATH
value: {{ ternary (print "/etc/ssl/certs/java/doa.p12") (printf "%s/%s" .Values.global.secretsPath .Values.doa.tls.keyStore) (empty .Values.global.pkiService) }}
@@ -200,7 +200,7 @@ spec:
- name: CRYPT4GH_PRIVATE_KEY_PASSWORD_PATH
value: "{{ template "c4ghPath" . }}/passphrase"
- name: OPENID_CONFIGURATION_URL
- value: "{{ .Values.global.elixir.oidcdHost }}.well-known/openid-configuration"
+ value: "{{ .Values.global.oidc.provider }}/.well-known/openid-configuration"
- name: OUTBOX_ENABLED
value: {{ .Values.global.doa.outbox.enabled | quote }}
{{- if .Values.global.doa.outbox.enabled }}
@@ -266,7 +266,7 @@ spec:
mountPath: "/etc/ssl/certs/java"
{{- end }}
{{- if not .Values.global.vaultSecrets }}
- {{- if .Values.global.elixir.pubKey }}
+ {{- if .Values.global.oidc.pubKey }}
- name: jwt-token
mountPath: {{ include "secretsPath" . }}
{{- end }}
@@ -293,7 +293,7 @@ spec:
{{- end }}
{{- end }}
{{- if not .Values.global.vaultSecrets }}
- {{- if .Values.global.elixir.pubKey }}
+ {{- if .Values.global.oidc.pubKey }}
- name: jwt-token
projected:
defaultMode: 0440
@@ -301,8 +301,8 @@ spec:
- secret:
name: {{ template "sda.fullname" . }}-doa
items:
- - key: {{ .Values.global.elixir.pubKey }}
- path: {{ .Values.global.elixir.pubKey }}
+ - key: {{ .Values.global.oidc.pubKey }}
+ path: {{ .Values.global.oidc.pubKey }}
{{- end }}
- name: c4gh-key
secret:
diff --git a/charts/sda-svc/templates/download-certificate.yaml b/charts/sda-svc/templates/download-certificate.yaml
index 2455fcc58..8e1b0bfce 100644
--- a/charts/sda-svc/templates/download-certificate.yaml
+++ b/charts/sda-svc/templates/download-certificate.yaml
@@ -1,3 +1,4 @@
+{{- if .Values.global.tls.enabled }}
{{- if .Values.global.download.enabled }}
{{- if or .Values.global.tls.clusterIssuer .Values.global.tls.issuer }}
apiVersion: cert-manager.io/v1
@@ -37,3 +38,4 @@ spec:
group: cert-manager.io
{{- end -}}
{{- end -}}
+{{- end -}}
diff --git a/charts/sda-svc/templates/download-deploy.yaml b/charts/sda-svc/templates/download-deploy.yaml
index d8f1a28c6..9429b8319 100644
--- a/charts/sda-svc/templates/download-deploy.yaml
+++ b/charts/sda-svc/templates/download-deploy.yaml
@@ -75,8 +75,8 @@ spec:
{{- end }}
containers:
- name: download
- image: "{{ .Values.download.repository }}:{{ .Values.download.imageTag }}"
- imagePullPolicy: {{ .Values.download.imagePullPolicy | quote }}
+ image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}-download"
+ imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
securityContext:
allowPrivilegeEscalation: false
command: ["sda-download"]
@@ -106,7 +106,7 @@ spec:
value: "{{ .Values.global.archive.volumePath }}"
{{- end }}
- name: OIDC_CONFIGURATION_URL
- value: "{{ .Values.global.elixir.oidcConfig }}/.well-known/openid-configuration"
+ value: "{{ .Values.global.oidc.provider }}/.well-known/openid-configuration"
{{- if .Values.global.download.trusted.iss }}
- name: OIDC_TRUSTED_ISS
value: {{ include "trustedIssPath" . }}/{{ default "iss.json" .Values.global.download.trusted.configFile }}
@@ -213,6 +213,16 @@ spec:
value: {{ .Values.global.ingress.hostName.download }}
initialDelaySeconds: 20
periodSeconds: 10
+ startupProbe:
+ httpGet:
+ path: /health
+ port: download
+ scheme: {{ ternary "HTTPS" "HTTP" ( .Values.global.tls.enabled) }}
+ httpHeaders:
+ - name: Host
+ value: {{ .Values.global.ingress.hostName.download }}
+ failureThreshold: 30
+ periodSeconds: 10
resources:
{{ toYaml .Values.download.resources | trim | indent 10 }}
volumeMounts:
diff --git a/charts/sda-svc/templates/finalize-certificate.yaml b/charts/sda-svc/templates/finalize-certificate.yaml
index 2eeaefcbe..93dcbfaef 100644
--- a/charts/sda-svc/templates/finalize-certificate.yaml
+++ b/charts/sda-svc/templates/finalize-certificate.yaml
@@ -1,3 +1,4 @@
+{{- if .Values.global.tls.enabled }}
{{- if or .Values.global.tls.clusterIssuer .Values.global.tls.issuer }}
apiVersion: cert-manager.io/v1
kind: Certificate
@@ -34,3 +35,4 @@ spec:
# if you are using an external issuer, change this to that issuer group.
group: cert-manager.io
{{- end -}}
+{{- end -}}
diff --git a/charts/sda-svc/templates/finalize-deploy.yaml b/charts/sda-svc/templates/finalize-deploy.yaml
index 227a91665..d85a3ce79 100644
--- a/charts/sda-svc/templates/finalize-deploy.yaml
+++ b/charts/sda-svc/templates/finalize-deploy.yaml
@@ -60,8 +60,8 @@ spec:
{{- end }}
containers:
- name: finalize
- image: "{{ .Values.finalize.repository }}:{{ .Values.finalize.imageTag }}"
- imagePullPolicy: {{ .Values.finalize.imagePullPolicy | quote }}
+ image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}-pipeline"
+ imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
command: ["sda-finalize"]
securityContext:
allowPrivilegeEscalation: false
@@ -71,7 +71,7 @@ spec:
- name: BROKER_EXCHANGE
value: {{ default "sda" .Values.global.broker.exchange }}
- name: BROKER_QUEUE
- value: "accessionIDs"
+ value: "accession"
- name: BROKER_HOST
value: {{ required "A valid MQ host is required" .Values.global.broker.host | quote }}
- name: BROKER_PORT
diff --git a/charts/sda-svc/templates/inbox-certificate.yaml b/charts/sda-svc/templates/inbox-certificate.yaml
index 935f3deb4..9692c5519 100644
--- a/charts/sda-svc/templates/inbox-certificate.yaml
+++ b/charts/sda-svc/templates/inbox-certificate.yaml
@@ -1,3 +1,4 @@
+{{- if .Values.global.tls.enabled }}
{{- if or .Values.global.tls.clusterIssuer .Values.global.tls.issuer }}
apiVersion: cert-manager.io/v1
kind: Certificate
@@ -35,3 +36,4 @@ spec:
# if you are using an external issuer, change this to that issuer group.
group: cert-manager.io
{{- end -}}
+{{- end -}}
diff --git a/charts/sda-svc/templates/ingest-certificate.yaml b/charts/sda-svc/templates/ingest-certificate.yaml
index 2a9561675..1d6ef9ca5 100644
--- a/charts/sda-svc/templates/ingest-certificate.yaml
+++ b/charts/sda-svc/templates/ingest-certificate.yaml
@@ -1,3 +1,4 @@
+{{- if .Values.global.tls.enabled }}
{{- if or .Values.global.tls.clusterIssuer .Values.global.tls.issuer }}
apiVersion: cert-manager.io/v1
kind: Certificate
@@ -34,3 +35,4 @@ spec:
# if you are using an external issuer, change this to that issuer group.
group: cert-manager.io
{{- end -}}
+{{- end -}}
diff --git a/charts/sda-svc/templates/ingest-deploy.yaml b/charts/sda-svc/templates/ingest-deploy.yaml
index 411f7fe74..0b8533ade 100644
--- a/charts/sda-svc/templates/ingest-deploy.yaml
+++ b/charts/sda-svc/templates/ingest-deploy.yaml
@@ -61,8 +61,8 @@ spec:
{{- end }}
containers:
- name: ingest
- image: "{{ .Values.ingest.repository }}:{{ .Values.ingest.imageTag }}"
- imagePullPolicy: {{ .Values.ingest.imagePullPolicy | quote }}
+ image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}-pipeline"
+ imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
command: ["sda-ingest"]
securityContext:
allowPrivilegeEscalation: false
diff --git a/charts/sda-svc/templates/intercept-certificate.yaml b/charts/sda-svc/templates/intercept-certificate.yaml
index 364344f38..9f8451d8b 100644
--- a/charts/sda-svc/templates/intercept-certificate.yaml
+++ b/charts/sda-svc/templates/intercept-certificate.yaml
@@ -1,3 +1,4 @@
+{{- if .Values.global.tls.enabled }}
{{- if or .Values.global.tls.clusterIssuer .Values.global.tls.issuer }}
apiVersion: cert-manager.io/v1
kind: Certificate
@@ -34,3 +35,4 @@ spec:
# if you are using an external issuer, change this to that issuer group.
group: cert-manager.io
{{- end -}}
+{{- end -}}
diff --git a/charts/sda-svc/templates/intercept-deploy.yaml b/charts/sda-svc/templates/intercept-deploy.yaml
index 72eedc09c..66c2e2615 100644
--- a/charts/sda-svc/templates/intercept-deploy.yaml
+++ b/charts/sda-svc/templates/intercept-deploy.yaml
@@ -44,8 +44,8 @@ spec:
fsGroup: 65534
containers:
- name: intercept
- image: "{{ .Values.intercept.repository }}:{{ .Values.intercept.imageTag }}"
- imagePullPolicy: {{ .Values.intercept.imagePullPolicy | quote }}
+ image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}-pipeline"
+ imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
command: ["sda-intercept"]
securityContext:
allowPrivilegeEscalation: false
diff --git a/charts/sda-svc/templates/mapper-certificate.yaml b/charts/sda-svc/templates/mapper-certificate.yaml
index e83ac5c55..57f1c32f4 100644
--- a/charts/sda-svc/templates/mapper-certificate.yaml
+++ b/charts/sda-svc/templates/mapper-certificate.yaml
@@ -1,3 +1,4 @@
+{{- if .Values.global.tls.enabled }}
{{- if or .Values.global.tls.clusterIssuer .Values.global.tls.issuer }}
apiVersion: cert-manager.io/v1
kind: Certificate
@@ -34,3 +35,4 @@ spec:
# if you are using an external issuer, change this to that issuer group.
group: cert-manager.io
{{- end -}}
+{{- end -}}
diff --git a/charts/sda-svc/templates/mapper-deploy.yaml b/charts/sda-svc/templates/mapper-deploy.yaml
index 64bfcefe2..e1528a882 100644
--- a/charts/sda-svc/templates/mapper-deploy.yaml
+++ b/charts/sda-svc/templates/mapper-deploy.yaml
@@ -60,8 +60,8 @@ spec:
{{- end }}
containers:
- name: mapper
- image: "{{ .Values.mapper.repository }}:{{ .Values.mapper.imageTag }}"
- imagePullPolicy: {{ .Values.mapper.imagePullPolicy | quote }}
+ image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}-pipeline"
+ imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
command: ["sda-mapper"]
securityContext:
allowPrivilegeEscalation: false
@@ -116,6 +116,28 @@ spec:
value: {{ .Values.global.db.port | quote }}
- name: DB_SSLMODE
value: {{ template "dbSSLmode" . }}
+ - name: INBOX_TYPE
+ {{- if eq "s3" .Values.global.inbox.storageType }}
+ value: "s3"
+ - name: INBOX_BUCKET
+ value: {{ required "S3 inbox bucket missing" .Values.global.inbox.s3Bucket }}
+ {{- if and .Values.global.inbox.s3CaFile .Values.global.tls.enabled }}
+ - name: INBOX_CACERT
+ value: {{ template "tlsPath" . }}/ca.crt
+ {{- end }}
+ - name: INBOX_REGION
+ value: {{ default "us-east-1" .Values.global.inbox.s3Region }}
+ - name: INBOX_URL
+ value: {{ required "S3 inbox URL missing" .Values.global.inbox.s3Url }}
+ {{- if .Values.global.inbox.s3Port }}
+ - name: INBOX_PORT
+ value: {{ .Values.global.inbox.s3Port | quote }}
+ {{- end }}
+ {{- else }}
+ value: "posix"
+ - name: INBOX_LOCATION
+ value: "{{ .Values.global.inbox.path }}/"
+ {{- end }}
{{- if .Values.global.log.format }}
- name: LOG_FORMAT
value: {{ .Values.global.log.format | quote }}
@@ -147,6 +169,18 @@ spec:
secretKeyRef:
name: {{ template "sda.fullname" . }}-mapper
key: dbUser
+ {{- if eq "s3" .Values.global.inbox.storageType }}
+ - name: INBOX_ACCESSKEY
+ valueFrom:
+ secretKeyRef:
+ name: {{ template "sda.fullname" . }}-s3inbox-keys
+ key: s3InboxAccessKey
+ - name: INBOX_SECRETKEY
+ valueFrom:
+ secretKeyRef:
+ name: {{ template "sda.fullname" . }}-s3inbox-keys
+ key: s3InboxSecretKey
+ {{- end }}
{{- else }}
- name: CONFIGFILE
value: {{ include "confFile" . }}
diff --git a/charts/sda-svc/templates/s3-inbox-deploy.yaml b/charts/sda-svc/templates/s3-inbox-deploy.yaml
index 1b5b96abb..ebd4f4d06 100644
--- a/charts/sda-svc/templates/s3-inbox-deploy.yaml
+++ b/charts/sda-svc/templates/s3-inbox-deploy.yaml
@@ -76,8 +76,9 @@ spec:
{{- end }}
containers:
- name: s3inbox
- image: "{{ .Values.s3Inbox.repository }}:{{ .Values.s3Inbox.imageTag }}"
- imagePullPolicy: {{ .Values.s3Inbox.imagePullPolicy | quote }}
+ image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
+ imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
+ command: ["sda-s3inbox"]
securityContext:
allowPrivilegeEscalation: false
{{- if .Values.global.extraSecurityContext }}
@@ -139,7 +140,7 @@ spec:
- name: BROKER_VHOST
value: {{ include "brokerVhost" . | quote }}
- name: BROKER_EXCHANGE
- value: {{ .Values.global.broker.exchange | quote }}
+ value: {{ default "sda" .Values.global.broker.exchange }}
- name: BROKER_ROUTINGKEY
value: "inbox"
- name: BROKER_SSL
diff --git a/charts/sda-svc/templates/serviceaccount.yaml b/charts/sda-svc/templates/serviceaccount.yaml
index 73d5b9612..1cd9efdc7 100644
--- a/charts/sda-svc/templates/serviceaccount.yaml
+++ b/charts/sda-svc/templates/serviceaccount.yaml
@@ -9,4 +9,5 @@ metadata:
release: {{ .Release.Name }}
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
+automountServiceAccountToken: false
{{- end }}
diff --git a/charts/sda-svc/templates/sftp-inbox-deploy.yaml b/charts/sda-svc/templates/sftp-inbox-deploy.yaml
index 0c2116b59..75e42ef45 100644
--- a/charts/sda-svc/templates/sftp-inbox-deploy.yaml
+++ b/charts/sda-svc/templates/sftp-inbox-deploy.yaml
@@ -94,8 +94,8 @@ spec:
{{- end }}
containers:
- name: inbox
- image: "{{ .Values.sftpInbox.repository }}:{{ .Values.sftpInbox.imageTag }}"
- imagePullPolicy: {{ .Values.sftpInbox.imagePullPolicy | quote }}
+ image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}-sftp-inbox"
+ imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
command: ["java", "-jar", "inbox-0.0.3-SNAPSHOT.jar"]
securityContext:
allowPrivilegeEscalation: false
diff --git a/charts/sda-svc/templates/verify-certificate.yaml b/charts/sda-svc/templates/verify-certificate.yaml
index d3e5be52e..177f71398 100644
--- a/charts/sda-svc/templates/verify-certificate.yaml
+++ b/charts/sda-svc/templates/verify-certificate.yaml
@@ -1,3 +1,4 @@
+{{- if .Values.global.tls.enabled }}
{{- if or .Values.global.tls.clusterIssuer .Values.global.tls.issuer }}
apiVersion: cert-manager.io/v1
kind: Certificate
@@ -34,3 +35,4 @@ spec:
# if you are using an external issuer, change this to that issuer group.
group: cert-manager.io
{{- end -}}
+{{- end -}}
diff --git a/charts/sda-svc/templates/verify-deploy.yaml b/charts/sda-svc/templates/verify-deploy.yaml
index b371d166d..54ab72d78 100644
--- a/charts/sda-svc/templates/verify-deploy.yaml
+++ b/charts/sda-svc/templates/verify-deploy.yaml
@@ -61,8 +61,8 @@ spec:
{{- end }}
containers:
- name: verify
- image: "{{ .Values.verify.repository }}:{{ .Values.verify.imageTag }}"
- imagePullPolicy: {{ .Values.verify.imagePullPolicy | quote }}
+ image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}-pipeline"
+ imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
command: ["sda-verify"]
securityContext:
allowPrivilegeEscalation: false
diff --git a/charts/sda-svc/test/release-test.sh b/charts/sda-svc/test/release-test.sh
index c1f3b2afd..6807930b8 100644
--- a/charts/sda-svc/test/release-test.sh
+++ b/charts/sda-svc/test/release-test.sh
@@ -5,7 +5,7 @@ if [ "$INBOX_STORAGE_TYPE" == "s3" ]; then
cat >> "/tmp/s3cfg" <<-EOF
host_base = $INBOX_SERVICE_NAME
host_bucket = $INBOX_SERVICE_NAME
- access_key = dummy
+ access_key = test_dummy.org
access_token = $INBOX_ACCESS_TOKEN
use_https = True
ca_certs_file = /tls/ca.crt
@@ -14,7 +14,7 @@ if [ "$INBOX_STORAGE_TYPE" == "s3" ]; then
cat >> "/tmp/s3cfg" <<-EOF
host_base = $INBOX_SERVICE_NAME
host_bucket = $INBOX_SERVICE_NAME
- access_key = dummy
+ access_key = test_dummy.org
access_token = $INBOX_ACCESS_TOKEN
use_https = False
EOF
@@ -34,7 +34,7 @@ if [ "${DEPLOYMENT_TYPE}" = all ] || [ "${DEPLOYMENT_TYPE}" = external ]; then
elif [ "$INBOX_STORAGE_TYPE" == "s3" ]; then
if [ "$TLS" == true ]; then
echo "Will try connecting to https://$INBOX_SERVICE_NAME/"
- if ! s3cmd -c "/tmp/s3cfg" ls s3://dummy ; then
+ if ! s3cmd -c "/tmp/s3cfg" ls s3://test_dummy.org ; then
echo "expected 403 got: $responsecode"
echo "Failed inbox verification, bailing out"
exit 1
@@ -49,7 +49,7 @@ if [ "${DEPLOYMENT_TYPE}" = all ] || [ "${DEPLOYMENT_TYPE}" = external ]; then
fi
else
echo "Will try connecting to http://$INBOX_SERVICE_NAME/"
- if ! s3cmd -c "/tmp/s3cfg" ls s3://dummy ; then
+ if ! s3cmd -c "/tmp/s3cfg" ls s3://test_dummy.org ; then
echo "Failed inbox verification, bailing out"
exit 1
fi
diff --git a/charts/sda-svc/values.yaml b/charts/sda-svc/values.yaml
index 44a1919d5..85993a1fa 100644
--- a/charts/sda-svc/values.yaml
+++ b/charts/sda-svc/values.yaml
@@ -1,8 +1,11 @@
# Default values for SDA services.
-# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
-global:
+image:
+ repository: "ghcr.io/neicnordic/sensitive-data-archive"
+ tag: "v0.0.65"
+ pullPolicy: "Always"
+global:
# Path where the sensitive files can be found, default is "/.secrets".
# TLS certificates or C4GH key locations can be set using global.tlsPath or global.c4ghPath respectively,
# this path will be a subpath to the secretsPath.
@@ -85,7 +88,7 @@ global:
rbacEnabled: true
podSecurityPolicy:
- create: true
+ create: false
# Extra security context to apply to all pods
# This should be a multi-line string mapping directly to the a map of
@@ -137,10 +140,6 @@ global:
copyHeader: false
auth:
- # @param elixirID, client ID to the Elixir OIDC for the service endpoint
- elixirID:
- # @param elixirSecret, client secret to the Elixir OIDC for the service endpoint
- elixirSecret:
# @param jwtSecret, name of the secret holding the jwt signing key
jwtSecret:
# @param jwtAlg, cipher type of the signing key
@@ -169,7 +168,7 @@ global:
ssl: true
username: ""
verifyPeer: true
- vhost: "/"
+ vhost: "sda"
prefetchCount: 2
cega:
@@ -191,9 +190,9 @@ global:
db:
host: ""
- name: "lega"
- passIngest: ""
- passOutgest: ""
+ name: "sda"
+ user: ""
+ password: ""
port: 5432
sslMode: "verify-full"
@@ -230,13 +229,14 @@ global:
configPath: "iss"
configFile: "iss.json"
iss:
- - iss: " https://profile.aai.lifescience-ri.eu/"
- jku: " https://profile.aai.lifescience-ri.eu/jwk"
+ - iss: "https://proxy.aai.lifescience-ri.eu"
+ jku: "https://proxy.aai.lifescience-ri.eu/OIDC/jwks"
- elixir:
- oidcConfig: "https://proxy.aai.lifescience-ri.eu"
- provider: "https://profile.aai.lifescience-ri.eu/"
- jwkPath: "jwk"
+ oidc:
+ provider: "https://proxy.aai.lifescience-ri.eu"
+ jwkPath: "/OIDC/jwks"
+ id: ""
+ secret: ""
inbox:
servicePort: 2222
@@ -318,9 +318,6 @@ credentials:
auth:
name: auth
replicaCount: 2
- repository: ghcr.io/neicnordic/sda-auth
- imageTag: v0.7.6
- imagePullPolicy: IfNotPresent
resources:
requests:
memory: "128Mi"
@@ -339,9 +336,6 @@ backup:
name: backup
deploy: false
replicaCount: 1
- repository: ghcr.io/neicnordic/sda-pipeline
- imageTag: v0.4.27
- imagePullPolicy: IfNotPresent
resources:
requests:
memory: "128Mi"
@@ -382,9 +376,6 @@ doa:
download:
name: download
replicaCount: 2
- repository: ghcr.io/neicnordic/sda-download
- imageTag: v1.9.14
- imagePullPolicy: IfNotPresent
resources:
requests:
memory: "256Mi"
@@ -402,9 +393,6 @@ download:
finalize:
name: finalize
replicaCount: 1
- repository: ghcr.io/neicnordic/sda-pipeline
- imageTag: v0.4.27
- imagePullPolicy: IfNotPresent
resources:
requests:
memory: "128Mi"
@@ -422,9 +410,6 @@ finalize:
ingest:
name: ingest
replicaCount: 1
- repository: ghcr.io/neicnordic/sda-pipeline
- imageTag: v0.4.27
- imagePullPolicy: IfNotPresent
resources:
requests:
memory: "128Mi"
@@ -443,9 +428,6 @@ intercept:
deploy: true
name: ingest
replicaCount: 1
- repository: ghcr.io/neicnordic/sda-pipeline
- imageTag: v0.4.27
- imagePullPolicy: IfNotPresent
resources:
requests:
memory: "128Mi"
@@ -462,9 +444,6 @@ intercept:
mapper:
replicaCount: 1
- repository: ghcr.io/neicnordic/sda-pipeline
- imageTag: v0.4.27
- imagePullPolicy: IfNotPresent
resources:
requests:
memory: "128Mi"
@@ -481,9 +460,6 @@ mapper:
s3Inbox:
name: s3Inbox
- repository: ghcr.io/neicnordic/sda-s3proxy
- imageTag: v0.2.38
- imagePullPolicy: IfNotPresent
replicaCount: 2
resources:
requests:
@@ -502,9 +478,6 @@ s3Inbox:
sftpInbox:
name: sftpInbox
- repository: ghcr.io/neicnordic/sda-inbox-sftp
- imageTag: v1.12.16
- imagePullPolicy: IfNotPresent
replicaCount: 2
resources:
requests:
diff --git a/postgresql/Dockerfile b/postgresql/Dockerfile
index ec3623c69..6e5917c89 100644
--- a/postgresql/Dockerfile
+++ b/postgresql/Dockerfile
@@ -1,4 +1,4 @@
-FROM postgres:15.2-alpine3.17
+FROM postgres:15.4-alpine3.17
ARG BUILD_DATE
ARG SOURCE_COMMIT
diff --git a/postgresql/initdb.d/01_main.sql b/postgresql/initdb.d/01_main.sql
index c13ddff8f..0be9b0eab 100644
--- a/postgresql/initdb.d/01_main.sql
+++ b/postgresql/initdb.d/01_main.sql
@@ -22,7 +22,8 @@ VALUES (0, now(), 'Created with version'),
(5, now(), 'Add field for correlation ids'),
(6, now(), 'Add created_at field to datasets'),
(7, now(), 'Add permissions to mapper to files'),
- (8, now(), 'Add ingestion functions');
+ (8, now(), 'Add ingestion functions'),
+ (9, now(), 'Add dataset event log');
-- Datasets are used to group files, and permissions are set on the dataset
-- level
@@ -140,3 +141,26 @@ CREATE TABLE file_event_log (
success BOOLEAN,
error TEXT
);
+
+-- This table is used to define events for dataset event logging.
+CREATE TABLE dataset_events (
+ id SERIAL PRIMARY KEY,
+ title VARCHAR(64) UNIQUE, -- short name of the action
+ description TEXT
+);
+
+-- These are the default dataset events to log.
+INSERT INTO dataset_events(id,title,description)
+VALUES (10, 'registered', 'Register a dataset to recieve file accession IDs mappings.'),
+ (20, 'released' , 'The dataset is released on this date'),
+ (30, 'deprecated', 'The dataset is deprecated on this date');
+
+
+-- Keeps track of all events for the datasets, with timestamps.
+CREATE TABLE dataset_event_log (
+ id SERIAL PRIMARY KEY,
+ dataset_id TEXT REFERENCES datasets(stable_id),
+ event TEXT REFERENCES dataset_events(title),
+ message JSONB, -- The rabbitMQ message that initiated the dataset event
+ event_date TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT clock_timestamp()
+);
diff --git a/postgresql/initdb.d/04_grants.sql b/postgresql/initdb.d/04_grants.sql
index 58d3f08e1..4fa3c7f2b 100644
--- a/postgresql/initdb.d/04_grants.sql
+++ b/postgresql/initdb.d/04_grants.sql
@@ -101,14 +101,15 @@ GRANT USAGE, SELECT ON SEQUENCE sda.datasets_id_seq TO mapper;
GRANT SELECT ON sda.files TO mapper;
GRANT INSERT ON sda.file_event_log TO mapper;
GRANT INSERT ON sda.file_dataset TO mapper;
-GRANT SELECT ON local_ega.main_to_files TO mapper;
+GRANT INSERT ON sda.dataset_event_log TO mapper;
GRANT USAGE, SELECT ON SEQUENCE sda.file_dataset_id_seq TO mapper;
GRANT USAGE, SELECT ON SEQUENCE sda.file_event_log_id_seq TO mapper;
+GRANT USAGE, SELECT ON SEQUENCE sda.dataset_event_log_id_seq TO mapper;
-- legacy schema
GRANT USAGE ON SCHEMA local_ega TO mapper;
GRANT USAGE ON SCHEMA local_ega_ebi TO mapper;
-
+GRANT SELECT ON local_ega.main_to_files TO mapper;
GRANT SELECT ON local_ega.archive_files TO mapper;
GRANT INSERT ON local_ega_ebi.filedataset TO mapper;
GRANT UPDATE ON local_ega.files TO mapper;
diff --git a/postgresql/migratedb.d/09.sql b/postgresql/migratedb.d/09.sql
new file mode 100644
index 000000000..20e59d5d3
--- /dev/null
+++ b/postgresql/migratedb.d/09.sql
@@ -0,0 +1,36 @@
+DO
+$$
+DECLARE
+-- The version we know how to do migration from, at the end of a successful migration
+-- we will no longer be at this version.
+ sourcever INTEGER := 8;
+ changes VARCHAR := 'Add dataset event log';
+BEGIN
+ IF (select max(version) from sda.dbschema_version) = sourcever then
+ RAISE NOTICE 'Doing migration from schema version % to %', sourcever, sourcever+1;
+ RAISE NOTICE 'Changes: %', changes;
+ INSERT INTO sda.dbschema_version VALUES(sourcever+1, now(), changes);
+
+ CREATE TABLE dataset_events (
+ id SERIAL PRIMARY KEY,
+ title VARCHAR(64) UNIQUE, -- short name of the action
+ description TEXT
+ );
+
+ INSERT INTO dataset_events(id,title,description)
+ VALUES (10, 'registered', 'Register a dataset to recieve file accession IDs mappings.'),
+ (20, 'released' , 'The dataset is released on this date'),
+ (30, 'deprecated', 'The dataset is deprecated on this date');
+
+ CREATE TABLE dataset_event_log (
+ id SERIAL PRIMARY KEY,
+ dataset_id TEXT REFERENCES datasets(stable_id),
+ event TEXT REFERENCES dataset_events(title),
+ message JSONB, -- The rabbitMQ message that initiated the dataset event
+ event_date TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT clock_timestamp()
+ );
+ ELSE
+ RAISE NOTICE 'Schema migration from % to % does not apply now, skipping', sourcever, sourcever+1;
+ END IF;
+END
+$$
diff --git a/rabbitmq/Dockerfile b/rabbitmq/Dockerfile
index 17ce7d589..958264127 100644
--- a/rabbitmq/Dockerfile
+++ b/rabbitmq/Dockerfile
@@ -10,6 +10,7 @@ LABEL org.label-schema.vcs-url="https://github.com/neicnordic/sda"
LABEL org.label-schema.vcs-ref=$SOURCE_COMMIT
ENV RABBITMQ_CONFIG_FILE=/var/lib/rabbitmq/rabbitmq.conf
+ENV RABBITMQ_ADVANCED_CONFIG_FILE=/var/lib/rabbitmq/advanced.config
COPY *.json /etc/rabbitmq/
diff --git a/rabbitmq/definitions.json b/rabbitmq/definitions.json
index 09158f039..9be22ac25 100644
--- a/rabbitmq/definitions.json
+++ b/rabbitmq/definitions.json
@@ -24,9 +24,51 @@
"read": ".*"
}
],
- "parameters": [],
+ "parameters": [
+ {
+ "component": "shovel",
+ "name": "completed",
+ "value": {
+ "ack-mode": "on-confirm",
+ "dest-queue": "completed",
+ "dest-protocol": "amqp091",
+ "dest-uri": "amqp:///sda",
+ "src-delete-after": "never",
+ "src-protocol": "amqp091",
+ "src-queue": "completed_stream",
+ "src-uri": "amqp:///sda"
+ },
+ "vhost": "sda"
+ },
+ {
+ "component": "shovel",
+ "name": "mappings",
+ "value": {
+ "ack-mode": "on-confirm",
+ "dest-queue": "mappings",
+ "dest-protocol": "amqp091",
+ "dest-uri": "amqp:///sda",
+ "src-delete-after": "never",
+ "src-protocol": "amqp091",
+ "src-queue": "mapping_stream",
+ "src-uri": "amqp:///sda"
+ },
+ "vhost": "sda"
+ }
+ ],
"global_parameters": [],
- "policies": [],
+ "policies": [
+ {
+ "vhost": "sda",
+ "name": "AE",
+ "pattern": "^sda$",
+ "apply-to": "exchanges",
+ "priority": 0,
+ "definition": {
+ "alternate-exchange": "sda.dead"
+ }
+ }
+ ],
"queues": [
{
"name": "accession",
@@ -43,17 +85,24 @@
"arguments": {}
},
{
- "name": "completed",
+ "name": "backup",
+ "vhost": "sda",
+ "durable": true,
+ "auto_delete": false,
+ "arguments": {}
+ },
+ {
+ "name": "completed_stream",
"vhost": "sda",
"durable": true,
"auto_delete": false,
"arguments": {
- "x-max-age": "7D",
+ "x-max-age": "1M",
"x-queue-type": "stream"
}
},
{
- "name": "error",
+ "name": "error_stream",
"vhost": "sda",
"durable": true,
"auto_delete": false,
@@ -81,6 +130,13 @@
"vhost": "sda",
"durable": true,
"auto_delete": false,
+ "arguments": {}
+ },
+ {
+ "name": "mapping_stream",
+ "vhost": "sda",
+ "durable": true,
+ "auto_delete": false,
"arguments": {
"x-max-age": "1M",
"x-queue-type": "stream"
@@ -108,10 +164,7 @@
"type": "topic",
"durable": true,
"auto_delete": false,
- "internal": false,
- "arguments": {
- "alternate-exchange": "sda.dead"
- }
+ "internal": false
},
{
"name": "sda.dead",
@@ -145,7 +198,15 @@
"vhost": "sda",
"destination_type": "queue",
"arguments": {},
- "destination": "completed",
+ "destination": "backup",
+ "routing_key": "backup"
+ },
+ {
+ "source": "sda",
+ "vhost": "sda",
+ "destination_type": "queue",
+ "arguments": {},
+ "destination": "completed_stream",
"routing_key": "completed"
},
{
@@ -153,7 +214,7 @@
"vhost": "sda",
"destination_type": "queue",
"arguments": {},
- "destination": "error",
+ "destination": "error_stream",
"routing_key": "error"
},
{
@@ -185,7 +246,7 @@
"vhost": "sda",
"destination_type": "queue",
"arguments": {},
- "destination": "mappings",
+ "destination": "mapping_stream",
"routing_key": "mappings"
},
{
diff --git a/rabbitmq/docker-entrypoint.sh b/rabbitmq/docker-entrypoint.sh
index b39b99ad1..53da5d9ab 100644
--- a/rabbitmq/docker-entrypoint.sh
+++ b/rabbitmq/docker-entrypoint.sh
@@ -10,10 +10,8 @@ if [[ "$1" == rabbitmq* ]] && [ "$(id -u)" = '0' ]; then
exec su-exec rabbitmq "${BASH_SOURCE[0]}" "$@"
fi
-if [ -z "$RABBITMQ_DEFAULT_USER" ] || [ -z "$RABBITMQ_DEFAULT_PASS" ]; then
- RABBITMQ_DEFAULT_USER="guest"
- RABBITMQ_DEFAULT_PASS="guest"
-fi
+RABBITMQ_DEFAULT_USER="${RABBITMQ_DEFAULT_USER:-guest}"
+RABBITMQ_DEFAULT_PASS="${RABBITMQ_DEFAULT_PASS:-guest}"
sed -e "s/RABBITMQ_DEFAULT_USER/$RABBITMQ_DEFAULT_USER/" -e "s/RABBITMQ_DEFAULT_PASS/$RABBITMQ_DEFAULT_PASS/" \
/etc/rabbitmq/definitions.json >/var/lib/rabbitmq/definitions.json
@@ -50,6 +48,17 @@ if [ -n "$CEGA_CONNECTION" ]; then
chmod 600 "/var/lib/rabbitmq/federation.json"
fi
+# This is needed for the streams to work properly
+cat >/var/lib/rabbitmq/advanced.config<<-EOF
+[
+ {rabbit, [
+ {default_consumer_prefetch, {false,100}}
+ ]
+ }
+].
+EOF
+
+chmod 600 "/var/lib/rabbitmq/advanced.config"
chmod 600 "/var/lib/rabbitmq/rabbitmq.conf"
chmod 600 "/var/lib/rabbitmq/definitions.json"
diff --git a/rabbitmq/federation.json b/rabbitmq/federation.json
index d66a78efe..8341a70ba 100644
--- a/rabbitmq/federation.json
+++ b/rabbitmq/federation.json
@@ -51,7 +51,7 @@
"dest-uri": "amqp:///sda",
"src-delete-after": "never",
"src-protocol": "amqp091",
- "src-queue": "completed",
+ "src-queue": "completed_stream",
"src-uri": "amqp:///sda"
},
"vhost": "sda"
@@ -67,7 +67,7 @@
"dest-uri": "amqp:///sda",
"src-delete-after": "never",
"src-protocol": "amqp091",
- "src-queue": "error",
+ "src-queue": "error_stream",
"src-uri": "amqp:///sda"
},
"vhost": "sda"
diff --git a/sda-auth/.github/workflows/functionality.yml b/sda-auth/.github/workflows/functionality.yml
index ba76319fd..55cf1c94f 100644
--- a/sda-auth/.github/workflows/functionality.yml
+++ b/sda-auth/.github/workflows/functionality.yml
@@ -11,7 +11,7 @@ jobs:
go-version: [1.19]
steps:
- name: Set up Go ${{ matrix.go-version }}
- uses: actions/setup-go@v3
+ uses: actions/setup-go@v4
with:
go-version: ${{ matrix.go-version }}
- uses: actions/checkout@v3
diff --git a/sda-auth/.github/workflows/lint.yml b/sda-auth/.github/workflows/lint.yml
index e1d61f595..fcb4d7326 100644
--- a/sda-auth/.github/workflows/lint.yml
+++ b/sda-auth/.github/workflows/lint.yml
@@ -13,7 +13,7 @@ jobs:
go-version: [1.19]
steps:
- name: Set up Go ${{ matrix.go-version }}
- uses: actions/setup-go@v3
+ uses: actions/setup-go@v4
with:
go-version: ${{ matrix.go-version }}
- name: Check out code into the Go module directory
diff --git a/sda-auth/.github/workflows/tag_and_build.yaml b/sda-auth/.github/workflows/tag_and_build.yaml
index 532b64c68..2dc5767e2 100644
--- a/sda-auth/.github/workflows/tag_and_build.yaml
+++ b/sda-auth/.github/workflows/tag_and_build.yaml
@@ -23,7 +23,7 @@ jobs:
fetch-depth: "1"
- name: Bump version and push tag
id: bump_tag
- uses: anothrNick/github-tag-action@1.61.0
+ uses: anothrNick/github-tag-action@1.67.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
WITH_V: true
diff --git a/sda-auth/.gitignore b/sda-auth/.gitignore
index 59f9ed956..c17924110 100644
--- a/sda-auth/.gitignore
+++ b/sda-auth/.gitignore
@@ -11,6 +11,9 @@
*.so
*.dylib
+# Service binaries
+auth
+
# Test binary, build with `go test -c`
*.test
diff --git a/sda-auth/Dockerfile b/sda-auth/Dockerfile
index 16a1717c2..50795127d 100644
--- a/sda-auth/Dockerfile
+++ b/sda-auth/Dockerfile
@@ -1,4 +1,4 @@
-ARG GOLANG_VERSION=1.17
+ARG GOLANG_VERSION=1.20
FROM "golang:${GOLANG_VERSION}-alpine"
RUN apk add --no-cache git
COPY . .
diff --git a/sda-auth/README.md b/sda-auth/README.md
index c5a3babe9..16961f352 100644
--- a/sda-auth/README.md
+++ b/sda-auth/README.md
@@ -26,6 +26,7 @@ Parameter | Description | Defined value
`JWTPRIVATEKEY` | Path to private key for signing the JWT token | `keys/sign-jwt.key`
`JWTSIGNATUREALG` | Algorithm used to sign the JWT token. ES256 (ECDSA) or RS256 (RSA) are supported | `RS256`
`RESIGNJWT` | Set to `false` to serve the raw OIDC JWT, i.e. without re-signing it | `""`
+`C4GHPUBKEY` | c4gh key to be served to the info endpoint | `keys/c4gh_key.pub.pem`
## Running the development setup
diff --git a/sda-auth/config.go b/sda-auth/config.go
index e26d2cf87..6fe93592f 100644
--- a/sda-auth/config.go
+++ b/sda-auth/config.go
@@ -164,15 +164,16 @@ func (c *Config) readConfig() error {
log.SetLevel(intLevel)
log.Printf("Setting log level to '%s'", stringLevel)
}
- if viper.GetString("s3Inbox") == "" {
- return fmt.Errorf("%s not set", "s3Inbox")
- }
// no need to check the variables for JWT generation if we won't use it
if (cega.ID == "" && cega.Secret == "") && !c.ResignJwt {
return nil
}
+ if viper.GetString("s3Inbox") == "" {
+ return fmt.Errorf("%s not set", "s3Inbox")
+ }
+
for _, s := range []string{"jwtIssuer", "JwtPrivateKey", "JwtSignatureAlg", "c4ghPubKey"} {
if viper.GetString(s) == "" {
return fmt.Errorf("%s not set", s)
@@ -180,7 +181,7 @@ func (c *Config) readConfig() error {
}
if _, err := os.Stat(c.JwtPrivateKey); errors.Is(err, os.ErrNotExist) {
- return fmt.Errorf("missing private key file, reason: '%s'", err)
+ return fmt.Errorf("missing private key file, reason: '%s'", err.Error())
}
return nil
diff --git a/sda-auth/config.yaml b/sda-auth/config.yaml
index 90b4f5794..eda373e17 100644
--- a/sda-auth/config.yaml
+++ b/sda-auth/config.yaml
@@ -22,4 +22,4 @@ jwtIssuer: "http://auth:8080"
jwtPrivateKey: "keys/sign-jwt.key"
jwtSignatureAlg: "ES256"
resignJwt: true
-c4ghPubKey: "/keys/c4gh_key.pub.pem"
+c4ghPubKey: "keys/c4gh_key.pub.pem"
diff --git a/sda-auth/config_test.go b/sda-auth/config_test.go
index f6bceef9b..281af115e 100644
--- a/sda-auth/config_test.go
+++ b/sda-auth/config_test.go
@@ -212,5 +212,14 @@ func (suite *ConfigTests) TestConfig() {
// re-read the config
_, err = NewConfig()
- assert.ErrorContains(suite.T(), err, "Missing private key file")
+ assert.ErrorContains(suite.T(), err, "missing private key file")
+
+ // Repeat check with CEGA login and JWT resigning disabled
+ os.Setenv("CEGA_ID", "")
+ os.Setenv("CEGA_SECRET", "")
+ os.Setenv("RESIGNJWT", fmt.Sprintf("%t", false))
+
+ // re-read the config
+ _, err = NewConfig()
+ assert.NoError(suite.T(), err)
}
diff --git a/sda-auth/dev-server/docker-compose.yml b/sda-auth/dev-server/docker-compose.yml
index 45118f266..e1be470b0 100644
--- a/sda-auth/dev-server/docker-compose.yml
+++ b/sda-auth/dev-server/docker-compose.yml
@@ -19,6 +19,11 @@ services:
- USERINFO_ROUTE=/userinfo
ports:
- 9090:9090
+ healthcheck:
+ test: ["CMD", "curl", "-f", "http://localhost:9090/.well-known/openid-configuration"]
+ interval: 5s
+ timeout: 10s
+ retries: 4
cega:
container_name: cega
image: egarchive/lega-base:release.v0.2.0
@@ -60,7 +65,7 @@ services:
dockerfile: Dockerfile
depends_on:
oidc:
- condition: service_started
+ condition: service_healthy
cega:
condition: service_started
keygen:
diff --git a/sda-auth/dev-server/oidc/Dockerfile b/sda-auth/dev-server/oidc/Dockerfile
index 70fc2365b..be231e034 100644
--- a/sda-auth/dev-server/oidc/Dockerfile
+++ b/sda-auth/dev-server/oidc/Dockerfile
@@ -2,7 +2,7 @@ FROM node:16.2.0-slim
WORKDIR /app
-RUN apt update && apt upgrade -qy
+RUN apt update && apt upgrade -qy && apt install -qy curl
COPY package.json ./
diff --git a/sda-auth/dev-server/oidc/server.js b/sda-auth/dev-server/oidc/server.js
index 3b3e11490..04593b848 100644
--- a/sda-auth/dev-server/oidc/server.js
+++ b/sda-auth/dev-server/oidc/server.js
@@ -22,7 +22,7 @@ const oidcConfig = {
revocation: true,
sessionManagement: false
},
- format: {
+ formats: {
default: 'jwt',
AccessToken: 'jwt',
RefreshToken: 'jwt'
diff --git a/sda-auth/go.mod b/sda-auth/go.mod
index 977f43f66..20939a1a0 100644
--- a/sda-auth/go.mod
+++ b/sda-auth/go.mod
@@ -5,9 +5,9 @@ go 1.20
require (
github.com/coreos/go-oidc v2.2.1+incompatible
github.com/golang-jwt/jwt/v4 v4.5.0
- github.com/google/uuid v1.3.0
+ github.com/google/uuid v1.3.1
github.com/iris-contrib/middleware/cors v0.0.0-20230311205048-b568fe9b470f
- github.com/kataras/iris/v12 v12.2.0
+ github.com/kataras/iris/v12 v12.2.5
github.com/lestrrat/go-jwx v0.9.1
github.com/neicnordic/crypt4gh v1.7.6
github.com/oauth2-proxy/mockoidc v0.0.0-20220308204021-b9169deeb282
@@ -38,21 +38,22 @@ require (
github.com/golang-jwt/jwt v3.2.2+incompatible // indirect
github.com/golang/protobuf v1.5.3 // indirect
github.com/golang/snappy v0.0.4 // indirect
+ github.com/gomarkdown/markdown v0.0.0-20230716120725-531d2d74bc12 // indirect
github.com/gorilla/css v1.0.0 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/iris-contrib/schema v0.0.6 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/kataras/blocks v0.0.7 // indirect
- github.com/kataras/golog v0.1.8 // indirect
- github.com/kataras/pio v0.0.11 // indirect
+ github.com/kataras/golog v0.1.9 // indirect
+ github.com/kataras/pio v0.0.12 // indirect
github.com/kataras/sitemap v0.0.6 // indirect
github.com/kataras/tunnel v0.0.4 // indirect
- github.com/klauspost/compress v1.16.3 // indirect
+ github.com/klauspost/compress v1.16.7 // indirect
github.com/lestrrat/go-pdebug v0.0.0-20180220043741-569c97477ae8 // indirect
github.com/magiconair/properties v1.8.7 // indirect
github.com/mailgun/raymond/v2 v2.0.48 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
- github.com/microcosm-cc/bluemonday v1.0.23 // indirect
+ github.com/microcosm-cc/bluemonday v1.0.25 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/pelletier/go-toml/v2 v2.0.8 // indirect
github.com/pkg/errors v0.9.1 // indirect
@@ -65,8 +66,8 @@ require (
github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/subosito/gotenv v1.4.2 // indirect
- github.com/tdewolff/minify/v2 v2.12.5 // indirect
- github.com/tdewolff/parse/v2 v2.6.5 // indirect
+ github.com/tdewolff/minify/v2 v2.12.8 // indirect
+ github.com/tdewolff/parse/v2 v2.6.7 // indirect
github.com/valyala/bytebufferpool v1.0.0 // indirect
github.com/vmihailenco/msgpack/v5 v5.3.5 // indirect
github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
diff --git a/sda-auth/go.sum b/sda-auth/go.sum
index 0a2d40962..b860b9515 100644
--- a/sda-auth/go.sum
+++ b/sda-auth/go.sum
@@ -58,7 +58,6 @@ github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHG
github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
-github.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927/go.mod h1:h/aW8ynjgkuj+NQRlZcDbAbM1ORAbXjXX77sX7T289U=
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
@@ -83,6 +82,7 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m
github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
+github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs=
github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo=
github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=
github.com/flosch/pongo2/v4 v4.0.2 h1:gv+5Pe3vaSVmiJvh/BZa82b7/00YUGm0PIyVVLop0Hw=
@@ -93,6 +93,7 @@ github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbS
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
+github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY=
github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I=
github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
@@ -127,6 +128,8 @@ github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/gomarkdown/markdown v0.0.0-20230716120725-531d2d74bc12 h1:uK3X/2mt4tbSGoHvbLBHUny7CKiuwUip3MArtukol4E=
+github.com/gomarkdown/markdown v0.0.0-20230716120725-531d2d74bc12/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
@@ -156,8 +159,8 @@ github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLe
github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
-github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4=
+github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
@@ -171,7 +174,7 @@ github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/imkira/go-interpol v1.1.0 h1:KIiKr0VSG2CUW1hl1jpiyuzuJeKUUpC8iM1AIE7N1Vk=
-github.com/iris-contrib/httpexpect/v2 v2.12.1 h1:3cTZSyBBen/kfjCtgNFoUKi1u0FVXNaAjyRJOo6AVS4=
+github.com/iris-contrib/httpexpect/v2 v2.15.1 h1:G2/TW0EZ5UhNNdljNDBBQDfdfumLlV6ljRqdTk3cAmc=
github.com/iris-contrib/middleware/cors v0.0.0-20230311205048-b568fe9b470f h1:5rzREq7GRRM+lCgE1cYasex/YEtA0KVS8B6FERNUloI=
github.com/iris-contrib/middleware/cors v0.0.0-20230311205048-b568fe9b470f/go.mod h1:7eVziAp1yUwFB/ZMg71n84VWQH+7wukvxcHuF2e7cbg=
github.com/iris-contrib/schema v0.0.6 h1:CPSBLyx2e91H2yJzPuhGuifVRnZBBJ3pCOMbOvPZaTw=
@@ -182,19 +185,19 @@ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
github.com/kataras/blocks v0.0.7 h1:cF3RDY/vxnSRezc7vLFlQFTYXG/yAr1o7WImJuZbzC4=
github.com/kataras/blocks v0.0.7/go.mod h1:UJIU97CluDo0f+zEjbnbkeMRlvYORtmc1304EeyXf4I=
-github.com/kataras/golog v0.1.8 h1:isP8th4PJH2SrbkciKnylaND9xoTtfxv++NB+DF0l9g=
-github.com/kataras/golog v0.1.8/go.mod h1:rGPAin4hYROfk1qT9wZP6VY2rsb4zzc37QpdPjdkqVw=
-github.com/kataras/iris/v12 v12.2.0 h1:WzDY5nGuW/LgVaFS5BtTkW3crdSKJ/FEgWnxPnIVVLI=
-github.com/kataras/iris/v12 v12.2.0/go.mod h1:BLzBpEunc41GbE68OUaQlqX4jzi791mx5HU04uPb90Y=
-github.com/kataras/pio v0.0.11 h1:kqreJ5KOEXGMwHAWHDwIl+mjfNCPhAwZPa8gK7MKlyw=
-github.com/kataras/pio v0.0.11/go.mod h1:38hH6SWH6m4DKSYmRhlrCJ5WItwWgCVrTNU62XZyUvI=
+github.com/kataras/golog v0.1.9 h1:vLvSDpP7kihFGKFAvBSofYo7qZNULYSHOH2D7rPTKJk=
+github.com/kataras/golog v0.1.9/go.mod h1:jlpk/bOaYCyqDqH18pgDHdaJab72yBE6i0O3s30hpWY=
+github.com/kataras/iris/v12 v12.2.5 h1:R5UzUW4MIByBM6tKMG3UqJ7hL1JCEE+dkqQ8L72f6PU=
+github.com/kataras/iris/v12 v12.2.5/go.mod h1:bf3oblPF8tQmRgyPCzPZr0mLazvEDFgImdaGZYuN4hw=
+github.com/kataras/pio v0.0.12 h1:o52SfVYauS3J5X08fNjlGS5arXHjW/ItLkyLcKjoH6w=
+github.com/kataras/pio v0.0.12/go.mod h1:ODK/8XBhhQ5WqrAhKy+9lTPS7sBf6O3KcLhc9klfRcY=
github.com/kataras/sitemap v0.0.6 h1:w71CRMMKYMJh6LR2wTgnk5hSgjVNB9KL60n5e2KHvLY=
github.com/kataras/sitemap v0.0.6/go.mod h1:dW4dOCNs896OR1HmG+dMLdT7JjDk7mYBzoIRwuj5jA4=
github.com/kataras/tunnel v0.0.4 h1:sCAqWuJV7nPzGrlb0os3j49lk2JhILT0rID38NHNLpA=
github.com/kataras/tunnel v0.0.4/go.mod h1:9FkU4LaeifdMWqZu7o20ojmW4B7hdhv2CMLwfnHGpYw=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/klauspost/compress v1.16.3 h1:XuJt9zzcnaz6a16/OU53ZjWp/v7/42WcR5t2a0PcNQY=
-github.com/klauspost/compress v1.16.3/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
+github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I=
+github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
@@ -211,9 +214,10 @@ github.com/mailgun/raymond/v2 v2.0.48 h1:5dmlB680ZkFG2RN/0lvTAghrSxIESeu9/2aeDqA
github.com/mailgun/raymond/v2 v2.0.48/go.mod h1:lsgvL50kgt1ylcFJYZiULi5fjPBkkhNfj4KA0W54Z18=
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
-github.com/matryer/try v0.0.0-20161228173917-9ac251b645a2/go.mod h1:0KeJpeMD6o+O4hW7qJOT7vyQPKrWmj26uf5wMc/IiIs=
-github.com/microcosm-cc/bluemonday v1.0.23 h1:SMZe2IGa0NuHvnVNAZ+6B38gsTbi5e4sViiWJyDDqFY=
-github.com/microcosm-cc/bluemonday v1.0.23/go.mod h1:mN70sk7UkkF8TUr2IGBpNN0jAgStuPzlK76QuruE/z4=
+github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
+github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
+github.com/microcosm-cc/bluemonday v1.0.25 h1:4NEwSfiJ+Wva0VxN5B8OwMicaJvD8r9tlJWm9rtloEg=
+github.com/microcosm-cc/bluemonday v1.0.25/go.mod h1:ZIOjCQp1OrzBBPIJmfX4qDYFuhU02nx4bn030ixfHLE=
github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0=
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
@@ -269,12 +273,12 @@ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcU
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8=
github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
-github.com/tdewolff/minify/v2 v2.12.5 h1:s2KDBt/D/3ayE3gcqQF8VIgTmYgkx+btuLvVAeePzZM=
-github.com/tdewolff/minify/v2 v2.12.5/go.mod h1:i8QXtVyL7Ddwc4I5gqzvgBqKlTMgMNTbiXaPO4Iqg+A=
-github.com/tdewolff/parse/v2 v2.6.5 h1:lYvWBk55GkqKl0JJenGpmrgu/cPHQQ6/Mm1hBGswoGQ=
-github.com/tdewolff/parse/v2 v2.6.5/go.mod h1:woz0cgbLwFdtbjJu8PIKxhW05KplTFQkOdX78o+Jgrs=
-github.com/tdewolff/test v1.0.7 h1:8Vs0142DmPFW/bQeHRP3MV19m1gvndjUb1sn8yy74LM=
-github.com/tdewolff/test v1.0.7/go.mod h1:6DAvZliBAAnD7rhVgwaM7DE5/d9NMOAJ09SqYqeK4QE=
+github.com/tdewolff/minify/v2 v2.12.8 h1:Q2BqOTmlMjoutkuD/OPCnJUpIqrzT3nRPkw+q+KpXS0=
+github.com/tdewolff/minify/v2 v2.12.8/go.mod h1:YRgk7CC21LZnbuke2fmYnCTq+zhCgpb0yJACOTUNJ1E=
+github.com/tdewolff/parse/v2 v2.6.7 h1:WrFllrqmzAcrKHzoYgMupqgUBIfBVOb0yscFzDf8bBg=
+github.com/tdewolff/parse/v2 v2.6.7/go.mod h1:XHDhaU6IBgsryfdnpzUXBlT6leW/l25yrFBTEb4eIyM=
+github.com/tdewolff/test v1.0.9 h1:SswqJCmeN4B+9gEAi/5uqT0qpi1y2/2O47V/1hhGZT0=
+github.com/tdewolff/test v1.0.9/go.mod h1:6DAvZliBAAnD7rhVgwaM7DE5/d9NMOAJ09SqYqeK4QE=
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
github.com/vmihailenco/msgpack/v5 v5.3.5 h1:5gO0H1iULLWGhs2H5tbAHIZTV8/cYafcFOr9znI5mJU=
diff --git a/sda-auth/main.go b/sda-auth/main.go
index 4ddfd8b30..2bd1ac4be 100644
--- a/sda-auth/main.go
+++ b/sda-auth/main.go
@@ -50,7 +50,7 @@ func (auth AuthHandler) getInboxConfig(ctx iris.Context, authType string) {
}
s3cfmap := s3conf.(map[string]string)
ctx.ResponseWriter().Header().Set("Content-Disposition", "attachment; filename=s3cmd.conf")
- var s3c string
+ s3c := "[default]\n"
for k, v := range s3cfmap {
entry := fmt.Sprintf("%s = %s\n", k, v)
@@ -239,7 +239,7 @@ func (auth AuthHandler) elixirLogin(ctx iris.Context) *OIDCData {
code := ctx.Request().URL.Query().Get("code")
idStruct, err := authenticateWithOidc(auth.OAuth2Config, auth.OIDCProvider, code, auth.Config.Elixir.jwkURL)
if err != nil {
- log.WithFields(log.Fields{"authType": "elixir"}).Errorf("Auhentication failed: %s", err)
+ log.WithFields(log.Fields{"authType": "elixir"}).Errorf("authentication failed: %s", err)
_, err := ctx.Writef("Authentication failed. You may need to clear your session cookies and try again.")
if err != nil {
log.Error("Failed to write response: ", err)
diff --git a/sda-download/go.mod b/sda-download/go.mod
index 815a05117..307953295 100644
--- a/sda-download/go.mod
+++ b/sda-download/go.mod
@@ -4,14 +4,14 @@ go 1.20
require (
github.com/DATA-DOG/go-sqlmock v1.5.0
- github.com/aws/aws-sdk-go v1.44.276
+ github.com/aws/aws-sdk-go v1.45.2
github.com/dgraph-io/ristretto v0.1.1
github.com/gin-gonic/gin v1.9.1
- github.com/google/uuid v1.3.0
+ github.com/google/uuid v1.3.1
github.com/johannesboyne/gofakes3 v0.0.0-20230129080941-f6a8a9ae6fd3
github.com/lestrrat-go/jwx v1.2.25
github.com/lib/pq v1.10.9
- github.com/neicnordic/crypt4gh v1.7.5
+ github.com/neicnordic/crypt4gh v1.8.2
github.com/sirupsen/logrus v1.9.3
github.com/spf13/viper v1.16.0
github.com/stretchr/testify v1.8.4
@@ -62,10 +62,10 @@ require (
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
github.com/ugorji/go/codec v1.2.11 // indirect
golang.org/x/arch v0.3.0 // indirect
- golang.org/x/crypto v0.9.0 // indirect
+ golang.org/x/crypto v0.12.0 // indirect
golang.org/x/net v0.10.0 // indirect
- golang.org/x/sys v0.8.0 // indirect
- golang.org/x/text v0.9.0 // indirect
+ golang.org/x/sys v0.11.0 // indirect
+ golang.org/x/text v0.12.0 // indirect
golang.org/x/tools v0.6.0 // indirect
google.golang.org/protobuf v1.30.0 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
diff --git a/sda-download/go.sum b/sda-download/go.sum
index 41b0ac534..877214357 100644
--- a/sda-download/go.sum
+++ b/sda-download/go.sum
@@ -43,8 +43,8 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym
github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60=
github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
github.com/aws/aws-sdk-go v1.33.0/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
-github.com/aws/aws-sdk-go v1.44.276 h1:ywPlx9C5Yc482dUgAZ9bHpQ6onVvJvYE9FJWsNDCEy0=
-github.com/aws/aws-sdk-go v1.44.276/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
+github.com/aws/aws-sdk-go v1.45.2 h1:hTong9YUklQKqzrGk3WnKABReb5R8GjbG4Y6dEQfjnk=
+github.com/aws/aws-sdk-go v1.45.2/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s=
github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U=
@@ -161,8 +161,8 @@ github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLe
github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
-github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4=
+github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
@@ -220,8 +220,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
-github.com/neicnordic/crypt4gh v1.7.5 h1:cWAGSeQ1WJxMrnHb837UlZBwdAvEpceCPPorloqIv4w=
-github.com/neicnordic/crypt4gh v1.7.5/go.mod h1:M0r5/IDDpPZZ3qteae76Dvw0uS11Kw/Rg91dPcV4XPc=
+github.com/neicnordic/crypt4gh v1.8.2 h1:KNqYBBDU0qW296I6yLoA7l0GoNA/lfzhpy9RDkzNrRM=
+github.com/neicnordic/crypt4gh v1.8.2/go.mod h1:VftsV+iUntv40/EB9TbnBnQ3/IDH40zEAqcMajrFVVg=
github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ=
github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
@@ -295,8 +295,8 @@ golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g=
-golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0=
+golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk=
+golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -430,12 +430,12 @@ golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
-golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM=
+golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols=
+golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -445,8 +445,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
-golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
-golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
+golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc=
+golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
diff --git a/sda-helm/.github/dependabot.yml b/sda-helm/.github/dependabot.yml
deleted file mode 100644
index f21a6b813..000000000
--- a/sda-helm/.github/dependabot.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-version: 2
-updates:
- - package-ecosystem: "github-actions"
- directory: "/"
- schedule:
- interval: "weekly"
- open-pull-requests-limit: 10
- reviewers:
- - "dbampalikis"
- - "jbygdell"
- - "blankdots"
diff --git a/sda-helm/.github/workflows/lint.yml b/sda-helm/.github/workflows/lint.yml
deleted file mode 100644
index 2e9b2a080..000000000
--- a/sda-helm/.github/workflows/lint.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-name: Helm linter
-
-on: [push]
-
-jobs:
- lint_sda-db:
- name: Lint sda-db
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3.3.0
- - name: Install helm3
- run: bash ./dev_tools/scripts/install-kube-deps.sh
- - name: Lint sda-db
- run: helm lint charts/sda-db
-
- lint_sda-mq:
- name: Lint sda-mq
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3.3.0
- - name: Install helm3
- run: bash ./dev_tools/scripts/install-kube-deps.sh
- - name: Lint sda-mq
- run: helm lint charts/sda-mq
-
- lint_sda-svc:
- name: Lint sda-svc
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3.3.0
- - name: Install helm3
- run: bash ./dev_tools/scripts/install-kube-deps.sh
- - name: Lint sda-svc
- run: helm lint charts/sda-svc
-
- lint_sda-orch:
- name: Lint sda-orch
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3.3.0
- - name: Install helm3
- run: bash ./dev_tools/scripts/install-kube-deps.sh
- - name: Lint sda-orch
- run: helm lint charts/sda-orch
diff --git a/sda-helm/.github/workflows/manual_release.yaml b/sda-helm/.github/workflows/manual_release.yaml
deleted file mode 100644
index 598433fee..000000000
--- a/sda-helm/.github/workflows/manual_release.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-name: Manually Release Charts
-
-on: [workflow_dispatch]
-
-jobs:
- release:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v3.3.0
- with:
- fetch-depth: 0
-
- - name: Configure Git
- run: |
- git config user.name "$GITHUB_ACTOR"
- git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
-
- - name: Install Helm
- uses: azure/setup-helm@v3.5
- with:
- version: v3.4.0
-
- - name: Run chart-releaser
- uses: helm/chart-releaser-action@v1.5.0
- env:
- CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
diff --git a/sda-helm/.github/workflows/sda-pipeline-notls.yml b/sda-helm/.github/workflows/sda-pipeline-notls.yml
deleted file mode 100644
index ce1bf1583..000000000
--- a/sda-helm/.github/workflows/sda-pipeline-notls.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-name: standalone sda deployment without TLS
-
-on: [push,pull_request]
-
-jobs:
- build:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3.3.0
- - name: Install kube dependencies
- run: bash ./dev_tools/scripts/install-kube-deps.sh
- - name: Initialise k3d
- run: bash ./dev_tools/scripts/init-k3d.sh
- - name: Wait for k3d to become ready
- run: bash ./dev_tools/scripts/wait-for-pods.sh metrics-server k8s-app kube-system
- - name: Install sda dependencies
- run: bash ./dev_tools/scripts/install-sda-deps.sh
- - name: Create certificates
- run: bash ./dev_tools/scripts/make-certs.sh
- - name: Create secrets
- run: bash ./dev_tools/scripts/create-secrets.sh
- - name: Deploy SDA database
- run: bash ./dev_tools/scripts/sda/deploy-no-tls.sh database
- - name: Deploy SDA message broker
- run: bash ./dev_tools/scripts/sda/deploy-no-tls.sh broker
- - name: Deploy SDA orchestrator
- run: bash ./dev_tools/scripts/sda/deploy-no-tls.sh orchestrate
- - name: Deploy mock oidc server
- run: bash ./dev_tools/scripts/deploy-oidc.sh
- - name: Deploy minio
- run: bash ./dev_tools/scripts/sda/deploy-no-tls.sh minio
- - name: Create s3 buckets
- run: bash ./dev_tools/scripts/create-s3-buckets-no-tls.sh
- - name: Deploy the SDA stack
- run: bash ./dev_tools/scripts/sda/deploy-no-tls.sh pipeline
- - name: Wait for sda to become ready
- run: bash ./dev_tools/scripts/wait-for-pods.sh standalone_s3_svc_list
- - name: Run helm test
- run: bash ./dev_tools/scripts/run-helm-test.sh
diff --git a/sda-helm/.github/workflows/sda-pipeline.yml b/sda-helm/.github/workflows/sda-pipeline.yml
deleted file mode 100644
index 745f8c203..000000000
--- a/sda-helm/.github/workflows/sda-pipeline.yml
+++ /dev/null
@@ -1,94 +0,0 @@
-name: sda-pipeline deployment
-
-on: [push, pull_request]
-
-jobs:
- build:
- strategy:
- fail-fast: false
- matrix:
- inbox: [posix, s3]
- deployment: [federated, standalone]
- cert: [issuer, manual]
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3.3.0
-
- - name: Install kube dependencies
- run: bash ./dev_tools/scripts/install-kube-deps.sh
-
- - name: Initialise k3d
- run: bash ./dev_tools/scripts/init-k3d.sh
-
- - name: Wait for k3d to become ready
- run: bash ./dev_tools/scripts/wait-for-pods.sh metrics-server k8s-app kube-system
-
- - name: Install sda dependencies
- run: bash ./dev_tools/scripts/install-sda-deps.sh
-
- - name: Create certificates
- if: matrix.cert == 'manual'
- run: bash ./dev_tools/scripts/make-certs.sh
-
- - name: Create certificate issuer
- if: matrix.cert == 'issuer'
- run: bash ./dev_tools/scripts/deploy-cert-manager.sh
-
- - name: Create secrets
- run: bash ./dev_tools/scripts/create-secrets.sh
-
- - name: Set up services configuration
- if: matrix.cert == 'manual'
- run: bash ./dev_tools/scripts/svc-setup.sh
-
- - name: Deploy SDA database
- run: bash ./dev_tools/scripts/deploy-db.sh "${{ matrix.cert }}"
-
- - name: Wait for database to become ready
- run: bash ./dev_tools/scripts/wait-for-pods.sh database
-
- - name: Deploy mock oidc server
- if: matrix.inbox == 's3'
- run: bash ./dev_tools/scripts/deploy-oidc.sh
-
- - name: Deploy minio
- if: matrix.inbox == 's3'
- run: bash ./dev_tools/scripts/deploy-minio.sh "${{ matrix.cert }}"
-
- - name: Wait for minio to become ready
- if: matrix.inbox == 's3'
- run: bash ./dev_tools/scripts/wait-for-pods.sh minio app
-
- - name: Create s3 buckets
- if: matrix.inbox == 's3'
- run: bash ./dev_tools/scripts/create-s3-buckets.sh
-
- - name: Start CEGA services
- if: matrix.deployment == 'federated'
- run: bash ./dev_tools/scripts/deploy-cega.sh "${{ matrix.cert }}"
-
- - name: Wait for CEGA to become ready
- if: matrix.deployment == 'federated'
- run: bash ./dev_tools/scripts/wait-for-pods.sh cega-mq app
-
- - name: Deploy SDA message broker
- run: bash ./dev_tools/scripts/deploy-mq.sh "${{ matrix.deployment }}" "${{ matrix.cert }}"
-
- - name: Wait for broker to become ready
- run: bash ./dev_tools/scripts/wait-for-pods.sh broker
-
- - name: Deploy the SDA stack for posix
- if: matrix.inbox == 'posix'
- run: |
- kubectl apply -f dev_tools/config/posix-volumes.yaml;
- bash ./dev_tools/scripts/sda/deploy-posix.sh "${{ matrix.deployment }}" "${{ matrix.cert }}"
-
- - name: Deploy the SDA stack for s3
- if: matrix.inbox == 's3'
- run: bash ./dev_tools/scripts/sda/deploy-s3.sh "${{ matrix.deployment }}" "${{ matrix.cert }}"
-
- - name: Wait for sda to become ready
- run: bash ./dev_tools/scripts/wait-for-pods.sh "${{ format('{0}_{1}_svc_list', matrix.deployment, matrix.inbox) }}"
-
- - name: Run helm test
- run: bash ./dev_tools/scripts/run-helm-test.sh
diff --git a/sda-helm/.github/workflows/shellcheck.yml b/sda-helm/.github/workflows/shellcheck.yml
deleted file mode 100644
index 4bd810355..000000000
--- a/sda-helm/.github/workflows/shellcheck.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-name: Scripts linter
-
-on: [push]
-
-jobs:
- shellcheck:
- name: Shellcheck
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3.3.0
- - name: Run ShellCheck
- uses: ludeeus/action-shellcheck@master
diff --git a/sda-helm/.gitignore b/sda-helm/.gitignore
deleted file mode 100644
index 366f3999f..000000000
--- a/sda-helm/.gitignore
+++ /dev/null
@@ -1,10 +0,0 @@
-*.pem
-*.csr
-*.crt
-*.key
-*.p12
-cacerts
-*.pub
-*.sec
-sda-deploy-init/*
-LocalEGA-helm/*
\ No newline at end of file
diff --git a/sda-helm/LICENSE b/sda-helm/LICENSE
deleted file mode 100644
index 0ad25db4b..000000000
--- a/sda-helm/LICENSE
+++ /dev/null
@@ -1,661 +0,0 @@
- GNU AFFERO GENERAL PUBLIC LICENSE
- Version 3, 19 November 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU Affero General Public License is a free, copyleft license for
-software and other kinds of works, specifically designed to ensure
-cooperation with the community in the case of network server software.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-our General Public Licenses are intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- Developers that use our General Public Licenses protect your rights
-with two steps: (1) assert copyright on the software, and (2) offer
-you this License which gives you legal permission to copy, distribute
-and/or modify the software.
-
- A secondary benefit of defending all users' freedom is that
-improvements made in alternate versions of the program, if they
-receive widespread use, become available for other developers to
-incorporate. Many developers of free software are heartened and
-encouraged by the resulting cooperation. However, in the case of
-software used on network servers, this result may fail to come about.
-The GNU General Public License permits making a modified version and
-letting the public access it on a server without ever releasing its
-source code to the public.
-
- The GNU Affero General Public License is designed specifically to
-ensure that, in such cases, the modified source code becomes available
-to the community. It requires the operator of a network server to
-provide the source code of the modified version running there to the
-users of that server. Therefore, public use of a modified version, on
-a publicly accessible server, gives the public access to the source
-code of the modified version.
-
- An older license, called the Affero General Public License and
-published by Affero, was designed to accomplish similar goals. This is
-a different license, not a version of the Affero GPL, but Affero has
-released a new version of the Affero GPL which permits relicensing under
-this license.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU Affero General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Remote Network Interaction; Use with the GNU General Public License.
-
- Notwithstanding any other provision of this License, if you modify the
-Program, your modified version must prominently offer all users
-interacting with it remotely through a computer network (if your version
-supports such interaction) an opportunity to receive the Corresponding
-Source of your version by providing access to the Corresponding Source
-from a network server at no charge, through some standard or customary
-means of facilitating copying of software. This Corresponding Source
-shall include the Corresponding Source for any work covered by version 3
-of the GNU General Public License that is incorporated pursuant to the
-following paragraph.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the work with which it is combined will remain governed by version
-3 of the GNU General Public License.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU Affero General Public License from time to time. Such new versions
-will be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU Affero General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU Affero General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU Affero General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as published
- by the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details.
-
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If your software can interact with users remotely through a computer
-network, you should also make sure that it provides a way for users to
-get its source. For example, if your program is a web application, its
-interface could display a "Source" link that leads users to an archive
-of the code. There are many ways you could offer source, and different
-solutions will be better for different programs; see section 13 for the
-specific requirements.
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU AGPL, see
-.
diff --git a/sda-helm/README.md b/sda-helm/README.md
deleted file mode 100644
index 4b5d5ca1c..000000000
--- a/sda-helm/README.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# SDA-helm
-
-[![GitHub](https://img.shields.io/github/license/neicnordic/sda-helm?style=plastic)](https://www.gnu.org/licenses/agpl-3.0)
-![GitHub Actions linter](https://github.com/neicnordic/sda-helm/workflows/Helm%20linter/badge.svg)
-![GitHub tag (latest SemVer)](https://img.shields.io/github/v/tag/neicnordic/sda-helm?sort=semver&style=plastic)
-
-## Info
-
-This repositroy contains helmcharts for deploying a Sensitive Data Archive solution that is compatible with the European Genome Archives federated archiving model.
-
-The charts are compatible with kubernetes versions >= 1.19.0 and are tested against kubernetes version 1.25.6
-
-## sda-db
-
-This chart deploys a pre-configured database instance for Sensitive Data Archive, the schemas match European Genome Archives federated archiving model.
-
-## sda-mq
-
-This chart deploys a pre-configured message broker designed to work European Genome Archives federated archive setup.
-
-## sda-svc
-
-This chart deploys the service components needed for the Sensitive Data Archive solution.
-
-## sda-orch
-
-This chart deploys the orchestrate service needed for the Sensitive Data Archive standalone solution (No European Genome Archive connection).
diff --git a/sda-helm/dev_tools/cega/cega-issuer.yaml b/sda-helm/dev_tools/cega/cega-issuer.yaml
deleted file mode 100644
index 85d775ae0..000000000
--- a/sda-helm/dev_tools/cega/cega-issuer.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-apiVersion: cert-manager.io/v1
-kind: Certificate
-metadata:
- name: cega-certs
-spec:
- # Secret names are always required.
- secretName: cega-certs
-
- duration: 2160h # 90d
-
- # The use of the common name field has been deprecated since 2000 and is
- # discouraged from being used.
- commonName: cega
- isCA: false
- privateKey:
- algorithm: ECDSA
- size: 256
- usages:
- - server auth
- # At least one of a DNS Name, URI, or IP address is required.
- dnsNames:
- - cega-mq
- - cega-users
- ipAddresses:
- - 127.0.0.1
- # Issuer references are always required.
- issuerRef:
- name: ca-issuer
- # We can reference ClusterIssuers by changing the kind here.
- # The default value is Issuer (i.e. a locally namespaced Issuer)
- kind: Issuer
- # This is optional since cert-manager will default to this value however
- # if you are using an external issuer, change this to that issuer group.
- group: cert-manager.io
diff --git a/sda-helm/dev_tools/cega/cega.conf b/sda-helm/dev_tools/cega/cega.conf
deleted file mode 100644
index acaeb0eb6..000000000
--- a/sda-helm/dev_tools/cega/cega.conf
+++ /dev/null
@@ -1,15 +0,0 @@
-listeners.ssl.default = 5671
-ssl_options.cacertfile = /etc/rabbitmq/ssl/ca.crt
-ssl_options.certfile = /etc/rabbitmq/ssl/tls.crt
-ssl_options.keyfile = /etc/rabbitmq/ssl/tls.key
-ssl_options.verify = verify_none
-ssl_options.fail_if_no_peer_cert = true
-ssl_options.versions.1 = tlsv1.2
-management.load_definitions = /etc/rabbitmq/conf/cega.json
-management.listener.port = 15671
-management.listener.ssl = true
-management.listener.ssl_opts.cacertfile = /etc/rabbitmq/ssl/ca.crt
-management.listener.ssl_opts.certfile = /etc/rabbitmq/ssl/tls.crt
-management.listener.ssl_opts.keyfile = /etc/rabbitmq/ssl/tls.key
-default_vhost = lega
-disk_free_limit.absolute = 1GB
diff --git a/sda-helm/dev_tools/cega/cega.json b/sda-helm/dev_tools/cega/cega.json
deleted file mode 100644
index 57991b559..000000000
--- a/sda-helm/dev_tools/cega/cega.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{"rabbit_version":"3.7",
- "users":[{"name":"lega",
- "password_hash":"tBwQTdorHZnIdJI7AUK71L56JVbYhjfhNoVO2y1nWmt2Cgdm","hashing_algorithm":"rabbit_password_hashing_sha256","tags":"administrator"}], "vhosts":[{"name":"lega"}],
- "permissions":[{"user":"lega", "vhost":"lega", "configure":".*", "write":".*", "read":".*"}],
-
- "parameters":[], "global_parameters":[{"name":"cluster_name", "value":"rabbit@localhost"}],
- "policies":[],
- "queues":[{"name":"v1.files.inbox", "vhost":"lega", "durable":true, "auto_delete":false, "arguments":{}},
- {"name":"v1.stableIDs", "vhost":"lega", "durable":true, "auto_delete":false, "arguments":{}},
- {"name":"v1.files", "vhost":"lega", "durable":true, "auto_delete":false, "arguments":{}},
- {"name":"v1.files.completed", "vhost":"lega", "durable":true, "auto_delete":false, "arguments":{}},
- {"name":"v1.files.verified", "vhost":"lega", "durable":true, "auto_delete":false, "arguments":{}},
- {"name":"v1.files.error", "vhost":"lega", "durable":true, "auto_delete":false, "arguments":{}}],
- "exchanges":[{"name":"localega.v1", "vhost":"lega", "type":"topic", "durable":true, "auto_delete":false, "internal":false, "arguments":{}}],
- "bindings":[
- {"source":"localega.v1","vhost":"lega","destination_type":"queue","arguments":{},"destination":"v1.stableIDs","routing_key":"stableIDs"},
- {"source":"localega.v1","vhost":"lega","destination_type":"queue","arguments":{},"destination":"v1.files","routing_key":"files"},
- {"source":"localega.v1","vhost":"lega","destination_type":"queue","arguments":{},"destination":"v1.files.inbox","routing_key":"files.inbox"},
- {"source":"localega.v1","vhost":"lega","destination_type":"queue","arguments":{},"destination":"v1.files.error","routing_key":"files.error"},
- {"source":"localega.v1","vhost":"lega","destination_type":"queue","arguments":{},"destination":"v1.files.verified","routing_key":"files.verified"},
- {"source":"localega.v1","vhost":"lega","destination_type":"queue","arguments":{},"destination":"v1.files.completed","routing_key":"files.completed"}]
-
-}
diff --git a/sda-helm/dev_tools/cega/cega.plugins b/sda-helm/dev_tools/cega/cega.plugins
deleted file mode 100644
index 7e8d295ec..000000000
--- a/sda-helm/dev_tools/cega/cega.plugins
+++ /dev/null
@@ -1 +0,0 @@
-[rabbitmq_federation,rabbitmq_federation_management,rabbitmq_management,rabbitmq_shovel,rabbitmq_shovel_management].
\ No newline at end of file
diff --git a/sda-helm/dev_tools/cega/deploy.yaml b/sda-helm/dev_tools/cega/deploy.yaml
deleted file mode 100644
index 524dd23cd..000000000
--- a/sda-helm/dev_tools/cega/deploy.yaml
+++ /dev/null
@@ -1,172 +0,0 @@
----
-# Source: cega/templates/cega-deploy.yaml
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: cega-users
- labels:
- role: fake-users
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: cega-users
- template:
- metadata:
- labels:
- app: cega-users
- role: fake-users
- spec:
- serviceAccountName: cega
- securityContext:
- runAsUser: 1000
- runAsGroup: 1000
- fsGroup: 1000
- containers:
- - name: cega-users
- image: "egarchive/lega-base:release.v0.2.0"
- imagePullPolicy: "Always"
- command: ["python", "/cega/users.py", "0.0.0.0", "8443", "/cega/users.json"]
- securityContext:
- allowPrivilegeEscalation: false
- env:
- - name: LEGA_INSTANCES
- value: legatest
- - name: CEGA_USERS_PASSWORD
- value: OfEoDPVadIfd4CZUWkisrrVQbJ2yQPIH
- - name: CEGA_USERS_USER
- value: legatest
- ports:
- - name: cega-users
- containerPort: 443
- protocol: TCP
- volumeMounts:
- - name: cega-config
- mountPath: /cega
- - name: cega-certs
- mountPath: /tls/
- volumes:
- - name: cega-config
- secret:
- secretName: cega-users-config
- defaultMode: 0440
- - name: cega-certs
- secret:
- secretName: cega-certs
- defaultMode: 0440
----
-# Source: cega/templates/cegamq-deploy.yaml
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: cega-mq
- labels:
- role: cega-broker
- app: cega-mq
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: cega-mq
- template:
- metadata:
- labels:
- app: cega-mq
- spec:
- serviceAccountName: cega
- securityContext:
- runAsUser: 100
- runAsGroup: 101
- fsGroup: 101
- containers:
- - name: cega-mq
- image: "rabbitmq:3.7.8-management-alpine"
- imagePullPolicy: "IfNotPresent"
- securityContext:
- allowPrivilegeEscalation: false
- env:
- - name: RABBITMQ_CONFIG_FILE
- value: /etc/rabbitmq/conf/cega
- - name: RABBITMQ_ENABLED_PLUGINS_FILE
- value: /etc/rabbitmq/conf/cega.plugins
- ports:
- - containerPort: 15671
- protocol: TCP
- name: https
- - containerPort: 15672
- protocol: TCP
- name: http
- - containerPort: 5672
- name: amqp
- - containerPort: 5671
- name: amqps
- volumeMounts:
- - name: conf
- mountPath: /etc/rabbitmq/conf
- - name: rabbitmq
- mountPath: /var/lib/rabbitmq
- - name: ssl-certs
- mountPath: /etc/rabbitmq/ssl
- volumes:
- - name: ssl-certs
- secret:
- secretName: cega-certs
- defaultMode: 0440
- - name: conf
- secret:
- secretName: cega-mq-config
- defaultMode: 0440
- - name: rabbitmq
- emptyDir: {}
----
-# Source: cega/templates/cega-svc.yaml
-apiVersion: v1
-kind: Service
-metadata:
- name: cega-users
- labels:
- app: cega-users
-spec:
- ports:
- - port: 443
- targetPort: 8443
- protocol: TCP
- selector:
- app: cega-users
----
-# Source: cega/templates/cegamq-svc.yaml
-apiVersion: v1
-kind: Service
-metadata:
- name: cega-mq
- labels:
- app: cega-mq
-spec:
- ports:
- - port: 5672
- targetPort: 5672
- protocol: TCP
- name: amqp
- - port: 5671
- targetPort: 5671
- protocol: TCP
- name: amqps
- - port: 4369
- name: epmd
- - port: 25672
- name: rabbitmq-dist
- selector:
- app: cega-mq
----
-# Source: cega/templates/serviceaccount.yaml
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- app: cega-serviceAccount
- chart: cega-0.3.3
- heritage: Helm
- release: cega
- name: cega
- namespace: default
-
diff --git a/sda-helm/dev_tools/cega/users.json b/sda-helm/dev_tools/cega/users.json
deleted file mode 100644
index 953704079..000000000
--- a/sda-helm/dev_tools/cega/users.json
+++ /dev/null
@@ -1,7 +0,0 @@
-[{"username": "dummy",
- "uid": 1,
- "passwordHash": "wW94fVzPmrB2KiDuhBq2oVx416YMBIC8Q0HGCeTBjPmOo/0R",
- "gecos": "dummy user",
- "sshPublicKey": ["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDI7vOtisP6sEfK25RqVJKJ+xuLn42eDUBGYJsKbo638s+Ft3LbriL00CwGAElu8bB2LEIO/lMPphqrci039eysLXeS9y0ZhNMyqBc6Z5FH7Bp6RZquEikXs6ALuLKd30u8CyRZ3JuH/C3W4ptbfaeBAwnhUXCaxttgF5rdWZbkDP/Lyc2n3PdcHvEWNCo2fvs3QgxCgoYMsRhUAOv+n58wrYoY4sMBXmeWauxfOEKhGQqPoz8c+l68oh5oKcXtPW8ETc2id3kiwEfZMkB/p/MqFbFNqcHhGmmZAgzP0YbH2KUGYp8WiIEZpy6dTbv2eQfkoqFcJilm0iOJ40aDiJrv6tFSx/RPc6togj+kxPnXK5daYmhUkzm0AS7qUWL9QSd9S0nViav+NJzhhchpcWjU7fSnck7dRj+pyr/PLNUW6Dc8LETPnWLkLaIR3AgLPp8lq9JPbfHrfSNNleElRTpjweqAY/6ViRo690xjupZIPWiYe56vx3H13FbkngSuS7YEFGJeg3leHFql8BfmW9GMm3b8H56wWsE9ewBSVOGNNeqFR+3TBCL4wk5IMo5nK2yp9eQy6shgN4fbES93KQr7VkIx2rQna8JJJLnhZoU2iHtG57EIAKjtF69us4aPWnY1NCr19xGzTqN8HUpaaGYH4EMLuukRcPm0ebCjeDUyxQ=="],
- "enabled": null
-}]
diff --git a/sda-helm/dev_tools/cega/users.py b/sda-helm/dev_tools/cega/users.py
deleted file mode 100644
index 80bdc8421..000000000
--- a/sda-helm/dev_tools/cega/users.py
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/usr/bin/env python3.6
-# -*- coding: utf-8 -*-
-
-'''
-Test server to act as CentralEGA endpoint for users
-
-:author: Frédéric Haziza
-:copyright: (c) 2018, EGA System Developers.
-'''
-
-import sys
-import os
-import logging
-import asyncio
-import json
-from base64 import b64decode
-import ssl
-
-from aiohttp import web
-
-#logging.basicConfig(format='[%(asctime)s][%(levelname)-8s] (L:%(lineno)s) %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
-logging.basicConfig(format='[%(levelname)-8s] (L:%(lineno)s) %(message)s')
-LOG = logging.getLogger(__name__)
-LOG.setLevel(logging.INFO)
-
-filepath = None
-instances = {}
-store = None
-usernames = {}
-
-def fetch_user_info(identifier, query):
- LOG.info(f'Requesting User {identifier} [type {id_type}]')
- try:
- pos = usernames.get(identifier, None)
- return store[pos] if pos is not None else None
- except:
- raise web.HTTPBadRequest(text="Missing or wrong idType")
-
-async def user(request):
- # Authenticate
- auth_header = request.headers.get('AUTHORIZATION')
- if not auth_header:
- raise web.HTTPUnauthorized(text=f'Protected access\n')
- _, token = auth_header.split(None, 1) # Skipping the Basic keyword
- instance, passwd = b64decode(token).decode().split(':', 1)
- info = instances.get(instance)
- if info is None or info != passwd:
- raise web.HTTPUnauthorized(text=f'Protected access\n')
-
- # Reload users list
- load_users()
-
- # Find user
- user_info = fetch_user_info(request.match_info['identifier'], request.rel_url.query)
- if user_info is None:
- raise web.HTTPBadRequest(text=f'No info for that user\n')
- return web.json_response(user_info)
-
-def main():
-
- if len(sys.argv) < 3:
- print('Usage: {sys.argv[0] }', file=sys.stderr)
- sys.exit(2)
-
- host = sys.argv[1]
- port = sys.argv[2]
-
- global filepath
- filepath = sys.argv[3]
-
- server = web.Application()
- load_users()
-
- # Registering the routes
- server.router.add_get('/username/{identifier}', user, name='user')
-
- # SSL settings
- cacertfile = '/tls/ca.crt'
- certfile = '/tls/tls.crt'
- keyfile = '/tls/tls.key'
-
- ssl_ctx = ssl.create_default_context(purpose=ssl.Purpose.SERVER_AUTH, cafile=cacertfile)
- ssl_ctx.check_hostname = False
- ssl_ctx.verify_mode = ssl.CERT_NONE
-
- ssl_ctx.load_cert_chain(certfile, keyfile=keyfile)
-
- # aaaand... cue music
- web.run_app(server, host=host, port=port, shutdown_timeout=0, ssl_context=ssl_ctx)
-
-
-def load_users():
- # Initialization
- global filepath, instances, store, usernames, uids
- instances[os.environ[f'CEGA_USERS_USER']] = os.environ[f'CEGA_USERS_PASSWORD'] #'legatest' # Hard-coding legatest:legatest
- with open(filepath, 'rt') as f:
- store = json.load(f)
- for i, d in enumerate(store):
- usernames[d['username']] = i # No KeyError, should be there
-
-
-if __name__ == '__main__':
- main()
diff --git a/sda-helm/dev_tools/config/cert-issuer.yaml b/sda-helm/dev_tools/config/cert-issuer.yaml
deleted file mode 100644
index 1c2440aac..000000000
--- a/sda-helm/dev_tools/config/cert-issuer.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
-apiVersion: cert-manager.io/v1
-kind: Issuer
-metadata:
- name: selfsigned-issuer
-spec:
- selfSigned: {}
----
-apiVersion: cert-manager.io/v1
-kind: Certificate
-metadata:
- name: selfsigned-ca
-spec:
- isCA: true
- commonName: selfsigned-ca
- secretName: root-secret
- privateKey:
- algorithm: ECDSA
- size: 256
- issuerRef:
- name: selfsigned-issuer
- kind: Issuer
- group: cert-manager.io
----
-apiVersion: cert-manager.io/v1
-kind: Issuer
-metadata:
- name: ca-issuer
-spec:
- ca:
- secretName: root-secret
diff --git a/sda-helm/dev_tools/config/minio-issuer.yaml b/sda-helm/dev_tools/config/minio-issuer.yaml
deleted file mode 100644
index e33f40b57..000000000
--- a/sda-helm/dev_tools/config/minio-issuer.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-apiVersion: cert-manager.io/v1
-kind: Certificate
-metadata:
- name: minio-certs
-spec:
- # Secret names are always required.
- secretName: minio-certs
-
- duration: 2160h # 90d
-
- # The use of the common name field has been deprecated since 2000 and is
- # discouraged from being used.
- commonName: cega
- isCA: false
- privateKey:
- algorithm: ECDSA
- size: 256
- usages:
- - server auth
- # At least one of a DNS Name, URI, or IP address is required.
- dnsNames:
- - minio
- ipAddresses:
- - 127.0.0.1
- # Issuer references are always required.
- issuerRef:
- name: ca-issuer
- # We can reference ClusterIssuers by changing the kind here.
- # The default value is Issuer (i.e. a locally namespaced Issuer)
- kind: Issuer
- # This is optional since cert-manager will default to this value however
- # if you are using an external issuer, change this to that issuer group.
- group: cert-manager.io
diff --git a/sda-helm/dev_tools/config/no-tls.yaml b/sda-helm/dev_tools/config/no-tls.yaml
deleted file mode 100644
index 1cffc06a0..000000000
--- a/sda-helm/dev_tools/config/no-tls.yaml
+++ /dev/null
@@ -1,72 +0,0 @@
-global:
- c4ghPath: c4gh
- jwtPath: jwt
- tlsPath: tls
- podSecurityPolicy:
- create: false
- archive:
- storageType: s3
- s3Url: "http://minio"
- s3Port: 9000
- s3Bucket: "archive"
- s3ReadyPath: "/minio/health/ready"
- auth:
- elixirID: DfCieZLuBU
- elixirSecret: DfCieZLuBU
- jwtSecret: oidc
- jwtAlg: ES256
- jwtKey: jwt.key
- jwtPub: jwt.pub
- backupArchive:
- storageType: s3
- s3Url: "http://minio"
- s3Port: 9000
- s3Bucket: "backup"
- s3ReadyPath: "/minio/health/ready"
- broker:
- host: "broker-sda-mq"
- exchange: "sda"
- port: 5672
- password: "admin"
- username: "admin"
- backupRoutingKey: "backup"
- db:
- host: "postgres-sda-db"
- c4gh:
- secretName: c4gh
- keyFile: c4gh.sec.pem
- publicFile: c4gh.pub.pem
- elixir:
- provider: "http://oidc-server:8080"
- jwkPath: ""
- inbox:
- storageType: s3
- # existingClaim: test
- s3Url: http://minio
- s3Port: 9000
- s3Bucket: "inbox"
- s3ReadyPath: "/minio/health/ready"
- ingress:
- deploy: false
- hostName:
- auth: sda-sda-svc-auth
- download: sda-sda-svc-download
- s3Inbox: sda-sda-svc-inbox
- logLevel: debug
- schemaType: isolated
- tls:
- enabled: false
-auth:
- replicaCount: 1
-backup:
- deploy: true
-doa:
- replicaCount: 1
-download:
- replicaCount: 1
-intercept:
- deploy: false
-releasetest:
- run: true
-s3Inbox:
- replicaCount: 1
diff --git a/sda-helm/dev_tools/config/oidc.yaml b/sda-helm/dev_tools/config/oidc.yaml
deleted file mode 100644
index d8904049c..000000000
--- a/sda-helm/dev_tools/config/oidc.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: oidc-server
-spec:
- selector:
- matchLabels:
- app: oidc-server
- replicas: 1
- template:
- metadata:
- labels:
- app: oidc-server
- spec:
- securityContext:
- runAsNonRoot: true
- runAsGroup: 1000
- runAsUser: 1000
- fsGroup: 1000
- containers:
- - name: oidc-server
- image: "neicnordic/mock-oidc:latest"
- ports:
- - containerPort: 8080
- env:
- - name: PORT
- value: "8080"
- - name: HOST
- value: oidc-server
- - name: CLIENT_ID
- value: DfCieZLuBU
- - name: CLIENT_SECRET
- value: DfCieZLuBU
- - name: CLIENT_REDIRECT_URI
- value: http://sda-auth/elixir/login
- resources:
- limits:
- cpu: 250m
- memory: 256Mi
- requests:
- cpu: 100m
- memory: 128Mi
----
-apiVersion: v1
-kind: Service
-metadata:
- name: oidc-server
- labels:
- app: oidc-server
-spec:
- type: ClusterIP
- ports:
- - port: 8080
- targetPort: 8080
- selector:
- app: oidc-server
diff --git a/sda-helm/dev_tools/config/orch.yaml b/sda-helm/dev_tools/config/orch.yaml
deleted file mode 100644
index 451f2c153..000000000
--- a/sda-helm/dev_tools/config/orch.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-broker:
- vhost: "sda"
- host: "broker-sda-mq"
- exchange: "sda"
- password: "admin"
- username: "admin"
- queue:
- inbox: inbox
- completed: completed
- verify: archived
- files: files
- stableid: accessionIDs
-logLevel: debug
-tls:
- secretName: orch-certs
- cert: orch.crt
- key: orch.key
- caCert: ca.crt
diff --git a/sda-helm/dev_tools/config/posix-volumes.yaml b/sda-helm/dev_tools/config/posix-volumes.yaml
deleted file mode 100644
index e16f58a8a..000000000
--- a/sda-helm/dev_tools/config/posix-volumes.yaml
+++ /dev/null
@@ -1,35 +0,0 @@
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: inbox-volume
-spec:
- accessModes:
- - ReadWriteOnce
- resources:
- requests:
- storage: 1Gi
- storageClassName: local-path
----
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: archive-volume
-spec:
- accessModes:
- - ReadWriteOnce
- resources:
- requests:
- storage: 1Gi
- storageClassName: local-path
----
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: backup-volume
-spec:
- accessModes:
- - ReadWriteOnce
- resources:
- requests:
- storage: 1Gi
- storageClassName: local-path
diff --git a/sda-helm/dev_tools/config/posix.yaml b/sda-helm/dev_tools/config/posix.yaml
deleted file mode 100644
index b7cd460fe..000000000
--- a/sda-helm/dev_tools/config/posix.yaml
+++ /dev/null
@@ -1,76 +0,0 @@
-global:
- c4ghPath: c4gh
- jwtPath: jwt
- tlsPath: tls
- podSecurityPolicy:
- create: false
- archive:
- storageType: posix
- existingClaim: archive-volume
- volumePath: "/archive"
- backupArchive:
- storageType: posix
- existingClaim: backup-volume
- volumePath: "/backup"
- broker:
- host: "broker-sda-mq"
- exchange: "sda"
- port: 5671
- verifyPeer: true
- password: "admin"
- username: "admin"
- backupRoutingKey: "backup"
- c4gh:
- secretName: c4gh
- keyFile: c4gh.sec.pem
- publicFile: c4gh.pub.pem
- cega:
- host: "cega-users"
- user: "legatest"
- db:
- host: "postgres-sda-db"
- sslMode: "verify-ca"
- inbox:
- storageType: posix
- path: "/inbox"
- user: "lega"
- existingClaim: inbox-volume
- ingress:
- deploy: false
- hostName:
- download: sda-sda-svc-download
- logLevel: debug
- tls:
- enabled: true
-backup:
- deploy: true
- tls:
- secretName: "backup-certs"
-doa:
- tls:
- secretName: "doa-certs"
-finalize:
- tls:
- secretName: "finalize-certs"
-ingest:
- tls:
- secretName: "ingest-certs"
-intercept:
- tls:
- secretName: "intercept-certs"
-mapper:
- tls:
- secretName: "mapper-certs"
-sftpInbox:
- tls:
- secretName: "inbox-certs"
-verify:
- tls:
- secretName: "verify-certs"
-download:
- tls:
- secretName: "download-certs"
-releasetest:
- run: true
- tls:
- secretName: "tester-certs"
diff --git a/sda-helm/dev_tools/config/s3.yaml b/sda-helm/dev_tools/config/s3.yaml
deleted file mode 100644
index ef4088f52..000000000
--- a/sda-helm/dev_tools/config/s3.yaml
+++ /dev/null
@@ -1,106 +0,0 @@
-global:
- c4ghPath: c4gh
- jwtPath: jwt
- tlsPath: tls
- podSecurityPolicy:
- create: false
- archive:
- storageType: s3
- s3Url: "https://minio"
- s3Bucket: "archive"
- s3CaFile: "ca.crt"
- s3AccessKey: idDQBxLpXoM8l88l
- s3SecretKey: ABd6XCIvNWj7JULbrqBf8tB7q9BoHJSc
- auth:
- elixirID: DfCieZLuBU
- elixirSecret: DfCieZLuBU
- jwtSecret: oidc
- jwtAlg: ES256
- jwtKey: jwt.key
- jwtPub: jwt.pub
- backupArchive:
- storageType: s3
- s3Url: "https://minio"
- s3Bucket: "backup"
- s3CaFile: "ca.crt"
- s3AccessKey: idDQBxLpXoM8l88l
- s3SecretKey: ABd6XCIvNWj7JULbrqBf8tB7q9BoHJSc
- broker:
- host: "broker-sda-mq"
- exchange: "sda"
- port: 5671
- verifyPeer: true
- password: "admin"
- username: "admin"
- backupRoutingKey: "backup"
- cega:
- host: "cega-users"
- user: "legatest"
- password: 3iSGc5loLN7hu2EwT2Z2CzCT26iUrk3t
- db:
- host: "postgres-sda-db"
- sslMode: "verify-full"
- c4gh:
- secretName: c4gh
- keyFile: c4gh.sec.pem
- publicFile: c4gh.sec.pub
- elixir:
- provider: "http://oidc-server:8080"
- jwkPath: ""
- inbox:
- storageType: s3
- # existingClaim: test
- s3Url: "https://minio"
- s3Bucket: "inbox"
- s3AccessKey: idDQBxLpXoM8l88l
- s3SecretKey: ABd6XCIvNWj7JULbrqBf8tB7q9BoHJSc
- s3CaFile: ca.crt
- s3ReadyPath: "/minio/health/ready"
- ingress:
- deploy: false
- hostName:
- auth: sda-sda-svc-auth
- download: sda-sda-svc-download
- s3Inbox: sda-sda-svc-inbox
- logLevel: debug
- tls:
- enabled: true
-auth:
- replicaCount: 1
- tls:
- secretName: "auth-certs"
-backup:
- deploy: true
- tls:
- secretName: "backup-certs"
-doa:
- replicaCount: 1
- tls:
- secretName: "doa-certs"
-finalize:
- tls:
- secretName: "finalize-certs"
-ingest:
- tls:
- secretName: "ingest-certs"
-intercept:
- tls:
- secretName: "intercept-certs"
-mapper:
- tls:
- secretName: "mapper-certs"
-s3Inbox:
- replicaCount: 1
- tls:
- secretName: "inbox-certs"
-verify:
- tls:
- secretName: "verify-certs"
-download:
- replicaCount: 1
- tls:
- secretName: "download-certs"
-releasetest:
- run: true
- tls:
- secretName: "tester-certs"
diff --git a/sda-helm/dev_tools/scripts/cleanup.sh b/sda-helm/dev_tools/scripts/cleanup.sh
deleted file mode 100644
index 1ead16b46..000000000
--- a/sda-helm/dev_tools/scripts/cleanup.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-if [ "$1" = "db" ] || [ "$1" = "all" ];then
- helm uninstall postgres
- kubectl delete secret db-certs
-fi
-
-if [ "$1" = "mq" ] || [ "$1" = "all" ];then
- helm uninstall broker
- kubectl delete secret mq-certs
-fi
-
-if [ "$1" = "sda" ] || [ "$1" = "all" ];then
- helm uninstall sda
- kubectl delete secret auth-certs backup-certs doa-certs finalize-certs inbox-certs ingest-certs intercept-certs mapper-certs tester-certs verify-certs ca-root download-certs
-fi
diff --git a/sda-helm/dev_tools/scripts/create-s3-buckets-no-tls.sh b/sda-helm/dev_tools/scripts/create-s3-buckets-no-tls.sh
deleted file mode 100644
index 634aec22f..000000000
--- a/sda-helm/dev_tools/scripts/create-s3-buckets-no-tls.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash
-set -e
-
-if [ ! -f s3cmd.conf ]; then
- cat >> "s3cmd.conf" <>"s3cmd.conf" < /dev/null
-then
- wget -q -O - https://raw.githubusercontent.com/rancher/k3d/main/install.sh | TAG=v5.4.6 bash
-fi
-
-k3d cluster list | grep "sda"
-cluster_exists=$?
-
-if [ $cluster_exists -ne 0 ]; then
- sudo k3d cluster create sda --image=rancher/k3s:v1.25.6-rc1-k3s1-amd64
- sudo k3d kubeconfig merge sda --kubeconfig-switch-context
- sudo mkdir -p ~/.kube/ && sudo cp /root/.k3d/kubeconfig-sda.yaml ~/.kube/config
- sudo chmod 666 ~/.kube/config
-else
- echo "Cluster sda already exists!"
-fi
diff --git a/sda-helm/dev_tools/scripts/install-kube-deps.sh b/sda-helm/dev_tools/scripts/install-kube-deps.sh
deleted file mode 100755
index cbc566fbb..000000000
--- a/sda-helm/dev_tools/scripts/install-kube-deps.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-set -e
-
-if [ "$OSTYPE" == "linux-gnu" ]; then
- BTYPE="linux"
-elif [ "$OSTYPE" == "darwin" ]; then
- BTYPE="darwin"
-fi
-
-curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.25.0/bin/"$BTYPE"/amd64/kubectl
-chmod +x ./kubectl
-sudo mv ./kubectl /usr/local/bin/kubectl
-
-wget https://get.helm.sh/helm-v3.11.0-"$BTYPE"-amd64.tar.gz -O - | tar -xz
-sudo cp "$BTYPE"-amd64/helm /usr/local/bin/helm
-
-rm -r ./*-amd64/
diff --git a/sda-helm/dev_tools/scripts/install-sda-deps.sh b/sda-helm/dev_tools/scripts/install-sda-deps.sh
deleted file mode 100755
index deb869393..000000000
--- a/sda-helm/dev_tools/scripts/install-sda-deps.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-set -e
-
-YQ_VERSION=v4.20.1
-YQ_BINARY=yq_linux_amd64
-C4GH_VERSION=1.4.0
-# Workaround for some MacOS installations
-#export PATH=$PATH:/home/ubuntu/.local/bin
-
-if [ ! -d LocalEGA-helm ]; then
- git clone https://github.com/nbisweden/LocalEGA-helm
-fi
-
-# install s3cmd
-pip install s3cmd
-
-
-# install yq for creating secrets
-sudo wget "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/${YQ_BINARY}" -O /usr/bin/yq &&\
- sudo chmod +x /usr/bin/yq
-
-# install crypt4gh
-curl -L https://github.com/elixir-oslo/crypt4gh/releases/download/v"${C4GH_VERSION}"/crypt4gh_linux_x86_64.tar.gz | sudo tar -xz -C /usr/bin/ &&\
- sudo chmod +x /usr/bin/crypt4gh
diff --git a/sda-helm/dev_tools/scripts/java-certs.sh b/sda-helm/dev_tools/scripts/java-certs.sh
deleted file mode 100755
index 027f3e2a1..000000000
--- a/sda-helm/dev_tools/scripts/java-certs.sh
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-[ "${BASH_VERSINFO[0]}" -lt 4 ] && echo 'Bash 4 (or higher) is required' 1>&2 && exit 1
-
-if ! [ -x "$(command -v keytool)" ]; then
- echo 'Error: Keytool is not installed.' >&2
- exit 1
-fi
-
-if ! [ -x "$(command -v openssl)" ]; then
- echo 'Error: Openssl is not installed.' >&2
- exit 1
-fi
-
-CONFPATH="sda-deploy-init/config/certs"
-STORETYPE=PKCS12
-STOREPASS=changeit
-services_input="doa,inbox"
-
-IFS=',' read -r -a services <<< "$services_input"
-
-# remove previous alias if keystore exists
-# becomes problemantic if password changed
-if [[ -f "${CONFPATH}"/cacerts ]]; then
- keytool -delete -alias legaCA \
- -keystore "${CONFPATH}"/cacerts \
- -storepass "${STOREPASS}" -noprompt
-fi
-
-# create java keystore for each service
-for service in "${services[@]}"; do
- if [[ "${STORETYPE}" == "JKS" ]]; then
- keytool -import -alias "${service}" \
- -keystore "${CONFPATH}/${service}.jks" \
- -file "${CONFPATH}/${service}".ca.crt.der \
- -storepass "${STOREPASS}" -noprompt
- else
- openssl pkcs12 -export -out "${CONFPATH}/${service}".p12 \
- -inkey "${CONFPATH}/${service}".key \
- -in "${CONFPATH}/${service}".crt \
- -passout pass:"${STOREPASS}"
- openssl pkcs8 -topk8 \
- -inform pem \
- -outform der \
- -in "${CONFPATH}/${service}".key \
- -out "${CONFPATH}/${service}".key.der \
- -nocrypt
- fi
-done
-
-# create java CAroot truststore
-keytool -import -trustcacerts -file "${CONFPATH}"/ca.crt \
- -alias legaCA -storetype JKS \
- -keystore "${CONFPATH}"/cacerts \
- -storepass "${STOREPASS}" -noprompt
-
-# create DER format key
-
diff --git a/sda-helm/dev_tools/scripts/make-certs.sh b/sda-helm/dev_tools/scripts/make-certs.sh
deleted file mode 100755
index 0f4b0c1c9..000000000
--- a/sda-helm/dev_tools/scripts/make-certs.sh
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/bin/sh
-
-basedir="sda-deploy-init/config/certs"
-days=1200
-
-mkdir -p "${basedir}"
-
-# create CA certificate
-openssl req -config "$(dirname "$0")"/ssl.cnf -new -sha256 -nodes -extensions v3_ca -out "./${basedir}/ca.csr" -keyout "./${basedir}/ca.key"
-openssl req -config "$(dirname "$0")"/ssl.cnf -key "./${basedir}/ca.key" -x509 -new -days 7300 -sha256 -nodes -extensions v3_ca -out "./${basedir}/ca.crt"
-
-# Create certificate for MQ
-openssl req -config "$(dirname "$0")"/ssl.cnf -new -nodes -newkey rsa:4096 -keyout "./${basedir}/server.key" -out "./${basedir}/mq.csr" -extensions mq_cert
-openssl x509 -req -in "./${basedir}/mq.csr" -days "${days}" -CA "./${basedir}/ca.crt" -CAkey "./${basedir}/ca.key" -set_serial 01 -out "./${basedir}/server.crt" -extensions mq_cert -extfile "$(dirname "$0")"/ssl.cnf
-
-# Create certificate for DB
-openssl req -config "$(dirname "$0")"/ssl.cnf -new -nodes -newkey rsa:4096 -keyout "./${basedir}/pg.key" -out "./${basedir}/pg.csr" -extensions db_cert
-openssl x509 -req -in "./${basedir}/pg.csr" -days "${days}" -CA "./${basedir}/ca.crt" -CAkey "./${basedir}/ca.key" -set_serial 01 -out "./${basedir}/pg.crt" -extensions db_cert -extfile "$(dirname "$0")"/ssl.cnf
-
-# Create certificate for minio
-openssl req -config "$(dirname "$0")"/ssl.cnf -new -nodes -newkey rsa:4096 -keyout "./${basedir}/private.key" -out "./${basedir}/s3.csr" -extensions minio_cert
-openssl x509 -req -in "./${basedir}/s3.csr" -days "${days}" -CA "./${basedir}/ca.crt" -CAkey "./${basedir}/ca.key" -set_serial 01 -out "./${basedir}/public.crt" -extensions minio_cert -extfile "$(dirname "$0")"/ssl.cnf
-
-# Create client certificate
-openssl req -config "$(dirname "$0")"/ssl.cnf -new -nodes -newkey rsa:4096 -keyout "./${basedir}/client.key" -out "./${basedir}/client.csr" -extensions client_cert -subj "/CN=lega_in/CN=admin/"
-openssl x509 -req -in "./${basedir}/client.csr" -days "${days}" -CA "./${basedir}/ca.crt" -CAkey "./${basedir}/ca.key" -set_serial 01 -out "./${basedir}/client.crt" -extensions client_cert -extfile "$(dirname "$0")"/ssl.cnf
-
-# Create certificate for inbox
-openssl req -config "$(dirname "$0")"/ssl.cnf -new -nodes -newkey rsa:4096 -keyout "./${basedir}/inbox.key" -out "./${basedir}/inbox.csr" -extensions inbox_cert -subj "/CN=lega_in/CN=admin/"
-openssl x509 -req -in "./${basedir}/inbox.csr" -days "${days}" -CA "./${basedir}/ca.crt" -CAkey "./${basedir}/ca.key" -set_serial 01 -out "./${basedir}/inbox.crt" -extensions inbox_cert -extfile "$(dirname "$0")"/ssl.cnf
-
-# Create certificate for ingest
-openssl req -config "$(dirname "$0")"/ssl.cnf -new -nodes -newkey rsa:4096 -keyout "./${basedir}/ingest.key" -out "./${basedir}/ingest.csr" -extensions ingest_cert -subj "/CN=lega_in/CN=admin/"
-openssl x509 -req -in "./${basedir}/ingest.csr" -days "${days}" -CA "./${basedir}/ca.crt" -CAkey "./${basedir}/ca.key" -set_serial 01 -out "./${basedir}/ingest.crt" -extensions ingest_cert -extfile "$(dirname "$0")"/ssl.cnf
-
-# Create certificate for intercept
-openssl req -config "$(dirname "$0")"/ssl.cnf -new -nodes -newkey rsa:4096 -keyout "./${basedir}/intercept.key" -out "./${basedir}/intercept.csr" -extensions intercept_cert -subj "/CN=admin"
-openssl x509 -req -in "./${basedir}/intercept.csr" -days "${days}" -CA "./${basedir}/ca.crt" -CAkey "./${basedir}/ca.key" -set_serial 01 -out "./${basedir}/intercept.crt" -extensions intercept_cert -extfile "$(dirname "$0")"/ssl.cnf
-
-# Create certificate for finalize
-openssl req -config "$(dirname "$0")"/ssl.cnf -new -nodes -newkey rsa:4096 -keyout "./${basedir}/finalize.key" -out "./${basedir}/finalize.csr" -extensions finalize_cert -subj "/CN=lega_in/CN=admin"
-openssl x509 -req -in "./${basedir}/finalize.csr" -days "${days}" -CA "./${basedir}/ca.crt" -CAkey "./${basedir}/ca.key" -set_serial 01 -out "./${basedir}/finalize.crt" -extensions finalize_cert -extfile "$(dirname "$0")"/ssl.cnf
-
-# Create certificate for verify
-openssl req -config "$(dirname "$0")"/ssl.cnf -new -nodes -newkey rsa:4096 -keyout "./${basedir}/verify.key" -out "./${basedir}/verify.csr" -extensions verify_cert -subj "/CN=lega_in/CN=admin/"
-openssl x509 -req -in "./${basedir}/verify.csr" -days "${days}" -CA "./${basedir}/ca.crt" -CAkey "./${basedir}/ca.key" -set_serial 01 -out "./${basedir}/verify.crt" -extensions verify_cert -extfile "$(dirname "$0")"/ssl.cnf
-
-# Create certificate for doa
-openssl req -config "$(dirname "$0")"/ssl.cnf -new -nodes -newkey rsa:4096 -keyout "./${basedir}/doa.key" -out "./${basedir}/doa.csr" -extensions doa_cert -subj "/CN=lega_out/CN=admin/"
-openssl x509 -req -in "./${basedir}/doa.csr" -days "${days}" -CA "./${basedir}/ca.crt" -CAkey "./${basedir}/ca.key" -set_serial 01 -out "./${basedir}/doa.crt" -extensions doa_cert -extfile "$(dirname "$0")"/ssl.cnf
-
-# Create certificate for download
-openssl req -config "$(dirname "$0")"/ssl.cnf -new -nodes -newkey rsa:4096 -keyout "./${basedir}/download.key" -out "./${basedir}/download.csr" -extensions download_cert -subj "/CN=lega_out/CN=admin/"
-openssl x509 -req -in "./${basedir}/download.csr" -days "${days}" -CA "./${basedir}/ca.crt" -CAkey "./${basedir}/ca.key" -set_serial 01 -out "./${basedir}/download.crt" -extensions download_cert -extfile "$(dirname "$0")"/ssl.cnf
-
-# Create certificate for orch
-openssl req -config "$(dirname "$0")"/ssl.cnf -new -nodes -newkey rsa:4096 -keyout "./${basedir}/orch.key" -out "./${basedir}/orch.csr" -extensions orch_cert -subj "/CN=admin"
-openssl x509 -req -in "./${basedir}/orch.csr" -days "${days}" -CA "./${basedir}/ca.crt" -CAkey "./${basedir}/ca.key" -set_serial 01 -out "./${basedir}/orch.crt" -extensions orch_cert -extfile "$(dirname "$0")"/ssl.cnf
-
-# Create certificate for mapper
-openssl req -config "$(dirname "$0")"/ssl.cnf -new -nodes -newkey rsa:4096 -keyout "./${basedir}/mapper.key" -out "./${basedir}/mapper.csr" -extensions mapper_cert -subj "/CN=lega_out/CN=admin"
-openssl x509 -req -in "./${basedir}/mapper.csr" -days "${days}" -CA "./${basedir}/ca.crt" -CAkey "./${basedir}/ca.key" -set_serial 01 -out "./${basedir}/mapper.crt" -extensions mapper_cert -extfile "$(dirname "$0")"/ssl.cnf
-
-# Create certificate for backup
-openssl req -config "$(dirname "$0")"/ssl.cnf -new -nodes -newkey rsa:4096 -keyout "./${basedir}/backup.key" -out "./${basedir}/backup.csr" -extensions backup_cert -subj "/CN=admin/CN=lega_in"
-openssl x509 -req -in "./${basedir}/backup.csr" -days "${days}" -CA "./${basedir}/ca.crt" -CAkey "./${basedir}/ca.key" -set_serial 01 -out "./${basedir}/backup.crt" -extensions backup_cert -extfile "$(dirname "$0")"/ssl.cnf
-
-# Create certificate for auth
-openssl req -config "$(dirname "$0")"/ssl.cnf -new -nodes -newkey rsa:4096 -keyout "./${basedir}/auth.key" -out "./${basedir}/auth.csr" -extensions auth_cert
-openssl x509 -req -in "./${basedir}/auth.csr" -days "${days}" -CA "./${basedir}/ca.crt" -CAkey "./${basedir}/ca.key" -set_serial 01 -out "./${basedir}/auth.crt" -extensions auth_cert -extfile "$(dirname "$0")"/ssl.cnf
-
-# Create certificate for tester
-openssl req -config "$(dirname "$0")"/ssl.cnf -new -nodes -newkey rsa:4096 -keyout "./${basedir}/tester.key" -out "./${basedir}/tester.csr" -extensions tester_cert -subj "/CN=lega_in/CN=admin/"
-openssl x509 -req -in "./${basedir}/tester.csr" -days "${days}" -CA "./${basedir}/ca.crt" -CAkey "./${basedir}/ca.key" -set_serial 01 -out "./${basedir}/tester.crt" -extensions tester_cert -extfile "$(dirname "$0")"/ssl.cnf
-
-# Create certificate for cega
-openssl req -config "$(dirname "$0")"/ssl.cnf -new -nodes -newkey rsa:4096 -keyout "./${basedir}/cega.key" -out "./${basedir}/cega.csr" -extensions cega
-openssl x509 -req -in "./${basedir}/cega.csr" -days "${days}" -CA "./${basedir}/ca.crt" -CAkey "./${basedir}/ca.key" -set_serial 01 -out "./${basedir}/cega.crt" -extensions cega -extfile "$(dirname "$0")"/ssl.cnf
-
-# Create token
-openssl req -nodes -new -x509 -keyout "./${basedir}/token.key" -out "./${basedir}/token.pub" -config "$(dirname "$0")"/ssl.cnf
-
-chmod 644 "./${basedir}/"*
diff --git a/sda-helm/dev_tools/scripts/mq-password-generator.sh b/sda-helm/dev_tools/scripts/mq-password-generator.sh
deleted file mode 100644
index a0325a1c6..000000000
--- a/sda-helm/dev_tools/scripts/mq-password-generator.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-
-SALT=$(od -A n -t x -N 4 /dev/urandom)
-PASS=$SALT$(echo -n "$1" | xxd -ps | tr -d '\n' | tr -d ' ')
-PASS=$(echo -n "$PASS" | xxd -r -p | sha256sum | head -c 128)
-PASS=$(echo -n "$SALT$PASS" | xxd -r -p | base64 -w0)
-echo -n "$PASS"
diff --git a/sda-helm/dev_tools/scripts/run-helm-test.sh b/sda-helm/dev_tools/scripts/run-helm-test.sh
deleted file mode 100755
index 4c2458e6d..000000000
--- a/sda-helm/dev_tools/scripts/run-helm-test.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-if [ -n "$1" ]; then RELEASE_LIST=$1; else RELEASE_LIST="broker postgres sda"; fi
-
-for release in $RELEASE_LIST; do
- echo "Testing $release"
- helm test "$release"
- r=$?
-
- if [ "$r" -ne 0 ]; then
- kubectl get pod -o name | while read -r pod; do
- echo "All logs for $pod"
- kubectl logs --all-containers "$pod"
- done
- exit "$r"
- fi
-done
diff --git a/sda-helm/dev_tools/scripts/sda/deploy-no-tls.sh b/sda-helm/dev_tools/scripts/sda/deploy-no-tls.sh
deleted file mode 100644
index 665f37a44..000000000
--- a/sda-helm/dev_tools/scripts/sda/deploy-no-tls.sh
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/bin/sh
-set -e
-
-if [ "$1" = "database" ]; then
- DB_IN_PASS=$(grep pg_in_password sda-deploy-init/config/trace.yml | awk '{print $2}' | sed -e 's/\"//g')
- DB_OUT_PASS=$(grep pg_out_password sda-deploy-init/config/trace.yml | awk '{print $2}' | sed -e 's/\"//g')
-
- helm install postgres charts/sda-db \
- --set global.pg_in_password="$DB_IN_PASS",global.pg_out_password="$DB_OUT_PASS",securityPolicy.create=false,global.tls.enabled=false,persistence.enabled=false
-
- RETRY_TIMES=0
- until kubectl get pods -l role=database -o jsonpath='{..status.containerStatuses[*].ready}' | grep "true"; do
- echo "waiting for database to become ready"
- RETRY_TIMES=$((RETRY_TIMES + 1))
- if [ "$RETRY_TIMES" -eq 30 ]; then
- kubectl describe pod -l role=datbase
- kubectl logs -l role=datbase
- exit 1
- fi
- sleep 10
- done
- exit 0
-fi
-
-if [ "$1" = "broker" ]; then
- HASH="$(/bin/sh dev_tools/scripts/mq-password-generator.sh admin)"
- helm install broker charts/sda-mq \
- --set securityPolicy.create=false,global.adminUser=admin,global.adminPasswordHash="$HASH",global.tls.enabled=false,global.vhost=sda,persistence.enabled=false
-
- RETRY_TIMES=0
- until kubectl get pods -l role=broker -o jsonpath='{..status.containerStatuses[*].ready}' | grep "true"; do
- echo "waiting for broker to become ready"
- RETRY_TIMES=$((RETRY_TIMES + 1))
- if [ "$RETRY_TIMES" -eq 30 ]; then
- kubectl describe pod -l role=broker
- kubectl logs -l role=broker
- exit 1
- fi
- sleep 10
- done
- exit 0
-fi
-
-if [ "$1" = "orchestrate" ]; then
- helm install orch charts/sda-orch -f dev_tools/config/orch.yaml \
- --set tls.enabled=false,broker.port=5672,broker.queue.verify=verified,broker.queue.inbox=files
-
- RETRY_TIMES=0
- until kubectl get pods -l role=orchestrate -o jsonpath='{..status.containerStatuses[*].ready}' | grep "true"; do
- echo "waiting for orch to become ready"
- RETRY_TIMES=$((RETRY_TIMES + 1))
- if [ "$RETRY_TIMES" -eq 30 ]; then
- kubectl describe pod -l role=orchestrate
- kubectl logs -l role=orchestrate
- exit 1
- fi
- sleep 10
- done
- exit 0
-fi
-
-if [ "$1" = "minio" ]; then
- helm repo add minio https://helm.min.io/
- helm repo update
-
- MINIO_ACCESS=$(grep s3_access_key sda-deploy-init/config/trace.yml | awk '{print $2}' | sed -e 's/\"//g')
- MINIO_SECRET=$(grep s3_secret_key sda-deploy-init/config/trace.yml | awk '{print $2}' | sed -e 's/\"//g')
-
- helm install minio minio/minio \
- --set accessKey="$MINIO_ACCESS",secretKey="$MINIO_SECRET",tls.enabled=false,persistence.enabled=false,service.port=9000 \
- --version 8.0.8
-
- RETRY_TIMES=0
- until kubectl get pods -l app=minio -o jsonpath='{..status.containerStatuses[*].ready}' | grep "true"; do
- echo "waiting for minio to become ready"
- RETRY_TIMES=$((RETRY_TIMES + 1))
- if [ "$RETRY_TIMES" -eq 30 ]; then
- kubectl describe pod -l app=minio
- kubectl logs -l app=minio
- exit 1
- fi
- sleep 10
- done
- exit 0
-fi
-
-if [ "$1" = "pipeline" ]; then
- DB_IN_PASS=$(grep pg_in_password sda-deploy-init/config/trace.yml | awk '{print $2}' | sed -e 's/\"//g')
- DB_OUT_PASS=$(grep pg_out_password sda-deploy-init/config/trace.yml | awk '{print $2}' | sed -e 's/\"//g')
- S3_ACCESS_KEY=$(grep s3_access_key sda-deploy-init/config/trace.yml | awk '{print $2}' | sed -e 's/\"//g')
- S3_SECRET_KEY=$(grep s3_secret_key sda-deploy-init/config/trace.yml | awk '{print $2}' | sed -e 's/\"//g')
- C4GH_PASSPHRASE=$(grep c4gh_passphrase sda-deploy-init/config/trace.yml | awk '{print $2}' | sed -e 's/\"//g')
- token="$(bash dev_tools/scripts/sign_jwt.sh ES256 sda-deploy-init/config/jwt.key)"
- helm install sda charts/sda-svc -f dev_tools/config/no-tls.yaml \
- --set global.archive.s3AccessKey="$S3_ACCESS_KEY",global.archive.s3SecretKey="$S3_SECRET_KEY",global.backupArchive.s3AccessKey="$S3_ACCESS_KEY",global.backupArchive.s3SecretKey="$S3_SECRET_KEY",global.broker.vhost=sda,global.c4gh.passphrase="$C4GH_PASSPHRASE",global.db.passIngest="$DB_IN_PASS",global.db.passOutgest="$DB_OUT_PASS",global.inbox.s3AccessKey="$S3_ACCESS_KEY",global.inbox.s3SecretKey="$S3_SECRET_KEY",releasetest.secrets.accessToken="$token"
-fi
diff --git a/sda-helm/dev_tools/scripts/sda/deploy-orch.sh b/sda-helm/dev_tools/scripts/sda/deploy-orch.sh
deleted file mode 100755
index 7f9b5f3fd..000000000
--- a/sda-helm/dev_tools/scripts/sda/deploy-orch.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-set -e
-
-## sda-orch certs
-kubectl create secret generic orch-certs \
---from-file=sda-deploy-init/config/certs/ca.crt \
---from-file=sda-deploy-init/config/certs/orch.crt \
---from-file=sda-deploy-init/config/certs/orch.key
-
-helm install orch charts/sda-orch -f dev_tools/config/orch.yaml
diff --git a/sda-helm/dev_tools/scripts/sda/deploy-posix.sh b/sda-helm/dev_tools/scripts/sda/deploy-posix.sh
deleted file mode 100755
index 891b06cc7..000000000
--- a/sda-helm/dev_tools/scripts/sda/deploy-posix.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-set -e
-
-if [ "$1" = "standalone" ]; then
- INTERCEPT=false
- SCHEMA=isolated
-else
- INTERCEPT=true
- CEGA_USERS_PASS=$(grep cega_users_pass dev_tools/config/cega.yaml | awk '{print $2}' | sed -e 's/\"//g')
- SCHEMA=federated
-fi
-
-DB_IN_PASS=$(grep pg_in_password sda-deploy-init/config/trace.yml | awk '{print $2}' | sed -e 's/\"//g')
-DB_OUT_PASS=$(grep pg_out_password sda-deploy-init/config/trace.yml | awk '{print $2}' | sed -e 's/\"//g')
-C4GH_PASSPHRASE=$(grep c4gh_passphrase sda-deploy-init/config/trace.yml | awk '{print $2}' | sed -e 's/\"//g')
-
-if [ "$2" = "issuer" ]; then
- helm install sda charts/sda-svc -f dev_tools/config/posix.yaml \
- --set global.broker.vhost=/sda,global.c4gh.passphrase="$C4GH_PASSPHRASE",global.cega.password="$CEGA_USERS_PASS",global.db.passIngest="$DB_IN_PASS",global.db.passOutgest="$DB_OUT_PASS",global.schemaType="$SCHEMA",intercept.deploy="$INTERCEPT",global.tls.issuer=ca-issuer
-else
- helm install sda charts/sda-svc -f dev_tools/config/posix.yaml \
- --set global.broker.vhost=/sda,global.c4gh.passphrase="$C4GH_PASSPHRASE",global.cega.password="$CEGA_USERS_PASS",global.db.passIngest="$DB_IN_PASS",global.db.passOutgest="$DB_OUT_PASS",global.schemaType="$SCHEMA",intercept.deploy="$INTERCEPT"
-fi
diff --git a/sda-helm/dev_tools/scripts/sda/deploy-s3.sh b/sda-helm/dev_tools/scripts/sda/deploy-s3.sh
deleted file mode 100755
index e1423a4d1..000000000
--- a/sda-helm/dev_tools/scripts/sda/deploy-s3.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash
-set -e
-
-if [ "$1" = "federated" ]; then
- INTERCEPT=true
- SCHEMA=federated
-else
- INTERCEPT=false
- SCHEMA=isolated
-fi
-DB_IN_PASS=$(grep pg_in_password sda-deploy-init/config/trace.yml | awk '{print $2}' | sed -e 's/\"//g')
-DB_OUT_PASS=$(grep pg_out_password sda-deploy-init/config/trace.yml | awk '{print $2}' | sed -e 's/\"//g')
-S3_ACCESS_KEY=$(grep s3_access_key sda-deploy-init/config/trace.yml | awk '{print $2}' | sed -e 's/\"//g')
-S3_SECRET_KEY=$(grep s3_secret_key sda-deploy-init/config/trace.yml | awk '{print $2}' | sed -e 's/\"//g')
-C4GH_PASSPHRASE=$(grep c4gh_passphrase sda-deploy-init/config/trace.yml | awk '{print $2}' | sed -e 's/\"//g')
-CEGA_USERS_PASS="OfEoDPVadIfd4CZUWkisrrVQbJ2yQPIH"
-
-token="$(bash dev_tools/scripts/sign_jwt.sh ES256 sda-deploy-init/config/jwt.key)"
-
-if [ "$2" = "issuer" ]; then
- helm install sda charts/sda-svc -f dev_tools/config/s3.yaml \
- --set global.broker.vhost=sda,global.archive.s3AccessKey="$S3_ACCESS_KEY",global.archive.s3SecretKey="$S3_SECRET_KEY",global.backupArchive.s3AccessKey="$S3_ACCESS_KEY",global.backupArchive.s3SecretKey="$S3_SECRET_KEY",global.c4gh.passphrase="$C4GH_PASSPHRASE",global.cega.password="$CEGA_USERS_PASS",global.db.passIngest="$DB_IN_PASS",global.db.passOutgest="$DB_OUT_PASS",global.doa.enabled=true,global.inbox.s3AccessKey="$S3_ACCESS_KEY",global.inbox.s3SecretKey="$S3_SECRET_KEY",global.schemaType="$SCHEMA",intercept.deploy="$INTERCEPT",releasetest.secrets.accessToken="$token",global.tls.issuer=ca-issuer
-
-else
- helm install sda charts/sda-svc -f dev_tools/config/s3.yaml \
- --set global.broker.vhost=sda,global.archive.s3AccessKey="$S3_ACCESS_KEY",global.archive.s3SecretKey="$S3_SECRET_KEY",global.backupArchive.s3AccessKey="$S3_ACCESS_KEY",global.backupArchive.s3SecretKey="$S3_SECRET_KEY",global.c4gh.passphrase="$C4GH_PASSPHRASE",global.cega.password="$CEGA_USERS_PASS",global.db.passIngest="$DB_IN_PASS",global.db.passOutgest="$DB_OUT_PASS",global.doa.enabled=true,global.inbox.s3AccessKey="$S3_ACCESS_KEY",global.inbox.s3SecretKey="$S3_SECRET_KEY",global.schemaType="$SCHEMA",intercept.deploy="$INTERCEPT",releasetest.secrets.accessToken="$token"
-fi
diff --git a/sda-helm/dev_tools/scripts/sign_jwt.sh b/sda-helm/dev_tools/scripts/sign_jwt.sh
deleted file mode 100644
index 90da75478..000000000
--- a/sda-helm/dev_tools/scripts/sign_jwt.sh
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/usr/bin/env bash
-
-# Inspired by implementation by Will Haley at:
-# http://willhaley.com/blog/generate-jwt-with-bash/
-
-set -o pipefail
-
-# Shared content to use as template
-header_template='{
- "typ": "JWT",
- "kid": "0001"
-}'
-
-build_header() {
- jq -c \
- --arg iat_str "$(date +%s)" \
- --arg alg "${1}" \
- '
- ($iat_str | tonumber) as $iat
- | .alg = $alg
- | .iat = $iat
- | .exp = ($iat + 86400)
- ' <<<"$header_template" | tr -d '\n'
-}
-
-b64enc() { openssl enc -base64 -A | tr '+/' '-_' | tr -d '='; }
-json() { jq -c . | LC_CTYPE=C tr -d '\n'; }
-rs_sign() { openssl dgst -binary -sha"${1}" -sign <(printf '%s\n' "$2"); }
-es_sign() { openssl dgst -binary -sha"${1}" -sign <(printf '%s\n' "$2") | openssl asn1parse -inform DER | grep INTEGER | cut -d ':' -f 4 | xxd -p -r ; }
-
-sign() {
- if [ -n "$2" ];then
- rsa_secret=$(<"$2")
- else
- echo "no signing key supplied"
- exit 1
- fi
- local algo payload header sig secret=$rsa_secret
- algo=${1:-RS256}; algo=${algo^^}
- header=$(build_header "$algo") || return
- payload=${3:-$test_payload}
- signed_content="$(json <<<"$header" | b64enc).$(json <<<"$payload" | b64enc)"
- case $algo in
- RS*) sig=$(printf %s "$signed_content" | rs_sign "${algo#RS}" "$secret" | b64enc) ;;
- ES*) sig=$(printf %s "$signed_content" | es_sign "${algo#ES}" "$secret" | b64enc) ;;
- *) echo "Unknown algorithm" >&2; return 1 ;;
- esac
- printf '%s.%s\n' "${signed_content}" "${sig}"
-}
-
-iat=$(date +%s)
-exp=$(date --date=tomorrow +%s)
-
-test_payload='{
- "at_hash": "J_fA458SPsXFV6lJQL1l-w",
- "aud": "XC56EL11xx",
- "email": "dummy.tester@example.org",
- "exp": '"$exp"',
- "iat": '"$iat"',
- "iss": "http://sda-sda-svc-auth",
- "kid": "d87f2d01d1a4abb16e1eb88f6561e5067f3a6430174b8fcd0b6bf61434d6c5c8",
- "name": "Dummy Tester",
- "sid": "1ad14eb5-9b51-40c0-a52a-154a5a3792d5",
- "sub": "dummy"
-}'
-
-
-sign "$@"
diff --git a/sda-helm/dev_tools/scripts/ssl.cnf b/sda-helm/dev_tools/scripts/ssl.cnf
deleted file mode 100644
index d6804a4c2..000000000
--- a/sda-helm/dev_tools/scripts/ssl.cnf
+++ /dev/null
@@ -1,236 +0,0 @@
-[ ca ]
-# `man ca`
-default_ca = CA_default
-
-[ CA_default ]
-# Directory and file locations.
-dir = ./certs
-certs = $dir
-crl_dir = $dir
-new_certs_dir = $dir
-database = $dir/index.txt
-serial = $dir/serial
-RANDFILE = $dir/rand
-
-# The root key and root certificate.
-private_key = $dir/ca-key.pem
-certificate = $dir/ca.pem
-
-# SHA-1 is deprecated, so use SHA-2 instead.
-default_md = sha256
-
-name_opt = ca_default
-cert_opt = ca_default
-default_days = 7300
-preserve = no
-policy = policy_strict
-
-[ policy_strict ]
-# The root CA should only sign intermediate certificates that match.
-# See the POLICY FORMAT section of `man ca`.
-countryName = match
-stateOrProvinceName = match
-organizationName = match
-organizationalUnitName = optional
-commonName = supplied
-emailAddress = optional
-
-[ req ]
-# Options for the `req` tool (`man req`).
-default_bits = 4096
-distinguished_name = req_distinguished_name
-string_mask = utf8only
-prompt = no
-
-# SHA-1 is deprecated, so use SHA-2 instead.
-default_md = sha256
-
-# Extension to add when the -x509 option is used.
-x509_extensions = v3_ca
-
-[ req_distinguished_name ]
-countryName = SE
-stateOrProvinceName = Sweden
-localityName = Uppsala
-0.organizationName = NBIS
-organizationalUnitName = SysDev
-commonName = SysDev root CA
-
-[ v3_ca ]
-# Extensions for a typical CA (`man x509v3_config`).
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid:always,issuer
-basicConstraints = critical, CA:true
-keyUsage = critical, digitalSignature, cRLSign, keyCertSign
-#nsCertType = sslCA
-nsComment = "NeIC SDA Root CA"
-
-[ server_client_cert ]
-# Extensions for server+client certificates (`man x509v3_config`).
-basicConstraints = CA:FALSE
-nsCertType = server,client
-nsComment = "NeIC SDA Server+Client Certificate"
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer:always
-keyUsage = critical, digitalSignature, keyEncipherment
-extendedKeyUsage = critical, clientAuth, serverAuth
-
-[ client_cert ]
-# Extensions for client certificates (`man x509v3_config`).
-basicConstraints = critical,CA:FALSE
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer:always
-keyUsage = critical, digitalSignature, keyEncipherment
-extendedKeyUsage = clientAuth, serverAuth
-subjectAltName = DNS:localhost,DNS:client,IP:127.0.0.1
-
-[ mq_cert ]
-# Extensions for server certificates (`man x509v3_config`).
-basicConstraints = critical,CA:FALSE
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer:always
-keyUsage = critical, digitalSignature, keyEncipherment
-extendedKeyUsage = clientAuth, serverAuth
-subjectAltName = DNS:broker-sda-mq,DNS:broker-sda-mq.default.svc.cluster.local,DNS:broker-sda-mq.default
-
-[ db_cert ]
-# Extensions for server certificates (`man x509v3_config`).
-basicConstraints = critical,CA:FALSE
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer:always
-keyUsage = critical, digitalSignature, keyEncipherment
-extendedKeyUsage = clientAuth, serverAuth
-subjectAltName = DNS:postgres-sda-db,DNS:postgres-sda-db.default.svc.cluster.local,DNS:postgres-sda-db.default
-
-[ minio_cert ]
-# Extensions for server certificates (`man x509v3_config`).
-basicConstraints = critical,CA:FALSE
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer:always
-keyUsage = critical, digitalSignature, keyEncipherment
-extendedKeyUsage = clientAuth, serverAuth
-subjectAltName = DNS:minio,DNS:minio.default.svc.cluster.local,DNS:minio.default
-
-
-[ intercept_cert ]
-# Extensions for server certificates (`man x509v3_config`).
-basicConstraints = critical,CA:FALSE
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer:always
-keyUsage = critical, digitalSignature, keyEncipherment
-extendedKeyUsage = clientAuth, serverAuth
-subjectAltName = DNS:intercept,DNS:intercept.default.svc.cluster.local,DNS:intercept.default
-
-[ ingest_cert ]
-# Extensions for server certificates (`man x509v3_config`).
-basicConstraints = critical,CA:FALSE
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer:always
-keyUsage = critical, digitalSignature, keyEncipherment
-extendedKeyUsage = clientAuth, serverAuth
-subjectAltName = DNS:ingest,DNS:ingest.default.svc.cluster.local,DNS:ingest.default
-
-[ verify_cert ]
-# Extensions for server certificates (`man x509v3_config`).
-basicConstraints = critical,CA:FALSE
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer:always
-keyUsage = critical, digitalSignature, keyEncipherment
-extendedKeyUsage = clientAuth, serverAuth
-subjectAltName = DNS:verify,DNS:verify.default.svc.cluster.local,DNS:verify.default
-
-[ finalize_cert ]
-# Extensions for server certificates (`man x509v3_config`).
-basicConstraints = critical,CA:FALSE
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer:always
-keyUsage = critical, digitalSignature, keyEncipherment
-extendedKeyUsage = clientAuth, serverAuth
-subjectAltName = DNS:finalize,DNS:finalize.default.svc.cluster.local,DNS:finalize.default
-
-[ mapper_cert ]
-# Extensions for server certificates (`man x509v3_config`).
-basicConstraints = critical,CA:FALSE
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer:always
-keyUsage = critical, digitalSignature, keyEncipherment
-extendedKeyUsage = clientAuth, serverAuth
-subjectAltName = DNS:mapper,DNS:mapper.default.svc.cluster.local,DNS:mapper.default
-
-[ backup_cert ]
-# Extensions for server certificates (`man x509v3_config`).
-basicConstraints = critical,CA:FALSE
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer:always
-keyUsage = critical, digitalSignature, keyEncipherment
-extendedKeyUsage = clientAuth, serverAuth
-subjectAltName = DNS:backup,DNS:backup.default.svc.cluster.local,DNS:backup.default
-
-[ orch_cert ]
-# Extensions for server certificates (`man x509v3_config`).
-basicConstraints = critical,CA:FALSE
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer:always
-keyUsage = critical, digitalSignature, keyEncipherment
-extendedKeyUsage = clientAuth, serverAuth
-subjectAltName = DNS:orchestrate,DNS:orchestrate.default.svc.cluster.local,DNS:orchestrate.default
-
-[ inbox_cert ]
-# Extensions for server certificates (`man x509v3_config`).
-basicConstraints = critical,CA:FALSE
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer:always
-keyUsage = critical, digitalSignature, keyEncipherment
-extendedKeyUsage = clientAuth, serverAuth
-subjectAltName = DNS:sda-sda-svc-inbox,DNS:inbox.default.svc.cluster.local,DNS:inbox.default,DNS:localhost
-
-[ doa_cert ]
-# Extensions for server certificates (`man x509v3_config`).
-basicConstraints = critical,CA:FALSE
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer:always
-keyUsage = critical, digitalSignature, keyEncipherment
-extendedKeyUsage = clientAuth, serverAuth
-subjectAltName = DNS:sda-sda-svc-doa,DNS:doa.default.svc.cluster.local,DNS:doa.default,DNS:localhost
-
-[ download_cert ]
-# Extensions for server certificates (`man x509v3_config`).
-basicConstraints = critical,CA:FALSE
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer:always
-keyUsage = critical, digitalSignature, keyEncipherment
-extendedKeyUsage = clientAuth, serverAuth
-subjectAltName = DNS:sda-sda-svc-download,DNS:download.default.svc.cluster.local,DNS:download.default,DNS:localhost
-
-[ auth_cert ]
-# Extensions for server certificates (`man x509v3_config`).
-basicConstraints = critical,CA:FALSE
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer:always
-keyUsage = critical, digitalSignature, keyEncipherment
-extendedKeyUsage = clientAuth, serverAuth
-subjectAltName = DNS:sda-sda-svc-auth,DNS:auth.default.svc.cluster.local,DNS:auth.default,DNS:localhost
-
-[ tester_cert ]
-# Extensions for server certificates (`man x509v3_config`).
-basicConstraints = critical,CA:FALSE
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer:always
-keyUsage = critical, digitalSignature, keyEncipherment
-extendedKeyUsage = clientAuth, serverAuth
-subjectAltName = DNS:tester,DNS:tester.default.svc.cluster.local,DNS:tester.default
-
-# CEGA certificates
-
-[ cega ]
-# Extensions for server certificates (`man x509v3_config`).
-basicConstraints = critical,CA:FALSE
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer:always
-keyUsage = critical, digitalSignature, keyEncipherment
-extendedKeyUsage = clientAuth, serverAuth
-subjectAltName = DNS:cega-mq,DNS:cega-users
-
-[ crl_ext ]
-# Extension for CRLs (`man x509v3_config`).
-authorityKeyIdentifier=keyid:always
diff --git a/sda-helm/dev_tools/scripts/svc-setup.sh b/sda-helm/dev_tools/scripts/svc-setup.sh
deleted file mode 100755
index fce2f7663..000000000
--- a/sda-helm/dev_tools/scripts/svc-setup.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash
-set -e
-
-basedir="sda-deploy-init/config"
-
-## cega config and certs
-mkdir -p LocalEGA-helm/ega-charts/cega/config/certs
-cp -r dev_tools/cega/* LocalEGA-helm/ega-charts/cega/config/
-cp "${basedir}"/certs/ca.crt LocalEGA-helm/ega-charts/cega/config/certs/ca.crt
-cp "${basedir}"/certs/cega.crt LocalEGA-helm/ega-charts/cega/config/certs/tls.crt
-cp "${basedir}"/certs/cega.key LocalEGA-helm/ega-charts/cega/config/certs/tls.key
-
-## sda-svc certs
-
-for n in backup doa finalize inbox ingest intercept verify mapper auth tester download
- do
- kubectl create secret generic $n-certs \
- --from-file="${basedir}"/certs/ca.crt \
- --from-file=tls.crt="${basedir}"/certs/$n.crt \
- --from-file=tls.key="${basedir}"/certs/$n.key
-done
diff --git a/sda-helm/dev_tools/scripts/wait-for-pods.sh b/sda-helm/dev_tools/scripts/wait-for-pods.sh
deleted file mode 100755
index cbb89a13b..000000000
--- a/sda-helm/dev_tools/scripts/wait-for-pods.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/bash
-set -e
-
-base_list="backup download finalize inbox ingest mapper verify"
-
-if [ -n "$1" ]; then
- case "$1" in
- federated_s3_svc_list)
- SVCNAME="$base_list auth intercept"
- ;;
-
- federated_posix_svc_list)
- SVCNAME="$base_list intercept"
- ;;
-
- standalone_s3_svc_list)
- SVCNAME="$base_list auth"
- ;;
-
- standalone_posix_svc_list)
- SVCNAME="$base_list"
- ;;
- esac
-fi
-
-if [ -n "$2" ]; then
- LABEL=$2
-else
- LABEL="role"
-fi
-if [ -n "$3" ]; then
- NAMESPACE=${3:-default}
-fi
-
-for p in $SVCNAME; do
- RETRY_TIMES=0
- until kubectl get pods -n "$NAMESPACE" -l "$LABEL=$p" -o jsonpath='{..status.containerStatuses[*].ready}' | grep "true"; do
- echo "waiting for $p to become ready"
- RETRY_TIMES=$((RETRY_TIMES + 1))
- if [ "$RETRY_TIMES" -eq 30 ]; then
- kubectl describe pod -n "$NAMESPACE" -l "$LABEL"="$p"
- kubectl logs -n "$NAMESPACE" -l "$LABEL=$p"
- exit 1
- fi
- sleep 10
- done
-done
diff --git a/sda-pipeline/cmd/finalize/finalize.md b/sda-pipeline/cmd/finalize/finalize.md
index e8479667a..d2af7d3a2 100644
--- a/sda-pipeline/cmd/finalize/finalize.md
+++ b/sda-pipeline/cmd/finalize/finalize.md
@@ -111,4 +111,4 @@ On error the service sleeps for up to 5 minutes to allow for database recovery,
- Finalize writes messages to one rabbitmq queue (default `backup`).
- - Finalize assigns the accesion ID to a file in the database using the `SetAccessionID` function.
+ - Finalize assigns the accession ID to a file in the database using the `SetAccessionID` function.
diff --git a/sda-pipeline/go.mod b/sda-pipeline/go.mod
index 9d5f170f8..fdfd37078 100644
--- a/sda-pipeline/go.mod
+++ b/sda-pipeline/go.mod
@@ -4,15 +4,15 @@ go 1.20
require (
github.com/DATA-DOG/go-sqlmock v1.5.0
- github.com/aws/aws-sdk-go v1.44.280
+ github.com/aws/aws-sdk-go v1.44.328
github.com/gliderlabs/ssh v0.3.5
- github.com/google/uuid v1.3.0
+ github.com/google/uuid v1.3.1
github.com/johannesboyne/gofakes3 v0.0.0-20230129080941-f6a8a9ae6fd3
github.com/lib/pq v1.10.9
github.com/mocktools/go-smtp-mock v1.10.0
- github.com/neicnordic/crypt4gh v1.7.5
+ github.com/neicnordic/crypt4gh v1.7.6
github.com/pkg/errors v0.9.1
- github.com/pkg/sftp v1.13.5
+ github.com/pkg/sftp v1.13.6
github.com/rabbitmq/amqp091-go v1.8.1
github.com/sirupsen/logrus v1.9.3
github.com/spf13/viper v1.16.0
@@ -43,9 +43,9 @@ require (
github.com/subosito/gotenv v1.4.2 // indirect
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
- golang.org/x/crypto v0.9.0
- golang.org/x/sys v0.8.0 // indirect
- golang.org/x/text v0.9.0 // indirect
+ golang.org/x/crypto v0.12.0
+ golang.org/x/sys v0.11.0 // indirect
+ golang.org/x/text v0.12.0 // indirect
golang.org/x/tools v0.6.0 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
diff --git a/sda-pipeline/go.sum b/sda-pipeline/go.sum
index c1c8ddc14..d5a38c3b6 100644
--- a/sda-pipeline/go.sum
+++ b/sda-pipeline/go.sum
@@ -45,8 +45,8 @@ github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
github.com/aws/aws-sdk-go v1.33.0/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
-github.com/aws/aws-sdk-go v1.44.280 h1:UYl/yxhDxP8naok6ftWyQ9/9ZzNwjC9dvEs/j8BkGhw=
-github.com/aws/aws-sdk-go v1.44.280/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
+github.com/aws/aws-sdk-go v1.44.328 h1:WBwlf8ym9SDQ/GTIBO9eXyvwappKJyOetWJKl4mT7ZU=
+github.com/aws/aws-sdk-go v1.44.328/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
@@ -127,8 +127,8 @@ github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLe
github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
-github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4=
+github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
@@ -165,15 +165,15 @@ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyua
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mocktools/go-smtp-mock v1.10.0 h1:glrRmjNqASyy+jf1IJ2nCWgEbJScD3Amf2IGcXgdEVg=
github.com/mocktools/go-smtp-mock v1.10.0/go.mod h1:mmvlBVX6MTOBHtROX+tor9YZF5JENN8d8wrToD1vvg4=
-github.com/neicnordic/crypt4gh v1.7.5 h1:cWAGSeQ1WJxMrnHb837UlZBwdAvEpceCPPorloqIv4w=
-github.com/neicnordic/crypt4gh v1.7.5/go.mod h1:M0r5/IDDpPZZ3qteae76Dvw0uS11Kw/Rg91dPcV4XPc=
+github.com/neicnordic/crypt4gh v1.7.6 h1:Vqcb8Yb950oaBBJFepDK1oLeu9rZzpywYWVHLmO0oI8=
+github.com/neicnordic/crypt4gh v1.7.6/go.mod h1:rqmVXsprDFBRRLJkm1cK9kLETBPGEZmft9lHD/V40wk=
github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ=
github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
-github.com/pkg/sftp v1.13.5 h1:a3RLUqkyjYRtBTZJZ1VRrKbN3zhuPLlUc3sphVz81go=
-github.com/pkg/sftp v1.13.5/go.mod h1:wHDZ0IZX6JcBYRK1TH9bcVq8G7TLpVHYIGJRFnmPfxg=
+github.com/pkg/sftp v1.13.6 h1:JFZT4XbOU7l77xGSpOdW+pwIMqP044IyjXX6FGyEKFo=
+github.com/pkg/sftp v1.13.6/go.mod h1:tz1ryNURKu77RL+GuCzmoJYxQczL3wLNNpPWagdg4Qk=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
@@ -243,11 +243,11 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
-golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g=
-golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0=
+golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
+golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk=
+golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -373,7 +373,6 @@ golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -381,13 +380,13 @@ golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
-golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM=
+golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols=
+golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -397,8 +396,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
-golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
-golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
+golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc=
+golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
diff --git a/sda-sftp-inbox/Dockerfile b/sda-sftp-inbox/Dockerfile
index cd5f69317..f79ac3466 100644
--- a/sda-sftp-inbox/Dockerfile
+++ b/sda-sftp-inbox/Dockerfile
@@ -1,4 +1,4 @@
-FROM maven:3.9.0-eclipse-temurin-19-alpine as builder
+FROM maven:3.9.3-eclipse-temurin-20-alpine as builder
COPY pom.xml .
@@ -8,7 +8,7 @@ COPY src/ /src/
RUN mvn clean install -DskipTests --no-transfer-progress
-FROM eclipse-temurin:19-alpine
+FROM eclipse-temurin:20-alpine
RUN apk add --no-cache --upgrade ca-certificates java-cacerts libssl3 libcrypto3 \
&& ln -sf /etc/ssl/certs/java/cacerts $JAVA_HOME/lib/security/cacerts
diff --git a/sda-sftp-inbox/pom.xml b/sda-sftp-inbox/pom.xml
index 2ffeb3cb0..bfd63fe80 100644
--- a/sda-sftp-inbox/pom.xml
+++ b/sda-sftp-inbox/pom.xml
@@ -14,7 +14,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.1.0
+ 3.1.3
@@ -96,12 +96,12 @@
com.amazonaws
aws-java-sdk-s3
- 1.12.490
+ 1.12.543
com.google.guava
guava
- 32.0.1-jre
+ 32.1.2-jre
net.logstash.logback
@@ -132,7 +132,7 @@
com.hierynomus
sshj
- 0.35.0
+ 0.36.0
test
@@ -149,7 +149,7 @@
org.yaml
snakeyaml
- 2.0
+ 2.2
junit
@@ -160,7 +160,7 @@
org.junit.vintage
junit-vintage-engine
- 5.9.3
+ 5.10.0
test
diff --git a/sda/Dockerfile b/sda/Dockerfile
index 3f0854093..ea2edcd89 100644
--- a/sda/Dockerfile
+++ b/sda/Dockerfile
@@ -8,7 +8,7 @@ COPY . .
SHELL ["bash", "-c"]
RUN set -ex; for p in cmd/*; do go build -buildvcs=false -o "${p/cmd\//sda-}" "./$p"; done
-FROM debian:11-slim AS Debug
+FROM debian:bullseye-slim AS Debug
ARG SOURCE_COMMIT