Search in sources :

Example 1 with BridgeExecutor

use of com.redhat.service.bridge.shard.operator.resources.BridgeExecutor in project sandbox by 5733d9e2be6485d52ffa08870cabdee0.

the class BridgeExecutorControllerTest method testBridgeExecutorDeployment_deploymentReplicaFailure.

@Test
void testBridgeExecutorDeployment_deploymentReplicaFailure() throws Exception {
    // Given
    BridgeExecutor bridgeExecutor = buildBridgeExecutor();
    deployBridgeExecutorSecret(bridgeExecutor);
    // When
    bridgeExecutorController.reconcile(bridgeExecutor, null);
    Deployment deployment = getDeploymentFor(bridgeExecutor);
    // Then
    kubernetesResourcePatcher.patchDeploymentAsReplicaFailed(deployment.getMetadata().getName(), deployment.getMetadata().getNamespace());
    UpdateControl<BridgeExecutor> updateControl = bridgeExecutorController.reconcile(bridgeExecutor, null);
    assertThat(updateControl.isUpdateStatus()).isTrue();
    assertThat(updateControl.getResource().getStatus().getConditionByType(ConditionType.Ready).get().getReason()).isEqualTo(ConditionReason.DeploymentFailed);
    assertThat(updateControl.getResource().getStatus().getConditionByType(ConditionType.Augmentation).get().getStatus()).isEqualTo(ConditionStatus.False);
}
Also used : Deployment(io.fabric8.kubernetes.api.model.apps.Deployment) BridgeExecutor(com.redhat.service.bridge.shard.operator.resources.BridgeExecutor) QuarkusTest(io.quarkus.test.junit.QuarkusTest) Test(org.junit.jupiter.api.Test)

Example 2 with BridgeExecutor

use of com.redhat.service.bridge.shard.operator.resources.BridgeExecutor in project sandbox by 5733d9e2be6485d52ffa08870cabdee0.

the class BridgeExecutorControllerTest method testCreateNewBridgeExecutorWithoutSecrets.

@Test
void testCreateNewBridgeExecutorWithoutSecrets() {
    // Given
    BridgeExecutor bridgeExecutor = buildBridgeExecutor();
    // When
    UpdateControl<BridgeExecutor> updateControl = bridgeExecutorController.reconcile(bridgeExecutor, null);
    // Then
    assertThat(updateControl.isNoUpdate()).isTrue();
}
Also used : BridgeExecutor(com.redhat.service.bridge.shard.operator.resources.BridgeExecutor) QuarkusTest(io.quarkus.test.junit.QuarkusTest) Test(org.junit.jupiter.api.Test)

Example 3 with BridgeExecutor

use of com.redhat.service.bridge.shard.operator.resources.BridgeExecutor in project sandbox by 5733d9e2be6485d52ffa08870cabdee0.

the class BridgeExecutorControllerTest method testBridgeExecutorDeployment.

@Test
void testBridgeExecutorDeployment() {
    // Given
    BridgeExecutor bridgeExecutor = buildBridgeExecutor();
    deployBridgeExecutorSecret(bridgeExecutor);
    // When
    bridgeExecutorController.reconcile(bridgeExecutor, null);
    // Then
    Deployment deployment = kubernetesClient.apps().deployments().inNamespace(bridgeExecutor.getMetadata().getNamespace()).withName(bridgeExecutor.getMetadata().getName()).get();
    assertThat(deployment).isNotNull();
    assertThat(deployment.getMetadata().getOwnerReferences().size()).isEqualTo(1);
    assertThat(deployment.getMetadata().getLabels()).isNotNull();
    assertThat(deployment.getSpec().getSelector().getMatchLabels().size()).isEqualTo(1);
    assertThat(deployment.getSpec().getTemplate().getMetadata().getLabels()).isNotNull();
    assertThat(deployment.getSpec().getTemplate().getSpec().getContainers().get(0).getImage()).isNotNull();
    assertThat(deployment.getSpec().getTemplate().getSpec().getContainers().get(0).getName()).isNotNull();
}
Also used : Deployment(io.fabric8.kubernetes.api.model.apps.Deployment) BridgeExecutor(com.redhat.service.bridge.shard.operator.resources.BridgeExecutor) QuarkusTest(io.quarkus.test.junit.QuarkusTest) Test(org.junit.jupiter.api.Test)

Example 4 with BridgeExecutor

use of com.redhat.service.bridge.shard.operator.resources.BridgeExecutor in project sandbox by 5733d9e2be6485d52ffa08870cabdee0.

the class BridgeExecutorServiceTest method testBridgeIngressDeletion.

@Test
public void testBridgeIngressDeletion() {
    // Given
    ProcessorDTO dto = TestSupport.newRequestedProcessorDTO();
    // When
    bridgeExecutorService.createBridgeExecutor(dto);
    bridgeExecutorService.deleteBridgeExecutor(dto);
    // Then
    BridgeExecutor bridgeExecutor = kubernetesClient.resources(BridgeExecutor.class).inNamespace(customerNamespaceProvider.resolveName(dto.getCustomerId())).withName(BridgeExecutor.resolveResourceName(dto.getId())).get();
    assertThat(bridgeExecutor).isNull();
}
Also used : ProcessorDTO(com.redhat.service.bridge.infra.models.dto.ProcessorDTO) BridgeExecutor(com.redhat.service.bridge.shard.operator.resources.BridgeExecutor) QuarkusTest(io.quarkus.test.junit.QuarkusTest) Test(org.junit.jupiter.api.Test)

Example 5 with BridgeExecutor

use of com.redhat.service.bridge.shard.operator.resources.BridgeExecutor in project sandbox by 5733d9e2be6485d52ffa08870cabdee0.

the class BridgeExecutorServiceImpl method createBridgeExecutor.

@Override
public void createBridgeExecutor(ProcessorDTO processorDTO) {
    final Namespace namespace = customerNamespaceProvider.fetchOrCreateCustomerNamespace(processorDTO.getCustomerId());
    BridgeExecutor expected = BridgeExecutor.fromDTO(processorDTO, namespace.getMetadata().getName(), executorImage);
    BridgeExecutor existing = kubernetesClient.resources(BridgeExecutor.class).inNamespace(namespace.getMetadata().getName()).withName(BridgeExecutor.resolveResourceName(processorDTO.getId())).get();
    if (existing == null || !expected.getSpec().equals(existing.getSpec())) {
        BridgeExecutor bridgeExecutor = kubernetesClient.resources(BridgeExecutor.class).inNamespace(namespace.getMetadata().getName()).createOrReplace(expected);
        // create or update the secrets for the bridgeExecutor
        createOrUpdateBridgeExecutorSecret(bridgeExecutor, processorDTO);
    }
}
Also used : BridgeExecutor(com.redhat.service.bridge.shard.operator.resources.BridgeExecutor) Namespace(io.fabric8.kubernetes.api.model.Namespace)

Aggregations

BridgeExecutor (com.redhat.service.bridge.shard.operator.resources.BridgeExecutor)9 QuarkusTest (io.quarkus.test.junit.QuarkusTest)7 Test (org.junit.jupiter.api.Test)7 Deployment (io.fabric8.kubernetes.api.model.apps.Deployment)3 ProcessorDTO (com.redhat.service.bridge.infra.models.dto.ProcessorDTO)2 Secret (io.fabric8.kubernetes.api.model.Secret)2 When (io.cucumber.java.en.When)1 Namespace (io.fabric8.kubernetes.api.model.Namespace)1 ObjectMetaBuilder (io.fabric8.kubernetes.api.model.ObjectMetaBuilder)1 SecretBuilder (io.fabric8.kubernetes.api.model.SecretBuilder)1 ByteArrayInputStream (java.io.ByteArrayInputStream)1 InputStream (java.io.InputStream)1