diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 9a95c56552..246fafb79f 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -40,9 +40,9 @@ updates: interval: monthly groups: minorAndPatch: - update-types: - - "minor" - - "patch" + update-types: + - "minor" + - "patch" - package-ecosystem: docker directories: - website @@ -58,6 +58,6 @@ updates: interval: weekly groups: minorAndPatch: - update-types: - - "minor" - - "patch" + update-types: + - "minor" + - "patch" diff --git a/.github/workflows/actions-usage.yml b/.github/workflows/actions-usage.yml index 0650635775..45ba379b85 100644 --- a/.github/workflows/actions-usage.yml +++ b/.github/workflows/actions-usage.yml @@ -1,10 +1,8 @@ name: Github Actions Usage Stats - on: workflow_dispatch: schedule: - cron: "0 3 * * *" # Runs at 03:00 AM (UTC) every day - jobs: gha-usage-minutes-report: runs-on: ubuntu-latest diff --git a/.github/workflows/backend-image.yml b/.github/workflows/backend-image.yml index b88b878f2a..5f929d4353 100644 --- a/.github/workflows/backend-image.yml +++ b/.github/workflows/backend-image.yml @@ -1,5 +1,4 @@ name: backend-image - on: pull_request: push: @@ -19,17 +18,14 @@ on: description: "Build for ARM as well" default: "false" required: true - env: DOCKER_IMAGE_NAME: ghcr.io/loculus-project/backend BRANCH_NAME: ${{ github.head_ref || github.ref_name }} BUILD_ARM: ${{ github.event.inputs.build_arm || inputs.build_arm || github.ref == 'refs/heads/main' }} sha: ${{ github.event.pull_request.head.sha || github.sha }} - concurrency: group: ci-${{ github.ref == 'refs/heads/main' && github.run_id || github.ref }}-backend cancel-in-progress: true - jobs: backend-image: name: Build Backend Docker Image # Don't change: Referenced by .github/workflows/update-argocd-metadata.yml @@ -45,13 +41,11 @@ jobs: - name: Shorten sha run: echo "sha=${sha::7}" >> $GITHUB_ENV - uses: actions/checkout@v4 - - name: Generate files hash id: files-hash run: | DIR_HASH=$(echo -n ${{ hashFiles('backend/**', '.github/workflows/backend-image.yml') }}) echo "DIR_HASH=$DIR_HASH${{ env.BUILD_ARM == 'true' && '-arm' || '' }}" >> $GITHUB_ENV - - name: Setup Docker metadata id: dockerMetadata uses: docker/metadata-action@v5 @@ -69,32 +63,26 @@ jobs: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Check if image exists id: check-image run: | EXISTS=$(docker manifest inspect ${{ env.DOCKER_IMAGE_NAME }}:${{ env.DIR_HASH }} > /dev/null 2>&1 && echo "true" || echo "false") echo "CACHE_HIT=$EXISTS" >> $GITHUB_ENV - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Set up JDK if: env.CACHE_HIT == 'false' uses: actions/setup-java@v4 with: java-version: "21" distribution: "adopt" - - name: Setup Gradle if: env.CACHE_HIT == 'false' uses: gradle/actions/setup-gradle@v3 - - name: Build Backend if: env.CACHE_HIT == 'false' working-directory: ./backend run: ./gradlew bootJar - - name: Build and push image if input files changed if: env.CACHE_HIT == 'false' uses: docker/build-push-action@v5 @@ -105,7 +93,6 @@ jobs: cache-from: type=gha,scope=backend-${{ github.ref }} cache-to: type=gha,mode=max,scope=backend-${{ github.ref }} platforms: ${{ env.BUILD_ARM == 'true' && 'linux/amd64,linux/arm64' || 'linux/amd64' }} - - name: Retag and push existing image if cache hit if: env.CACHE_HIT == 'true' run: | diff --git a/.github/workflows/backend-tests.yml b/.github/workflows/backend-tests.yml index 0d51ad5b81..f2480bf6f0 100644 --- a/.github/workflows/backend-tests.yml +++ b/.github/workflows/backend-tests.yml @@ -1,5 +1,4 @@ name: backend-tests - on: pull_request: paths: @@ -9,11 +8,9 @@ on: branches: - main workflow_dispatch: - concurrency: group: ci-${{ github.ref == 'refs/heads/main' && github.run_id || github.ref }}-backend-tests cancel-in-progress: true - jobs: Tests: runs-on: codebuild-loculus-ci-${{ github.run_id }}-${{ github.run_attempt }} diff --git a/.github/workflows/build-arm-images.yaml b/.github/workflows/build-arm-images.yaml index ee67e7e938..1d6d48f060 100644 --- a/.github/workflows/build-arm-images.yaml +++ b/.github/workflows/build-arm-images.yaml @@ -2,43 +2,35 @@ on: workflow_dispatch: - permissions: contents: read packages: write checks: read - jobs: trigger-backend: uses: ./.github/workflows/backend-image.yml with: build_arm: true - trigger-config-preprocessor: uses: ./.github/workflows/config-preprocessor-image.yml with: build_arm: true - trigger-dummy-preprocessing: uses: ./.github/workflows/preprocessing-dummy-image.yml with: build_arm: true - trigger-ingest: uses: ./.github/workflows/ingest-image.yml with: build_arm: true - trigger-keycloakify: uses: ./.github/workflows/keycloakify-image.yml with: build_arm: true - trigger-preprocessing-nextclade: uses: ./.github/workflows/preprocessing-nextclade-image.yml with: build_arm: true - trigger-website: uses: ./.github/workflows/website-image.yml with: diff --git a/.github/workflows/clean-cache-post-merge.yml b/.github/workflows/clean-cache-post-merge.yml index 228ad67e68..29e0c5cbac 100644 --- a/.github/workflows/clean-cache-post-merge.yml +++ b/.github/workflows/clean-cache-post-merge.yml @@ -11,7 +11,6 @@ on: description: "Branch name" required: false default: "" - jobs: cleanup: runs-on: ubuntu-latest @@ -29,7 +28,6 @@ jobs: else echo "branch=${{ github.ref_name }}" >> $GITHUB_OUTPUT fi - - name: Cleanup run: | gh extension install actions/gh-actions-cache diff --git a/.github/workflows/config-preprocessor-image.yml b/.github/workflows/config-preprocessor-image.yml index b786c39f3a..5b73b65496 100644 --- a/.github/workflows/config-preprocessor-image.yml +++ b/.github/workflows/config-preprocessor-image.yml @@ -1,5 +1,4 @@ name: config-processor-image - on: pull_request: push: @@ -19,21 +18,17 @@ on: description: "Build for ARM as well" default: "false" required: true - env: DOCKER_IMAGE_NAME: ghcr.io/loculus-project/config-processor BRANCH_NAME: ${{ github.head_ref || github.ref_name }} BUILD_ARM: ${{ github.event.inputs.build_arm || inputs.build_arm || github.ref == 'refs/heads/main' }} sha: ${{ github.event.pull_request.head.sha || github.sha }} - defaults: run: working-directory: ./kubernetes/config-processor - concurrency: group: ci-${{ github.ref == 'refs/heads/main' && github.run_id || github.ref }}-config-processor-${{github.event.inputs.build_arm}} cancel-in-progress: true - jobs: config-processor-image: name: Build config-processor Docker Image # Don't change: Referenced by .github/workflows/update-argocd-metadata.yml diff --git a/.github/workflows/dependabot-validate.yml b/.github/workflows/dependabot-validate.yml index 7e4ed6ba7e..bfccdc6057 100644 --- a/.github/workflows/dependabot-validate.yml +++ b/.github/workflows/dependabot-validate.yml @@ -1,5 +1,4 @@ name: dependabot validate - on: pull_request: paths: diff --git a/.github/workflows/docs-deploy.yml b/.github/workflows/docs-deploy.yml index 0ac3eac8e1..07c717743a 100644 --- a/.github/workflows/docs-deploy.yml +++ b/.github/workflows/docs-deploy.yml @@ -1,38 +1,30 @@ name: Builds and deploy documentation - on: workflow_dispatch: push: branches: - main - jobs: build-and-deploy: permissions: contents: write runs-on: ubuntu-latest timeout-minutes: 15 - steps: - name: Checkout Repository uses: actions/checkout@v4 - - name: Set up Node.js uses: actions/setup-node@v4 with: node-version-file: ./docs/.nvmrc - - name: Navigate to docs directory run: cd docs - - name: Install Dependencies run: npm install working-directory: ./docs - - name: Build Project run: npm run build working-directory: ./docs - - name: Deploy to GitHub Pages uses: peaceiris/actions-gh-pages@v4 with: diff --git a/.github/workflows/docs-test.yml b/.github/workflows/docs-test.yml index 37e935ef89..a1394bad9d 100644 --- a/.github/workflows/docs-test.yml +++ b/.github/workflows/docs-test.yml @@ -1,5 +1,4 @@ name: Docs Build Check - on: pull_request: paths: @@ -8,31 +7,24 @@ on: push: branches: - main - workflow_dispatch: - concurrency: group: ci-${{ github.ref == 'refs/heads/main' && github.run_id || github.ref }}-docs-build cancel-in-progress: true - jobs: check-docs-build: runs-on: ubuntu-latest timeout-minutes: 15 - steps: - name: Checkout Repository uses: actions/checkout@v4 - - name: Set up Node.js uses: actions/setup-node@v4 with: node-version-file: ./docs/.nvmrc - - name: Install Dependencies run: npm install working-directory: ./docs - - name: Check Build run: npm run build working-directory: ./docs diff --git a/.github/workflows/e2e-k3d.yml b/.github/workflows/e2e-k3d.yml index a9c7abaa39..43b042a447 100644 --- a/.github/workflows/e2e-k3d.yml +++ b/.github/workflows/e2e-k3d.yml @@ -1,5 +1,4 @@ name: E2E test (on kubernetes) - on: workflow_dispatch: inputs: @@ -20,11 +19,9 @@ on: push: branches: - main - concurrency: group: ci-${{ github.ref == 'refs/heads/main' && github.run_id || github.ref }}-e2e-k3d cancel-in-progress: true - jobs: k3d-e2e: permissions: @@ -32,87 +29,68 @@ jobs: contents: read checks: read actions: read # Required by workflow-telemetry-action - runs-on: ubuntu-latest-m timeout-minutes: 45 - env: ALL_BROWSERS: ${{ github.ref == 'refs/heads/main' || github.event.inputs.all_browsers && 'true' || 'false' }} sha: ${{ github.event.pull_request.head.sha || github.sha }} wait_timeout: ${{ github.ref == 'refs/heads/main' && 900 || 180 }} - steps: - name: Shorten sha run: echo "sha=${sha::7}" >> $GITHUB_ENV - name: Collect Workflow Telemetry uses: catchpoint/workflow-telemetry-action@v2 - - name: Checkout repository uses: actions/checkout@v4 - - name: Install k3d run: | curl -s https://raw.githubusercontent.com/rancher/k3d/main/install.sh | bash k3d version - - uses: azure/setup-helm@v4 - - name: Create k3d cluster run: | ./deploy.py --verbose cluster - - name: Default template with helm uses: WyriHaximus/github-action-helm3@v4 with: exec: helm template loculus kubernetes/loculus - - name: E2E Template with helm uses: WyriHaximus/github-action-helm3@v4 with: exec: ./deploy.py --verbose helm --branch ${{ github.ref_name }} --sha ${{ env.sha }} --for-e2e --template > /tmp/helm_template.yaml - - name: Upload default helm template uses: actions/upload-artifact@v4 with: name: helm-template path: /tmp/helm_template.yaml - - name: Deploy with helm run: | ./deploy.py --verbose helm --branch ${{ github.ref_name }} --sha ${{ env.sha }} --for-e2e - - uses: actions/setup-node@v4 with: node-version-file: ./website/.nvmrc - - name: Cache .npm uses: actions/cache@v4 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('website/**/package-lock.json') }} - - name: Install dependencies run: cd website && npm i - - name: Get Installed Playwright Version id: playwright-version run: cd website && echo "PLAYWRIGHT_VERSION=$(node -e "console.log(require('./package-lock.json').packages['node_modules/@playwright/test'].version)")" >> $GITHUB_ENV - - name: Cache Playwright Browsers uses: actions/cache@v4 id: playwright-cache with: path: ~/.cache/ms-playwright key: ${{ runner.os }}-playwright-${{ env.PLAYWRIGHT_VERSION }} - - name: Install Playwright Browsers and System Dependencies run: cd website && npx playwright install --with-deps if: steps.playwright-cache.outputs.cache-hit != 'true' - - name: Install only System Dependencies run: cd website && npx playwright install-deps if: steps.playwright-cache.outputs.cache-hit == 'true' - # Action misbehaved # # Waits are identical to the update-argocd-metadata.yml file # # Mirror changes to that file @@ -148,7 +126,6 @@ jobs: # repo-token: ${{ secrets.GITHUB_TOKEN }} # wait-interval: 2 # # End of wait block - - name: Wait for the pods to be ready run: ./.github/scripts/wait_for_pods_to_be_ready.py --timeout ${{ env.wait_timeout }} - name: Sleep for 10 secs @@ -172,7 +149,6 @@ jobs: name: test-results path: website/test-results/ retention-days: 30 - - name: List running pods if: ${{ !cancelled() }} run: kubectl get pods --all-namespaces @@ -182,7 +158,6 @@ jobs: - name: Show events if: ${{ !cancelled() }} run: kubectl get events - - name: Save logs from all containers to file if: ${{ !cancelled() }} run: ./.github/scripts/collect_kubernetes_logs.sh diff --git a/.github/workflows/format-website-on-dispatch.yml b/.github/workflows/format-website-on-dispatch.yml index b5ec89dc32..3b065d145f 100644 --- a/.github/workflows/format-website-on-dispatch.yml +++ b/.github/workflows/format-website-on-dispatch.yml @@ -1,5 +1,4 @@ name: Format website code - on: workflow_dispatch: pull_request: @@ -13,30 +12,25 @@ jobs: contents: write runs-on: ubuntu-latest timeout-minutes: 15 - steps: - name: Checkout Repository uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} - - name: Set up Node.js uses: actions/setup-node@v2 with: node-version-file: ./website/.nvmrc - - name: Cache .npm uses: actions/cache@v4 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('website/**/package-lock.json') }} - - name: NPM install and format website working-directory: website run: | npm install npm run format - - name: Commit and Push Changes run: | git config --global user.name 'Loculus bot' diff --git a/.github/workflows/ingest-image.yml b/.github/workflows/ingest-image.yml index 8a8cb83523..35a6d7df2d 100644 --- a/.github/workflows/ingest-image.yml +++ b/.github/workflows/ingest-image.yml @@ -18,17 +18,14 @@ on: description: "Build for ARM as well" default: false required: false - env: DOCKER_IMAGE_NAME: ghcr.io/loculus-project/ingest BRANCH_NAME: ${{ github.head_ref || github.ref_name }} BUILD_ARM: ${{ github.event.inputs.build_arm || inputs.build_arm || github.ref == 'refs/heads/main' }} sha: ${{ github.event.pull_request.head.sha || github.sha }} - concurrency: group: ci-${{ github.ref == 'refs/heads/main' && github.run_id || github.ref }}-ingest-${{github.event.inputs.build_arm}} cancel-in-progress: true - jobs: ingest-image: name: Build ingest Docker Image # Don't change: Referenced by .github/workflows/update-argocd-metadata.yml @@ -42,13 +39,11 @@ jobs: - name: Shorten sha run: echo "sha=${sha::7}" >> $GITHUB_ENV - uses: actions/checkout@v4 - - name: Generate files hash id: files-hash run: | DIR_HASH=$(echo -n ${{ hashFiles('ingest/**', '.github/workflows/ingest-image.yml') }}) echo "DIR_HASH=$DIR_HASH${{ env.BUILD_ARM == 'true' && '-arm' || '' }}" >> $GITHUB_ENV - - name: Setup Docker metadata id: dockerMetadata uses: docker/metadata-action@v5 @@ -60,23 +55,19 @@ jobs: type=raw,value=${{ env.BRANCH_NAME }} type=raw,value=commit-${{ env.sha }} type=raw,value=${{ env.BRANCH_NAME }}-arm,enable=${{ env.BUILD_ARM }} - - name: Login to GitHub Container Registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Check if image exists id: check-image run: | EXISTS=$(docker manifest inspect ${{ env.DOCKER_IMAGE_NAME }}:${{ env.DIR_HASH }} > /dev/null 2>&1 && echo "true" || echo "false") echo "CACHE_HIT=$EXISTS" >> $GITHUB_ENV - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Build and push image if input files changed if: env.CACHE_HIT == 'false' uses: docker/build-push-action@v5 @@ -87,7 +78,6 @@ jobs: cache-from: type=gha,scope=ingest-${{ github.ref }} cache-to: type=gha,mode=max,scope=ingest-${{ github.ref }} platforms: ${{ env.BUILD_ARM == 'true' && 'linux/amd64,linux/arm64' || 'linux/amd64' }} - - name: Retag and push existing image if cache hit if: env.CACHE_HIT == 'true' run: | diff --git a/.github/workflows/keycloakify-image.yml b/.github/workflows/keycloakify-image.yml index 150cd9200f..a7d3d0fe7c 100644 --- a/.github/workflows/keycloakify-image.yml +++ b/.github/workflows/keycloakify-image.yml @@ -1,5 +1,4 @@ name: keycloakify-image - on: pull_request: push: @@ -24,11 +23,9 @@ env: BRANCH_NAME: ${{ github.head_ref || github.ref_name }} BUILD_ARM: ${{ github.event.inputs.build_arm || inputs.build_arm || github.ref == 'refs/heads/main' }} sha: ${{ github.event.pull_request.head.sha || github.sha }} - concurrency: group: ci-${{ github.ref == 'refs/heads/main' && github.run_id || github.ref }}-keycloak-buil-${{github.event.inputs.build_arm}}d cancel-in-progress: true - jobs: keycloakify-image: name: Build keycloakify Docker Image # Don't change: Referenced by .github/workflows/update-argocd-metadata.yml diff --git a/.github/workflows/keycloakify-test.yml b/.github/workflows/keycloakify-test.yml index 87775f3926..1a0da2cbf7 100644 --- a/.github/workflows/keycloakify-test.yml +++ b/.github/workflows/keycloakify-test.yml @@ -1,5 +1,4 @@ name: keycloakify-test - on: workflow_dispatch: pull_request: @@ -9,11 +8,9 @@ on: push: branches: - main - concurrency: group: ci-${{ github.ref == 'refs/heads/main' && github.run_id || github.ref }}-keycloak-test cancel-in-progress: true - jobs: keycloakify-test: name: Test keycloakify local builds diff --git a/.github/workflows/preprocessing-dummy-image.yml b/.github/workflows/preprocessing-dummy-image.yml index d56cb9ffc2..aca0eacc54 100644 --- a/.github/workflows/preprocessing-dummy-image.yml +++ b/.github/workflows/preprocessing-dummy-image.yml @@ -1,5 +1,4 @@ name: preprocessing-dummy-image - on: pull_request: push: @@ -19,17 +18,14 @@ on: description: "Build for ARM as well" default: false required: false - env: DOCKER_IMAGE_NAME: ghcr.io/loculus-project/preprocessing-dummy BRANCH_NAME: ${{ github.head_ref || github.ref_name }} BUILD_ARM: ${{ github.event.inputs.build_arm || inputs.build_arm || github.ref == 'refs/heads/main' }} sha: ${{ github.event.pull_request.head.sha || github.sha }} - concurrency: group: ci-${{ github.ref == 'refs/heads/main' && github.run_id || github.ref }}-preprocessing-dumm-${{github.event.inputs.build_arm}}y cancel-in-progress: true - jobs: preprocessing-dummy-image: name: Preprocessing dummy docker image build # Don't change: Referenced by .github/workflows/update-argocd-metadata.yml @@ -42,13 +38,11 @@ jobs: - name: Shorten sha run: echo "sha=${sha::7}" >> $GITHUB_ENV - uses: actions/checkout@v4 - - name: Generate files hash id: files-hash run: | DIR_HASH=$(echo -n ${{ hashFiles('preprocessing/dummy/**', '.github/workflows/preprocessing-dummy-image.yml') }}) echo "DIR_HASH=$DIR_HASH${{ env.BUILD_ARM == 'true' && '-arm' || '' }}" >> $GITHUB_ENV - - name: Setup Docker metadata id: dockerMetadata uses: docker/metadata-action@v5 @@ -60,23 +54,19 @@ jobs: type=raw,value=${{ env.BRANCH_NAME }} type=raw,value=commit-${{ env.sha }} type=raw,value=${{ env.BRANCH_NAME }}-arm,enable=${{ env.BUILD_ARM }} - - name: Login to GitHub Container Registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Check if image exists id: check-image run: | EXISTS=$(docker manifest inspect ${{ env.DOCKER_IMAGE_NAME }}:${{ env.DIR_HASH }} > /dev/null 2>&1 && echo "true" || echo "false") echo "CACHE_HIT=$EXISTS" >> $GITHUB_ENV - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Build and push image if: env.CACHE_HIT == 'false' uses: docker/build-push-action@v5 @@ -87,7 +77,6 @@ jobs: cache-from: type=gha,scope=preprocessing-dummy-${{ github.ref }} cache-to: type=gha,mode=max,scope=preprocessing-dummy-${{ github.ref }} platforms: ${{ env.BUILD_ARM == 'true' && 'linux/amd64,linux/arm64' || 'linux/amd64' }} - - name: Tag and push image if cache hit if: env.CACHE_HIT == 'true' run: | diff --git a/.github/workflows/preprocessing-nextclade-image.yml b/.github/workflows/preprocessing-nextclade-image.yml index f8c068a867..83223243b2 100644 --- a/.github/workflows/preprocessing-nextclade-image.yml +++ b/.github/workflows/preprocessing-nextclade-image.yml @@ -1,5 +1,4 @@ name: preprocessing-nextclade-image - on: pull_request: push: @@ -19,17 +18,14 @@ on: description: "Build for ARM as well" default: false required: false - env: DOCKER_IMAGE_NAME: ghcr.io/loculus-project/preprocessing-nextclade BRANCH_NAME: ${{ github.head_ref || github.ref_name }} BUILD_ARM: ${{ github.event.inputs.build_arm || inputs.build_arm || github.ref == 'refs/heads/main' }} sha: ${{ github.event.pull_request.head.sha || github.sha }} - concurrency: group: ci-${{ github.ref == 'refs/heads/main' && github.run_id || github.ref }}-preprocessing-nextclade-${{github.event.inputs.build_arm}} cancel-in-progress: true - jobs: preprocessing-nextclade-image: name: Build preprocessing-nextclade Docker Image # Don't change: Referenced by .github/workflows/update-argocd-metadata.yml @@ -43,13 +39,11 @@ jobs: - name: Shorten sha run: echo "sha=${sha::7}" >> $GITHUB_ENV - uses: actions/checkout@v4 - - name: Generate files hash id: files-hash run: | DIR_HASH=$(echo -n ${{ hashFiles('preprocessing/nextclade/**', '.github/workflows/preprocessing-nextclade-image.yml') }}) echo "DIR_HASH=$DIR_HASH${{ env.BUILD_ARM == 'true' && '-arm' || '' }}" >> $GITHUB_ENV - - name: Setup Docker metadata id: dockerMetadata uses: docker/metadata-action@v5 @@ -61,23 +55,19 @@ jobs: type=raw,value=${{ env.BRANCH_NAME }} type=raw,value=commit-${{ env.sha }} type=raw,value=${{ env.BRANCH_NAME }}-arm,enable=${{ env.BUILD_ARM }} - - name: Login to GitHub Container Registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Check if image exists id: check-image run: | EXISTS=$(docker manifest inspect ${{ env.DOCKER_IMAGE_NAME }}:${{ env.DIR_HASH }} > /dev/null 2>&1 && echo "true" || echo "false") echo "CACHE_HIT=$EXISTS" >> $GITHUB_ENV - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Build and push image if input files changed if: env.CACHE_HIT == 'false' uses: docker/build-push-action@v5 @@ -88,7 +78,6 @@ jobs: cache-from: type=gha,scope=nextclade-${{ github.ref }} cache-to: type=gha,mode=max,scope=nextclade-${{ github.ref }} platforms: ${{ env.BUILD_ARM == 'true' && 'linux/amd64,linux/arm64' || 'linux/amd64' }} - - name: Retag and push existing image if cache hit if: env.CACHE_HIT == 'true' run: | diff --git a/.github/workflows/update-argocd-metadata.yml b/.github/workflows/update-argocd-metadata.yml index a78a779a10..8b17b91b0b 100644 --- a/.github/workflows/update-argocd-metadata.yml +++ b/.github/workflows/update-argocd-metadata.yml @@ -1,14 +1,11 @@ name: Update argocd_metadata - on: push: branches: - main workflow_dispatch: - concurrency: group: ci-update-argocd-metadata - jobs: update: permissions: @@ -17,18 +14,15 @@ jobs: checks: read runs-on: ubuntu-latest timeout-minutes: 15 - steps: - name: Checkout Main Repository uses: actions/checkout@v4 with: ref: ${{ github.ref }} - - name: Get SHA - length 7 id: get_sha run: | echo "sha=$(echo ${GITHUB_SHA} | cut -c1-7)" >> $GITHUB_OUTPUT - # Waits are identical to the e2e-k3d.yml workflow file # Mirror changes to that file - name: Wait for Prepro Dummy Docker Image @@ -38,7 +32,6 @@ jobs: check-name: Preprocessing dummy docker image build repo-token: ${{ secrets.GITHUB_TOKEN }} wait-interval: 2 - - name: Wait for Config Processor Docker Image uses: lewagon/wait-on-check-action@v1.3.4 with: @@ -46,7 +39,6 @@ jobs: check-name: Build config-processor Docker Image repo-token: ${{ secrets.GITHUB_TOKEN }} wait-interval: 2 - - name: Wait for Backend Docker Image uses: lewagon/wait-on-check-action@v1.3.4 with: @@ -54,7 +46,6 @@ jobs: check-name: Build Backend Docker Image repo-token: ${{ secrets.GITHUB_TOKEN }} wait-interval: 2 - - name: Wait for Website Docker Image uses: lewagon/wait-on-check-action@v1.3.4 with: @@ -62,7 +53,6 @@ jobs: check-name: Build Website Docker Image repo-token: ${{ secrets.GITHUB_TOKEN }} wait-interval: 2 - - name: Wait for Prepro Nextclade Docker Image uses: lewagon/wait-on-check-action@v1.3.4 with: @@ -70,7 +60,6 @@ jobs: check-name: Build preprocessing-nextclade Docker Image repo-token: ${{ secrets.GITHUB_TOKEN }} wait-interval: 2 - - name: Wait for Ingest Docker Image uses: lewagon/wait-on-check-action@v1.3.4 with: @@ -78,7 +67,6 @@ jobs: check-name: Build ingest Docker Image repo-token: ${{ secrets.GITHUB_TOKEN }} wait-interval: 2 - - name: Wait for Keycloakify Docker Image uses: lewagon/wait-on-check-action@v1.3.4 with: @@ -87,13 +75,11 @@ jobs: repo-token: ${{ secrets.GITHUB_TOKEN }} wait-interval: 2 # End of wait block - - name: Checkout External Repository uses: actions/checkout@v4 with: repository: "loculus-project/argocd_metadata" token: ${{ secrets.ARGOCD_METADATA_PAT }} - - name: Modify config.json run: | echo '{ @@ -101,7 +87,6 @@ jobs: "number" : 999, "head_short_sha_7": "${{ steps.get_sha.outputs.sha }}" }' > config.json - - name: Commit and Push Changes run: | git config --global user.name 'Loculus bot' diff --git a/.github/workflows/website-image.yml b/.github/workflows/website-image.yml index 2c757a78fc..fd5322e95f 100644 --- a/.github/workflows/website-image.yml +++ b/.github/workflows/website-image.yml @@ -1,5 +1,4 @@ name: website-image - on: pull_request: push: @@ -24,11 +23,9 @@ env: BRANCH_NAME: ${{ github.head_ref || github.ref_name }} BUILD_ARM: ${{ github.event.inputs.build_arm || inputs.build_arm || github.ref == 'refs/heads/main' }} sha: ${{ github.event.pull_request.head.sha || github.sha }} - concurrency: group: ci-${{ github.ref == 'refs/heads/main' && github.run_id || github.ref }}-website-${{github.event.inputs.build_arm}} cancel-in-progress: true - jobs: website-docker: name: Build Website Docker Image # Don't change: Referenced by .github/workflows/update-argocd-metadata.yml @@ -41,15 +38,12 @@ jobs: steps: - name: Shorten sha run: echo "sha=${sha::7}" >> $GITHUB_ENV - - uses: actions/checkout@v4 - - name: Generate files hash id: files-hash run: | DIR_HASH=$(echo -n ${{ hashFiles('website/**', '.github/workflows/website-image.yml') }}) echo "DIR_HASH=$DIR_HASH${{ env.BUILD_ARM == 'true' && '-arm' || '' }}" >> $GITHUB_ENV - - name: Setup Docker metadata id: dockerMetadata uses: docker/metadata-action@v5 @@ -61,29 +55,24 @@ jobs: type=raw,value=${{ env.BRANCH_NAME }} type=raw,value=commit-${{ env.sha }} type=raw,value=${{ env.BRANCH_NAME }}-arm,enable=${{ env.BUILD_ARM }} - - name: Login to GitHub Container Registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Check if image exists id: check-image run: | EXISTS=$(docker manifest inspect ${{ env.DOCKER_IMAGE_NAME }}:${{ env.DIR_HASH }} > /dev/null 2>&1 && echo "true" || echo "false") echo "CACHE_HIT=$EXISTS" >> $GITHUB_ENV - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Get node version build arg if: env.CACHE_HIT == 'false' run: | NODE_VERSION=$(cat website/.nvmrc | tr -cd [:digit:].) echo "NODE_VERSION=$NODE_VERSION" >> $GITHUB_ENV - - name: Build and push image if: env.CACHE_HIT == 'false' uses: docker/build-push-action@v5 @@ -95,7 +84,6 @@ jobs: cache-to: type=gha,mode=max,scope=website-${{ github.ref }} platforms: ${{ env.BUILD_ARM == 'true' && 'linux/amd64,linux/arm64' || 'linux/amd64' }} build-args: NODE_VERSION=${{ env.NODE_VERSION }} - - name: Retag and push existing image if cache hit if: env.CACHE_HIT == 'true' run: | diff --git a/.github/workflows/website-playwright-dev-test.yml b/.github/workflows/website-playwright-dev-test.yml index 59bd6bf275..1e5e463d1e 100644 --- a/.github/workflows/website-playwright-dev-test.yml +++ b/.github/workflows/website-playwright-dev-test.yml @@ -1,5 +1,4 @@ name: Dev server test - on: pull_request: paths: @@ -10,13 +9,10 @@ on: push: branches: - main - workflow_dispatch: - concurrency: group: ci-${{ github.ref == 'refs/heads/main' && github.run_id || github.ref }}-node-dev cancel-in-progress: true - jobs: test: runs-on: ${{ matrix.os }} @@ -29,23 +25,19 @@ jobs: # - macos-latest exclude: - os: ${{ github.ref != 'refs/heads/main' && 'macos-latest' }} - steps: - uses: azure/setup-helm@v4 - name: Checkout repository uses: actions/checkout@v4 - name: Install yaml package run: pip3 install PyYAML requests - - name: Generate local test config run: ./generate_local_test_config.sh - - name: Install dependencies working-directory: website run: | npm install npm install playwright --save-dev - - name: Test dev node server working-directory: website run: | diff --git a/.github/workflows/website-tests.yml b/.github/workflows/website-tests.yml index b0d31fa459..5d2bd08ef7 100644 --- a/.github/workflows/website-tests.yml +++ b/.github/workflows/website-tests.yml @@ -1,5 +1,4 @@ name: website-tests - on: # test pull_request: @@ -10,11 +9,9 @@ on: branches: - main workflow_dispatch: - concurrency: group: ci-${{ github.ref == 'refs/heads/main' && github.run_id || github.ref }}-website-tests cancel-in-progress: true - jobs: checks: name: Check format and types diff --git a/.gitignore b/.gitignore index e4d3694a2c..72da041b24 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ !.idea/runConfigurations *.iml .vscode/* +!.vscode/extensions.json .venv # build output diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000000..647466f3e5 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["bluebrown.yamlfmt"] +} diff --git a/.yamlfmt.yaml b/.yamlfmt.yaml new file mode 100644 index 0000000000..8369992be0 --- /dev/null +++ b/.yamlfmt.yaml @@ -0,0 +1,7 @@ +# See https://github.com/google/yamlfmt +formatter: + type: basic + drop_merge_tag: true +gitignore_excludes: true +exclude: + - kubernetes/loculus/templates diff --git a/ingest/config/defaults.yaml b/ingest/config/defaults.yaml index 8cf173f816..f8d999f40c 100644 --- a/ingest/config/defaults.yaml +++ b/ingest/config/defaults.yaml @@ -39,7 +39,6 @@ keep: - sequence_md5 - genbank_accession - joint_accession - # Fields that that are not shared at sample level # But specific to each segment segment_specific_fields: @@ -152,4 +151,4 @@ group_name: insdc_ingest_group username: insdc_ingest_user password: insdc_ingest_user keycloak_client_id: backend-client -subsample_fraction: 1.0 \ No newline at end of file +subsample_fraction: 1.0 diff --git a/ingest/profiles/default/config.yaml b/ingest/profiles/default/config.yaml index 908e02dad9..c646b35345 100644 --- a/ingest/profiles/default/config.yaml +++ b/ingest/profiles/default/config.yaml @@ -2,4 +2,4 @@ rerun-incomplete: true printshellcmds: true cores: all configfile: config/config.yaml -keep-going: true \ No newline at end of file +keep-going: true diff --git a/keycloak/keycloakify/.yarnrc.yml b/keycloak/keycloakify/.yarnrc.yml index 25b748b3e5..bdfbade9d2 100644 --- a/keycloak/keycloakify/.yarnrc.yml +++ b/keycloak/keycloakify/.yarnrc.yml @@ -1,3 +1,2 @@ nodeLinker: node-modules - yarnPath: .yarn/releases/yarn-4.2.2.cjs diff --git a/kubernetes/appset.yaml b/kubernetes/appset.yaml index 242b65bc57..211d093051 100644 --- a/kubernetes/appset.yaml +++ b/kubernetes/appset.yaml @@ -22,11 +22,10 @@ spec: repoURL: https://github.com/loculus-project/argocd_metadata.git revision: HEAD files: - - path: "config.json" + - path: "config.json" template: metadata: name: 'pp-{{ (printf "%.25s" .branch) | replace "_" "-" | replace "/" "-" | trimSuffix "-" | lower }}-{{.number}}' - spec: destination: server: 'https://kubernetes.default.svc' @@ -53,4 +52,4 @@ spec: - CreateNamespace=true automated: selfHeal: true - prune: true \ No newline at end of file + prune: true diff --git a/kubernetes/loculus/Chart.yaml b/kubernetes/loculus/Chart.yaml index 5ef31ed10f..5b5d1cf408 100644 --- a/kubernetes/loculus/Chart.yaml +++ b/kubernetes/loculus/Chart.yaml @@ -1,4 +1,4 @@ apiVersion: v2 name: loculus description: A Helm chart for loculus -version: 0.1.0 \ No newline at end of file +version: 0.1.0 diff --git a/kubernetes/loculus/values.yaml b/kubernetes/loculus/values.yaml index 2c4537eb51..59d4348147 100644 --- a/kubernetes/loculus/values.yaml +++ b/kubernetes/loculus/values.yaml @@ -107,10 +107,8 @@ defaultOrganismConfig: &defaultOrganismConfig header: Sample details - name: geo_loc_site ontology_id: GENEPIO:0100436 - definition: The name of a specific geographical location e.g. Credit River (rather - than river). - guidance: Provide the name of the specific geographical site using a specific noun - (a word that names a certain place, thing). + definition: The name of a specific geographical location e.g. Credit River (rather than river). + guidance: Provide the name of the specific geographical site using a specific noun (a word that names a certain place, thing). example: Credit River displayName: Collection site header: Sample details @@ -170,7 +168,7 @@ defaultOrganismConfig: &defaultOrganismConfig customDisplay: type: link url: "https://www.ncbi.nlm.nih.gov/biosample/__value__" - header: "INSDC" + header: "INSDC" noInput: true perSegment: true - name: culture_id @@ -179,13 +177,7 @@ defaultOrganismConfig: &defaultOrganismConfig - name: sample_received_date ontology_id: GENEPIO:0001177 definition: The date on which the sample was received by the laboratory. - guidance: Alternative if "sample_collection_date" is not available. Record the date the sample was received by the laboratory. - Required granularity includes year, month and day. Before sharing this data, ensure this date is not - considered identifiable information. If this date is considered identifiable, - it is acceptable to add "jitter" to the received date by adding or subtracting - calendar days. Do not change the received date in your original records. Alternatively, - collection_date may be used as a substitute in the data you share. - The date should be provided in ISO 8601 standard format "YYYY-MM-DD". + guidance: Alternative if "sample_collection_date" is not available. Record the date the sample was received by the laboratory. Required granularity includes year, month and day. Before sharing this data, ensure this date is not considered identifiable information. If this date is considered identifiable, it is acceptable to add "jitter" to the received date by adding or subtracting calendar days. Do not change the received date in your original records. Alternatively, collection_date may be used as a substitute in the data you share. The date should be provided in ISO 8601 standard format "YYYY-MM-DD". example: '2020-03-20' displayName: Sample Received Date type: date @@ -205,139 +197,92 @@ defaultOrganismConfig: &defaultOrganismConfig header: Sampling - name: presampling_activity ontology_id: GENEPIO:0100433 - definition: The activities or variables introduced upstream of sample collection - that may affect the sample collected. - guidance: If there was presampling activity that would affect the sample prior to - collection (this is different than sample processing which happens after the sample - is collected), provide the experimental activities by selecting one or more values - from the template pick list. If the information is unknown or cannot be provided, - leave blank or provide a null value. + definition: The activities or variables introduced upstream of sample collection that may affect the sample collected. + guidance: If there was presampling activity that would affect the sample prior to collection (this is different than sample processing which happens after the sample is collected), provide the experimental activities by selecting one or more values from the template pick list. If the information is unknown or cannot be provided, leave blank or provide a null value. example: Antimicrobial pre-treatment [GENEPIO:0100537] displayName: Presampling activity header: Sampling - name: anatomical_material ontology_id: GENEPIO:0001211 - definition: A substance obtained from an anatomical part of an organism e.g. tissue, - blood. - guidance: 'Provide a descriptor if an anatomical material was sampled. Use the pick - list provided in the template. If a desired term is missing from the pick list, - use this look-up service to identify a standardized term: https://www.ebi.ac.uk/ols/ontologies/uberon. - If not applicable, leave blank.' + definition: A substance obtained from an anatomical part of an organism e.g. tissue, blood. + guidance: 'Provide a descriptor if an anatomical material was sampled. Use the pick list provided in the template. If a desired term is missing from the pick list, use this look-up service to identify a standardized term: https://www.ebi.ac.uk/ols/ontologies/uberon. If not applicable, leave blank.' example: Blood [UBERON:0000178] displayName: Anatomical material header: Sampling - name: anatomical_part ontology_id: GENEPIO:0001214 definition: An anatomical part of an organism e.g. oropharynx. - guidance: 'Provide a descriptor if an anatomical part was sampled. Use the pick - list provided in the template. If a desired term is missing from the pick list, - use this look-up service to identify a standardized term: https://www.ebi.ac.uk/ols/ontologies/uberon. - If not applicable, leave blank.' + guidance: 'Provide a descriptor if an anatomical part was sampled. Use the pick list provided in the template. If a desired term is missing from the pick list, use this look-up service to identify a standardized term: https://www.ebi.ac.uk/ols/ontologies/uberon. If not applicable, leave blank.' example: Nasopharynx (NP) [UBERON:0001728] displayName: Anatomical part header: Sampling - name: body_product ontology_id: GENEPIO:0001216 definition: A substance excreted/secreted from an organism e.g. feces, urine, sweat. - guidance: 'Provide a descriptor if a body product was sampled. Use the pick list - provided in the template. If a desired term is missing from the pick list, use - this look-up service to identify a standardized term: https://www.ebi.ac.uk/ols/ontologies/uberon. - If not applicable, leave blank.' + guidance: 'Provide a descriptor if a body product was sampled. Use the pick list provided in the template. If a desired term is missing from the pick list, use this look-up service to identify a standardized term: https://www.ebi.ac.uk/ols/ontologies/uberon. If not applicable, leave blank.' example: Feces [UBERON:0001988] displayName: Body product header: Sampling - name: environmental_material ontology_id: GENEPIO:0001223 - definition: A substance obtained from the natural or man-made environment e.g. soil, - water, sewage, door handle, bed handrail, face mask. - guidance: 'Provide a descriptor if an environmental material was sampled. Use the - pick list provided in the template. If a desired term is missing from the pick - list, use this look-up service to identify a standardized term: https://www.ebi.ac.uk/ols/ontologies/envo. - If not applicable, leave blank.' + definition: A substance obtained from the natural or man-made environment e.g. soil, water, sewage, door handle, bed handrail, face mask. + guidance: 'Provide a descriptor if an environmental material was sampled. Use the pick list provided in the template. If a desired term is missing from the pick list, use this look-up service to identify a standardized term: https://www.ebi.ac.uk/ols/ontologies/envo. If not applicable, leave blank.' example: Face mask [OBI:0002787] displayName: Environmental material header: Sampling - name: environmental_site ontology_id: GENEPIO:0001232 - definition: An environmental location may describe a site in the natural or built - environment e.g. hospital, wet market, bat cave. - guidance: 'Provide a descriptor if an environmental site was sampled. Use the pick - list provided in the template. If a desired term is missing from the pick list, - use this look-up service to identify a standardized term: https://www.ebi.ac.uk/ols/ontologies/envo. - If not applicable, leave blank.' + definition: An environmental location may describe a site in the natural or built environment e.g. hospital, wet market, bat cave. + guidance: 'Provide a descriptor if an environmental site was sampled. Use the pick list provided in the template. If a desired term is missing from the pick list, use this look-up service to identify a standardized term: https://www.ebi.ac.uk/ols/ontologies/envo. If not applicable, leave blank.' example: Hospital [ENVO:00002173] displayName: Environmental site header: Sampling - name: collection_device ontology_id: GENEPIO:0001234 definition: The instrument or container used to collect the sample e.g. swab. - guidance: 'Provide a descriptor if a collection device was used for sampling. Use - the pick list provided in the template. If a desired term is missing from the - pick list, use this look-up service to identify a standardized term: https://www.ebi.ac.uk/ols/ontologies/obi. - If not applicable, leave blank.' + guidance: 'Provide a descriptor if a collection device was used for sampling. Use the pick list provided in the template. If a desired term is missing from the pick list, use this look-up service to identify a standardized term: https://www.ebi.ac.uk/ols/ontologies/obi. If not applicable, leave blank.' example: Swab [GENEPIO:0100027] displayName: Collection device header: Sampling - name: collection_method ontology_id: GENEPIO:0001241 definition: The process used to collect the sample e.g. phlebotomy, necropsy. - guidance: 'Provide a descriptor if a collection method was used for sampling. Use - the pick list provided in the template. If a desired term is missing from the - pick list, use this look-up service to identify a standardized term: https://www.ebi.ac.uk/ols/ontologies/obi. - If not applicable, leave blank.' + guidance: 'Provide a descriptor if a collection method was used for sampling. Use the pick list provided in the template. If a desired term is missing from the pick list, use this look-up service to identify a standardized term: https://www.ebi.ac.uk/ols/ontologies/obi. If not applicable, leave blank.' example: Bronchoalveolar lavage (BAL) [GENEPIO:0100032] displayName: Collection method header: Sampling - name: food_product ontology_id: GENEPIO:0100444 definition: A material consumed and digested for nutritional value or enjoyment. - guidance: This field includes animal feed. If applicable, select the standardized - term and ontology ID for the anatomical material from the picklist provided. Multiple - values can be provided, separated by a semi-colon. - example: Feather meal [FOODON:00003927]; Bone meal [ENVO:02000054]; Chicken breast - [FOODON:00002703] + guidance: This field includes animal feed. If applicable, select the standardized term and ontology ID for the anatomical material from the picklist provided. Multiple values can be provided, separated by a semi-colon. + example: Feather meal [FOODON:00003927]; Bone meal [ENVO:02000054]; Chicken breast [FOODON:00002703] displayName: Food Product header: Sampling - name: food_product_properties ontology_id: GENEPIO:0100445 - definition: Any characteristic of the food product pertaining to its state, processing, - a label claim, or implications for consumers. - guidance: Provide any characteristics of the food product including whether it has - been cooked, processed, preserved, any known information about its state (e.g. - raw, ready-to-eat), any known information about its containment (e.g. canned), - and any information about a label claim (e.g. organic, fat-free). + definition: Any characteristic of the food product pertaining to its state, processing, a label claim, or implications for consumers. + guidance: Provide any characteristics of the food product including whether it has been cooked, processed, preserved, any known information about its state (e.g. raw, ready-to-eat), any known information about its containment (e.g. canned), and any information about a label claim (e.g. organic, fat-free). example: Food (chopped) [FOODON:00002777]; Ready-to-eat (RTE) [FOODON:03316636] displayName: Food Product Properties header: Sampling - name: specimen_processing ontology_id: GENEPIO:0100435 - definition: The processing applied to samples post-collection, prior to further - testing, characterization, or isolation procedures. - guidance: Provide the sample processing information by selecting a value from the - template pick list. If the information is unknown or cannot be provided, leave - blank or provide a null value. + definition: The processing applied to samples post-collection, prior to further testing, characterization, or isolation procedures. + guidance: Provide the sample processing information by selecting a value from the template pick list. If the information is unknown or cannot be provided, leave blank or provide a null value. example: Samples pooled [OBI:0600016] displayName: Specimen Processing header: Specimen processing - name: specimen_processing_details ontology_id: GENEPIO:0100311 - definition: Detailed information regarding the processing applied to a sample during - or after receiving the sample. - guidance: Provide a free text description of any processing details applied to a - sample. - example: 25 swabs were pooled and further prepared as a single sample during library - prep. + definition: Detailed information regarding the processing applied to a sample during or after receiving the sample. + guidance: Provide a free text description of any processing details applied to a sample. + example: 25 swabs were pooled and further prepared as a single sample during library prep. displayName: Specimen Processing Details header: Specimen processing - name: experimental_specimen_role_type ontology_id: GENEPIO:0100921 definition: The type of role that the sample represents in the experiment. - guidance: Samples can play different types of roles in experiments. A sample under - study in one experiment may act as a control or be a replicate of another sample - in another experiment. This field is used to distinguish samples under study from - controls, replicates, etc. If the sample acted as an experimental control or - a replicate, select a role type from the picklist. If the sample was not a control, - leave blank or select "Not Applicable". + guidance: Samples can play different types of roles in experiments. A sample under study in one experiment may act as a control or be a replicate of another sample in another experiment. This field is used to distinguish samples under study from controls, replicates, etc. If the sample acted as an experimental control or a replicate, select a role type from the picklist. If the sample was not a control, leave blank or select "Not Applicable". example: Positive experimental control [GENEPIO:0101018] displayName: Experimental Specimen Role Type header: Specimen processing @@ -353,8 +298,7 @@ defaultOrganismConfig: &defaultOrganismConfig - name: host_age_bin ontology_id: GENEPIO:0001394 definition: The age category of the host at the time of sampling. - guidance: Age bins in 10 year intervals have been provided. If a host's age cannot - be specified due to provacy concerns, an age bin can be used as an alternative. + guidance: Age bins in 10 year intervals have been provided. If a host's age cannot be specified due to provacy concerns, an age bin can be used as an alternative. example: 50 - 59 [GENEPIO:0100054] displayName: Host Age Bin header: Host @@ -368,27 +312,20 @@ defaultOrganismConfig: &defaultOrganismConfig - name: host_origin_country ontology_id: GENEPIO:0100438 definition: The country of origin of the host. - guidance: If a sample is from a human or animal host that originated from outside - of Canada, provide the the name of the country where the host originated by selecting - a value from the template pick list. If the information is unknown or cannot be - provided, leave blank or provide a null value. + guidance: If a sample is from a human or animal host that originated from outside of Canada, provide the the name of the country where the host originated by selecting a value from the template pick list. If the information is unknown or cannot be provided, leave blank or provide a null value. example: South Africa [GAZ:00001094] displayName: Host Origin Country header: Host - name: host_disease ontology_id: GENEPIO:0001391 definition: The name of the disease experienced by the host. - guidance: "This field is only required if the Pathogen.cl package was selected. - If the host was sick, provide the name of the disease.The standardized term - can be sourced from this look-up service: https://www.ebi.ac.uk/ols/ontologies/doid - If the disease is not known, put \u201Cmissing\u201D." + guidance: "This field is only required if the Pathogen.cl package was selected. If the host was sick, provide the name of the disease.The standardized term can be sourced from this look-up service: https://www.ebi.ac.uk/ols/ontologies/doid If the disease is not known, put “missing”." example: mastitis, gastroenteritis displayName: Host disease header: Host - name: signs_and_symptoms ontology_id: GENEPIO:0001400 - definition: A perceived change in function or sensation, (loss, disturbance or appearance) - indicative of a disease, reported by a patient. + definition: A perceived change in function or sensation, (loss, disturbance or appearance) indicative of a disease, reported by a patient. guidance: Select all of the symptoms experienced by the host from the pick list. example: Cough [HP:0012735], Fever [HP:0001945], Rigors (fever shakes) [HP:0025145] displayName: Signs and symptoms @@ -410,9 +347,7 @@ defaultOrganismConfig: &defaultOrganismConfig - name: travel_history ontology_id: GENEPIO:0001416 definition: Travel history in last six months. - guidance: Specify the countries (and more granular locations if known) travelled - in the last six months; can include multiple travels. Separate multiple travel - events with a semicolon. Provide as free text. + guidance: Specify the countries (and more granular locations if known) travelled in the last six months; can include multiple travels. Separate multiple travel events with a semicolon. Provide as free text. example: Canada, Vancouver; USA, Seattle; Italy, Milan displayName: Travel History header: Host @@ -426,16 +361,14 @@ defaultOrganismConfig: &defaultOrganismConfig - name: host_role ontology_id: GENEPIO:0001419 definition: The role of the host in relation to the exposure setting. - guidance: Select the host's personal role(s) from the pick list provided in the - template. If the desired term is missing, contact the curation team. + guidance: Select the host's personal role(s) from the pick list provided in the template. If the desired term is missing, contact the curation team. example: Patient [OMRSE:00000030] displayName: Host role header: Host - name: exposure_setting ontology_id: GENEPIO:0001428 definition: The setting leading to exposure. - guidance: Select the host exposure setting(s) from the pick list provided in the - template. If a desired term is missing, contact the curation team. + guidance: Select the host exposure setting(s) from the pick list provided in the template. If a desired term is missing, contact the curation team. example: Healthcare Setting [GENEPIO:0100201] displayName: Exposure setting header: Host @@ -448,23 +381,19 @@ defaultOrganismConfig: &defaultOrganismConfig header: Host - name: previous_infection_disease definition: The name of the disease previously experienced by the host. - guidance: Provide the name(s) of the previous of ongoing disease(s). Multiple diseases - can be separated by a semi-colon. + guidance: Provide the name(s) of the previous of ongoing disease(s). Multiple diseases can be separated by a semi-colon. example: COVID-19 displayName: Previous infection (disease) header: Host - name: previous_infection_organism - definition: The name of the pathogen causing the disease previously experienced - by the host. - guidance: Provide the name(s) of the pathogen(s) causing the previous or ongoing - infections. Multiple pathogen names can be separated using a semi-colon. + definition: The name of the pathogen causing the disease previously experienced by the host. + guidance: Provide the name(s) of the pathogen(s) causing the previous or ongoing infections. Multiple pathogen names can be separated using a semi-colon. example: Sudden Acute Respiratory Syndrome Coronavirus 2 (SARS-CoV-2) displayName: Previous infection (organism) header: Host - name: host_vaccination_status ontology_id: GENEPIO:0001404 - definition: The vaccination status of the host (fully vaccinated, partially vaccinated, - or not vaccinated). + definition: The vaccination status of the host (fully vaccinated, partially vaccinated, or not vaccinated). guidance: Select the vaccination status of the host from the pick list. example: Fully Vaccinated [GENEPIO:0100100] displayName: Host Vaccination Status @@ -472,11 +401,7 @@ defaultOrganismConfig: &defaultOrganismConfig - name: purpose_of_sequencing ontology_id: GENEPIO:0001445 definition: The reason that the sample was sequenced. - guidance: The reason why a sample was originally collected may differ from the reason - why it was selected for sequencing. The reason a sample was sequenced may provide - information about potential biases in sequencing strategy. Provide the purpose - of sequencing from the picklist in the template. The reason for sample collection - should be indicated in the "purpose of sampling" field. + guidance: The reason why a sample was originally collected may differ from the reason why it was selected for sequencing. The reason a sample was sequenced may provide information about potential biases in sequencing strategy. Provide the purpose of sequencing from the picklist in the template. The reason for sample collection should be indicated in the "purpose of sampling" field. example: Baseline surveillance (random sampling) [GENEPIO:0100005] displayName: Purpose Of Sequencing header: Sequencing @@ -494,10 +419,8 @@ defaultOrganismConfig: &defaultOrganismConfig header: Sequencing - name: amplicon_pcr_primer_scheme ontology_id: GENEPIO:0001456 - definition: The specifications of the primers (primer sequences, binding positions, - fragment size generated etc) used to generate the amplicons to be sequenced. - guidance: Provide the name and version of the primer scheme used to generate the - amplicons for sequencing. + definition: The specifications of the primers (primer sequences, binding positions, fragment size generated etc) used to generate the amplicons to be sequenced. + guidance: Provide the name and version of the primer scheme used to generate the amplicons for sequencing. example: https://github.com/joshquick/artic-ncov2019/blob/master/primer_schemes/nCoV-2019/V3/nCoV-2019.tsv displayName: Amplicon pcr primer scheme header: Sequencing @@ -518,73 +441,49 @@ defaultOrganismConfig: &defaultOrganismConfig - name: sequencing_protocol ontology_id: GENEPIO:0001454 definition: The protocol used to generate the sequence. - guidance: 'Provide a free text description of the methods and materials used to - generate the sequence. Suggested text, fill in information where indicated.: "Viral - sequencing was performed following a tiling amplicon strategy using the primer scheme. Sequencing was performed using a sequencing instrument. - Libraries were prepared using library kit. "' - example: Genomes were generated through amplicon sequencing of 1200 bp amplicons - with Freed schema primers. Libraries were created using Illumina DNA Prep kits, - and sequence data was produced using Miseq Micro v2 (500 cycles) sequencing kits. + guidance: 'Provide a free text description of the methods and materials used to generate the sequence. Suggested text, fill in information where indicated.: "Viral sequencing was performed following a tiling amplicon strategy using the primer scheme. Sequencing was performed using a sequencing instrument. Libraries were prepared using library kit. "' + example: Genomes were generated through amplicon sequencing of 1200 bp amplicons with Freed schema primers. Libraries were created using Illumina DNA Prep kits, and sequence data was produced using Miseq Micro v2 (500 cycles) sequencing kits. displayName: Sequencing protocol header: Sequencing - name: sequencing_assay_type ontology_id: GENEPIO:0100997 - definition: The overarching sequencing methodology that was used to determine the - sequence of a biomaterial. - guidance: 'Example Guidance: Provide the name of the DNA or RNA sequencing technology - used in your study. If unsure refer to the protocol documentation, or provide - a null value.' + definition: The overarching sequencing methodology that was used to determine the sequence of a biomaterial. + guidance: 'Example Guidance: Provide the name of the DNA or RNA sequencing technology used in your study. If unsure refer to the protocol documentation, or provide a null value.' example: whole genome sequencing assay [OBI:0002117] displayName: Sequencing Assay Type header: Sequencing - name: sequenced_by_organization ontology_id: GENEPIO:0100416 - definition: The name of the agency, organization or institution responsible for - sequencing the isolate's genome. - guidance: Provide the name of the agency, organization or institution that performed - the sequencing in full (avoid abbreviations). If the information is unknown or - cannot be provided, leave blank or provide a null value. + definition: The name of the agency, organization or institution responsible for sequencing the isolate's genome. + guidance: Provide the name of the agency, organization or institution that performed the sequencing in full (avoid abbreviations). If the information is unknown or cannot be provided, leave blank or provide a null value. example: Public Health Agency of Canada (PHAC) [GENEPIO:0100551] displayName: Sequenced By header: Sequencing - name: sequenced_by_contact_name ontology_id: GENEPIO:0100471 - definition: The name or title of the contact responsible for follow-up regarding - the sequence. - guidance: Provide the name of an individual or their job title. As personnel turnover - may render the contact's name obsolete, it is more prefereable to provide a job - title for ensuring accuracy of information and institutional memory. If the information - is unknown or cannot be provided, leave blank or provide a null value. + definition: The name or title of the contact responsible for follow-up regarding the sequence. + guidance: Provide the name of an individual or their job title. As personnel turnover may render the contact's name obsolete, it is more prefereable to provide a job title for ensuring accuracy of information and institutional memory. If the information is unknown or cannot be provided, leave blank or provide a null value. example: Enterics Lab Manager displayName: Sequenced By Contact Name header: Sequencing - name: sequenced_by_contact_email ontology_id: GENEPIO:0100422 - definition: The email address of the contact responsible for follow-up regarding - the sequence. - guidance: Provide the email associated with the listed contact. As personnel turnover - may render an individual's email obsolete, it is more prefereable to provide an - address for a position or lab, to ensure accuracy of information and institutional - memory. If the information is unknown or cannot be provided, leave blank or provide - a null value. + definition: The email address of the contact responsible for follow-up regarding the sequence. + guidance: Provide the email associated with the listed contact. As personnel turnover may render an individual's email obsolete, it is more prefereable to provide an address for a position or lab, to ensure accuracy of information and institutional memory. If the information is unknown or cannot be provided, leave blank or provide a null value. example: enterics@lab.ca displayName: Sequenced By Contact Email header: Sequencing - name: raw_sequence_data_processing_method ontology_id: GENEPIO:0001458 - definition: The method used for raw data processing such as removing barcodes, adapter - trimming, filtering etc. - guidance: Provide the name and version numbers of the software used to process the - raw data. + definition: The method used for raw data processing such as removing barcodes, adapter trimming, filtering etc. + guidance: Provide the name and version numbers of the software used to process the raw data. example: Porechop 0.2.3 displayName: Raw sequence data processing method header: Sequencing - name: dehosting_method ontology_id: GENEPIO:0001459 definition: The method used to remove host reads from the pathogen sequence. - guidance: Provide the name and version number of the software used to remove host - reads. + guidance: Provide the name and version number of the software used to remove host reads. example: Nanostripper 1.2.3 displayName: Dehosting method header: Sequencing @@ -611,8 +510,7 @@ defaultOrganismConfig: &defaultOrganismConfig header: Sequencing - name: depth_of_coverage ontology_id: GENEPIO:0001474 - definition: The average number of reads representing a given nucleotide in the reconstructed - sequence. + definition: The average number of reads representing a given nucleotide in the reconstructed sequence. guidance: Provide value as a fold of coverage (as a number). example: 400 displayName: Depth of coverage @@ -628,51 +526,35 @@ defaultOrganismConfig: &defaultOrganismConfig header: Sequencing - name: quality_control_method_name ontology_id: GENEPIO:0100557 - definition: The name of the method used to assess whether a sequence passed a predetermined - quality control threshold. - guidance: Providing the name of the method used for quality control is very important - for interpreting the rest of the QC information. Method names can be provided - as the name of a pipeline or a link to a GitHub repository. Multiple methods should - be listed and separated by a semi-colon. Do not include QC tags in other fields - if no method name is provided. + definition: The name of the method used to assess whether a sequence passed a predetermined quality control threshold. + guidance: Providing the name of the method used for quality control is very important for interpreting the rest of the QC information. Method names can be provided as the name of a pipeline or a link to a GitHub repository. Multiple methods should be listed and separated by a semi-colon. Do not include QC tags in other fields if no method name is provided. example: ncov-tools displayName: Quality control method name header: Sequencing - name: quality_control_method_version ontology_id: GENEPIO:0100558 - definition: The version number of the method used to assess whether a sequence passed - a predetermined quality control threshold. - guidance: Methods updates can make big differences to their outputs. Provide the - version of the method used for quality control. The version can be expressed using - whatever convention the developer implements (e.g. date, semantic versioning). - If multiple methods were used, record the version numbers in the same order as - the method names. Separate the version numbers using a semi-colon. + definition: The version number of the method used to assess whether a sequence passed a predetermined quality control threshold. + guidance: Methods updates can make big differences to their outputs. Provide the version of the method used for quality control. The version can be expressed using whatever convention the developer implements (e.g. date, semantic versioning). If multiple methods were used, record the version numbers in the same order as the method names. Separate the version numbers using a semi-colon. example: "1.2.3" displayName: Quality control method version header: Sequencing - name: quality_control_determination ontology_id: GENEPIO:0100559 definition: The determination of a quality control assessment. - guidance: Select a value from the pick list provided. If a desired value is missing, - submit a new term request to the PHA4GE QC Tag GitHub issuetracker using the New - Term Request form. + guidance: Select a value from the pick list provided. If a desired value is missing, submit a new term request to the PHA4GE QC Tag GitHub issuetracker using the New Term Request form. example: sequence failed quality control displayName: Quality control determination header: Sequencing - name: quality_control_issues ontology_id: GENEPIO:0100560 - definition: The reason contributing to, or causing, a low quality determination - in a quality control assessment. - guidance: Select a value from the pick list provided. If a desired value is missing, - submit a new term request to the PHA4GE QC Tag GitHub issuetracker using the New - Term Request form. + definition: The reason contributing to, or causing, a low quality determination in a quality control assessment. + guidance: Select a value from the pick list provided. If a desired value is missing, submit a new term request to the PHA4GE QC Tag GitHub issuetracker using the New Term Request form. example: low average genome coverage displayName: Quality control issues header: Sequencing - name: quality_control_details ontology_id: GENEPIO:0100561 - definition: The details surrounding a low quality determination in a quality control - assessment. + definition: The details surrounding a low quality determination in a quality control assessment. guidance: Provide notes or details regarding QC results using free text. example: CT value of 39. Low viral load. Low DNA concentration after amplification. displayName: Quality control details @@ -777,7 +659,7 @@ defaultOrganismConfig: &defaultOrganismConfig rangeSearch: true perSegment: true preprocessing: - inputs: { input: nextclade.totalSubstitutions } + inputs: {input: nextclade.totalSubstitutions} - name: total_inserted_nucs type: int header: "Alignment states and QC metrics" @@ -785,7 +667,7 @@ defaultOrganismConfig: &defaultOrganismConfig rangeSearch: true perSegment: true preprocessing: - inputs: { input: nextclade.totalInsertions } + inputs: {input: nextclade.totalInsertions} - name: total_deleted_nucs type: int header: "Alignment states and QC metrics" @@ -793,7 +675,7 @@ defaultOrganismConfig: &defaultOrganismConfig rangeSearch: true perSegment: true preprocessing: - inputs: { input: nextclade.totalDeletions } + inputs: {input: nextclade.totalDeletions} - name: total_ambiguous_nucs type: int header: "Alignment states and QC metrics" @@ -801,7 +683,7 @@ defaultOrganismConfig: &defaultOrganismConfig rangeSearch: true perSegment: true preprocessing: - inputs: { input: "nextclade.totalNonACGTNs" } + inputs: {input: "nextclade.totalNonACGTNs"} - name: total_unknown_nucs type: int header: "Alignment states and QC metrics" @@ -809,7 +691,7 @@ defaultOrganismConfig: &defaultOrganismConfig rangeSearch: true perSegment: true preprocessing: - inputs: { input: nextclade.totalMissing } + inputs: {input: nextclade.totalMissing} - name: total_frame_shifts type: int rangeSearch: true @@ -817,20 +699,20 @@ defaultOrganismConfig: &defaultOrganismConfig noInput: true perSegment: true preprocessing: - inputs: { input: nextclade.totalFrameShifts } + inputs: {input: nextclade.totalFrameShifts} - name: frame_shifts header: "Alignment states and QC metrics" noInput: true perSegment: true preprocessing: - inputs: { input: nextclade.frameShifts } + inputs: {input: nextclade.frameShifts} - name: completeness type: float header: "Alignment states and QC metrics" noInput: true perSegment: true preprocessing: - inputs: { input: nextclade.coverage } + inputs: {input: nextclade.coverage} website: &website tableColumns: - sample_collection_date @@ -860,7 +742,7 @@ defaultOrganismConfig: &defaultOrganismConfig configFile: &preprocessingConfigFile log_level: DEBUG nextclade_dataset_name: nextstrain/ebola/zaire - genes: [ NP, VP35, VP40, GP, sGP, ssGP, VP30, VP24, L ] + genes: [NP, VP35, VP40, GP, sGP, ssGP, VP30, VP24, L] batch_size: 100 ingest: &ingest image: ghcr.io/loculus-project/ingest @@ -893,11 +775,11 @@ defaultOrganisms: ebola-zaire: <<: *defaultOrganismConfig preprocessing: - - <<: *preprocessing - configFile: - <<: *preprocessingConfigFile - nextclade_dataset_server: https://raw.githubusercontent.com/nextstrain/nextclade_data/ebola/data_output - nextclade_dataset_name: nextstrain/ebola/zaire + - <<: *preprocessing + configFile: + <<: *preprocessingConfigFile + nextclade_dataset_server: https://raw.githubusercontent.com/nextstrain/nextclade_data/ebola/data_output + nextclade_dataset_name: nextstrain/ebola/zaire ebola-sudan: <<: *defaultOrganismConfig schema: @@ -910,18 +792,18 @@ defaultOrganisms: header: "Alignment states and QC metrics" noInput: true preprocessing: - inputs: { input: nextclade.qc.stopCodons.totalStopCodons } + inputs: {input: nextclade.qc.stopCodons.totalStopCodons} - name: stop_codons header: "Alignment states and QC metrics" noInput: true preprocessing: - inputs: { input: nextclade.qc.stopCodons.stopCodons } + inputs: {input: nextclade.qc.stopCodons.stopCodons} preprocessing: - - <<: *preprocessing - configFile: - <<: *preprocessingConfigFile - nextclade_dataset_server: https://raw.githubusercontent.com/nextstrain/nextclade_data/ebola/data_output - nextclade_dataset_name: nextstrain/ebola/sudan + - <<: *preprocessing + configFile: + <<: *preprocessingConfigFile + nextclade_dataset_server: https://raw.githubusercontent.com/nextstrain/nextclade_data/ebola/data_output + nextclade_dataset_name: nextstrain/ebola/sudan ingest: <<: *ingest configFile: @@ -963,14 +845,14 @@ defaultOrganisms: autocomplete: true initiallyVisible: true preprocessing: - inputs: { input: nextclade.clade } + inputs: {input: nextclade.clade} - name: outbreak header: "Clade & Lineage" noInput: true generateIndex: true autocomplete: true preprocessing: - inputs: { input: nextclade.customNodeAttributes.outbreak } + inputs: {input: nextclade.customNodeAttributes.outbreak} - name: lineage header: "Clade & Lineage" noInput: true @@ -978,18 +860,18 @@ defaultOrganisms: autocomplete: true initiallyVisible: true preprocessing: - inputs: { input: nextclade.customNodeAttributes.lineage } + inputs: {input: nextclade.customNodeAttributes.lineage} - name: total_stop_codons type: int header: "Alignment states and QC metrics" noInput: true preprocessing: - inputs: { input: nextclade.qc.stopCodons.totalStopCodons } + inputs: {input: nextclade.qc.stopCodons.totalStopCodons} - name: stop_codons header: "Alignment states and QC metrics" noInput: true preprocessing: - inputs: { input: nextclade.qc.stopCodons.stopCodons } + inputs: {input: nextclade.qc.stopCodons.stopCodons} website: <<: *website tableColumns: @@ -998,19 +880,19 @@ defaultOrganisms: - authors - author_affiliations - geo_loc_country - - length + - length - clade - lineage defaultOrderBy: sample_collection_date defaultOrder: descending preprocessing: - - <<: *preprocessing - configFile: - <<: *preprocessingConfigFile - nextclade_dataset_name: nextstrain/mpox/all-clades - batch_size: 5 - genes: - - OPG001 + - <<: *preprocessing + configFile: + <<: *preprocessingConfigFile + nextclade_dataset_name: nextstrain/mpox/all-clades + batch_size: 5 + genes: + - OPG001 ingest: <<: *ingest configFile: @@ -1038,18 +920,18 @@ defaultOrganisms: autocomplete: true initiallyVisible: true preprocessing: - inputs: { input: nextclade.clade } + inputs: {input: nextclade.clade} - name: total_stop_codons type: int header: "Alignment states and QC metrics" noInput: true preprocessing: - inputs: { input: nextclade.qc.stopCodons.totalStopCodons } + inputs: {input: nextclade.qc.stopCodons.totalStopCodons} - name: stop_codons header: "Alignment states and QC metrics" noInput: true preprocessing: - inputs: { input: nextclade.qc.stopCodons.stopCodons } + inputs: {input: nextclade.qc.stopCodons.stopCodons} website: <<: *website tableColumns: @@ -1064,16 +946,16 @@ defaultOrganisms: defaultOrderBy: sample_collection_date defaultOrder: descending preprocessing: - - <<: *preprocessing - configFile: - <<: *preprocessingConfigFile - nextclade_dataset_name: nextstrain/wnv/all-lineages - nextclade_dataset_server: https://raw.githubusercontent.com/nextstrain/nextclade_data/wnv/data_output - genes: [ capsid, prM, env, NS1, NS2A, NS2B, NS3, NS4A, 2K, NS4B, NS5 ] + - <<: *preprocessing + configFile: + <<: *preprocessingConfigFile + nextclade_dataset_name: nextstrain/wnv/all-lineages + nextclade_dataset_server: https://raw.githubusercontent.com/nextstrain/nextclade_data/wnv/data_output + genes: [capsid, prM, env, NS1, NS2A, NS2B, NS3, NS4A, 2K, NS4B, NS5] ingest: <<: *ingest configFile: - taxon_id: 3048448 + taxon_id: 3048448 referenceGenomes: nucleotideSequences: - name: main @@ -1191,7 +1073,7 @@ defaultOrganisms: schema: <<: *schema organismName: "Crimean-Congo Hemorrhagic Fever Virus" - nucleotideSequences: [ L, M, S ] + nucleotideSequences: [L, M, S] image: "https://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Crimean-Congo_Hemorrhagic_Fever_%28CCHF%29_Virus_%2840689899455%29.jpg/1920px-Crimean-Congo_Hemorrhagic_Fever_%28CCHF%29_Virus_%2840689899455%29.jpg" website: <<: *website @@ -1209,14 +1091,14 @@ defaultOrganisms: defaultOrderBy: sample_collection_date defaultOrder: descending preprocessing: - - <<: *preprocessing - configFile: - <<: *preprocessingConfigFile - log_level: DEBUG - nextclade_dataset_name: nextstrain/cchfv/linked - nextclade_dataset_server: https://raw.githubusercontent.com/nextstrain/nextclade_data/cornelius-cchfv/data_output - nucleotideSequences: [ L, M, S ] - genes: [ RdRp, GPC, NP ] + - <<: *preprocessing + configFile: + <<: *preprocessingConfigFile + log_level: DEBUG + nextclade_dataset_name: nextstrain/cchfv/linked + nextclade_dataset_server: https://raw.githubusercontent.com/nextstrain/nextclade_data/cornelius-cchfv/data_output + nucleotideSequences: [L, M, S] + genes: [RdRp, GPC, NP] ingest: <<: *ingest configFile: diff --git a/kubernetes/loculus/values_e2e_and_dev.yaml b/kubernetes/loculus/values_e2e_and_dev.yaml index f815ca4642..4981c3d8e4 100644 --- a/kubernetes/loculus/values_e2e_and_dev.yaml +++ b/kubernetes/loculus/values_e2e_and_dev.yaml @@ -1,12 +1,12 @@ secrets: - service-accounts: - type: raw - data: - insdcIngestUserPassword: "insdc_ingest_user" - dummyPreprocessingPipelinePassword: "preprocessing_pipeline" - siloImportJobPassword: "silo_import_job" - backendUserPassword: "backend" + service-accounts: + type: raw + data: + insdcIngestUserPassword: "insdc_ingest_user" + dummyPreprocessingPipelinePassword: "preprocessing_pipeline" + siloImportJobPassword: "silo_import_job" + backendUserPassword: "backend" createTestAccounts: true backendExtraArgs: - "--loculus.debug-mode=true" -reduceResourceRequest: true \ No newline at end of file +reduceResourceRequest: true diff --git a/kubernetes/loculus/values_preview_server.yaml b/kubernetes/loculus/values_preview_server.yaml index 4391d3e94e..671c8959bb 100644 --- a/kubernetes/loculus/values_preview_server.yaml +++ b/kubernetes/loculus/values_preview_server.yaml @@ -10,4 +10,4 @@ secrets: clusterWide: "true" data: orcidSecret: AgBwVSGo2Y9TPdkGd78BikI/Nm+4SI3TS5AHQu+h4s0qb5Ydc1m7MJLd5ZwoXhkvWWfm2kt8K0Tj5eoAsFSVktA5EIZMWZOR7DugU5Z5GLgGJogpgrzN+dR7AEsyxwfXGzF2RISqsBDjRBzzfiF0ZhpyjUOCab2fn9iH3HmJ9qPK6xpzOcS47jjfg+5ofv8BxdGPAKiOpLUgFAZO1xTKZXTnbdVvyRUORJVZJffwiZ3RG3EO+eUKgHIf5YeG0b52OzDPfCzgNDGV/ryY+jPix6c+T1/g2qnUpLzECYdaqc5R6ZWtNt42VELxU3kpmwNyswraec+3IxkufXZTyTpSxikpHDKK9Zcz9woh/+R4BUKjjO1zpHWFPV5jY+hzY+rxfHTP8VX0txyMsBVEafDRL0R3YYz8rUBzXC4C6IFJLK0QmJKD7GHQM2Ue6SjGkr49k1ZPSGCGAJ16IZCe3l3lVhzncobpEBPx4qYJhD8oo+ZIt7YIZ/Egmkza+DFAAWmtSCEztL85Y3pNN5g3SVn6urSKZbNUeI6rC4JqwS6Uk2370VrvEEufml9fXOdE5ATO5C+zHj3AWd0zancDsk4nQegbE5fjLblGfQ1g/ID2OHCFaw7FMBItrE+R5VkTwN5nuszAnWXc191T7PS3mWrYBDrjbqHOr/P1X6BZWT0Q7bqR8y5d2JUX5qNaHI4s4WN43Z/m0oPRMZC0WHn/ebtPPukoKRWnMWqN8MTwnB9oHV/84egrHUY= -reduceResourceRequest: true \ No newline at end of file +reduceResourceRequest: true diff --git a/preprocessing/nextclade/environment.yml b/preprocessing/nextclade/environment.yml index e0d058f98b..131ac14465 100644 --- a/preprocessing/nextclade/environment.yml +++ b/preprocessing/nextclade/environment.yml @@ -12,4 +12,4 @@ dependencies: - pyjwt=2.8 - python-dateutil=2.9 - pytz=2024.1 - - requests=2.32 \ No newline at end of file + - requests=2.32