Class ApplicationReconciler

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

    public class ApplicationReconciler
    extends AbstractJobReconciler<org.apache.flink.kubernetes.operator.api.FlinkDeployment,​org.apache.flink.kubernetes.operator.api.spec.FlinkDeploymentSpec,​org.apache.flink.kubernetes.operator.api.status.FlinkDeploymentStatus>
    Reconciler Flink Application deployments.
    • Constructor Summary

      Constructors 
      Constructor Description
      ApplicationReconciler​(io.fabric8.kubernetes.client.KubernetesClient kubernetesClient, FlinkService flinkService, FlinkConfigManager configManager, EventRecorder eventRecorder, StatusRecorder<org.apache.flink.kubernetes.operator.api.FlinkDeployment,​org.apache.flink.kubernetes.operator.api.status.FlinkDeploymentStatus> statusRecorder)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void cancelJob​(org.apache.flink.kubernetes.operator.api.FlinkDeployment deployment, 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.FlinkDeployment deployment, io.javaoperatorsdk.operator.api.reconciler.Context<?> ctx, org.apache.flink.configuration.Configuration observeConfig)
      Removes a failed job.
      protected io.javaoperatorsdk.operator.api.reconciler.DeleteControl cleanupInternal​(org.apache.flink.kubernetes.operator.api.FlinkDeployment deployment, 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.FlinkDeployment relatedResource, org.apache.flink.kubernetes.operator.api.spec.FlinkDeploymentSpec spec, org.apache.flink.kubernetes.operator.api.status.FlinkDeploymentStatus 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 java.util.Optional<org.apache.flink.kubernetes.operator.api.spec.UpgradeMode> getAvailableUpgradeMode​(org.apache.flink.kubernetes.operator.api.FlinkDeployment deployment, org.apache.flink.configuration.Configuration deployConfig, org.apache.flink.configuration.Configuration observeConfig)  
      protected org.apache.flink.configuration.Configuration getDeployConfig​(io.fabric8.kubernetes.api.model.ObjectMeta deployMeta, org.apache.flink.kubernetes.operator.api.spec.FlinkDeploymentSpec currentDeploySpec, io.javaoperatorsdk.operator.api.reconciler.Context<?> context)
      protected FlinkService getFlinkService​(org.apache.flink.kubernetes.operator.api.FlinkDeployment 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.FlinkDeployment deployment, io.javaoperatorsdk.operator.api.reconciler.Context<?> context)
      Get Flink configuration for client interactions with the running Flink deployment/session job.
      boolean reconcileOtherChanges​(org.apache.flink.kubernetes.operator.api.FlinkDeployment deployment, io.javaoperatorsdk.operator.api.reconciler.Context<?> ctx, org.apache.flink.configuration.Configuration observeConfig)
      Reconcile any other changes required for this resource that are specific to the reconciler implementation.
      • Methods inherited from class java.lang.Object

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

    • Constructor Detail

      • ApplicationReconciler

        public ApplicationReconciler​(io.fabric8.kubernetes.client.KubernetesClient kubernetesClient,
                                     FlinkService flinkService,
                                     FlinkConfigManager configManager,
                                     EventRecorder eventRecorder,
                                     StatusRecorder<org.apache.flink.kubernetes.operator.api.FlinkDeployment,​org.apache.flink.kubernetes.operator.api.status.FlinkDeploymentStatus> statusRecorder)
    • Method Detail

      • getFlinkService

        protected FlinkService getFlinkService​(org.apache.flink.kubernetes.operator.api.FlinkDeployment 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.FlinkDeployment,​org.apache.flink.kubernetes.operator.api.spec.FlinkDeploymentSpec,​org.apache.flink.kubernetes.operator.api.status.FlinkDeploymentStatus>
        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.FlinkDeployment deployment,
                                                                                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.FlinkDeployment,​org.apache.flink.kubernetes.operator.api.spec.FlinkDeploymentSpec,​org.apache.flink.kubernetes.operator.api.status.FlinkDeploymentStatus>
        Parameters:
        deployment - Related Flink resource.
        context - Reconciliation context.
        Returns:
        Observe configuration.
      • getAvailableUpgradeMode

        protected java.util.Optional<org.apache.flink.kubernetes.operator.api.spec.UpgradeMode> getAvailableUpgradeMode​(org.apache.flink.kubernetes.operator.api.FlinkDeployment deployment,
                                                                                                                        org.apache.flink.configuration.Configuration deployConfig,
                                                                                                                        org.apache.flink.configuration.Configuration observeConfig)
        Overrides:
        getAvailableUpgradeMode in class AbstractJobReconciler<org.apache.flink.kubernetes.operator.api.FlinkDeployment,​org.apache.flink.kubernetes.operator.api.spec.FlinkDeploymentSpec,​org.apache.flink.kubernetes.operator.api.status.FlinkDeploymentStatus>
      • deploy

        protected void deploy​(org.apache.flink.kubernetes.operator.api.FlinkDeployment relatedResource,
                              org.apache.flink.kubernetes.operator.api.spec.FlinkDeploymentSpec spec,
                              org.apache.flink.kubernetes.operator.api.status.FlinkDeploymentStatus 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.FlinkDeployment,​org.apache.flink.kubernetes.operator.api.spec.FlinkDeploymentSpec,​org.apache.flink.kubernetes.operator.api.status.FlinkDeploymentStatus>
        Parameters:
        relatedResource - Related resource.
        spec - 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.FlinkDeployment deployment,
                                 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.FlinkDeployment,​org.apache.flink.kubernetes.operator.api.spec.FlinkDeploymentSpec,​org.apache.flink.kubernetes.operator.api.status.FlinkDeploymentStatus>
        Parameters:
        deployment - 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.FlinkDeployment deployment,
                                             io.javaoperatorsdk.operator.api.reconciler.Context<?> ctx,
                                             org.apache.flink.configuration.Configuration observeConfig)
        Description copied from class: AbstractJobReconciler
        Removes a failed job.
        Specified by:
        cleanupAfterFailedJob in class AbstractJobReconciler<org.apache.flink.kubernetes.operator.api.FlinkDeployment,​org.apache.flink.kubernetes.operator.api.spec.FlinkDeploymentSpec,​org.apache.flink.kubernetes.operator.api.status.FlinkDeploymentStatus>
        Parameters:
        deployment - The failed job.
        observeConfig - Observe configuration.
      • reconcileOtherChanges

        public boolean reconcileOtherChanges​(org.apache.flink.kubernetes.operator.api.FlinkDeployment deployment,
                                             io.javaoperatorsdk.operator.api.reconciler.Context<?> ctx,
                                             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.
        Overrides:
        reconcileOtherChanges in class AbstractJobReconciler<org.apache.flink.kubernetes.operator.api.FlinkDeployment,​org.apache.flink.kubernetes.operator.api.spec.FlinkDeploymentSpec,​org.apache.flink.kubernetes.operator.api.status.FlinkDeploymentStatus>
        Parameters:
        deployment - Related Flink resource.
        observeConfig - Observe configuration.
        Returns:
        True if any further reconciliation action was taken.
        Throws:
        java.lang.Exception - Error during reconciliation.
      • cleanupInternal

        protected io.javaoperatorsdk.operator.api.reconciler.DeleteControl cleanupInternal​(org.apache.flink.kubernetes.operator.api.FlinkDeployment deployment,
                                                                                           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.FlinkDeployment,​org.apache.flink.kubernetes.operator.api.spec.FlinkDeploymentSpec,​org.apache.flink.kubernetes.operator.api.status.FlinkDeploymentStatus>
        Parameters:
        deployment - Resource being reconciled.
        context - Current context.
        Returns:
        DeleteControl object.