Class AbstractFlinkService
- java.lang.Object
-
- org.apache.flink.kubernetes.operator.service.AbstractFlinkService
-
- All Implemented Interfaces:
FlinkService
- Direct Known Subclasses:
NativeFlinkService,StandaloneFlinkService
public abstract class AbstractFlinkService extends java.lang.Object implements FlinkService
An abstractFlinkServicecontaining some common implementations for the native and standalone Flink Services.
-
-
Field Summary
Fields Modifier and Type Field Description protected ArtifactManagerartifactManagerprotected FlinkConfigManagerconfigManagerprotected io.fabric8.kubernetes.client.KubernetesClientkubernetesClient
-
Constructor Summary
Constructors Constructor Description AbstractFlinkService(io.fabric8.kubernetes.client.KubernetesClient kubernetesClient, FlinkConfigManager configManager)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidcancelJob(org.apache.flink.kubernetes.operator.api.FlinkDeployment deployment, org.apache.flink.kubernetes.operator.api.spec.UpgradeMode upgradeMode, org.apache.flink.configuration.Configuration conf, boolean deleteClusterAfterSavepoint)voidcancelSessionJob(org.apache.flink.kubernetes.operator.api.FlinkSessionJob sessionJob, org.apache.flink.kubernetes.operator.api.spec.UpgradeMode upgradeMode, org.apache.flink.configuration.Configuration conf)voiddeleteClusterDeployment(io.fabric8.kubernetes.api.model.ObjectMeta meta, org.apache.flink.kubernetes.operator.api.status.FlinkDeploymentStatus status, boolean deleteHaData)protected abstract voiddeleteClusterInternal(io.fabric8.kubernetes.api.model.ObjectMeta meta, boolean deleteHaConfigmaps)Delete Flink kubernetes cluster by deleting the kubernetes resources directly.protected abstract voiddeployApplicationCluster(org.apache.flink.kubernetes.operator.api.spec.JobSpec jobSpec, org.apache.flink.configuration.Configuration conf)voiddisposeSavepoint(java.lang.String savepointPath, org.apache.flink.configuration.Configuration conf)SavepointFetchResultfetchSavepointInfo(java.lang.String triggerId, java.lang.String jobId, org.apache.flink.configuration.Configuration conf)protected org.apache.flink.client.program.ClusterClient<java.lang.String>getClusterClient(org.apache.flink.configuration.Configuration conf)java.util.Map<java.lang.String,java.lang.String>getClusterInfo(org.apache.flink.configuration.Configuration conf)protected static org.apache.flink.api.common.JobStatusgetEffectiveStatus(org.apache.flink.runtime.messages.webmonitor.JobDetails details)protected abstract io.fabric8.kubernetes.api.model.PodListgetJmPodList(java.lang.String namespace, java.lang.String clusterId)io.fabric8.kubernetes.api.model.PodListgetJmPodList(org.apache.flink.kubernetes.operator.api.FlinkDeployment deployment, org.apache.flink.configuration.Configuration conf)io.fabric8.kubernetes.client.KubernetesClientgetKubernetesClient()java.util.Optional<org.apache.flink.kubernetes.operator.api.status.Savepoint>getLastCheckpoint(org.apache.flink.api.common.JobID jobId, org.apache.flink.configuration.Configuration conf)java.util.Map<java.lang.String,java.lang.String>getMetrics(org.apache.flink.configuration.Configuration conf, java.lang.String jobId, java.util.List<java.lang.String> metricNames)booleanisHaMetadataAvailable(org.apache.flink.configuration.Configuration conf)booleanisJobManagerPortReady(org.apache.flink.configuration.Configuration config)java.util.Collection<org.apache.flink.runtime.client.JobStatusMessage>listJobs(org.apache.flink.configuration.Configuration conf)protected static org.apache.flink.configuration.ConfigurationremoveOperatorConfigs(org.apache.flink.configuration.Configuration config)org.apache.flink.runtime.jobmaster.JobResultrequestJobResult(org.apache.flink.configuration.Configuration conf, org.apache.flink.api.common.JobID jobID)voidsubmitApplicationCluster(org.apache.flink.kubernetes.operator.api.spec.JobSpec jobSpec, org.apache.flink.configuration.Configuration conf, boolean requireHaMetadata)org.apache.flink.api.common.JobIDsubmitJobToSessionCluster(io.fabric8.kubernetes.api.model.ObjectMeta meta, org.apache.flink.kubernetes.operator.api.spec.FlinkSessionJobSpec spec, org.apache.flink.configuration.Configuration conf, java.lang.String savepoint)voidtriggerSavepoint(java.lang.String jobId, org.apache.flink.kubernetes.operator.api.status.SavepointTriggerType triggerType, org.apache.flink.kubernetes.operator.api.status.SavepointInfo savepointInfo, org.apache.flink.configuration.Configuration conf)protected voidupdateStatusAfterClusterDeletion(org.apache.flink.kubernetes.operator.api.status.FlinkDeploymentStatus status)voidwaitForClusterShutdown(org.apache.flink.configuration.Configuration conf)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.flink.kubernetes.operator.service.FlinkService
cancelJob, scale, submitSessionCluster
-
-
-
-
Field Detail
-
kubernetesClient
protected final io.fabric8.kubernetes.client.KubernetesClient kubernetesClient
-
configManager
protected final FlinkConfigManager configManager
-
artifactManager
protected final ArtifactManager artifactManager
-
-
Constructor Detail
-
AbstractFlinkService
public AbstractFlinkService(io.fabric8.kubernetes.client.KubernetesClient kubernetesClient, FlinkConfigManager configManager)
-
-
Method Detail
-
getJmPodList
protected abstract io.fabric8.kubernetes.api.model.PodList getJmPodList(java.lang.String namespace, java.lang.String clusterId)
-
deployApplicationCluster
protected abstract void deployApplicationCluster(org.apache.flink.kubernetes.operator.api.spec.JobSpec jobSpec, org.apache.flink.configuration.Configuration conf) throws java.lang.Exception- Throws:
java.lang.Exception
-
getKubernetesClient
public io.fabric8.kubernetes.client.KubernetesClient getKubernetesClient()
- Specified by:
getKubernetesClientin interfaceFlinkService
-
submitApplicationCluster
public void submitApplicationCluster(org.apache.flink.kubernetes.operator.api.spec.JobSpec jobSpec, org.apache.flink.configuration.Configuration conf, boolean requireHaMetadata) throws java.lang.Exception- Specified by:
submitApplicationClusterin interfaceFlinkService- Throws:
java.lang.Exception
-
isHaMetadataAvailable
public boolean isHaMetadataAvailable(org.apache.flink.configuration.Configuration conf)
- Specified by:
isHaMetadataAvailablein interfaceFlinkService
-
submitJobToSessionCluster
public org.apache.flink.api.common.JobID submitJobToSessionCluster(io.fabric8.kubernetes.api.model.ObjectMeta meta, org.apache.flink.kubernetes.operator.api.spec.FlinkSessionJobSpec spec, org.apache.flink.configuration.Configuration conf, @Nullable java.lang.String savepoint) throws java.lang.Exception- Specified by:
submitJobToSessionClusterin interfaceFlinkService- Throws:
java.lang.Exception
-
isJobManagerPortReady
public boolean isJobManagerPortReady(org.apache.flink.configuration.Configuration config)
- Specified by:
isJobManagerPortReadyin interfaceFlinkService
-
listJobs
public java.util.Collection<org.apache.flink.runtime.client.JobStatusMessage> listJobs(org.apache.flink.configuration.Configuration conf) throws java.lang.Exception- Specified by:
listJobsin interfaceFlinkService- Throws:
java.lang.Exception
-
requestJobResult
public org.apache.flink.runtime.jobmaster.JobResult requestJobResult(org.apache.flink.configuration.Configuration conf, org.apache.flink.api.common.JobID jobID) throws java.lang.Exception- Specified by:
requestJobResultin interfaceFlinkService- Throws:
java.lang.Exception
-
cancelJob
protected void cancelJob(org.apache.flink.kubernetes.operator.api.FlinkDeployment deployment, org.apache.flink.kubernetes.operator.api.spec.UpgradeMode upgradeMode, org.apache.flink.configuration.Configuration conf, boolean deleteClusterAfterSavepoint) throws java.lang.Exception- Throws:
java.lang.Exception
-
cancelSessionJob
public void cancelSessionJob(org.apache.flink.kubernetes.operator.api.FlinkSessionJob sessionJob, org.apache.flink.kubernetes.operator.api.spec.UpgradeMode upgradeMode, org.apache.flink.configuration.Configuration conf) throws java.lang.Exception- Specified by:
cancelSessionJobin interfaceFlinkService- Throws:
java.lang.Exception
-
triggerSavepoint
public void triggerSavepoint(java.lang.String jobId, org.apache.flink.kubernetes.operator.api.status.SavepointTriggerType triggerType, org.apache.flink.kubernetes.operator.api.status.SavepointInfo savepointInfo, org.apache.flink.configuration.Configuration conf) throws java.lang.Exception- Specified by:
triggerSavepointin interfaceFlinkService- Throws:
java.lang.Exception
-
getLastCheckpoint
public java.util.Optional<org.apache.flink.kubernetes.operator.api.status.Savepoint> getLastCheckpoint(org.apache.flink.api.common.JobID jobId, org.apache.flink.configuration.Configuration conf) throws java.lang.Exception- Specified by:
getLastCheckpointin interfaceFlinkService- Throws:
java.lang.Exception
-
disposeSavepoint
public void disposeSavepoint(java.lang.String savepointPath, org.apache.flink.configuration.Configuration conf) throws java.lang.Exception- Specified by:
disposeSavepointin interfaceFlinkService- Throws:
java.lang.Exception
-
fetchSavepointInfo
public SavepointFetchResult fetchSavepointInfo(java.lang.String triggerId, java.lang.String jobId, org.apache.flink.configuration.Configuration conf)
- Specified by:
fetchSavepointInfoin interfaceFlinkService
-
getClusterInfo
public java.util.Map<java.lang.String,java.lang.String> getClusterInfo(org.apache.flink.configuration.Configuration conf) throws java.lang.Exception- Specified by:
getClusterInfoin interfaceFlinkService- Throws:
java.lang.Exception
-
getJmPodList
public io.fabric8.kubernetes.api.model.PodList getJmPodList(org.apache.flink.kubernetes.operator.api.FlinkDeployment deployment, org.apache.flink.configuration.Configuration conf)- Specified by:
getJmPodListin interfaceFlinkService
-
waitForClusterShutdown
public void waitForClusterShutdown(org.apache.flink.configuration.Configuration conf)
- Specified by:
waitForClusterShutdownin interfaceFlinkService
-
getClusterClient
@VisibleForTesting protected org.apache.flink.client.program.ClusterClient<java.lang.String> getClusterClient(org.apache.flink.configuration.Configuration conf) throws java.lang.Exception- Throws:
java.lang.Exception
-
removeOperatorConfigs
@VisibleForTesting protected static org.apache.flink.configuration.Configuration removeOperatorConfigs(org.apache.flink.configuration.Configuration config)
-
getEffectiveStatus
@VisibleForTesting protected static org.apache.flink.api.common.JobStatus getEffectiveStatus(org.apache.flink.runtime.messages.webmonitor.JobDetails details)
-
getMetrics
public java.util.Map<java.lang.String,java.lang.String> getMetrics(org.apache.flink.configuration.Configuration conf, java.lang.String jobId, java.util.List<java.lang.String> metricNames) throws java.lang.Exception- Specified by:
getMetricsin interfaceFlinkService- Throws:
java.lang.Exception
-
deleteClusterDeployment
public final void deleteClusterDeployment(io.fabric8.kubernetes.api.model.ObjectMeta meta, org.apache.flink.kubernetes.operator.api.status.FlinkDeploymentStatus status, boolean deleteHaData)- Specified by:
deleteClusterDeploymentin interfaceFlinkService
-
deleteClusterInternal
protected abstract void deleteClusterInternal(io.fabric8.kubernetes.api.model.ObjectMeta meta, boolean deleteHaConfigmaps)Delete Flink kubernetes cluster by deleting the kubernetes resources directly. Optionally allows deleting the native kubernetes HA resources as well.- Parameters:
meta- ObjectMeta of the deploymentdeleteHaConfigmaps- Flag to indicate whether k8s HA metadata should be removed as well
-
updateStatusAfterClusterDeletion
protected void updateStatusAfterClusterDeletion(org.apache.flink.kubernetes.operator.api.status.FlinkDeploymentStatus status)
-
-