Search in sources :

Example 1 with TlsSidecar

use of io.strimzi.api.kafka.model.TlsSidecar in project strimzi-kafka-operator by strimzi.

the class EntityOperator method fromCrd.

/**
 * Create a Entity Operator from given desired resource
 *
 * @param reconciliation The reconciliation
 * @param kafkaAssembly desired resource with cluster configuration containing the Entity Operator one
 * @param versions The versions.
 * @return Entity Operator instance, null if not configured in the ConfigMap
 */
public static EntityOperator fromCrd(Reconciliation reconciliation, Kafka kafkaAssembly, KafkaVersion.Lookup versions) {
    EntityOperator result = null;
    EntityOperatorSpec entityOperatorSpec = kafkaAssembly.getSpec().getEntityOperator();
    if (entityOperatorSpec != null) {
        result = new EntityOperator(reconciliation, kafkaAssembly);
        result.setOwnerReference(kafkaAssembly);
        EntityTopicOperator topicOperator = EntityTopicOperator.fromCrd(reconciliation, kafkaAssembly);
        EntityUserOperator userOperator = EntityUserOperator.fromCrd(reconciliation, kafkaAssembly);
        TlsSidecar tlsSidecar = entityOperatorSpec.getTlsSidecar();
        if (entityOperatorSpec.getTemplate() != null) {
            EntityOperatorTemplate template = entityOperatorSpec.getTemplate();
            if (template.getDeployment() != null && template.getDeployment().getMetadata() != null) {
                result.templateDeploymentLabels = template.getDeployment().getMetadata().getLabels();
                result.templateDeploymentAnnotations = template.getDeployment().getMetadata().getAnnotations();
            }
            ModelUtils.parsePodTemplate(result, template.getPod());
            if (template.getTopicOperatorContainer() != null && template.getTopicOperatorContainer().getEnv() != null) {
                topicOperator.setContainerEnvVars(template.getTopicOperatorContainer().getEnv());
            }
            if (template.getTopicOperatorContainer() != null && template.getTopicOperatorContainer().getSecurityContext() != null) {
                topicOperator.setContainerSecurityContext(template.getTopicOperatorContainer().getSecurityContext());
            }
            if (template.getUserOperatorContainer() != null && template.getUserOperatorContainer().getEnv() != null) {
                userOperator.setContainerEnvVars(template.getUserOperatorContainer().getEnv());
            }
            if (template.getUserOperatorContainer() != null && template.getUserOperatorContainer().getSecurityContext() != null) {
                userOperator.setContainerSecurityContext(template.getUserOperatorContainer().getSecurityContext());
            }
            if (template.getTlsSidecarContainer() != null && template.getTlsSidecarContainer().getEnv() != null) {
                result.templateTlsSidecarContainerEnvVars = template.getTlsSidecarContainer().getEnv();
            }
            if (template.getTlsSidecarContainer() != null && template.getTlsSidecarContainer().getSecurityContext() != null) {
                result.templateTlsSidecarContainerSecurityContext = template.getTlsSidecarContainer().getSecurityContext();
            }
            if (template.getServiceAccount() != null && template.getServiceAccount().getMetadata() != null) {
                result.templateServiceAccountLabels = template.getServiceAccount().getMetadata().getLabels();
                result.templateServiceAccountAnnotations = template.getServiceAccount().getMetadata().getAnnotations();
            }
        }
        result.setTlsSidecar(tlsSidecar);
        result.setTopicOperator(topicOperator);
        result.setUserOperator(userOperator);
        result.setDeployed(result.getTopicOperator() != null || result.getUserOperator() != null);
        String tlsSideCarImage = tlsSidecar != null ? tlsSidecar.getImage() : null;
        if (tlsSideCarImage == null) {
            KafkaClusterSpec kafkaClusterSpec = kafkaAssembly.getSpec().getKafka();
            tlsSideCarImage = System.getenv().getOrDefault(ClusterOperatorConfig.STRIMZI_DEFAULT_TLS_SIDECAR_ENTITY_OPERATOR_IMAGE, versions.kafkaImage(kafkaClusterSpec.getImage(), versions.defaultVersion().version()));
        }
        result.tlsSidecarImage = tlsSideCarImage;
        result.templatePodLabels = Util.mergeLabelsOrAnnotations(result.templatePodLabels, DEFAULT_POD_LABELS);
    }
    return result;
}
Also used : KafkaClusterSpec(io.strimzi.api.kafka.model.KafkaClusterSpec) EntityOperatorSpec(io.strimzi.api.kafka.model.EntityOperatorSpec) EntityOperatorTemplate(io.strimzi.api.kafka.model.template.EntityOperatorTemplate) TlsSidecar(io.strimzi.api.kafka.model.TlsSidecar)

Example 2 with TlsSidecar

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

the class CruiseControl method fromCrd.

public static CruiseControl fromCrd(Reconciliation reconciliation, Kafka kafkaAssembly, KafkaVersion.Lookup versions, Storage storage) {
    CruiseControl cruiseControl = null;
    CruiseControlSpec spec = kafkaAssembly.getSpec().getCruiseControl();
    KafkaClusterSpec kafkaClusterSpec = kafkaAssembly.getSpec().getKafka();
    if (spec != null) {
        cruiseControl = new CruiseControl(reconciliation, kafkaAssembly);
        cruiseControl.isDeployed = true;
        cruiseControl.setReplicas(DEFAULT_REPLICAS);
        String image = spec.getImage();
        if (image == null) {
            image = System.getenv().getOrDefault(ClusterOperatorConfig.STRIMZI_DEFAULT_CRUISE_CONTROL_IMAGE, versions.kafkaImage(kafkaClusterSpec.getImage(), versions.defaultVersion().version()));
        }
        cruiseControl.setImage(image);
        TlsSidecar tlsSidecar = spec.getTlsSidecar();
        if (tlsSidecar == null) {
            tlsSidecar = new TlsSidecar();
        }
        String tlsSideCarImage = tlsSidecar.getImage();
        if (tlsSideCarImage == null) {
            tlsSideCarImage = System.getenv().getOrDefault(ClusterOperatorConfig.STRIMZI_DEFAULT_TLS_SIDECAR_CRUISE_CONTROL_IMAGE, versions.kafkaImage(kafkaClusterSpec.getImage(), versions.defaultVersion().version()));
        }
        tlsSidecar.setImage(tlsSideCarImage);
        cruiseControl.tlsSidecarImage = tlsSideCarImage;
        cruiseControl.setTlsSidecar(tlsSidecar);
        cruiseControl = cruiseControl.updateConfiguration(spec);
        CruiseControlConfiguration ccConfiguration = (CruiseControlConfiguration) cruiseControl.getConfiguration();
        cruiseControl.sslEnabled = isApiSslEnabled(ccConfiguration);
        cruiseControl.authEnabled = isApiAuthEnabled(ccConfiguration);
        KafkaConfiguration configuration = new KafkaConfiguration(reconciliation, kafkaClusterSpec.getConfig().entrySet());
        if (configuration.getConfigOption(MIN_INSYNC_REPLICAS) != null) {
            cruiseControl.minInsyncReplicas = configuration.getConfigOption(MIN_INSYNC_REPLICAS);
        }
        // To avoid illegal storage configurations provided by the user,
        // we rely on the storage configuration provided by the KafkaAssemblyOperator
        cruiseControl.capacity = new Capacity(kafkaAssembly.getSpec(), storage);
        // Parse different types of metrics configurations
        ModelUtils.parseMetrics(cruiseControl, spec);
        if (spec.getReadinessProbe() != null) {
            cruiseControl.setReadinessProbe(spec.getReadinessProbe());
        }
        if (spec.getLivenessProbe() != null) {
            cruiseControl.setLivenessProbe(spec.getLivenessProbe());
        }
        Logging logging = spec.getLogging();
        cruiseControl.setLogging(logging == null ? new InlineLogging() : logging);
        cruiseControl.setGcLoggingEnabled(spec.getJvmOptions() == null ? DEFAULT_JVM_GC_LOGGING_ENABLED : spec.getJvmOptions().isGcLoggingEnabled());
        cruiseControl.setJvmOptions(spec.getJvmOptions());
        if (spec.getJvmOptions() != null) {
            cruiseControl.setJavaSystemProperties(spec.getJvmOptions().getJavaSystemProperties());
        }
        cruiseControl.setResources(spec.getResources());
        cruiseControl.setOwnerReference(kafkaAssembly);
        cruiseControl = updateTemplate(spec, cruiseControl);
        cruiseControl.templatePodLabels = Util.mergeLabelsOrAnnotations(cruiseControl.templatePodLabels, DEFAULT_POD_LABELS);
    }
    return cruiseControl;
}
Also used : KafkaClusterSpec(io.strimzi.api.kafka.model.KafkaClusterSpec) InlineLogging(io.strimzi.api.kafka.model.InlineLogging) Logging(io.strimzi.api.kafka.model.Logging) TlsSidecar(io.strimzi.api.kafka.model.TlsSidecar) CruiseControlSpec(io.strimzi.api.kafka.model.CruiseControlSpec) Capacity(io.strimzi.operator.cluster.model.cruisecontrol.Capacity) IntOrString(io.fabric8.kubernetes.api.model.IntOrString) InlineLogging(io.strimzi.api.kafka.model.InlineLogging)

Example 3 with TlsSidecar

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

the class EntityOperator method fromCrd.

/**
 * Create a Entity Operator from given desired resource
 *
 * @param reconciliation The reconciliation
 * @param kafkaAssembly desired resource with cluster configuration containing the Entity Operator one
 * @param versions The versions.
 * @return Entity Operator instance, null if not configured in the ConfigMap
 */
public static EntityOperator fromCrd(Reconciliation reconciliation, Kafka kafkaAssembly, KafkaVersion.Lookup versions) {
    EntityOperator result = null;
    EntityOperatorSpec entityOperatorSpec = kafkaAssembly.getSpec().getEntityOperator();
    if (entityOperatorSpec != null) {
        result = new EntityOperator(reconciliation, kafkaAssembly);
        result.setOwnerReference(kafkaAssembly);
        EntityTopicOperator topicOperator = EntityTopicOperator.fromCrd(reconciliation, kafkaAssembly);
        EntityUserOperator userOperator = EntityUserOperator.fromCrd(reconciliation, kafkaAssembly);
        TlsSidecar tlsSidecar = entityOperatorSpec.getTlsSidecar();
        if (entityOperatorSpec.getTemplate() != null) {
            EntityOperatorTemplate template = entityOperatorSpec.getTemplate();
            if (template.getDeployment() != null && template.getDeployment().getMetadata() != null) {
                result.templateDeploymentLabels = template.getDeployment().getMetadata().getLabels();
                result.templateDeploymentAnnotations = template.getDeployment().getMetadata().getAnnotations();
            }
            ModelUtils.parsePodTemplate(result, template.getPod());
            if (template.getTopicOperatorContainer() != null && template.getTopicOperatorContainer().getEnv() != null) {
                topicOperator.setContainerEnvVars(template.getTopicOperatorContainer().getEnv());
            }
            if (template.getTopicOperatorContainer() != null && template.getTopicOperatorContainer().getSecurityContext() != null) {
                topicOperator.setContainerSecurityContext(template.getTopicOperatorContainer().getSecurityContext());
            }
            if (template.getUserOperatorContainer() != null && template.getUserOperatorContainer().getEnv() != null) {
                userOperator.setContainerEnvVars(template.getUserOperatorContainer().getEnv());
            }
            if (template.getUserOperatorContainer() != null && template.getUserOperatorContainer().getSecurityContext() != null) {
                userOperator.setContainerSecurityContext(template.getUserOperatorContainer().getSecurityContext());
            }
            if (template.getTlsSidecarContainer() != null && template.getTlsSidecarContainer().getEnv() != null) {
                result.templateTlsSidecarContainerEnvVars = template.getTlsSidecarContainer().getEnv();
            }
            if (template.getTlsSidecarContainer() != null && template.getTlsSidecarContainer().getSecurityContext() != null) {
                result.templateTlsSidecarContainerSecurityContext = template.getTlsSidecarContainer().getSecurityContext();
            }
            if (template.getServiceAccount() != null && template.getServiceAccount().getMetadata() != null) {
                result.templateServiceAccountLabels = template.getServiceAccount().getMetadata().getLabels();
                result.templateServiceAccountAnnotations = template.getServiceAccount().getMetadata().getAnnotations();
            }
        }
        result.setTlsSidecar(tlsSidecar);
        result.setTopicOperator(topicOperator);
        result.setUserOperator(userOperator);
        result.setDeployed(result.getTopicOperator() != null || result.getUserOperator() != null);
        String tlsSideCarImage = tlsSidecar != null ? tlsSidecar.getImage() : null;
        if (tlsSideCarImage == null) {
            KafkaClusterSpec kafkaClusterSpec = kafkaAssembly.getSpec().getKafka();
            tlsSideCarImage = System.getenv().getOrDefault(ClusterOperatorConfig.STRIMZI_DEFAULT_TLS_SIDECAR_ENTITY_OPERATOR_IMAGE, versions.kafkaImage(kafkaClusterSpec.getImage(), versions.defaultVersion().version()));
        }
        result.tlsSidecarImage = tlsSideCarImage;
        result.templatePodLabels = Util.mergeLabelsOrAnnotations(result.templatePodLabels, DEFAULT_POD_LABELS);
    }
    return result;
}
Also used : KafkaClusterSpec(io.strimzi.api.kafka.model.KafkaClusterSpec) EntityOperatorSpec(io.strimzi.api.kafka.model.EntityOperatorSpec) EntityOperatorTemplate(io.strimzi.api.kafka.model.template.EntityOperatorTemplate) TlsSidecar(io.strimzi.api.kafka.model.TlsSidecar)

Example 4 with TlsSidecar

use of io.strimzi.api.kafka.model.TlsSidecar in project strimzi-kafka-operator by strimzi.

the class CruiseControl method fromCrd.

public static CruiseControl fromCrd(Reconciliation reconciliation, Kafka kafkaAssembly, KafkaVersion.Lookup versions, Storage storage) {
    CruiseControl cruiseControl = null;
    CruiseControlSpec spec = kafkaAssembly.getSpec().getCruiseControl();
    KafkaClusterSpec kafkaClusterSpec = kafkaAssembly.getSpec().getKafka();
    if (spec != null) {
        cruiseControl = new CruiseControl(reconciliation, kafkaAssembly);
        cruiseControl.isDeployed = true;
        cruiseControl.setReplicas(DEFAULT_REPLICAS);
        String image = spec.getImage();
        if (image == null) {
            image = System.getenv().getOrDefault(ClusterOperatorConfig.STRIMZI_DEFAULT_CRUISE_CONTROL_IMAGE, versions.kafkaImage(kafkaClusterSpec.getImage(), versions.defaultVersion().version()));
        }
        cruiseControl.setImage(image);
        TlsSidecar tlsSidecar = spec.getTlsSidecar();
        if (tlsSidecar == null) {
            tlsSidecar = new TlsSidecar();
        }
        String tlsSideCarImage = tlsSidecar.getImage();
        if (tlsSideCarImage == null) {
            tlsSideCarImage = System.getenv().getOrDefault(ClusterOperatorConfig.STRIMZI_DEFAULT_TLS_SIDECAR_CRUISE_CONTROL_IMAGE, versions.kafkaImage(kafkaClusterSpec.getImage(), versions.defaultVersion().version()));
        }
        tlsSidecar.setImage(tlsSideCarImage);
        cruiseControl.tlsSidecarImage = tlsSideCarImage;
        cruiseControl.setTlsSidecar(tlsSidecar);
        cruiseControl = cruiseControl.updateConfiguration(spec);
        CruiseControlConfiguration ccConfiguration = (CruiseControlConfiguration) cruiseControl.getConfiguration();
        cruiseControl.sslEnabled = isApiSslEnabled(ccConfiguration);
        cruiseControl.authEnabled = isApiAuthEnabled(ccConfiguration);
        KafkaConfiguration configuration = new KafkaConfiguration(reconciliation, kafkaClusterSpec.getConfig().entrySet());
        if (configuration.getConfigOption(MIN_INSYNC_REPLICAS) != null) {
            cruiseControl.minInsyncReplicas = configuration.getConfigOption(MIN_INSYNC_REPLICAS);
        }
        // To avoid illegal storage configurations provided by the user,
        // we rely on the storage configuration provided by the KafkaAssemblyOperator
        cruiseControl.capacity = new Capacity(kafkaAssembly.getSpec(), storage);
        // Parse different types of metrics configurations
        ModelUtils.parseMetrics(cruiseControl, spec);
        if (spec.getReadinessProbe() != null) {
            cruiseControl.setReadinessProbe(spec.getReadinessProbe());
        }
        if (spec.getLivenessProbe() != null) {
            cruiseControl.setLivenessProbe(spec.getLivenessProbe());
        }
        Logging logging = spec.getLogging();
        cruiseControl.setLogging(logging == null ? new InlineLogging() : logging);
        cruiseControl.setGcLoggingEnabled(spec.getJvmOptions() == null ? DEFAULT_JVM_GC_LOGGING_ENABLED : spec.getJvmOptions().isGcLoggingEnabled());
        cruiseControl.setJvmOptions(spec.getJvmOptions());
        if (spec.getJvmOptions() != null) {
            cruiseControl.setJavaSystemProperties(spec.getJvmOptions().getJavaSystemProperties());
        }
        cruiseControl.setResources(spec.getResources());
        cruiseControl.setOwnerReference(kafkaAssembly);
        cruiseControl = updateTemplate(spec, cruiseControl);
        cruiseControl.templatePodLabels = Util.mergeLabelsOrAnnotations(cruiseControl.templatePodLabels, DEFAULT_POD_LABELS);
    }
    return cruiseControl;
}
Also used : KafkaClusterSpec(io.strimzi.api.kafka.model.KafkaClusterSpec) InlineLogging(io.strimzi.api.kafka.model.InlineLogging) Logging(io.strimzi.api.kafka.model.Logging) TlsSidecar(io.strimzi.api.kafka.model.TlsSidecar) CruiseControlSpec(io.strimzi.api.kafka.model.CruiseControlSpec) Capacity(io.strimzi.operator.cluster.model.cruisecontrol.Capacity) IntOrString(io.fabric8.kubernetes.api.model.IntOrString) InlineLogging(io.strimzi.api.kafka.model.InlineLogging)

Aggregations

KafkaClusterSpec (io.strimzi.api.kafka.model.KafkaClusterSpec)4 TlsSidecar (io.strimzi.api.kafka.model.TlsSidecar)4 IntOrString (io.fabric8.kubernetes.api.model.IntOrString)2 CruiseControlSpec (io.strimzi.api.kafka.model.CruiseControlSpec)2 EntityOperatorSpec (io.strimzi.api.kafka.model.EntityOperatorSpec)2 InlineLogging (io.strimzi.api.kafka.model.InlineLogging)2 Logging (io.strimzi.api.kafka.model.Logging)2 EntityOperatorTemplate (io.strimzi.api.kafka.model.template.EntityOperatorTemplate)2 Capacity (io.strimzi.operator.cluster.model.cruisecontrol.Capacity)2