Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[WIP] Phase support for Flink-K8s runtime (apache#320)
* fix bug: streamx.console.workspace setting missing * remove refilling setting process * init streamx-flink-kubernetes module * init streamx-flink-kubernetes module * temporary removal of fat-jar build cache * add necessary enum * coverter between FlinkAppState and k8s.enums.FlinkJobState * add tracking info cache * update tracking cache * add tracking monitor * replace cache with cachePool * update FlinkTRKMonitor * add CachePool * add k8s connection checking method * update k8s events cache value model * add comment * update model * add isInTracking method * add Kubernetes Event Watcher * add enhanced try-with-resource method * update jobStatus cache value * remove tracking of k8s service events * add new FlinkClusterClient method * flink watcher trait * update flink watcher trait * update flink watcher trait * update to be safe for thread * add watcher config object * add flink job status watcher * update flink watcher trait * update flink watcher trait * update flink watcher trait * update flink watcher * add method comments * update conf class name * add @nonnull sign for external api * replace safeSet method * add httpclient dependencies * update FlinkJobStatusWatcher * update FlinkJobStatusWatcher * update FlinkJobStatusWatcher * add collectDistinctTrkIds method * support implicit call of json marshal/unmarshal * move conf class to new package * flink metrics bean * update flink job status watcher * support flink metrics tracking * update copyright * refactor tracking watcher conf * support closeable * integrate watcher control to monitor * resolve code conflicts * resolve code conflicts * resolve code conflicts * import scalatest dependency * move model * default namespace value * replace with copy * update method decalaration * add exception throw declaration * limit flink-client timeout * add test for single tracking task * fix bug * add default conf for debug * fix type error bug * support get all trackingIds from cache * update single trk test * add trkCache watching method for debug * add FlinkTrkMonitor test * move TrkConf * add k8s event watcher * add guava dependency * support for flink job status change event publish/subscribe * test for eventbus * delete unnecessary comments * update tryWithResourceException * method for determining the existence of flink job on remote cluster * fix bug: retrieve flink-cluster-client error * ChangeEventBus support sync/async post * check the legitimacy of the TrkId before the monitor trk method is called * keep the idempotent of start method * add the necessary comments * update lazy start aop * add necessary comments * test lazy start behavior of FlinkTrkMonitor * add necessary comments * add TrkMonitor Factory * rename default conf method * rename FlinkTrkMonitor to K8sFlinkTrkMonitor * remove unnecessary comments * add covert method * update ExecutionMode * update Application * untracking flink job on k8s mode * Integrated K8sFlinkTrkMonitor * refactor event * support for K8sFlinkTrkMonitor event post and build-in event listener * let postEvent method trigger TrkMonitor lazy start behavior * support more flink metrics tracking * rename K8S_DEPLOYING state * catch all flink-k8s-native event * speed up watcher tracking frequency * add totalJob complete method * checkIsInRemoteCluster supplemental unsafe trkId check * untracking k8s flink job * update wrapper * differentiate flink LOST state into SILENT and LOST * add flink SILENT state * remove delay start trigger of method getClusterMetrics * fix flywaydb error * format k8sNamespace field of Application * kubernetes mode support * adaptation request * update behavior of recovery data * fix stupid bug * add FlinkTrkMonitor debug helper * fix bug: k8sNamespace storage missing * fix bug: k8s info missing * update jobName when clusterId changed * fix bug: flink job cancel fail * add log for key steps of flink submit * resolve the conflicts of guava * update * resolve conflicts of guave * refactor streamx-packer module * fix bug: tag format error during push image * fix bug: flink.pipeline.jars missing when submit job on application mode * add DOCKER_IMAGE_NAMESPACE config * add DOCKER_IMAGE_NAMESPACE config * support check kubernetes deployment resource * add new flink state * optimization flink k8s job state inference algorithm * add new flink job state * optimize silent state inference algorithm * update * update * update timeout logger * update status persistence * enhance JobStatusCV * optimize JobStatusCV persistence * support record flink cluster metrics for each flink job * support record flink cluster metrics for each flink job * add new cache debugging method * set application name to flink job * enhance flink-k8s session job status catching processing * abandon the maintenance of separate flink cluster metrics aggregation cache * fixbug: missing application metrics in view list * further inference of TERMINAL/POS_TERMINAL status * cache flink rest api on kubernetes cluster * error single task timeout limitation * fixbug: missing upload jar parameter * support third party dependency for flink-k8s job * integrate flink-k8s support to streamx-console-server * explicitly throwing exceptions * fixbug: resolved maven dependencies are incomplete * support custom pod-template for flink-k8s mode * temporarily block flame graph for flink-k8s job * don't request the yarn interface when for the flink-k8s job * temporarily remove support for remapping flink-k8s job * remove some support of K8sTrkMonitor interface * add retracking interface support * remove retracking interface support * custom savepoint support for flink-k8s mode * [fix bug] OutOffBound Exception while activeProfiles is empty * Support for customizing flink-k8s configuration from SpringBoot application configuration. * temporarily block checkpoint failover setting for flink-k8s mode. * fix wrong flink state inference * support for email alert on flink-k8s mode * temporarily block flink-k8s support in custom-code mode * resolve merge conflicts * typo * cancel shade shims * update default shims to flink-1.13 * fixbug: flinkUserJar path error * update dockerfile template * import flink-shims dependency explicitly for package programming on flink session mode * add flink CLASSLOADER_RESOLVE_ORDER configuration * rename sub building workspace to be more friendly for debugging * rename sub workspace path, and add support for log4j configuration * fix bug: flink job state should be shown in initialing when the k8s pod is in initialization phase for a long time * support custom flink rest service exposed type on flink-native-k8s mode * modify the execution mode text * remove multiple space * add log for start building docker image * invalidate rest url cache when untracking flink job * support get flink remote rest url from k8s * support jump to flink web ui * remove direct import from flink lib * update * replace with scala implicit converter * resolve conflict Co-authored-by: benjobs <[email protected]>
- Loading branch information