Dette er bloggen til team Mat i Mattilsynet, parenteser.mattilsynet.io. Her tenker vi å blogge litt om utviklingsarbeidet vårt: alt fra interessante (i våre øyne) detaljer fra det tekniske arbeidet, hvordan vi jobber med arkitektur, til forretningsutvikling. Time vil show, som de sier på Flåklypa TV.
Dersom du bruker Emacs: gjør cider-jack-in
, åpne dev/parenteser/dev.clj
, og
evaluer kallet som oppretter appen samt kallet til start-funksjonen. Bloggen er
nå tilgjengelig på http://localhost:5052.
Ja, det er noen av dem også:
make test
Fant du en skrivefeil? Eller kanskje en tungt formulert setning? Send oss gjerne en pull request som fikser opp i innleggene, det blir vi takknemlige for 🙏
Vi tar gjerne i mot fikser på funksjonelle ting som ikke virker også - eller kanskje du har lyst til å legge til en eller annen feature som gjør leseopplevelsen litt hyggeligere? Kjør på, og det er lov å åpne PR-en før du skriver koden, så kan vi bli enige om at det er en god idé.
Bloggen kjører i et Docker image med nginx og masse deilige, statiske filer på Google Cloud Run. Miljøet er konfigurert av Terraform.
make docker/build
Deretter kan du sjekke at ting virkelig er produksjonsklart:
http-server docker/build
Du må ha noen verktøy:
brew install terraform gh
For å sette opp miljøet må du ha en GCP-konto og tilgang til relevante prosjekter.
Du må være autentisert mot GCP. Deretter setter du parenteser-prosjektet som default og autentiserer maskinen din mot dette prosjektet:
gcloud auth login
gcloud config set project parenteser-b480
gcloud auth application-default login
Terraform henter noen moduler over https-git som ikke er åpne. For at det skal funke kan du bruke github sin CLI for å autentisere deg for https:
gh auth login
Velg HTTPS og fullfører flyten som følger.
NÅ! Nå, er du klar for å kjøre opp ting:
cd tf
terraform init
terraform plan
terraform apply
Dette vil sette opp nødvendig infrastruktur. Merk at terraform-oppsettet vårt har et "hello world" image. Dette imaget brukes kun ved første gangs oppsett. Github Actions-arbeidsflyten ber CloudRun om å kjøre nye images ved push.
Verdt å merke seg: prosjekt-id-en som brukes med workload_identity_provider
når vi autentiserer oss mot GCP for å oppdatere Cloud Run-konfigurasjonen vår
kan finnes på følgende vis:
gcloud projects list \
--filter="$(gcloud config get-value project)" \
--format="value(PROJECT_NUMBER)"
Det skal normalt ikke være nødvendig å hverken bygge eller publisere Docker images fra lokal maskin. Allikevel ønsker man av og til å gjøre nettopp det - kanskje for å sjekke akkurat hvilke ting som ikke fungerer eller lignende.
Bygging er rett frem:
make docker
For å publisere må du først logge deg selv inn i GCP, og deretter sørge for at Docker-prosessen også får være med på moroa:
gcloud auth login
gcloud auth configure-docker europe-north1-docker.pkg.dev