Skip to content

Commit 76e6a23

Browse files
Bruk Aiven Valkey (#829)
* Bruk Aiven Redis under henting av data til preutfylling * Bygg Redis-URI selv * Bruk Aiven Redis overalt * Fjern unødvendig linje i konfig * Legg til prod-konfig * Bytt fra Redis til Valkey * Endre konfigurasjon til å bruke valkey istedenfor redis * Fiks appkonfigurasjon * Fjern midlertidig workflow trigger --------- Co-authored-by: Morten Byhring <[email protected]>
1 parent 217ead4 commit 76e6a23

File tree

47 files changed

+192
-122
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+192
-122
lines changed

.github/workflows/valkey.yml

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Deploy Valkey
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- valkey/**
9+
10+
jobs:
11+
deploy:
12+
runs-on: ubuntu-latest
13+
permissions:
14+
id-token: write
15+
strategy:
16+
matrix:
17+
env: [dev, prod]
18+
steps:
19+
- uses: actions/checkout@v4
20+
- uses: nais/deploy/actions/deploy@v2
21+
env:
22+
CLUSTER: ${{ matrix.env }}-gcp
23+
RESOURCE: valkey/config.yml
24+
VARS: valkey/${{ matrix.env }}.yml

apps/aktiveorgnrservice/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aktiveorgnrservice/App.kt

+7-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,13 @@ import no.nav.helsearbeidsgiver.utils.log.logger
1212
private val logger = "helsearbeidsgiver-im-aktiveorgnrservice".logger()
1313

1414
fun main() {
15-
val redisConnection = RedisConnection(Env.redisUrl)
15+
val redisConnection =
16+
RedisConnection(
17+
host = Env.redisHost,
18+
port = Env.redisPort,
19+
username = Env.redisUsername,
20+
password = Env.redisPassword,
21+
)
1622

1723
RapidApplication
1824
.create(System.getenv())

apps/aktiveorgnrservice/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/aktiveorgnrservice/Env.kt

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,8 @@ package no.nav.helsearbeidsgiver.inntektsmelding.aktiveorgnrservice
33
import no.nav.helsearbeidsgiver.felles.utils.fromEnv
44

55
object Env {
6-
val redisUrl = "REDIS_URL".fromEnv()
6+
val redisHost = "REDIS_HOST_INNTEKTSMELDING".fromEnv()
7+
val redisPort = "REDIS_PORT_INNTEKTSMELDING".fromEnv().toInt()
8+
val redisUsername = "REDIS_USERNAME_INNTEKTSMELDING".fromEnv()
9+
val redisPassword = "REDIS_PASSWORD_INNTEKTSMELDING".fromEnv()
710
}

apps/api/build.gradle.kts

-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ tasks {
66
test {
77
environment("IDPORTEN_WELL_KNOWN_URL", "http://localhost:6666/idporten-issuer/.well-known/openid-configuration")
88
environment("IDPORTEN_AUDIENCE", "aud-localhost")
9-
environment("REDIS_URL", "redis://test_url:6379/0")
109
}
1110
}
1211

apps/api/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/App.kt

+7-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,13 @@ object Routes {
5858

5959
fun main() {
6060
val rapid = RapidApplication.create(System.getenv())
61-
val redisConnection = RedisConnection(Env.Redis.url)
61+
val redisConnection =
62+
RedisConnection(
63+
host = Env.Redis.host,
64+
port = Env.Redis.port,
65+
username = Env.Redis.username,
66+
password = Env.Redis.password,
67+
)
6268

6369
embeddedServer(
6470
factory = Netty,

apps/api/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/api/Env.kt

+6-3
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@ import no.nav.helsearbeidsgiver.felles.utils.fromEnv
44

55
object Env {
66
object Auth {
7-
val discoveryUrl: String = "IDPORTEN_WELL_KNOWN_URL".fromEnv()
8-
val acceptedAudience: List<String> = "IDPORTEN_AUDIENCE".fromEnv().let(::listOf)
7+
val discoveryUrl = "IDPORTEN_WELL_KNOWN_URL".fromEnv()
8+
val acceptedAudience = "IDPORTEN_AUDIENCE".fromEnv().let(::listOf)
99
}
1010

1111
object Redis {
12-
val url: String = "REDIS_URL".fromEnv()
12+
val host = "REDIS_HOST_INNTEKTSMELDING".fromEnv()
13+
val port = "REDIS_PORT_INNTEKTSMELDING".fromEnv().toInt()
14+
val username = "REDIS_USERNAME_INNTEKTSMELDING".fromEnv()
15+
val password = "REDIS_PASSWORD_INNTEKTSMELDING".fromEnv()
1316
}
1417
}

apps/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/rapidsrivers/redis/RedisConnection.kt

+15-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,27 @@
11
package no.nav.helsearbeidsgiver.felles.rapidsrivers.redis
22

33
import io.lettuce.core.RedisClient
4+
import io.lettuce.core.RedisURI
45
import io.lettuce.core.api.StatefulRedisConnection
56
import io.lettuce.core.api.sync.RedisCommands
67
import no.nav.helsearbeidsgiver.utils.collection.mapValuesNotNull
78

89
class RedisConnection(
9-
redisUrl: String,
10+
host: String,
11+
port: Int,
12+
username: String,
13+
password: String,
1014
) {
11-
private val client: RedisClient = RedisClient.create(redisUrl)
15+
private val client: RedisClient =
16+
RedisURI
17+
.builder()
18+
.withSsl(true)
19+
.withHost(host)
20+
.withPort(port)
21+
.withAuthentication(username, password)
22+
.withDatabase(0)
23+
.build()
24+
.let(RedisClient::create)
1225
private val connection: StatefulRedisConnection<String, String> = client.connect()
1326
private val syncCommands: RedisCommands<String, String> = connection.sync()
1427

apps/felles/src/testFixtures/kotlin/no/nav/helsearbeidsgiver/felles/test/mock/MockRedis.kt

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package no.nav.helsearbeidsgiver.felles.test.mock
22

33
import io.lettuce.core.RedisClient
4+
import io.lettuce.core.RedisURI
45
import io.lettuce.core.api.sync.RedisCommands
56
import io.mockk.every
67
import io.mockk.mockk
@@ -16,8 +17,8 @@ class MockRedis(
1617
private val mockCommands = mockk<RedisCommands<String, String>>()
1718
private val redis =
1819
mockStatic(RedisClient::class) {
19-
every { RedisClient.create(any<String>()) } returns mockRedisClient(mockCommands)
20-
RedisConnection("")
20+
every { RedisClient.create(any<RedisURI>()) } returns mockRedisClient(mockCommands)
21+
RedisConnection("host", 0, "username", "password")
2122
}
2223

2324
val store: RedisStore

apps/felles/src/testFixtures/kotlin/no/nav/helsearbeidsgiver/felles/test/mock/MockRedisClient.kt

+3-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package no.nav.helsearbeidsgiver.felles.test.mock
22

33
import io.lettuce.core.KeyValue
44
import io.lettuce.core.RedisClient
5+
import io.lettuce.core.RedisURI
56
import io.lettuce.core.api.StatefulRedisConnection
67
import io.lettuce.core.api.sync.RedisCommands
78
import io.mockk.every
@@ -13,8 +14,8 @@ import no.nav.helsearbeidsgiver.utils.test.mock.mockStatic
1314
fun redisWithMockRedisClient(mockStorageInit: Map<String, String?>): RedisConnection {
1415
val mockCommands = mockk<RedisCommands<String, String>>().setupMock(mockStorageInit)
1516
return mockStatic(RedisClient::class) {
16-
every { RedisClient.create(any<String>()) } returns mockRedisClient(mockCommands)
17-
RedisConnection("")
17+
every { RedisClient.create(any<RedisURI>()) } returns mockRedisClient(mockCommands)
18+
RedisConnection("host", 0, "username", "password")
1819
}
1920
}
2021

apps/innsending/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/innsending/App.kt

+7-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,13 @@ import no.nav.helsearbeidsgiver.utils.log.logger
1313
private val logger = "helsearbeidsgiver-im-innsending".logger()
1414

1515
fun main() {
16-
val redisConnection = RedisConnection(Env.redisUrl)
16+
val redisConnection =
17+
RedisConnection(
18+
host = Env.redisHost,
19+
port = Env.redisPort,
20+
username = Env.redisUsername,
21+
password = Env.redisPassword,
22+
)
1723

1824
RapidApplication
1925
.create(System.getenv())

apps/innsending/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/innsending/Env.kt

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,8 @@ package no.nav.helsearbeidsgiver.inntektsmelding.innsending
33
import no.nav.helsearbeidsgiver.felles.utils.fromEnv
44

55
object Env {
6-
val redisUrl = "REDIS_URL".fromEnv()
6+
val redisHost = "REDIS_HOST_INNTEKTSMELDING".fromEnv()
7+
val redisPort = "REDIS_PORT_INNTEKTSMELDING".fromEnv().toInt()
8+
val redisUsername = "REDIS_USERNAME_INNTEKTSMELDING".fromEnv()
9+
val redisPassword = "REDIS_PASSWORD_INNTEKTSMELDING".fromEnv()
710
}

apps/inntekt-selvbestemt-service/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/inntektselvbestemtservice/App.kt

+7-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,13 @@ import no.nav.helsearbeidsgiver.utils.log.logger
1212
private val logger = "helsearbeidsgiver-im-inntektselvbestemtservice".logger()
1313

1414
fun main() {
15-
val redisConnection = RedisConnection(Env.redisUrl)
15+
val redisConnection =
16+
RedisConnection(
17+
host = Env.redisHost,
18+
port = Env.redisPort,
19+
username = Env.redisUsername,
20+
password = Env.redisPassword,
21+
)
1622

1723
RapidApplication
1824
.create(System.getenv())

apps/inntekt-selvbestemt-service/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/inntektselvbestemtservice/Env.kt

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,8 @@ package no.nav.helsearbeidsgiver.inntektsmelding.inntektselvbestemtservice
33
import no.nav.helsearbeidsgiver.felles.utils.fromEnv
44

55
object Env {
6-
val redisUrl = "REDIS_URL".fromEnv()
6+
val redisHost = "REDIS_HOST_INNTEKTSMELDING".fromEnv()
7+
val redisPort = "REDIS_PORT_INNTEKTSMELDING".fromEnv().toInt()
8+
val redisUsername = "REDIS_USERNAME_INNTEKTSMELDING".fromEnv()
9+
val redisPassword = "REDIS_PASSWORD_INNTEKTSMELDING".fromEnv()
710
}

apps/inntektservice/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/inntektservice/App.kt

+7-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,13 @@ import no.nav.helsearbeidsgiver.utils.log.logger
1212
private val logger = "helsearbeidsgiver-im-inntektservice".logger()
1313

1414
fun main() {
15-
val redisConnection = RedisConnection(Env.redisUrl)
15+
val redisConnection =
16+
RedisConnection(
17+
host = Env.redisHost,
18+
port = Env.redisPort,
19+
username = Env.redisUsername,
20+
password = Env.redisPassword,
21+
)
1622

1723
RapidApplication
1824
.create(System.getenv())

apps/inntektservice/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/inntektservice/Env.kt

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,8 @@ package no.nav.helsearbeidsgiver.inntektsmelding.inntektservice
33
import no.nav.helsearbeidsgiver.felles.utils.fromEnv
44

55
object Env {
6-
val redisUrl = "REDIS_URL".fromEnv()
6+
val redisHost = "REDIS_HOST_INNTEKTSMELDING".fromEnv()
7+
val redisPort = "REDIS_PORT_INNTEKTSMELDING".fromEnv().toInt()
8+
val redisUsername = "REDIS_USERNAME_INNTEKTSMELDING".fromEnv()
9+
val redisPassword = "REDIS_PASSWORD_INNTEKTSMELDING".fromEnv()
710
}

apps/integrasjonstest/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/integrasjonstest/utils/ContainerTest.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ abstract class ContainerTest {
1717
private val topic = "helsearbeidsgiver.inntektsmelding"
1818

1919
private val kafkaContainer = ConfluentKafkaContainer(DockerImageName.parse("confluentinc/cp-kafka:7.8.0"))
20-
val redisContainer = RedisContainer(DockerImageName.parse("redis:7"))
20+
val redisContainer = RedisContainer(DockerImageName.parse("redis:latest"))
2121
val postgresContainerOne = postgresContainer()
2222
val postgresContainerTwo = postgresContainer()
2323

apps/integrasjonstest/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/integrasjonstest/utils/EndToEndTest.kt

+8-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package no.nav.helsearbeidsgiver.inntektsmelding.integrasjonstest.utils
33
import com.github.navikt.tbd_libs.rapids_and_rivers.JsonMessage
44
import com.github.navikt.tbd_libs.rapids_and_rivers_api.MessageProblems
55
import io.kotest.matchers.nulls.shouldNotBeNull
6+
import io.lettuce.core.RedisClient
7+
import io.lettuce.core.RedisURI
68
import io.micrometer.core.instrument.simple.SimpleMeterRegistry
79
import io.mockk.clearAllMocks
810
import io.mockk.coEvery
@@ -70,6 +72,7 @@ import no.nav.helsearbeidsgiver.utils.json.parseJson
7072
import no.nav.helsearbeidsgiver.utils.json.toJson
7173
import no.nav.helsearbeidsgiver.utils.test.date.august
7274
import no.nav.helsearbeidsgiver.utils.test.date.mai
75+
import no.nav.helsearbeidsgiver.utils.test.mock.mockStatic
7376
import no.nav.helsearbeidsgiver.utils.test.wrapper.genererGyldig
7477
import no.nav.helsearbeidsgiver.utils.wrapper.Fnr
7578
import org.intellij.lang.annotations.Language
@@ -156,7 +159,11 @@ abstract class EndToEndTest : ContainerTest() {
156159
return@lazy withRetries(
157160
feilmelding = "Klarte ikke koble til Redis.",
158161
) {
159-
RedisConnection(redisContainer.redisURI)
162+
// Hijacker RedisClient her pga. vanskeligheter med å sette opp RedisContainer med SSL og autentisering
163+
mockStatic(RedisClient::class) {
164+
every { RedisClient.create(any<RedisURI>()) } returns RedisClient.create(redisContainer.redisURI)
165+
RedisConnection("host", 0, "username", "password")
166+
}
160167
}
161168
}
162169

apps/selvbestemt-hent-im-service/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/selvbestemthentimservice/App.kt

+7-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,13 @@ import no.nav.helsearbeidsgiver.utils.log.logger
1212
private val logger = "im-selvbestemt-hent-im-service".logger()
1313

1414
fun main() {
15-
val redisConnection = RedisConnection(Env.redisUrl)
15+
val redisConnection =
16+
RedisConnection(
17+
host = Env.redisHost,
18+
port = Env.redisPort,
19+
username = Env.redisUsername,
20+
password = Env.redisPassword,
21+
)
1622

1723
RapidApplication
1824
.create(System.getenv())

apps/selvbestemt-hent-im-service/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/selvbestemthentimservice/Env.kt

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,8 @@ package no.nav.helsearbeidsgiver.inntektsmelding.selvbestemthentimservice
33
import no.nav.helsearbeidsgiver.felles.utils.fromEnv
44

55
object Env {
6-
val redisUrl = "REDIS_URL".fromEnv()
6+
val redisHost = "REDIS_HOST_INNTEKTSMELDING".fromEnv()
7+
val redisPort = "REDIS_PORT_INNTEKTSMELDING".fromEnv().toInt()
8+
val redisUsername = "REDIS_USERNAME_INNTEKTSMELDING".fromEnv()
9+
val redisPassword = "REDIS_PASSWORD_INNTEKTSMELDING".fromEnv()
710
}

apps/selvbestemt-lagre-im-service/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/selvbestemtlagreimservice/App.kt

+7-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,13 @@ import no.nav.helsearbeidsgiver.utils.log.logger
1212
private val logger = "im-selvbestemt-lagre-im-service".logger()
1313

1414
fun main() {
15-
val redisConnection = RedisConnection(Env.redisUrl)
15+
val redisConnection =
16+
RedisConnection(
17+
host = Env.redisHost,
18+
port = Env.redisPort,
19+
username = Env.redisUsername,
20+
password = Env.redisPassword,
21+
)
1622

1723
RapidApplication
1824
.create(System.getenv())

apps/selvbestemt-lagre-im-service/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/selvbestemtlagreimservice/Env.kt

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,8 @@ package no.nav.helsearbeidsgiver.inntektsmelding.selvbestemtlagreimservice
33
import no.nav.helsearbeidsgiver.felles.utils.fromEnv
44

55
object Env {
6-
val redisUrl = "REDIS_URL".fromEnv()
6+
val redisHost = "REDIS_HOST_INNTEKTSMELDING".fromEnv()
7+
val redisPort = "REDIS_PORT_INNTEKTSMELDING".fromEnv().toInt()
8+
val redisUsername = "REDIS_USERNAME_INNTEKTSMELDING".fromEnv()
9+
val redisPassword = "REDIS_PASSWORD_INNTEKTSMELDING".fromEnv()
710
}

apps/tilgangservice/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/tilgangservice/App.kt

+7-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,13 @@ import no.nav.helsearbeidsgiver.utils.log.logger
1212
private val logger = "helsearbeidsgiver-im-tilgangservice".logger()
1313

1414
fun main() {
15-
val redisConnection = RedisConnection(Env.redisUrl)
15+
val redisConnection =
16+
RedisConnection(
17+
host = Env.redisHost,
18+
port = Env.redisPort,
19+
username = Env.redisUsername,
20+
password = Env.redisPassword,
21+
)
1622

1723
RapidApplication
1824
.create(System.getenv())

apps/tilgangservice/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/tilgangservice/Env.kt

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,8 @@ package no.nav.helsearbeidsgiver.inntektsmelding.tilgangservice
33
import no.nav.helsearbeidsgiver.felles.utils.fromEnv
44

55
object Env {
6-
val redisUrl = "REDIS_URL".fromEnv()
6+
val redisHost = "REDIS_HOST_INNTEKTSMELDING".fromEnv()
7+
val redisPort = "REDIS_PORT_INNTEKTSMELDING".fromEnv().toInt()
8+
val redisUsername = "REDIS_USERNAME_INNTEKTSMELDING".fromEnv()
9+
val redisPassword = "REDIS_PASSWORD_INNTEKTSMELDING".fromEnv()
710
}

apps/trengerservice/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/trengerservice/App.kt

+7-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,13 @@ import no.nav.helsearbeidsgiver.utils.log.logger
1313
private val logger = "helsearbeidsgiver-im-hent-forespoersel-service".logger()
1414

1515
fun main() {
16-
val redisConnection = RedisConnection(Env.redisUrl)
16+
val redisConnection =
17+
RedisConnection(
18+
host = Env.redisHost,
19+
port = Env.redisPort,
20+
username = Env.redisUsername,
21+
password = Env.redisPassword,
22+
)
1723

1824
RapidApplication
1925
.create(System.getenv())

apps/trengerservice/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/trengerservice/Env.kt

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,8 @@ package no.nav.helsearbeidsgiver.inntektsmelding.trengerservice
33
import no.nav.helsearbeidsgiver.felles.utils.fromEnv
44

55
object Env {
6-
val redisUrl = "REDIS_URL".fromEnv()
6+
val redisHost = "REDIS_HOST_INNTEKTSMELDING".fromEnv()
7+
val redisPort = "REDIS_PORT_INNTEKTSMELDING".fromEnv().toInt()
8+
val redisUsername = "REDIS_USERNAME_INNTEKTSMELDING".fromEnv()
9+
val redisPassword = "REDIS_PASSWORD_INNTEKTSMELDING".fromEnv()
710
}

config/aktiveorgnrservice/dev-gcp.yml

+1-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,2 @@
11
kafkaPool: nav-dev
2-
env:
3-
- name: REDIS_URL
4-
value: redis://helsearbeidsgiver-redis.helsearbeidsgiver.svc.cluster.local:6379/0
5-
apps:
6-
- name: helsearbeidsgiver-redis
2+
valkeyAccess: readwrite
+1-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,2 @@
11
kafkaPool: nav-prod
2-
env:
3-
- name: REDIS_URL
4-
value: redis://helsearbeidsgiver-redis.helsearbeidsgiver.svc.cluster.local:6379/0
5-
apps:
6-
- name: helsearbeidsgiver-redis
2+
valkeyAccess: readwrite

0 commit comments

Comments
 (0)