Class SessionJobReconciler
- java.lang.Object
-
- org.apache.flink.kubernetes.operator.reconciler.deployment.AbstractFlinkResourceReconciler<CR,SPEC,STATUS>
-
- org.apache.flink.kubernetes.operator.reconciler.deployment.AbstractJobReconciler<org.apache.flink.kubernetes.operator.api.FlinkSessionJob,org.apache.flink.kubernetes.operator.api.spec.FlinkSessionJobSpec,org.apache.flink.kubernetes.operator.api.status.FlinkSessionJobStatus>
-
- org.apache.flink.kubernetes.operator.reconciler.sessionjob.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 theFlinkSessionJob.
-
-
Field Summary
-
Fields inherited from class org.apache.flink.kubernetes.operator.reconciler.deployment.AbstractFlinkResourceReconciler
clock, configManager, eventRecorder, kubernetesClient, MSG_ROLLBACK, MSG_SPEC_CHANGED, MSG_SUBMIT, MSG_SUSPENDED, statusRecorder
-
-
Constructor Summary
Constructors Constructor Description 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 Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidcancelJob(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 voidcleanupAfterFailedJob(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.DeleteControlcleanupInternal(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 voiddeploy(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.ConfigurationgetDeployConfig(io.fabric8.kubernetes.api.model.ObjectMeta deployMeta, org.apache.flink.kubernetes.operator.api.spec.FlinkSessionJobSpec currentDeploySpec, io.javaoperatorsdk.operator.api.reconciler.Context<?> context)Get Flink configuration object for deploying the given spec usingAbstractFlinkResourceReconciler.deploy(CR, SPEC, STATUS, io.javaoperatorsdk.operator.api.reconciler.Context<?>, org.apache.flink.configuration.Configuration, java.util.Optional<java.lang.String>, boolean).protected FlinkServicegetFlinkService(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.ConfigurationgetObserveConfig(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.booleanreadyToReconcile(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 booleansessionClusterReady(java.util.Optional<org.apache.flink.kubernetes.operator.api.FlinkDeployment> flinkDeploymentOpt)-
Methods inherited from class org.apache.flink.kubernetes.operator.reconciler.deployment.AbstractJobReconciler
getAvailableUpgradeMode, reconcileOtherChanges, reconcileSpecChange, restoreJob, resubmitJob, rollback
-
Methods inherited from class org.apache.flink.kubernetes.operator.reconciler.deployment.AbstractFlinkResourceReconciler
cleanup, flinkVersionChanged, reconcile, setClock, setOwnerReference, shouldRecoverDeployment
-
-
-
-
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:AbstractFlinkResourceReconcilerGet the Flink service related to the resource and context.- Specified by:
getFlinkServicein classAbstractFlinkResourceReconciler<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:AbstractFlinkResourceReconcilerGet Flink configuration for client interactions with the running Flink deployment/session job.- Specified by:
getObserveConfigin classAbstractFlinkResourceReconciler<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.
-
getDeployConfig
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)Description copied from class:AbstractFlinkResourceReconcilerGet Flink configuration object for deploying the given spec usingAbstractFlinkResourceReconciler.deploy(CR, SPEC, STATUS, io.javaoperatorsdk.operator.api.reconciler.Context<?>, org.apache.flink.configuration.Configuration, java.util.Optional<java.lang.String>, boolean).- Specified by:
getDeployConfigin classAbstractFlinkResourceReconciler<org.apache.flink.kubernetes.operator.api.FlinkSessionJob,org.apache.flink.kubernetes.operator.api.spec.FlinkSessionJobSpec,org.apache.flink.kubernetes.operator.api.status.FlinkSessionJobStatus>- Parameters:
deployMeta- ObjectMeta of the related resource.currentDeploySpec- Spec for which the config should be created.context- Reconciliation context.- Returns:
- Deployment 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:AbstractFlinkResourceReconcilerCheck whether the given Flink resource is ready to be reconciled or we are still waiting for any pending operation or condition first.- Overrides:
readyToReconcilein classAbstractJobReconciler<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.ExceptionDescription copied from class:AbstractFlinkResourceReconcilerDeploys the target resource spec to Kubernetes.- Specified by:
deployin classAbstractFlinkResourceReconciler<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 resourcectx- 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.ExceptionDescription copied from class:AbstractJobReconcilerCancel the job for the given resource using the specified upgrade mode.- Specified by:
cancelJobin classAbstractJobReconciler<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.ExceptionDescription copied from class:AbstractJobReconcilerRemoves a failed job.- Specified by:
cleanupAfterFailedJobin classAbstractJobReconciler<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:AbstractFlinkResourceReconcilerShut down and clean up all Flink job/cluster resources.- Specified by:
cleanupInternalin classAbstractFlinkResourceReconciler<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)
-
-