Search in sources :

Example 11 with ClusterScriptEntry

use of io.stackgres.apiweb.dto.cluster.ClusterScriptEntry in project stackgres by ongres.

the class ClusterResourceQuarkusTest method givenACreationWithSecretScripts_shouldNotFail.

@Test
void givenACreationWithSecretScripts_shouldNotFail() {
    ClusterDto cluster = getClusterInlineScripts();
    ClusterScriptEntry entry = getSecretScriptEntry();
    cluster.getSpec().getInitData().setScripts(Collections.singletonList(entry));
    final Metadata metadata = cluster.getMetadata();
    metadata.setNamespace("test");
    given().header(AUTHENTICATION_HEADER).body(cluster).contentType(ContentType.JSON).accept(ContentType.JSON).post("/stackgres/sgclusters").then().statusCode(204);
    try (KubernetesClient client = factory.create()) {
        final ClusterScriptFrom scriptFrom = entry.getScriptFrom();
        final SecretKeySelector secretKeyRef = scriptFrom.getSecretKeyRef();
        Secret secret = client.secrets().inNamespace("test").withName(secretKeyRef.getName()).get();
        assertNotNull(secret);
        byte[] actualScript = Base64.getDecoder().decode(secret.getData().get(secretKeyRef.getKey()));
        assertEquals(scriptFrom.getSecretScript(), new String(actualScript, StandardCharsets.UTF_8));
    }
}
Also used : ClusterScriptEntry(io.stackgres.apiweb.dto.cluster.ClusterScriptEntry) Secret(io.fabric8.kubernetes.api.model.Secret) KubernetesClient(io.fabric8.kubernetes.client.KubernetesClient) ClusterDto(io.stackgres.apiweb.dto.cluster.ClusterDto) Metadata(io.stackgres.apiweb.dto.Metadata) ClusterScriptFrom(io.stackgres.apiweb.dto.cluster.ClusterScriptFrom) SecretKeySelector(io.stackgres.common.crd.SecretKeySelector) QuarkusTest(io.quarkus.test.junit.QuarkusTest) Test(org.junit.jupiter.api.Test)

Example 12 with ClusterScriptEntry

use of io.stackgres.apiweb.dto.cluster.ClusterScriptEntry in project stackgres by ongres.

the class ClusterResourceQuarkusTest method getSecretScriptEntry.

private ClusterScriptEntry getSecretScriptEntry() {
    ClusterScriptEntry entry = new ClusterScriptEntry();
    entry.setName("init");
    final ClusterScriptFrom scriptFrom = new ClusterScriptFrom();
    scriptFrom.setSecretScript("CREATE DATABASE test");
    final SecretKeySelector secretMapKeyRef = new SecretKeySelector();
    scriptFrom.setSecretKeyRef(secretMapKeyRef);
    secretMapKeyRef.setKey("script");
    secretMapKeyRef.setName("initScript");
    entry.setScriptFrom(scriptFrom);
    return entry;
}
Also used : ClusterScriptEntry(io.stackgres.apiweb.dto.cluster.ClusterScriptEntry) ClusterScriptFrom(io.stackgres.apiweb.dto.cluster.ClusterScriptFrom) SecretKeySelector(io.stackgres.common.crd.SecretKeySelector)

Aggregations

ClusterScriptEntry (io.stackgres.apiweb.dto.cluster.ClusterScriptEntry)12 ClusterScriptFrom (io.stackgres.apiweb.dto.cluster.ClusterScriptFrom)11 SecretKeySelector (io.stackgres.common.crd.SecretKeySelector)7 StackGresClusterScriptEntry (io.stackgres.common.crd.sgcluster.StackGresClusterScriptEntry)7 StackGresClusterScriptFrom (io.stackgres.common.crd.sgcluster.StackGresClusterScriptFrom)7 Test (org.junit.jupiter.api.Test)6 ConfigMapKeySelector (io.stackgres.common.crd.ConfigMapKeySelector)5 Secret (io.fabric8.kubernetes.api.model.Secret)4 Metadata (io.stackgres.apiweb.dto.Metadata)4 ArgumentMatchers.anyString (org.mockito.ArgumentMatchers.anyString)4 ConfigMap (io.fabric8.kubernetes.api.model.ConfigMap)3 KubernetesClient (io.fabric8.kubernetes.client.KubernetesClient)3 QuarkusTest (io.quarkus.test.junit.QuarkusTest)3 ClusterDto (io.stackgres.apiweb.dto.cluster.ClusterDto)3 ClusterConfiguration (io.stackgres.apiweb.dto.cluster.ClusterConfiguration)2 ClusterInitData (io.stackgres.apiweb.dto.cluster.ClusterInitData)2 ClusterPod (io.stackgres.apiweb.dto.cluster.ClusterPod)2 ClusterPodPersistentVolume (io.stackgres.apiweb.dto.cluster.ClusterPodPersistentVolume)2 ClusterSpec (io.stackgres.apiweb.dto.cluster.ClusterSpec)2 ClusterSpecLabels (io.stackgres.apiweb.dto.cluster.ClusterSpecLabels)2