Kvalitetssikre data (Soda)
Vi kan overvåke om BigQuery-tabellene står til forventningene våre gjennom Soda (ekstern lenke). Sjekker evalueres, Slack-varslinger sendes og resultater tilgjengeliggjøres når dere endrer bittelitt config i navikt/dp-nada-soda og deployer Naisjoben.
Sjekkene defineres i Yaml.
Se for eksempel sjekken vi gjør for å se om tabellen vedtak
er oppdatert siste døgn ved å se på observasjonene i kolonnen innsamlet
:
checks for vedtak:
- freshness(innsamlet) < 1d
Dokumentasjonen til Soda beskriver godt hvilke sjekker som kommer ut av boksen og hvordan dere kan lage egendefinerte.
Oppsett av Dependabot for å automatisk holde Soda-imaget oppdatert¶
Dersom dependabot ikke kan konfigureres for docker imager som ligger i google artifact registry pusher vi Soda-imaget vårt både til GAR og GHCR med samme tag. Men ettersom vi kun kan deploye på nais-platformen med imager lagret i GAR kan følgende fremgangsmåte benyttes for automatisk å holde Soda-imaget oppdatert.
- Opprett en dummy Dockerfil på rot i repoet ditt, for eksempel
Dockerfile.dummy
med følgende innhold:
FROM ghcr.io/navikt/nada-soda/soda:2025.06.03-10.46-b16fa04
dependabot.yaml
i .github
-mappen i repoet med følgende innhold:
version: 2
registries:
ghcr:
type: docker-registry
url: ghcr.io
username: user
password: ${{ secrets.READER_TOKEN }}
updates:
- package-ecosystem: "docker"
registries:
- ghcr
directory: "/"
schedule:
interval: "daily"
.github/workflows/bump_soda_image.yaml
med følgende innhold:
name: Update Soda Image Tag
on:
push:
branches:
- 'main'
paths:
- 'Dockerfile.dummy'
permissions:
contents: write
jobs:
deploy:
name: Update Soda Image Tag
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Commit tag changes
run: |
newtag=$(awk -F "FROM ghcr.io/navikt/nada-soda/soda:" '{print $2}' Dockerfile.dummy)
sed -i "s|image: .*|image: europe-north1-docker.pkg.dev/nais-management-233d/nada/nada-soda:${newtag}|g" .nais/naisjob.yaml
git config --global user.email ${{ github.actor }}@users.noreply.github.com
git config --global user.name ${{ github.actor }}
git add .nais/naisjob.yaml
git commit -m "Updated Soda image tag to ${newtag}"
git push
(forutsetter at manifestet til naisjobben ligger i .nais/naisjob.yaml
, endre dette om nødvendig)
4. Legg til en workflow_run
trigger for github actionen som deployer naisjobben:
...
on:
...
workflow_run:
workflows:
- Update Soda Image Tag
types:
- completed
---