Class AbstractJobReconciler<CR extends org.apache.flink.kubernetes.operator.api.AbstractFlinkResource<SPEC,​STATUS>,​SPEC extends org.apache.flink.kubernetes.operator.api.spec.AbstractFlinkSpec,​STATUS extends org.apache.flink.kubernetes.operator.api.status.CommonStatus<SPEC>>

  • All Implemented Interfaces:
    Reconciler<CR>
    Direct Known Subclasses:
    ApplicationReconciler, SessionJobReconciler

    public abstract class AbstractJobReconciler<CR extends org.apache.flink.kubernetes.operator.api.AbstractFlinkResource<SPEC,​STATUS>,​SPEC extends org.apache.flink.kubernetes.operator.api.spec.AbstractFlinkSpec,​STATUS extends org.apache.flink.kubernetes.operator.api.status.CommonStatus<SPEC>>
    extends AbstractFlinkResourceReconciler<CR,​SPEC,​STATUS>
    Reconciler responsible for handling the job lifecycle according to the desired and current states.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected abstract void cancelJob​(CR 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 abstract void cleanupAfterFailedJob​(CR resource, io.javaoperatorsdk.operator.api.reconciler.Context<?> ctx, org.apache.flink.configuration.Configuration observeConfig)
      Removes a failed job.
      protected java.util.Optional<org.apache.flink.kubernetes.operator.api.spec.UpgradeMode> getAvailableUpgradeMode​(CR resource, org.apache.flink.configuration.Configuration deployConfig, org.apache.flink.configuration.Configuration observeConfig)  
      boolean readyToReconcile​(CR resource, 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.
      boolean reconcileOtherChanges​(CR resource, io.javaoperatorsdk.operator.api.reconciler.Context<?> context, org.apache.flink.configuration.Configuration observeConfig)
      Reconcile any other changes required for this resource that are specific to the reconciler implementation.
      protected void reconcileSpecChange​(CR resource, io.javaoperatorsdk.operator.api.reconciler.Context<?> ctx, org.apache.flink.configuration.Configuration observeConfig, org.apache.flink.configuration.Configuration deployConfig, org.apache.flink.kubernetes.operator.api.diff.DiffType diffType)
      Reconcile spec upgrade on the currently deployed/suspended Flink resource and update the status accordingly.
      protected void restoreJob​(CR resource, SPEC spec, STATUS status, io.javaoperatorsdk.operator.api.reconciler.Context<?> ctx, org.apache.flink.configuration.Configuration deployConfig, boolean requireHaMetadata)  
      protected void resubmitJob​(CR deployment, io.javaoperatorsdk.operator.api.reconciler.Context<?> ctx, org.apache.flink.configuration.Configuration observeConfig, boolean requireHaMetadata)  
      protected void rollback​(CR resource, io.javaoperatorsdk.operator.api.reconciler.Context<?> ctx, org.apache.flink.configuration.Configuration observeConfig)
      Rollback deployed resource to the last stable spec.
      • Methods inherited from class java.lang.Object

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

      • readyToReconcile

        public boolean readyToReconcile​(CR resource,
                                        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.
        Specified by:
        readyToReconcile in class AbstractFlinkResourceReconciler<CR extends org.apache.flink.kubernetes.operator.api.AbstractFlinkResource<SPEC,​STATUS>,​SPEC extends org.apache.flink.kubernetes.operator.api.spec.AbstractFlinkSpec,​STATUS extends org.apache.flink.kubernetes.operator.api.status.CommonStatus<SPEC>>
        Parameters:
        resource - Related Flink resource.
        context - Reconciliation context.
        deployConfig - Deployment configuration.
        Returns:
        True if the resource is ready to be reconciled.
      • reconcileSpecChange

        protected void reconcileSpecChange​(CR resource,
                                           io.javaoperatorsdk.operator.api.reconciler.Context<?> ctx,
                                           org.apache.flink.configuration.Configuration observeConfig,
                                           org.apache.flink.configuration.Configuration deployConfig,
                                           org.apache.flink.kubernetes.operator.api.diff.DiffType diffType)
                                    throws java.lang.Exception
        Description copied from class: AbstractFlinkResourceReconciler
        Reconcile spec upgrade on the currently deployed/suspended Flink resource and update the status accordingly.
        Specified by:
        reconcileSpecChange in class AbstractFlinkResourceReconciler<CR extends org.apache.flink.kubernetes.operator.api.AbstractFlinkResource<SPEC,​STATUS>,​SPEC extends org.apache.flink.kubernetes.operator.api.spec.AbstractFlinkSpec,​STATUS extends org.apache.flink.kubernetes.operator.api.status.CommonStatus<SPEC>>
        Parameters:
        resource - Related Flink resource.
        observeConfig - Observe configuration.
        deployConfig - Deployment configuration.
        Throws:
        java.lang.Exception - Error during spec upgrade.
      • getAvailableUpgradeMode

        protected java.util.Optional<org.apache.flink.kubernetes.operator.api.spec.UpgradeMode> getAvailableUpgradeMode​(CR resource,
                                                                                                                        org.apache.flink.configuration.Configuration deployConfig,
                                                                                                                        org.apache.flink.configuration.Configuration observeConfig)
      • restoreJob

        protected void restoreJob​(CR resource,
                                  SPEC spec,
                                  STATUS status,
                                  io.javaoperatorsdk.operator.api.reconciler.Context<?> ctx,
                                  org.apache.flink.configuration.Configuration deployConfig,
                                  boolean requireHaMetadata)
                           throws java.lang.Exception
        Throws:
        java.lang.Exception
      • rollback

        protected void rollback​(CR resource,
                                io.javaoperatorsdk.operator.api.reconciler.Context<?> ctx,
                                org.apache.flink.configuration.Configuration observeConfig)
                         throws java.lang.Exception
        Description copied from class: AbstractFlinkResourceReconciler
        Rollback deployed resource to the last stable spec.
        Specified by:
        rollback in class AbstractFlinkResourceReconciler<CR extends org.apache.flink.kubernetes.operator.api.AbstractFlinkResource<SPEC,​STATUS>,​SPEC extends org.apache.flink.kubernetes.operator.api.spec.AbstractFlinkSpec,​STATUS extends org.apache.flink.kubernetes.operator.api.status.CommonStatus<SPEC>>
        Parameters:
        resource - Related Flink resource.
        ctx - Reconciliation context.
        observeConfig - Observe configuration.
        Throws:
        java.lang.Exception - Error during rollback.
      • reconcileOtherChanges

        public boolean reconcileOtherChanges​(CR resource,
                                             io.javaoperatorsdk.operator.api.reconciler.Context<?> context,
                                             org.apache.flink.configuration.Configuration observeConfig)
                                      throws java.lang.Exception
        Description copied from class: AbstractFlinkResourceReconciler
        Reconcile any other changes required for this resource that are specific to the reconciler implementation.
        Specified by:
        reconcileOtherChanges in class AbstractFlinkResourceReconciler<CR extends org.apache.flink.kubernetes.operator.api.AbstractFlinkResource<SPEC,​STATUS>,​SPEC extends org.apache.flink.kubernetes.operator.api.spec.AbstractFlinkSpec,​STATUS extends org.apache.flink.kubernetes.operator.api.status.CommonStatus<SPEC>>
        Parameters:
        resource - Related Flink resource.
        observeConfig - Observe configuration.
        Returns:
        True if any further reconciliation action was taken.
        Throws:
        java.lang.Exception - Error during reconciliation.
      • resubmitJob

        protected void resubmitJob​(CR deployment,
                                   io.javaoperatorsdk.operator.api.reconciler.Context<?> ctx,
                                   org.apache.flink.configuration.Configuration observeConfig,
                                   boolean requireHaMetadata)
                            throws java.lang.Exception
        Throws:
        java.lang.Exception
      • cancelJob

        protected abstract void cancelJob​(CR 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
        Cancel the job for the given resource using the specified upgrade mode.
        Parameters:
        resource - Related Flink resource.
        upgradeMode - Upgrade mode used during cancel.
        observeConfig - Observe configuration.
        Throws:
        java.lang.Exception - Error during cancellation.
      • cleanupAfterFailedJob

        protected abstract void cleanupAfterFailedJob​(CR resource,
                                                      io.javaoperatorsdk.operator.api.reconciler.Context<?> ctx,
                                                      org.apache.flink.configuration.Configuration observeConfig)
                                               throws java.lang.Exception
        Removes a failed job.
        Parameters:
        resource - The failed job.
        observeConfig - Observe configuration.
        Throws:
        java.lang.Exception - Error during cancellation.