Skip to content

Commit

Permalink
Removing separate deploy for organisasjon-forvalter DB, replacing wit…
Browse files Browse the repository at this point in the history
…h access to non-NAIS managed DB in GCP.
  • Loading branch information
rfc3092 committed Oct 10, 2024
1 parent 43e49db commit 3b28ebb
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 64 deletions.
20 changes: 0 additions & 20 deletions .github/workflows/db.organisasjon-forvalter.yml

This file was deleted.

29 changes: 0 additions & 29 deletions apps/dolly-db/db.organisasjon-forvalter.yml

This file was deleted.

2 changes: 2 additions & 0 deletions apps/organisasjon-forvalter/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ properties {
}

dependencies {
implementation "com.google.cloud:spring-cloud-gcp-starter-secretmanager:$versions.gcpSecretManager"

implementation "no.nav.testnav.libs:avro-schema"
implementation "no.nav.testnav.libs:data-transfer-objects"
implementation "no.nav.testnav.libs:database"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@

spring:
cloud:
gcp:
secretmanager:
enabled: true
project-id: dolly-dev-ff83
config:
import: "sm://"
datasource:
url: jdbc:postgresql://localhost:5432/db-organisasjon-forvalter
username: ${NAV_USERNAME}
url: jdbc:postgresql://localhost:5432/local-organisasjon-forvalter
username: db-organisasjon-forvalter
password: ${sm://db-organisasjon-forvalter}

consumers:
generer-navn-service:
Expand Down
26 changes: 14 additions & 12 deletions docs/gcp_db.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,27 @@ Enkelte applikasjoner bruker en database i GCP som "lokal" database, dvs. i Spri
* `organisasjon-forvalter`
* `pdl-forvalter`

På grunn av begrensninger i NAIS må disse databasene tilhøre en applikasjon. Det finnes en [../apps/dolly-db](../apps/dolly-db) som deployes flere ganger for å opprette og "eie" disse databasene.
Disse er refert til under som `APP_NAME`.

Disse har derfor en noe annen konfigurasjon for kjøring lokalt, og bruker [NAIS CLI](https://doc.nais.io/operate/cli/reference/postgres/).
Applikasjonene har en noe annen konfigurasjon for kjøring lokalt, og bruker [gcloud CLI](https://doc.nais.io/operate/cli/reference/postgres/) og [cloud_sql_proxy](https://cloud.google.com/sql/docs/mysql/sql-proxy).

* Du må være logget på med gcloud CLI.
* ~~Databasene må forberedes for tilgang.~~ **En gang, dette er allerede gjort.**
```
> nais postgres prepare --all-privs <db-app-navn>
> gcloud auth login --update-adc
```
* Du må gi din personlige bruker tilgang til databasen. **En gang.**
* Du må starte `cloud_sql_proxy` med rett `APP_NAME` (se over). **Legg merke til bruken av `local-` her.**
```
> nais postgres grant <db-app-navn>
> cloud_sql_proxy -instances=dolly-dev-ff83:europe-north1:local-APP_NAME=tcp:5432
```
* Tilgang til DB gis gjennom NAIS CLI.
* Hvis du ønsker tilgang direkte til databasen gjennom en annen klient så må du hente ut passordet vha.
```
> nais postgres proxy <db-app-navn>
> gcloud secrets versions access latest --secret=db-APP_NAME
```
* Brukernavnet må være din NAV-ident. Du må enten:
* Sette en miljøvariabel `NAV_USERNAME` til din NAV-ident. **En gang.**
* Endre brukernavnet i den aktuelle application-local.yml fra `${NAV_USERNAME}` til ditt navn. **Hver gang. Og ikke commit'e den endringen.**

Etter at proxy'en er startet kan du da kjøre den aktuelle applikasjonen lokalt.
Etter at proxy'en er startet kan du da kjøre den aktuelle applikasjonen lokalt. Applikasjonen henter selv passord vha. [Spring Cloud GCP](https://spring.io/projects/spring-cloud-gcp) ved oppstart.

Hvis du ønsker tilgang direkte til databasen gjennom en annen klient som IntelliJ så må du hente ut passordet vha.
```
> gcloud secrets versions access latest --secret=db-APP_NAME
```
JDBC connect URL vil være `jdbc:postgresql://localhost:5432/db-APP_NAME`.
2 changes: 2 additions & 0 deletions plugins/java/src/main/groovy/dolly-versions.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ class DollyVersionCatalog {
String springSession = "3.3.1"
String springCloud = "2023.0.3"

String gcpSecretManager = "5.7.0"

String apacheAvro = "1.11.3"
String apacheKafka = "3.7.0"
String apachePoi = "5.3.0"
Expand Down

0 comments on commit 3b28ebb

Please sign in to comment.