Class DeploymentDependent

java.lang.Object
io.javaoperatorsdk.operator.processing.dependent.AbstractDependentResource<R,P>
io.javaoperatorsdk.operator.processing.dependent.AbstractEventSourceHolderDependentResource<R,P,io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource<R,P>>
io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResource<R,P>
io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDKubernetesDependentResource<io.fabric8.kubernetes.api.model.apps.Deployment,DebeziumServer>
io.debezium.operator.core.dependent.DeploymentDependent
All Implemented Interfaces:
io.javaoperatorsdk.operator.api.reconciler.dependent.Deleter<DebeziumServer>, io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource<io.fabric8.kubernetes.api.model.apps.Deployment,DebeziumServer>, io.javaoperatorsdk.operator.api.reconciler.dependent.EventSourceReferencer<DebeziumServer>, io.javaoperatorsdk.operator.api.reconciler.dependent.GarbageCollected<DebeziumServer>, io.javaoperatorsdk.operator.api.reconciler.dependent.managed.DependentResourceConfigurator<io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResourceConfig<io.fabric8.kubernetes.api.model.apps.Deployment>>, io.javaoperatorsdk.operator.api.reconciler.dependent.managed.KubernetesClientAware, io.javaoperatorsdk.operator.processing.dependent.Creator<io.fabric8.kubernetes.api.model.apps.Deployment,DebeziumServer>, io.javaoperatorsdk.operator.processing.dependent.Matcher<io.fabric8.kubernetes.api.model.apps.Deployment,DebeziumServer>, io.javaoperatorsdk.operator.processing.dependent.Updater<io.fabric8.kubernetes.api.model.apps.Deployment,DebeziumServer>

public class DeploymentDependent extends io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDKubernetesDependentResource<io.fabric8.kubernetes.api.model.apps.Deployment,DebeziumServer>
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    private static final class 
    JMX auth file copy and permission command representation

    Nested classes/interfaces inherited from interface io.javaoperatorsdk.operator.processing.dependent.Matcher

    io.javaoperatorsdk.operator.processing.dependent.Matcher.Result<R extends Object>
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
     
    static final String
     
    static final String
     
    private static final String
     
    static final String
     
    static final String
     
    static final String
     
    static final int
     
    static final String
     
    (package private) String
     
    static final String
     
    private static final String
     
    static final String
     
    static final String
     
    static final String
     
    static final String
     
    (package private) VersionProvider
     

    Fields inherited from class io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResource

    client

    Fields inherited from class io.javaoperatorsdk.operator.processing.dependent.AbstractEventSourceHolderDependentResource

    eventSourceNameToUse, genericFilter, onAddFilter, onDeleteFilter, onUpdateFilter

    Fields inherited from class io.javaoperatorsdk.operator.processing.dependent.AbstractDependentResource

    creator, updater
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    private void
    addExternalEnvVariablesToContainer(Runtime runtime, io.fabric8.kubernetes.api.model.Container container)
    Adds external environment variables to container in required
    private void
    addExternalVolumeMountsToContainer(Runtime runtime, io.fabric8.kubernetes.api.model.Container container)
    Adds external volume mounts to container if required
    private void
    addExternalVolumesToPod(Runtime runtime, io.fabric8.kubernetes.api.model.PodTemplateSpec pod)
    Adds external volume definitions to pod if required
    private void
    addJmxConfigurationToContainer(JmxConfig jmx, io.fabric8.kubernetes.api.model.Container container)
    Adds JMX configuration to container if required
    private void
    addJmxConfigurationToPod(DebeziumServer primary, io.fabric8.kubernetes.api.model.PodTemplateSpec pod)
    Adds JMX configuration to pod if required
    private void
    addTemplateConfigurationToContainer(ContainerTemplate template, io.fabric8.kubernetes.api.model.Container container)
     
    private void
    addTemplateConfigurationToPod(PodTemplate template, io.fabric8.kubernetes.api.model.PodTemplateSpec pod)
    Applies pod template configuration to pod if required
    protected io.fabric8.kubernetes.api.model.apps.Deployment
    desired(DebeziumServer primary, io.javaoperatorsdk.operator.api.reconciler.Context<DebeziumServer> context)
     
    private io.fabric8.kubernetes.api.model.Volume
    Creates desired data volume
    private Optional<io.fabric8.kubernetes.api.model.Container>
    Creates desired JMX init container
    private io.fabric8.kubernetes.api.model.Container
    Creates desired server container
    private String
    Determines the debezium server image tag
    private void
    mergeJavaOptsEnvVar(Map<String,?> newValue, io.fabric8.kubernetes.api.model.Container container)
    Adds JAVA_OPTS environment variable is not set on container.

    Methods inherited from class io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResource

    addOwnerReference, addReferenceHandlingMetadata, configuration, configureWith, configureWith, create, createEventSource, deleteTargetResource, getKubernetesClient, handleCreate, handleDelete, handleUpdate, isDeletable, match, match, prepare, setKubernetesClient, update

    Methods inherited from class io.javaoperatorsdk.operator.processing.dependent.AbstractEventSourceHolderDependentResource

    applyFilters, eventSource, eventSource, initEventSource, onCreated, onUpdated, resolveEventSource, resourceType, setEventSource, setOnAddFilter, setOnDeleteFilter, setOnUpdateFilter, useEventSourceWithName

    Methods inherited from class io.javaoperatorsdk.operator.processing.dependent.AbstractDependentResource

    delete, getSecondaryResource, isCreatable, isUpdatable, reconcile, reconcile, setResourceDiscriminator

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface io.javaoperatorsdk.operator.processing.dependent.Creator

    create

    Methods inherited from interface io.javaoperatorsdk.operator.api.reconciler.dependent.Deleter

    delete

    Methods inherited from interface io.javaoperatorsdk.operator.processing.dependent.Matcher

    match

    Methods inherited from interface io.javaoperatorsdk.operator.processing.dependent.Updater

    update
  • Field Details

  • Constructor Details

    • DeploymentDependent

      public DeploymentDependent()
  • Method Details

    • desired

      protected io.fabric8.kubernetes.api.model.apps.Deployment desired(DebeziumServer primary, io.javaoperatorsdk.operator.api.reconciler.Context<DebeziumServer> context)
      Overrides:
      desired in class io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResource<io.fabric8.kubernetes.api.model.apps.Deployment,DebeziumServer>
    • addTemplateConfigurationToPod

      private void addTemplateConfigurationToPod(PodTemplate template, io.fabric8.kubernetes.api.model.PodTemplateSpec pod)
      Applies pod template configuration to pod if required
      Parameters:
      template - pod template configuration
      pod - actual pod template spec
    • addExternalVolumesToPod

      private void addExternalVolumesToPod(Runtime runtime, io.fabric8.kubernetes.api.model.PodTemplateSpec pod)
      Adds external volume definitions to pod if required
      Parameters:
      runtime - runtime configuration
      pod - actual pod template spec
    • addJmxConfigurationToPod

      private void addJmxConfigurationToPod(DebeziumServer primary, io.fabric8.kubernetes.api.model.PodTemplateSpec pod)
      Adds JMX configuration to pod if required
      Parameters:
      primary - primary resource
      pod - target pod
    • addTemplateConfigurationToContainer

      private void addTemplateConfigurationToContainer(ContainerTemplate template, io.fabric8.kubernetes.api.model.Container container)
    • desiredDataVolume

      private io.fabric8.kubernetes.api.model.Volume desiredDataVolume(DebeziumServer primary)
      Creates desired data volume
      Parameters:
      primary - primary CR
      Returns:
      desired data volume
    • desiredServerContainer

      private io.fabric8.kubernetes.api.model.Container desiredServerContainer(DebeziumServer primary)
      Creates desired server container
      Parameters:
      primary - primary CR
      Returns:
      desired server container
    • desiredJmxInitContainer

      private Optional<io.fabric8.kubernetes.api.model.Container> desiredJmxInitContainer(JmxConfig jmx, String image)
      Creates desired JMX init container
      Parameters:
      jmx - jmx configuration
      Returns:
      init container or empty optional
    • addExternalVolumeMountsToContainer

      private void addExternalVolumeMountsToContainer(Runtime runtime, io.fabric8.kubernetes.api.model.Container container)
      Adds external volume mounts to container if required
      Parameters:
      runtime - runtime configuration
      container - target container
    • addExternalEnvVariablesToContainer

      private void addExternalEnvVariablesToContainer(Runtime runtime, io.fabric8.kubernetes.api.model.Container container)
      Adds external environment variables to container in required
      Parameters:
      runtime - runtime configuration
      container - target container
    • addJmxConfigurationToContainer

      private void addJmxConfigurationToContainer(JmxConfig jmx, io.fabric8.kubernetes.api.model.Container container)
      Adds JMX configuration to container if required
      Parameters:
      jmx - jmx configuration
      container - target container
    • mergeJavaOptsEnvVar

      private void mergeJavaOptsEnvVar(Map<String,?> newValue, io.fabric8.kubernetes.api.model.Container container)
      Adds JAVA_OPTS environment variable is not set on container. If JAVA_OPTS already exists then new (and only new) options are added
      Parameters:
      newValue - additional JAVA_OPTS in form of a map
      container - target container
    • getTaggedImage

      private String getTaggedImage(DebeziumServer primary)
      Determines the debezium server image tag
      Parameters:
      primary - primary CR
      Returns:
      image tag