From 714eb27ee696a9b03540f22718e581340891186a Mon Sep 17 00:00:00 2001 From: Mikael Bjerga Date: Wed, 15 Jan 2025 15:43:12 +0100 Subject: [PATCH] Bruk Aiven Redis under henting av data til preutfylling --- .github/workflows/redis.yml | 27 +++++++++++++++++++ .../inntektsmelding/api/App.kt | 9 ++++--- .../inntektsmelding/api/Env.kt | 1 + .../inntektsmelding/api/AuthorizationTest.kt | 2 +- .../inntektsmelding/api/utils/TestUtils.kt | 2 +- .../rapidsrivers/redis/RedisConnection.kt | 4 +-- .../inntektsmelding/trengerservice/App.kt | 2 +- .../inntektsmelding/trengerservice/Env.kt | 2 +- config/api/dev-gcp.yml | 1 + config/nais.yml | 5 ++++ config/trengerservice/dev-gcp.yml | 6 +---- redis/config.yml | 11 ++++++++ redis/dev.yml | 2 ++ 13 files changed, 60 insertions(+), 14 deletions(-) create mode 100644 .github/workflows/redis.yml create mode 100644 redis/config.yml create mode 100644 redis/dev.yml diff --git a/.github/workflows/redis.yml b/.github/workflows/redis.yml new file mode 100644 index 0000000000..b80c5a79f3 --- /dev/null +++ b/.github/workflows/redis.yml @@ -0,0 +1,27 @@ +name: Deploy Redis + +on: + push: + branches: + - main + # midlertidig for testing + - dev/** + paths: + - redis/** + +jobs: + deploy: + runs-on: ubuntu-latest + permissions: + id-token: write + strategy: + matrix: +# env: [dev, prod] + env: [dev] + steps: + - uses: actions/checkout@v4 + - uses: nais/deploy/actions/deploy@v2 + env: + CLUSTER: ${{ matrix.env }}-gcp + RESOURCE: redis/config.yml + VARS: redis/{{ matrix.env }}.yml diff --git a/apps/api/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/App.kt b/apps/api/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/App.kt index f50817a8e0..096a24468c 100644 --- a/apps/api/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/App.kt +++ b/apps/api/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/App.kt @@ -58,22 +58,25 @@ object Routes { fun main() { val rapid = RapidApplication.create(System.getenv()) + val aivenRedisConnection = RedisConnection(Env.Redis.aivenUri) val redisConnection = RedisConnection(Env.Redis.url) embeddedServer( factory = Netty, port = 8080, - module = { apiModule(rapid, redisConnection) }, + module = { apiModule(rapid, aivenRedisConnection, redisConnection) }, ).start(wait = true) rapid .registerShutdownLifecycle { + aivenRedisConnection.close() redisConnection.close() }.start() } fun Application.apiModule( rapid: RapidsConnection, + aivenRedisConnection: RedisConnection, redisConnection: RedisConnection, ) { val tilgangskontroll = @@ -112,8 +115,8 @@ fun Application.apiModule( authenticate { route(Routes.PREFIX) { - hentForespoersel(rapid, tilgangskontroll, redisConnection) - hentForespoerselIdListe(rapid, tilgangskontroll, redisConnection) + hentForespoersel(rapid, tilgangskontroll, aivenRedisConnection) + hentForespoerselIdListe(rapid, tilgangskontroll, aivenRedisConnection) inntektRoute(rapid, tilgangskontroll, redisConnection) inntektSelvbestemtRoute(rapid, tilgangskontroll, redisConnection) innsending(rapid, tilgangskontroll, redisConnection) diff --git a/apps/api/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/Env.kt b/apps/api/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/Env.kt index b176bad829..0dfb63b27a 100644 --- a/apps/api/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/Env.kt +++ b/apps/api/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/Env.kt @@ -9,6 +9,7 @@ object Env { } object Redis { + val aivenUri: String = "REDIS_URI_INNTEKTSMELDING".fromEnv() val url: String = "REDIS_URL".fromEnv() } } diff --git a/apps/api/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/AuthorizationTest.kt b/apps/api/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/AuthorizationTest.kt index 1ba30c99f0..01b6127d3b 100644 --- a/apps/api/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/AuthorizationTest.kt +++ b/apps/api/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/AuthorizationTest.kt @@ -48,7 +48,7 @@ class AuthorizationTest : ApiTest() { val path = "/test/auth" application { - apiModule(mockk(relaxed = true), mockk()) + apiModule(mockk(relaxed = true), mockk(), mockk()) routing { authenticate { diff --git a/apps/api/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/utils/TestUtils.kt b/apps/api/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/utils/TestUtils.kt index ffebdeba75..e159409dee 100644 --- a/apps/api/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/utils/TestUtils.kt +++ b/apps/api/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/utils/TestUtils.kt @@ -39,7 +39,7 @@ abstract class ApiTest : MockAuthToken() { fun testApi(block: suspend TestClient.() -> Unit): Unit = testApplication { application { - apiModule(mockk(relaxed = true), mockRedisConnection) + apiModule(mockk(relaxed = true), mockRedisConnection, mockRedisConnection) } val testClient = TestClient(this, ::mockAuthToken) diff --git a/apps/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/rapidsrivers/redis/RedisConnection.kt b/apps/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/rapidsrivers/redis/RedisConnection.kt index c89d684dcc..aebace7a1f 100644 --- a/apps/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/rapidsrivers/redis/RedisConnection.kt +++ b/apps/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/rapidsrivers/redis/RedisConnection.kt @@ -6,9 +6,9 @@ import io.lettuce.core.api.sync.RedisCommands import no.nav.helsearbeidsgiver.utils.collection.mapValuesNotNull class RedisConnection( - redisUrl: String, + redisUri: String, ) { - private val client: RedisClient = RedisClient.create(redisUrl) + private val client: RedisClient = RedisClient.create(redisUri) private val connection: StatefulRedisConnection = client.connect() private val syncCommands: RedisCommands = connection.sync() diff --git a/apps/trengerservice/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/trengerservice/App.kt b/apps/trengerservice/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/trengerservice/App.kt index cc77ea82ff..1558574c64 100644 --- a/apps/trengerservice/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/trengerservice/App.kt +++ b/apps/trengerservice/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/trengerservice/App.kt @@ -13,7 +13,7 @@ import no.nav.helsearbeidsgiver.utils.log.logger private val logger = "helsearbeidsgiver-im-hent-forespoersel-service".logger() fun main() { - val redisConnection = RedisConnection(Env.redisUrl) + val redisConnection = RedisConnection(Env.redisUri) RapidApplication .create(System.getenv()) diff --git a/apps/trengerservice/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/trengerservice/Env.kt b/apps/trengerservice/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/trengerservice/Env.kt index c7b790003b..0c25c28900 100644 --- a/apps/trengerservice/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/trengerservice/Env.kt +++ b/apps/trengerservice/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/trengerservice/Env.kt @@ -3,5 +3,5 @@ package no.nav.helsearbeidsgiver.inntektsmelding.trengerservice import no.nav.helsearbeidsgiver.felles.utils.fromEnv object Env { - val redisUrl = "REDIS_URL".fromEnv() + val redisUri = "REDIS_URI_INNTEKTSMELDING".fromEnv() } diff --git a/config/api/dev-gcp.yml b/config/api/dev-gcp.yml index f98a80b002..e5a4914236 100644 --- a/config/api/dev-gcp.yml +++ b/config/api/dev-gcp.yml @@ -3,6 +3,7 @@ idportenEnabled: true azure: enabled: true ingress: https://helsearbeidsgiver-im-api.intern.dev.nav.no +redisAccess: read env: - name: REDIS_URL value: redis://helsearbeidsgiver-redis.helsearbeidsgiver.svc.cluster.local:6379/0 diff --git a/config/nais.yml b/config/nais.yml index 3d5b926f42..5d76c7986a 100644 --- a/config/nais.yml +++ b/config/nais.yml @@ -57,6 +57,11 @@ spec: application: enabled: {{ azure.enabled }} {{/if}} + {{#if redisAccess}} + redis: + instance: inntektsmelding + access: {{ redisAccess }} + {{/if}} {{#if database}} gcp: sqlInstances: diff --git a/config/trengerservice/dev-gcp.yml b/config/trengerservice/dev-gcp.yml index 47b7d8d766..09a1dc4a7b 100644 --- a/config/trengerservice/dev-gcp.yml +++ b/config/trengerservice/dev-gcp.yml @@ -1,6 +1,2 @@ kafkaPool: nav-dev -env: -- name: REDIS_URL - value: redis://helsearbeidsgiver-redis.helsearbeidsgiver.svc.cluster.local:6379/0 -apps: - - name: helsearbeidsgiver-redis +redisAccess: readwrite diff --git a/redis/config.yml b/redis/config.yml new file mode 100644 index 0000000000..b7959663dc --- /dev/null +++ b/redis/config.yml @@ -0,0 +1,11 @@ +apiVersion: aiven.io/v1alpha1 +kind: Redis +metadata: + labels: + app: redis-inntektsmelding + team: helsearbeidsgiver + name: redis-helsearbeidsgiver-inntektsmelding + namespace: helsearbeidsgiver +spec: + project: {{ project }} + plan: {{ plan }} diff --git a/redis/dev.yml b/redis/dev.yml new file mode 100644 index 0000000000..4387a111b2 --- /dev/null +++ b/redis/dev.yml @@ -0,0 +1,2 @@ +project: nav-dev +plan: hobbyist