Skip to content

Commit

Permalink
Merge pull request #63 from navikt/knast-doc
Browse files Browse the repository at this point in the history
Generell knast-dokumentasjon
  • Loading branch information
vebjorre authored Dec 20, 2024
2 parents 33cfe95 + 3a00600 commit 30b2ab3
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 3 deletions.
4 changes: 4 additions & 0 deletions docs/analyse/knast/generelt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Knast er ditt eget personlige utviklingsmiljø for analyse og behandling av data som bygges på toppen av [Cloud Workstations](https://cloud.google.com/workstations) i GCP. Med Knast kan du både jobbe i din foretrukne IDE i browser eller remote via din lokale VSCode eller Jetbrains IDE. Alt av oppsett rundt Knast styres fra "Min Knast" på Datamarkedsplassen.


Hver Knast kjører i et felles workstations-cluster i prosjektet knada-gcp og har derfor tilgang til datakilder on-prem på linje med de andre tjenestene i KNADA, men du må selv oppgi hvilke kilder og URLer du skal snakke med. [Les mer om nettverk her](./nettverk.md).
22 changes: 22 additions & 0 deletions docs/analyse/knast/nettverk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
Siden Knast kjører i knada-gcp er det mulig å nå det meste av tjenester i Nav og alt som ligger på internett. For å få til dette må du selv oppgi hva du ønsker å snakke med.

## Åpninger mot on-prem
Det er ønskelig å begrense åpninger mot on-prem så mye som mulig. Derfor har du kun tilgang til de adressene du oppgir i din [Knast-konfigurasjon](https://data.ansatt.nav.no/user/workstation). Her velger du fra en dropdown-liste med mulige kilder. Du også velge nais-ingresser som "intern.nav.no", hvis du skal åpne mot f.eks https://teamkatalogen.intern.nav.no. Dersom du ikke finner kilden du trenger ta kontakt med #nada på slack.

## Åpninger mot internett
Det er også stengt av mot internett som default. Nada tilbyr en liste med åpninger som de aller fleste har behov for. Utover den må du legge til URLer du vil snakke med selv under fanen "URL-håndtering". URLene må oppgis med [syntax beskrevet her](https://cloud.google.com/secure-web-proxy/docs/url-list-syntax-reference). Det er god praksis å åpne for minst mulig, for eksempel er `github.com/navikt/*` bedre enn `github.com/*`.
Det er ikke alltid åpenbart hvilke URLer forskjellige klienter og extensions prøver å snakke med. Hvis du opplever at noe ikke fungerer som forventet, sjekk ut "Blokkerte URLer" under "URL-håndtering". Der vil du se URLer som har blitt blokkert og kanskje må legges til i allowlisten din for full virk. Husk å ha et bevisst forhold til hva du åpner for.

## PyPI proxy
Vi har laget en global deny regel mot pypi.org. For å kunne laste ned Python pakker ønsker vi at dere går via vår pypi-proxy.
Vi har konfigurert en global pip config /etc/pip.conf, som ikke tar stilling til hvilken package manager (uv, pip, poetry) du bruker, så lenge den er kompatibel med pip.
For å kunne bruke denne configen må du kjøre følgende kommandoer:
```
$ gcloud auth login --update-adc
$ pypi-auth
```

### gcloud auth login --update-adc
Med denne kommandoen logger du inn på Google Cloud med din personlige bruker og oppdaterer Application Default Credentials (ADC).
### pypi-auth
Denne kommandoen vil konfigurere .netrc filen i ditt $HOME directory for pypi artifact registry ved å bruke en autentiseringsnøkkel som er hentet fra gcloud auth login --update-adc. Denne nøkkelen er kortlevd, 1 time, og du må oppdatere den etter denne perioden ved å kjøre pypi-auth på nytt.
28 changes: 28 additions & 0 deletions docs/analyse/knast/oppsett.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
!!! info "For å nå din Knast må du ha naisdevice."

For å opprette en personlig Knast åpner du [Datamarkedsplassen](https://data.ansatt.nav.no/), logger inn og går til "Min Knast" i hamburgermenyen. Der vil du få opp en dialog som tar deg gjennom oppsettet første gang. Alle valg kan endres også etter at Knasten er opprettet.

## Dette må du velge
### Maskintype
Du vet best hvor stor maskin du trenger. Husk at store maskiner er dyrere i drift. Så hvis du er usikker er det lurt å starte smått.
### Utviklingsmiljø
Hvilken IDE vil du jobbe i? Nada tilbyr noen standardimages, men det er mulig å lage custom images i https://github.com/navikt/knast-images.
### Onprem-kilder (valgfritt)
Hvilke onprem-kilder har du behov for å snakke med? Her kan du også velge nais-ingresser som "intern.nav.no", hvis du skal åpne mot f.eks https://teamkatalogen.intern.nav.no
### Internett-URLer (valgfritt)
Her legger du til URL-stier som du trenger å snakke med på internett. Det er god praksis å åpne for minst mulig, for eksempel er `github.com/navikt/*` bedre enn `github.com/*`. [Les mer om syntax her](https://cloud.google.com/secure-web-proxy/docs/url-list-syntax-reference).
### Sentralt administrerte åpninger
Nada vedlikeholder en liste med åpninger mot internett som vi anbefaler alle å ha. Ønsker du ingen eller bare noen fra den lista kan du velge skru av og velge alle åpninger selv.

## Første gang du bruker din Knast
### Start Knast
Når du har trykket på "Start opprettelse av Knast" og ventet i noen minutter får du muligheten til å starte Knasten din. Det tar et par minutter å starte Knasten. Når den er klar får du en lenke som du kan åpne for å jobbe i browseren din.

### Python
For å kjøre pythonkode bør du installere en egen pythonversjon. [Les hvordan det gjøres best med uv](./uv-oppsett.md).

### Extensions
For at VSCode skal fungere godt må du installere noen extensions. Om du bruker VSCode i browser kjører du egentlig [open source versjonen](https://cloud.google.com/workstations/docs/base-editor-overview) som kalles Code - OSS. Den største forskjellen mellom disse to er at Code - OSS ikke støtter alle extensions som VSCode gjør. Om du derimot kobler til remote fra din lokale VSCode vil du kunne bruke alle extensions. Merk at mange extensions trenger å snakke med internett. Så hvis du opplever problemer med noen av dem bør du følge med på "blokkerte URLer" på [Min Knast](https://data.ansatt.nav.no/user/workstation). [Les mer om nettverk her](./nettverk.md).

### Generelle råd
Andre ting verdt å tenke på er nbstripout, dependabot og autentisering mot github og gcp. Her gjelder det samme som i [Generelle råd for Jupyterhub](../notebook/generelt.md).
9 changes: 6 additions & 3 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ nav:
- Kvalitetssikre data (Soda): dataprodukter/kvalitetssikring.md
- Legge til et dataprodukt: dataprodukter/dele/dataprodukt.md
- Tilgangsstyring: dataprodukter/tilgangsstyring.md
- Analysering:
- Analyse:
- Kom i gang: analyse/kom-i-gang.md
- Jupyter notebooks:
- Hva er Jupyter notebooks?: analyse/notebook/index.md
Expand All @@ -92,12 +92,15 @@ nav:
- KNADA Airflow: analyse/airflow/knada-airflow.md
- Google managed Airflow (Cloud Composer): analyse/airflow/managed-airflow.md
- Knast:
- Hva er Knast?: analyse/knast/generelt.md
- Komme i gang: analyse/knast/oppsett.md
- Oppsett av virtuelt miljø med uv: analyse/knast/uv-oppsett.md
- Nettverk: analyse/knast/nettverk.md
- Metabase: analyse/metabase.md
- Datafortellinger: analyse/datafortellinger.md
- KNADA VM: analyse/knada-vm.md
- Koble sammen pseudonymisert tabeller: analyse/koble-pseudonymiserte.md
- Allow listing av trafikk: analyse/allowlisting.md
- Koble sammen pseudonymiserte tabeller: analyse/koble-pseudonymiserte.md
- Allowlisting av trafikk: analyse/allowlisting.md
- Google Secret Manager: analyse/google-secret-manager.md
- Kodeeksempler: analyse/eksempler.md
- TDV driver: analyse/tdv.md
Expand Down

0 comments on commit 30b2ab3

Please sign in to comment.