diff --git a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchProperties.java b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchProperties.java index b1e22073ff46afac4cb27ba020d19ded60a8f858..a28b6fc83b226cff10ed2c3eded255fe63b297ed 100644 --- a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchProperties.java +++ b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchProperties.java @@ -12,11 +12,21 @@ import lombok.Setter; @Configuration public class OzgCloudElasticsearchProperties { - private String namespace; - private String secretName; - private String secretDataKey; private String secretCredentialsName; - private String host; - private int port; - private String scheme; -} + private String certificateSecretName; + + private OzgCloudElasticsearchServerProperties serverProperties; + + @Getter + @Setter + public class OzgCloudElasticsearchServerProperties { + + private String namespace; + private String secretName; + private String secretDataKey; + private String secretCredentialsName; + private String host; + private int port; + private String scheme; + } +} \ No newline at end of file diff --git a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchSecretHelper.java b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchSecretHelper.java index 2ea1151edddf073f121608e9a8673d5efac7eef6..3528cbd21e392c78573cd69a454a938114338af5 100644 --- a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchSecretHelper.java +++ b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchSecretHelper.java @@ -34,7 +34,7 @@ public class OzgCloudElasticsearchSecretHelper { } private String buildSecretAddress() { - return String.format("%s:%s", properties.getHost(), properties.getPort()); + return String.format("%s:%s", properties.getServerProperties().getHost(), properties.getServerProperties().getPort()); } private String generatePassword() { diff --git a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/common/elasticsearch/ElasticsearchClientConfiguration.java b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/common/elasticsearch/ElasticsearchClientConfiguration.java index 3beb84b2eea82a92aa7d31c0e86fa472dce92742..fdea2f3ed87f2d0a033e9c688b62a5a359ed98bc 100644 --- a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/common/elasticsearch/ElasticsearchClientConfiguration.java +++ b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/common/elasticsearch/ElasticsearchClientConfiguration.java @@ -28,7 +28,7 @@ public class ElasticsearchClientConfiguration { @Bean @Scope("singleton") ElasticsearchClient createElasticsearchClient() { - var credentialsProvider = createCredentialsProvider(elasticSearchProperties.getSecretDataKey(), getPassword()); + var credentialsProvider = createCredentialsProvider(elasticSearchProperties.getServerProperties().getSecretDataKey(), getPassword()); var restClient = buildRestClient(credentialsProvider); var transport = createRestClientTransport(restClient); return new ElasticsearchClient(transport); @@ -47,7 +47,7 @@ public class ElasticsearchClientConfiguration { } private HttpHost createHttpHost() { - return new HttpHost(elasticSearchProperties.getHost(), elasticSearchProperties.getPort(), elasticSearchProperties.getScheme()); + return new HttpHost(elasticSearchProperties.getServerProperties().getHost(), elasticSearchProperties.getServerProperties().getPort(), elasticSearchProperties.getServerProperties().getScheme()); } private RestClientTransport createRestClientTransport(RestClient restClient) { @@ -55,8 +55,8 @@ public class ElasticsearchClientConfiguration { } String getPassword() { - var resource = kubernetesService.getSecretResource(elasticSearchProperties.getNamespace(), elasticSearchProperties.getSecretName()); - var password = MapUtils.getString(resource.get().getStringData(), elasticSearchProperties.getSecretDataKey()); + var resource = kubernetesService.getSecretResource(elasticSearchProperties.getServerProperties().getNamespace(), elasticSearchProperties.getServerProperties().getSecretName()); + var password = MapUtils.getString(resource.get().getStringData(), elasticSearchProperties.getServerProperties().getSecretDataKey()); return password; } } \ No newline at end of file diff --git a/ozgcloud-elasticsearch-operator/src/main/resources/application.yml b/ozgcloud-elasticsearch-operator/src/main/resources/application.yml index 8339830ed51a9f1a1a7c9108f4b276af252887f4..77f1e1bbaf65fcd66330a1df0b37160082b62a4d 100644 --- a/ozgcloud-elasticsearch-operator/src/main/resources/application.yml +++ b/ozgcloud-elasticsearch-operator/src/main/resources/application.yml @@ -1,12 +1,15 @@ ozgcloud: elasticsearch: - namespace: elastic-system - secretName: ozg-search-cluster-es-elastic-user - secretDataKey: elastic secretCredentialsName: elasticsearch-credentials - host: ozg-search-cluster-es-http - port: 9200 - scheme: https + certificateSecretName: elasticsearch-certificate + server: + namespace: elastic-system + secretName: ozg-search-cluster-es-elastic-user + secretDataKey: elastic + host: ozg-search-cluster-es-http + port: 9200 + scheme: https + certificateSecretName: elasticsearch-certificate management: server: diff --git a/ozgcloud-elasticsearch-operator/src/test/java/de/ozgcloud/operator/ElasticsearchSecretBuilderTest.java b/ozgcloud-elasticsearch-operator/src/test/java/de/ozgcloud/operator/ElasticsearchSecretBuilderTest.java index 4477189b5ab74f4756085c085401d30aa972e907..227ff7a9c3960330b0ca7a5005b42e784b33179e 100644 --- a/ozgcloud-elasticsearch-operator/src/test/java/de/ozgcloud/operator/ElasticsearchSecretBuilderTest.java +++ b/ozgcloud-elasticsearch-operator/src/test/java/de/ozgcloud/operator/ElasticsearchSecretBuilderTest.java @@ -11,6 +11,7 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; +import de.ozgcloud.operator.OzgCloudElasticsearchProperties.OzgCloudElasticsearchServerProperties; import de.ozgcloud.operator.common.kubernetes.NamespaceTestFactory; import de.ozgcloud.operator.common.kubernetes.SecretTestFactory; import io.fabric8.kubernetes.api.model.Secret; @@ -30,10 +31,14 @@ class ElasticsearchSecretBuilderTest { private final static String HOST = "dummyHost"; private final static int PORT = 42; + @Mock + private OzgCloudElasticsearchServerProperties serverProperties; + @BeforeEach void mockProperties() { - when(properties.getHost()).thenReturn(HOST); - when(properties.getPort()).thenReturn(PORT); + when(properties.getServerProperties()).thenReturn(serverProperties); + when(serverProperties.getHost()).thenReturn(HOST); + when(serverProperties.getPort()).thenReturn(PORT); } @Test @@ -77,14 +82,14 @@ class ElasticsearchSecretBuilderTest { void shouldGetHostFromProperties() { buildCredentialSecret(); - verify(properties).getHost(); + verify(serverProperties).getHost(); } @Test void shouldGetPortFromPorperties() { buildCredentialSecret(); - verify(properties).getPort(); + verify(serverProperties).getPort(); } } diff --git a/ozgcloud-elasticsearch-operator/src/test/resources/application.yml b/ozgcloud-elasticsearch-operator/src/test/resources/application.yml index 1154419c5a8c12808b905389395e025d716d4381..56a0ea89025552429eb37bda580095dee2bd8d94 100644 --- a/ozgcloud-elasticsearch-operator/src/test/resources/application.yml +++ b/ozgcloud-elasticsearch-operator/src/test/resources/application.yml @@ -1,8 +1,12 @@ ozgcloud: - elastic: - namespace: elastic-system - secretName: ozg-search-cluster-es-elastic-user - secretData: elastic - host: https://ozg-search-cluster-es-http - address: ozg-search-cluster-es-http.elastic-system - port: 9200 \ No newline at end of file + elasticsearch: + secretCredentialsName: elasticsearch-credentials + certificateSecretName: elasticsearch-certificate + server: + namespace: elastic-system + secretName: ozg-search-cluster-es-elastic-user + secretDataKey: elastic + host: ozg-search-cluster-es-http + port: 9200 + scheme: https + certificateSecretName: elasticsearch-certificate \ No newline at end of file