Search in sources :

Example 26 with Kafka

use of io.strimzi.api.kafka.model.Kafka in project strimzi by strimzi.

the class JbodStorageTest method testReconcileWithUpdateVolumeIdJbod.

@Test
public void testReconcileWithUpdateVolumeIdJbod(VertxTestContext context) {
    Checkpoint async = context.checkpoint();
    // trying to update id for a volume from in the JBOD storage
    volumes.get(0).setId(3);
    Kafka kafkaWithUpdatedJbodVolume = new KafkaBuilder(this.kafka).editSpec().editKafka().withStorage(new JbodStorageBuilder().withVolumes(volumes).build()).endKafka().endSpec().build();
    Set<String> expectedPvcs = expectedPvcs(kafka);
    Set<String> expectedPvcsWithUpdatedJbodStorageVolume = expectedPvcs(kafkaWithUpdatedJbodVolume);
    // reconcile for kafka cluster creation
    operator.reconcile(new Reconciliation("test-trigger", Kafka.RESOURCE_KIND, NAMESPACE, NAME)).onComplete(context.succeeding(v -> context.verify(() -> {
        List<PersistentVolumeClaim> pvcs = getPvcs(NAMESPACE, NAME);
        Set<String> pvcsNames = pvcs.stream().map(pvc -> pvc.getMetadata().getName()).collect(Collectors.toSet());
        assertThat(pvcsNames, is(expectedPvcs));
    }))).compose(v -> {
        Crds.kafkaOperation(mockClient).inNamespace(NAMESPACE).withName(NAME).patch(kafkaWithUpdatedJbodVolume);
        // reconcile kafka cluster with a Jbod storage volume removed
        return operator.reconcile(new Reconciliation("test-trigger", Kafka.RESOURCE_KIND, NAMESPACE, NAME));
    }).onComplete(context.succeeding(v -> context.verify(() -> {
        List<PersistentVolumeClaim> pvcs = getPvcs(NAMESPACE, NAME);
        Set<String> pvcsNames = pvcs.stream().map(pvc -> pvc.getMetadata().getName()).collect(Collectors.toSet());
        assertThat(pvcsNames, is(expectedPvcsWithUpdatedJbodStorageVolume));
        async.flag();
    })));
}
Also used : CoreMatchers.is(org.hamcrest.CoreMatchers.is) BeforeEach(org.junit.jupiter.api.BeforeEach) Annotations(io.strimzi.operator.common.Annotations) MockKube(io.strimzi.test.mockkube.MockKube) AfterAll(org.junit.jupiter.api.AfterAll) PersistentClaimStorage(io.strimzi.api.kafka.model.storage.PersistentClaimStorage) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) BeforeAll(org.junit.jupiter.api.BeforeAll) ResourceOperatorSupplier(io.strimzi.operator.cluster.operator.resource.ResourceOperatorSupplier) ResourceUtils(io.strimzi.operator.cluster.ResourceUtils) AbstractModel(io.strimzi.operator.cluster.model.AbstractModel) JbodStorageBuilder(io.strimzi.api.kafka.model.storage.JbodStorageBuilder) KafkaVersion(io.strimzi.operator.cluster.model.KafkaVersion) Set(java.util.Set) GenericKafkaListenerBuilder(io.strimzi.api.kafka.model.listener.arraylistener.GenericKafkaListenerBuilder) VertxExtension(io.vertx.junit5.VertxExtension) Collectors(java.util.stream.Collectors) Test(org.junit.jupiter.api.Test) List(java.util.List) Labels(io.strimzi.operator.common.model.Labels) StrimziPodSet(io.strimzi.api.kafka.model.StrimziPodSet) PasswordGenerator(io.strimzi.operator.common.PasswordGenerator) PersistentVolumeClaim(io.fabric8.kubernetes.api.model.PersistentVolumeClaim) Checkpoint(io.vertx.junit5.Checkpoint) PlatformFeaturesAvailability(io.strimzi.operator.PlatformFeaturesAvailability) MockCertManager(io.strimzi.operator.common.operator.MockCertManager) VertxTestContext(io.vertx.junit5.VertxTestContext) KafkaList(io.strimzi.api.kafka.KafkaList) SingleVolumeStorage(io.strimzi.api.kafka.model.storage.SingleVolumeStorage) Crds(io.strimzi.api.kafka.Crds) VolumeUtils(io.strimzi.operator.cluster.model.VolumeUtils) KafkaBuilder(io.strimzi.api.kafka.model.KafkaBuilder) FeatureGates(io.strimzi.operator.cluster.FeatureGates) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) PersistentClaimStorageBuilder(io.strimzi.api.kafka.model.storage.PersistentClaimStorageBuilder) KafkaCluster(io.strimzi.operator.cluster.model.KafkaCluster) KafkaVersionTestUtils(io.strimzi.operator.cluster.KafkaVersionTestUtils) CustomResourceDefinition(io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) JbodStorage(io.strimzi.api.kafka.model.storage.JbodStorage) StrimziPodSetList(io.strimzi.api.kafka.StrimziPodSetList) KubernetesVersion(io.strimzi.operator.KubernetesVersion) Vertx(io.vertx.core.Vertx) Matchers(org.hamcrest.Matchers) Reconciliation(io.strimzi.operator.common.Reconciliation) KafkaListenerType(io.strimzi.api.kafka.model.listener.arraylistener.KafkaListenerType) KubernetesClient(io.fabric8.kubernetes.client.KubernetesClient) Kafka(io.strimzi.api.kafka.model.Kafka) JbodStorageBuilder(io.strimzi.api.kafka.model.storage.JbodStorageBuilder) Checkpoint(io.vertx.junit5.Checkpoint) Reconciliation(io.strimzi.operator.common.Reconciliation) Kafka(io.strimzi.api.kafka.model.Kafka) KafkaBuilder(io.strimzi.api.kafka.model.KafkaBuilder) PersistentVolumeClaim(io.fabric8.kubernetes.api.model.PersistentVolumeClaim) Test(org.junit.jupiter.api.Test)

Example 27 with Kafka

use of io.strimzi.api.kafka.model.Kafka in project strimzi by strimzi.

the class ZookeeperClusterTest method testInvalidVersion.

@ParallelTest
public void testInvalidVersion() {
    assertThrows(InvalidResourceException.class, () -> {
        Kafka ka = new KafkaBuilder(this.ka).editSpec().editKafka().withImage(null).withVersion("10000.0.0").endKafka().editZookeeper().withImage(null).endZookeeper().endSpec().build();
        ZookeeperCluster.fromCrd(Reconciliation.DUMMY_RECONCILIATION, ka, VERSIONS);
    });
}
Also used : Kafka(io.strimzi.api.kafka.model.Kafka) KafkaBuilder(io.strimzi.api.kafka.model.KafkaBuilder) ParallelTest(io.strimzi.test.annotations.ParallelTest)

Example 28 with Kafka

use of io.strimzi.api.kafka.model.Kafka in project strimzi by strimzi.

the class ZookeeperClusterTest method testPvcNames.

@ParallelTest
public void testPvcNames() {
    Kafka ka = new KafkaBuilder(ResourceUtils.createKafka(namespace, cluster, replicas, image, healthDelay, healthTimeout, jmxMetricsConfig, configurationJson, zooConfigurationJson)).editSpec().editZookeeper().withNewPersistentClaimStorage().withDeleteClaim(false).withSize("100Gi").endPersistentClaimStorage().endZookeeper().endSpec().build();
    ZookeeperCluster zc = ZookeeperCluster.fromCrd(Reconciliation.DUMMY_RECONCILIATION, ka, VERSIONS);
    PersistentVolumeClaim pvc = zc.getPersistentVolumeClaimTemplates().get(0);
    for (int i = 0; i < replicas; i++) {
        assertThat(pvc.getMetadata().getName() + "-" + ZookeeperCluster.zookeeperPodName(cluster, i), is(zc.VOLUME_NAME + "-" + ZookeeperCluster.zookeeperPodName(cluster, i)));
    }
}
Also used : Kafka(io.strimzi.api.kafka.model.Kafka) KafkaBuilder(io.strimzi.api.kafka.model.KafkaBuilder) PersistentVolumeClaim(io.fabric8.kubernetes.api.model.PersistentVolumeClaim) TopologySpreadConstraint(io.fabric8.kubernetes.api.model.TopologySpreadConstraint) ParallelTest(io.strimzi.test.annotations.ParallelTest)

Example 29 with Kafka

use of io.strimzi.api.kafka.model.Kafka in project strimzi by strimzi.

the class ZookeeperClusterTest method testDefaultImagePullSecrets.

@ParallelTest
public void testDefaultImagePullSecrets() {
    Kafka kafkaAssembly = new KafkaBuilder(ResourceUtils.createKafka(namespace, cluster, replicas, image, healthDelay, healthTimeout, jmxMetricsConfig, configurationJson, emptyMap())).build();
    ZookeeperCluster zc = ZookeeperCluster.fromCrd(Reconciliation.DUMMY_RECONCILIATION, kafkaAssembly, VERSIONS);
    StatefulSet sts = zc.generateStatefulSet(true, null, null);
    assertThat(sts.getSpec().getTemplate().getSpec().getImagePullSecrets(), is(nullValue()));
}
Also used : Kafka(io.strimzi.api.kafka.model.Kafka) KafkaBuilder(io.strimzi.api.kafka.model.KafkaBuilder) StatefulSet(io.fabric8.kubernetes.api.model.apps.StatefulSet) ParallelTest(io.strimzi.test.annotations.ParallelTest)

Example 30 with Kafka

use of io.strimzi.api.kafka.model.Kafka in project strimzi by strimzi.

the class ZookeeperClusterTest method testCreateClusterWithZookeeperJmxEnabled.

@ParallelTest
public void testCreateClusterWithZookeeperJmxEnabled() {
    Kafka kafka = new KafkaBuilder().withNewMetadata().withName(cluster).withNamespace(namespace).endMetadata().withNewSpec().withNewKafka().withReplicas(3).withNewEphemeralStorage().endEphemeralStorage().endKafka().withNewZookeeper().withJmxOptions(new KafkaJmxOptionsBuilder().withAuthentication(new KafkaJmxAuthenticationPasswordBuilder().build()).build()).withReplicas(3).withNewEphemeralStorage().endEphemeralStorage().endZookeeper().endSpec().build();
    ZookeeperCluster zookeeperCluster = ZookeeperCluster.fromCrd(Reconciliation.DUMMY_RECONCILIATION, kafka, KafkaVersionTestUtils.getKafkaVersionLookup());
    Secret jmxSecret = zookeeperCluster.generateJmxSecret();
    assertThat(jmxSecret.getData(), hasKey("jmx-username"));
    assertThat(jmxSecret.getData(), hasKey("jmx-password"));
}
Also used : Secret(io.fabric8.kubernetes.api.model.Secret) KafkaJmxOptionsBuilder(io.strimzi.api.kafka.model.KafkaJmxOptionsBuilder) Kafka(io.strimzi.api.kafka.model.Kafka) KafkaBuilder(io.strimzi.api.kafka.model.KafkaBuilder) KafkaJmxAuthenticationPasswordBuilder(io.strimzi.api.kafka.model.KafkaJmxAuthenticationPasswordBuilder) ParallelTest(io.strimzi.test.annotations.ParallelTest)

Aggregations

Kafka (io.strimzi.api.kafka.model.Kafka)749 KafkaBuilder (io.strimzi.api.kafka.model.KafkaBuilder)589 ParallelTest (io.strimzi.test.annotations.ParallelTest)412 Reconciliation (io.strimzi.operator.common.Reconciliation)352 MatcherAssert.assertThat (org.hamcrest.MatcherAssert.assertThat)268 Test (org.junit.jupiter.api.Test)256 GenericKafkaListenerBuilder (io.strimzi.api.kafka.model.listener.arraylistener.GenericKafkaListenerBuilder)252 ResourceUtils (io.strimzi.operator.cluster.ResourceUtils)244 KafkaVersionTestUtils (io.strimzi.operator.cluster.KafkaVersionTestUtils)242 ResourceOperatorSupplier (io.strimzi.operator.cluster.operator.resource.ResourceOperatorSupplier)222 PlatformFeaturesAvailability (io.strimzi.operator.PlatformFeaturesAvailability)220 Map (java.util.Map)216 CoreMatchers.is (org.hamcrest.CoreMatchers.is)214 Checkpoint (io.vertx.junit5.Checkpoint)200 AfterAll (org.junit.jupiter.api.AfterAll)194 StatefulSet (io.fabric8.kubernetes.api.model.apps.StatefulSet)192 Labels (io.strimzi.operator.common.model.Labels)190 Vertx (io.vertx.core.Vertx)190 KubernetesVersion (io.strimzi.operator.KubernetesVersion)186 Collections (java.util.Collections)184