Class SessionJobReconciler

  • All Implemented Interfaces:
    Reconciler<org.apache.flink.kubernetes.operator.api.FlinkSessionJob>

    public class SessionJobReconciler
    extends AbstractJobReconciler<org.apache.flink.kubernetes.operator.api.FlinkSessionJob,​org.apache.flink.kubernetes.operator.api.spec.FlinkSessionJobSpec,​org.apache.flink.kubernetes.operator.api.status.FlinkSessionJobStatus>
    The reconciler for the FlinkSessionJob.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void cancelJob​(org.apache.flink.kubernetes.operator.api.FlinkSessionJob resource, io.javaoperatorsdk.operator.api.reconciler.Context<?> ctx, org.apache.flink.kubernetes.operator.api.spec.UpgradeMode upgradeMode, org.apache.flink.configuration.Configuration observeConfig)
      Cancel the job for the given resource using the specified upgrade mode.
      protected void cleanupAfterFailedJob​(org.apache.flink.kubernetes.operator.api.FlinkSessionJob resource, io.javaoperatorsdk.operator.api.reconciler.Context<?> ctx, org.apache.flink.configuration.Configuration observeConfig)
      Removes a failed job.
      io.javaoperatorsdk.operator.api.reconciler.DeleteControl cleanupInternal​(org.apache.flink.kubernetes.operator.api.FlinkSessionJob sessionJob, io.javaoperatorsdk.operator.api.reconciler.Context<?> context)
      Shut down and clean up all Flink job/cluster resources.
      protected void deploy​(org.apache.flink.kubernetes.operator.api.FlinkSessionJob cr, org.apache.flink.kubernetes.operator.api.spec.FlinkSessionJobSpec sessionJobSpec, org.apache.flink.kubernetes.operator.api.status.FlinkSessionJobStatus status, io.javaoperatorsdk.operator.api.reconciler.Context<?> ctx, org.apache.flink.configuration.Configuration deployConfig, java.util.Optional<java.lang.String> savepoint, boolean requireHaMetadata)
      Deploys the target resource spec to Kubernetes.
      protected org.apache.flink.configuration.Configuration getDeployConfig​(io.fabric8.kubernetes.api.model.ObjectMeta deployMeta, org.apache.flink.kubernetes.operator.api.spec.FlinkSessionJobSpec currentDeploySpec, io.javaoperatorsdk.operator.api.reconciler.Context<?> context)
      protected FlinkService getFlinkService​(org.apache.flink.kubernetes.operator.api.FlinkSessionJob resource, io.javaoperatorsdk.operator.api.reconciler.Context<?> context)
      Get the Flink service related to the resource and context.
      protected org.apache.flink.configuration.Configuration getObserveConfig​(org.apache.flink.kubernetes.operator.api.FlinkSessionJob sessionJob, io.javaoperatorsdk.operator.api.reconciler.Context<?> context)
      Get Flink configuration for client interactions with the running Flink deployment/session job.
      boolean readyToReconcile​(org.apache.flink.kubernetes.operator.api.FlinkSessionJob flinkSessionJob, io.javaoperatorsdk.operator.api.reconciler.Context<?> context, org.apache.flink.configuration.Configuration deployConfig)
      Check whether the given Flink resource is ready to be reconciled or we are still waiting for any pending operation or condition first.
      static boolean sessionClusterReady​(java.util.Optional<org.apache.flink.kubernetes.operator.api.FlinkDeployment> flinkDeploymentOpt)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SessionJobReconciler

        public SessionJobReconciler​(io.fabric8.kubernetes.client.KubernetesClient kubernetesClient,
                                    FlinkServiceFactory flinkServiceFactory,
                                    FlinkConfigManager configManager,
                                    EventRecorder eventRecorder,
                                    StatusRecorder<org.apache.flink.kubernetes.operator.api.FlinkSessionJob,​org.apache.flink.kubernetes.operator.api.status.FlinkSessionJobStatus> statusRecorder)
    • Method Detail

      • getFlinkService

        protected FlinkService getFlinkService​(org.apache.flink.kubernetes.operator.api.FlinkSessionJob resource,
                                               io.javaoperatorsdk.operator.api.reconciler.Context<?> context)
        Description copied from class: AbstractFlinkResourceReconciler
        Get the Flink service related to the resource and context.
        Specified by:
        getFlinkService in class AbstractFlinkResourceReconciler<org.apache.flink.kubernetes.operator.api.FlinkSessionJob,​org.apache.flink.kubernetes.operator.api.spec.FlinkSessionJobSpec,​org.apache.flink.kubernetes.operator.api.status.FlinkSessionJobStatus>
        Parameters:
        resource - Resource being reconciled.
        context - Current context.
        Returns:
        Flink service implementation.
      • getObserveConfig

        protected org.apache.flink.configuration.Configuration getObserveConfig​(org.apache.flink.kubernetes.operator.api.FlinkSessionJob sessionJob,
                                                                                io.javaoperatorsdk.operator.api.reconciler.Context<?> context)
        Description copied from class: AbstractFlinkResourceReconciler
        Get Flink configuration for client interactions with the running Flink deployment/session job.
        Specified by:
        getObserveConfig in class AbstractFlinkResourceReconciler<org.apache.flink.kubernetes.operator.api.FlinkSessionJob,​org.apache.flink.kubernetes.operator.api.spec.FlinkSessionJobSpec,​org.apache.flink.kubernetes.operator.api.status.FlinkSessionJobStatus>
        Parameters:
        sessionJob - Related Flink resource.
        context - Reconciliation context.
        Returns:
        Observe configuration.
      • readyToReconcile

        public boolean readyToReconcile​(org.apache.flink.kubernetes.operator.api.FlinkSessionJob flinkSessionJob,
                                        io.javaoperatorsdk.operator.api.reconciler.Context<?> context,
                                        org.apache.flink.configuration.Configuration deployConfig)
        Description copied from class: AbstractFlinkResourceReconciler
        Check whether the given Flink resource is ready to be reconciled or we are still waiting for any pending operation or condition first.
        Overrides:
        readyToReconcile in class AbstractJobReconciler<org.apache.flink.kubernetes.operator.api.FlinkSessionJob,​org.apache.flink.kubernetes.operator.api.spec.FlinkSessionJobSpec,​org.apache.flink.kubernetes.operator.api.status.FlinkSessionJobStatus>
        Parameters:
        flinkSessionJob - Related Flink resource.
        context - Reconciliation context.
        deployConfig - Deployment configuration.
        Returns:
        True if the resource is ready to be reconciled.
      • deploy

        protected void deploy​(org.apache.flink.kubernetes.operator.api.FlinkSessionJob cr,
                              org.apache.flink.kubernetes.operator.api.spec.FlinkSessionJobSpec sessionJobSpec,
                              org.apache.flink.kubernetes.operator.api.status.FlinkSessionJobStatus status,
                              io.javaoperatorsdk.operator.api.reconciler.Context<?> ctx,
                              org.apache.flink.configuration.Configuration deployConfig,
                              java.util.Optional<java.lang.String> savepoint,
                              boolean requireHaMetadata)
                       throws java.lang.Exception
        Description copied from class: AbstractFlinkResourceReconciler
        Deploys the target resource spec to Kubernetes.
        Specified by:
        deploy in class AbstractFlinkResourceReconciler<org.apache.flink.kubernetes.operator.api.FlinkSessionJob,​org.apache.flink.kubernetes.operator.api.spec.FlinkSessionJobSpec,​org.apache.flink.kubernetes.operator.api.status.FlinkSessionJobStatus>
        Parameters:
        cr - Related resource.
        sessionJobSpec - Spec that should be deployed to Kubernetes.
        status - Status object of the resource
        ctx - Reconciliation context.
        deployConfig - Flink conf for the deployment.
        savepoint - Optional savepoint path for applications and session jobs.
        requireHaMetadata - Flag used by application deployments to validate HA metadata
        Throws:
        java.lang.Exception - Error during deployment.
      • cancelJob

        protected void cancelJob​(org.apache.flink.kubernetes.operator.api.FlinkSessionJob resource,
                                 io.javaoperatorsdk.operator.api.reconciler.Context<?> ctx,
                                 org.apache.flink.kubernetes.operator.api.spec.UpgradeMode upgradeMode,
                                 org.apache.flink.configuration.Configuration observeConfig)
                          throws java.lang.Exception
        Description copied from class: AbstractJobReconciler
        Cancel the job for the given resource using the specified upgrade mode.
        Specified by:
        cancelJob in class AbstractJobReconciler<org.apache.flink.kubernetes.operator.api.FlinkSessionJob,​org.apache.flink.kubernetes.operator.api.spec.FlinkSessionJobSpec,​org.apache.flink.kubernetes.operator.api.status.FlinkSessionJobStatus>
        Parameters:
        resource - Related Flink resource.
        upgradeMode - Upgrade mode used during cancel.
        observeConfig - Observe configuration.
        Throws:
        java.lang.Exception - Error during cancellation.
      • cleanupAfterFailedJob

        protected void cleanupAfterFailedJob​(org.apache.flink.kubernetes.operator.api.FlinkSessionJob resource,
                                             io.javaoperatorsdk.operator.api.reconciler.Context<?> ctx,
                                             org.apache.flink.configuration.Configuration observeConfig)
                                      throws java.lang.Exception
        Description copied from class: AbstractJobReconciler
        Removes a failed job.
        Specified by:
        cleanupAfterFailedJob in class AbstractJobReconciler<org.apache.flink.kubernetes.operator.api.FlinkSessionJob,​org.apache.flink.kubernetes.operator.api.spec.FlinkSessionJobSpec,​org.apache.flink.kubernetes.operator.api.status.FlinkSessionJobStatus>
        Parameters:
        resource - The failed job.
        observeConfig - Observe configuration.
        Throws:
        java.lang.Exception - Error during cancellation.
      • cleanupInternal

        public io.javaoperatorsdk.operator.api.reconciler.DeleteControl cleanupInternal​(org.apache.flink.kubernetes.operator.api.FlinkSessionJob sessionJob,
                                                                                        io.javaoperatorsdk.operator.api.reconciler.Context<?> context)
        Description copied from class: AbstractFlinkResourceReconciler
        Shut down and clean up all Flink job/cluster resources.
        Specified by:
        cleanupInternal in class AbstractFlinkResourceReconciler<org.apache.flink.kubernetes.operator.api.FlinkSessionJob,​org.apache.flink.kubernetes.operator.api.spec.FlinkSessionJobSpec,​org.apache.flink.kubernetes.operator.api.status.FlinkSessionJobStatus>
        Parameters:
        sessionJob - Resource being reconciled.
        context - Current context.
        Returns:
        DeleteControl object.
      • sessionClusterReady

        public static boolean sessionClusterReady​(java.util.Optional<org.apache.flink.kubernetes.operator.api.FlinkDeployment> flinkDeploymentOpt)