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.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>
  • 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
    • addStorageVolumesToPod

      private void addStorageVolumesToPod(DebeziumServer primary, RuntimeStorage storage, io.fabric8.kubernetes.api.model.PodTemplateSpec pod)
      Adds storage volume definitions to pod if required
      Parameters:
      primary -
      storage - runtime storage configuration
      pod - actual pod template spec
    • desiredDataVolume

      private Optional<io.fabric8.kubernetes.api.model.Volume> desiredDataVolume(DebeziumServer primary)
    • desiredDataVolumeMount

      private Optional<io.fabric8.kubernetes.api.model.VolumeMount> desiredDataVolumeMount()
    • 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)
    • 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
    • addStorageVolumeMountsToContainer

      private void addStorageVolumeMountsToContainer(RuntimeStorage storage, io.fabric8.kubernetes.api.model.Container container)
      Adds storage volume mounts to container if required
      Parameters:
      storage - runtime configuration
      container - target container
    • addEnvVariablesToContainer

      private void addEnvVariablesToContainer(RuntimeEnvironment environment, io.fabric8.kubernetes.api.model.Container container)
      Adds external environment variables to container in required
      Parameters:
      environment - environment 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