From 0cb853c63a6daf3371868fe95a9f9133729644d5 Mon Sep 17 00:00:00 2001 From: CadeFaulkner Date: Tue, 22 Jul 2025 14:18:44 +0100 Subject: [PATCH 1/4] Add PostgreSQL container configuration and update image to 17.5 --- .../values.dev.template.yaml | 2 -- charts/opal-file-handler/values.yaml | 8 +++-- docker-compose.yml | 2 +- .../opal/SingletonPostgreSQLContainer.java | 2 +- .../opal/dev/ContainerConfiguration.java | 34 +++++++++++++++++++ .../hmcts/reform/opal/dev/DevApplication.java | 13 +++++++ 6 files changed, 55 insertions(+), 6 deletions(-) create mode 100644 src/test/java/uk/gov/hmcts/reform/opal/dev/ContainerConfiguration.java create mode 100644 src/test/java/uk/gov/hmcts/reform/opal/dev/DevApplication.java diff --git a/charts/opal-file-handler/values.dev.template.yaml b/charts/opal-file-handler/values.dev.template.yaml index 52bcec2b..084e1fad 100644 --- a/charts/opal-file-handler/values.dev.template.yaml +++ b/charts/opal-file-handler/values.dev.template.yaml @@ -19,5 +19,3 @@ java: OPAL_FILE_DB_PORT: 5432 RUN_DB_MIGRATION_ON_STARTUP: true FLYWAY_LOCATIONS: classpath:db/migration/allEnvs - postgresql: - enabled: true diff --git a/charts/opal-file-handler/values.yaml b/charts/opal-file-handler/values.yaml index c7320201..d764678b 100644 --- a/charts/opal-file-handler/values.yaml +++ b/charts/opal-file-handler/values.yaml @@ -17,7 +17,11 @@ java: - name: file-handler-POSTGRES-USER alias: OPAL_FILE_DB_USERNAME - name: file-handler-POSTGRES-DATABASE - alias: OPAL_FILE_DB_NAME - + alias: OPAL_FILE_DB_NAME + environment: RUN_DB_MIGRATION_ON_STARTUP: true + postgresql: + enabled: true + image: + tag: '17.5.0' diff --git a/docker-compose.yml b/docker-compose.yml index 1c5573aa..974e98f4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ services: opal-file-db: container_name: opal-file-db - image: postgres:16 + image: postgres:17.5 restart: always environment: - POSTGRES_DB=opal-file-db diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/opal/SingletonPostgreSQLContainer.java b/src/integrationTest/java/uk/gov/hmcts/reform/opal/SingletonPostgreSQLContainer.java index bed55d57..589cb01f 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/opal/SingletonPostgreSQLContainer.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/opal/SingletonPostgreSQLContainer.java @@ -5,7 +5,7 @@ public class SingletonPostgreSQLContainer { private static final PostgreSQLContainer INSTANCE = - new PostgreSQLContainer<>("postgres:17.0") + new PostgreSQLContainer<>("postgres:17.5") .withDatabaseName("testdb") .withUsername("testuser") .withPassword("testpass"); diff --git a/src/test/java/uk/gov/hmcts/reform/opal/dev/ContainerConfiguration.java b/src/test/java/uk/gov/hmcts/reform/opal/dev/ContainerConfiguration.java new file mode 100644 index 00000000..a501a471 --- /dev/null +++ b/src/test/java/uk/gov/hmcts/reform/opal/dev/ContainerConfiguration.java @@ -0,0 +1,34 @@ +package uk.gov.hmcts.reform.opal.dev; + +import com.github.dockerjava.api.model.ExposedPort; +import com.github.dockerjava.api.model.HostConfig; +import com.github.dockerjava.api.model.PortBinding; +import com.github.dockerjava.api.model.Ports; +import org.springframework.boot.devtools.restart.RestartScope; +import org.springframework.boot.test.context.TestConfiguration; +import org.springframework.boot.testcontainers.service.connection.ServiceConnection; +import org.springframework.context.annotation.Bean; +import org.testcontainers.containers.PostgreSQLContainer; + +@TestConfiguration(proxyBeanMethods = false) +public class ContainerConfiguration { + + private static final int DB_HOST_PORT = 5432; + private static final int DB_EXPOSED_PORT = 5434; + private static final PortBinding DB_PORT_BINDING = + new PortBinding(Ports.Binding.bindPort(DB_HOST_PORT), new ExposedPort(DB_EXPOSED_PORT)); + + @Bean + @ServiceConnection + @RestartScope + PostgreSQLContainer databaseContainer() { + return new PostgreSQLContainer<>("postgres:17.5") + .withCreateContainerCmdModifier(cmd -> + cmd.withHostConfig(new HostConfig().withPortBindings(DB_PORT_BINDING))) + .withExposedPorts(DB_EXPOSED_PORT) + .withDatabaseName("opal-file-db") + .withUsername("opal-file") + .withPassword("opal-file") + .withReuse(true); + } +} diff --git a/src/test/java/uk/gov/hmcts/reform/opal/dev/DevApplication.java b/src/test/java/uk/gov/hmcts/reform/opal/dev/DevApplication.java new file mode 100644 index 00000000..8eb0b7e4 --- /dev/null +++ b/src/test/java/uk/gov/hmcts/reform/opal/dev/DevApplication.java @@ -0,0 +1,13 @@ +package uk.gov.hmcts.reform.opal.dev; + +import org.springframework.boot.SpringApplication; +import uk.gov.hmcts.reform.opal.Application; + +public class DevApplication { + + public static void main(String[] args) { + SpringApplication.from(Application::main) + .with(ContainerConfiguration.class) + .run(args); + } +} From 425d472cec98336a93116c151480a48e10f79a0b Mon Sep 17 00:00:00 2001 From: hmcts-jenkins-cnp <60659747+hmcts-jenkins-cnp[bot]@users.noreply.github.com> Date: Tue, 22 Jul 2025 13:20:07 +0000 Subject: [PATCH 2/4] Bumping chart version/ fixing aliases --- charts/opal-file-handler/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/opal-file-handler/Chart.yaml b/charts/opal-file-handler/Chart.yaml index 31a84dbf..d1da4c59 100644 --- a/charts/opal-file-handler/Chart.yaml +++ b/charts/opal-file-handler/Chart.yaml @@ -3,7 +3,7 @@ appVersion: "1.0" description: A Helm chart for opal-file-handler App name: opal-file-handler home: https://github.com/hmcts/opal-file-handler -version: 0.0.35 +version: 0.0.36 maintainers: - name: HMCTS opal team dependencies: From d200ebed344a99ad94e05a54d5d653d5f612d31a Mon Sep 17 00:00:00 2001 From: CadeFaulkner Date: Tue, 22 Jul 2025 14:42:18 +0100 Subject: [PATCH 3/4] Update PostgreSQL container configuration with custom container name and port bindings --- .../reform/opal/dev/ContainerConfiguration.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/test/java/uk/gov/hmcts/reform/opal/dev/ContainerConfiguration.java b/src/test/java/uk/gov/hmcts/reform/opal/dev/ContainerConfiguration.java index a501a471..a830aa6b 100644 --- a/src/test/java/uk/gov/hmcts/reform/opal/dev/ContainerConfiguration.java +++ b/src/test/java/uk/gov/hmcts/reform/opal/dev/ContainerConfiguration.java @@ -13,19 +13,20 @@ @TestConfiguration(proxyBeanMethods = false) public class ContainerConfiguration { - private static final int DB_HOST_PORT = 5432; - private static final int DB_EXPOSED_PORT = 5434; - private static final PortBinding DB_PORT_BINDING = - new PortBinding(Ports.Binding.bindPort(DB_HOST_PORT), new ExposedPort(DB_EXPOSED_PORT)); - @Bean @ServiceConnection @RestartScope PostgreSQLContainer databaseContainer() { return new PostgreSQLContainer<>("postgres:17.5") - .withCreateContainerCmdModifier(cmd -> - cmd.withHostConfig(new HostConfig().withPortBindings(DB_PORT_BINDING))) - .withExposedPorts(DB_EXPOSED_PORT) + .withCreateContainerCmdModifier(cmd -> { + cmd.withName("test-container-opal-file-db"); + cmd.withHostConfig( + new HostConfig().withPortBindings( + new PortBinding(Ports.Binding.bindPort(5434), new ExposedPort(5432)) + ) + ); + }) + .withExposedPorts(5432) .withDatabaseName("opal-file-db") .withUsername("opal-file") .withPassword("opal-file") From fd309ca4629dbc0e0a2e9bd1b766c375373569cd Mon Sep 17 00:00:00 2001 From: CadeFaulkner Date: Tue, 22 Jul 2025 16:34:33 +0100 Subject: [PATCH 4/4] Toggle PostgreSQL enabled state in configuration files --- charts/opal-file-handler/values.dev.template.yaml | 2 ++ charts/opal-file-handler/values.yaml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/charts/opal-file-handler/values.dev.template.yaml b/charts/opal-file-handler/values.dev.template.yaml index 084e1fad..c51baa58 100644 --- a/charts/opal-file-handler/values.dev.template.yaml +++ b/charts/opal-file-handler/values.dev.template.yaml @@ -19,3 +19,5 @@ java: OPAL_FILE_DB_PORT: 5432 RUN_DB_MIGRATION_ON_STARTUP: true FLYWAY_LOCATIONS: classpath:db/migration/allEnvs + postgresql: + enabled: true diff --git a/charts/opal-file-handler/values.yaml b/charts/opal-file-handler/values.yaml index d764678b..dfc1765a 100644 --- a/charts/opal-file-handler/values.yaml +++ b/charts/opal-file-handler/values.yaml @@ -22,6 +22,6 @@ java: environment: RUN_DB_MIGRATION_ON_STARTUP: true postgresql: - enabled: true + enabled: false image: tag: '17.5.0'