Compare commits

...

588 Commits

Author SHA1 Message Date
Wenjun Ruan 8338815a8c
Force check ci on prapare/release branch (#16216) 2024-07-01 09:20:56 +08:00
xiangzihao 565a91790a
[Chore] [CI] Add api-test and e2e-test to spotless check (#16242) 2024-06-30 22:39:12 +08:00
Wenjun Ruan 177a001392
Remove unused dependentResult in TaskInstance (#16236) 2024-06-30 18:56:53 +08:00
blink d42ac96c55
[Fix-16211] Remove ExecutePath in buildJarCommand to fix Java Task in Jar Mode (#16238) 2024-06-29 14:34:30 +08:00
xiangzihao 225e969d2d
[DSIP-51][Task] Remove unused pigeon task plugin (#16219) 2024-06-28 09:51:02 +08:00
Wenjun Ruan 0e2d0fb81e
[Fix-16228] Fix E2E health check url is not correct (#16227) 2024-06-27 21:49:21 +08:00
Wenjun Ruan 46eff34e69
[Fix-16224] Add Shell using file E2E case (#16220)
* Add Shell E2E case

* Add shell using resource file e2e case

* Upgrade checkout from v2 to v4

* Change interval to 500ms

* Upgrade actions/upload-artifact

---------

Co-authored-by: xiangzihao <460888207@qq.com>
2024-06-27 16:04:03 +08:00
Wenjun Ruan 02bef74296
Fix worker overload will casue task failed (#16221) 2024-06-27 13:37:13 +08:00
xiangzihao e8566818b0
[DSIP-50][UDF Manage] Remove unused udf manage function (#16212)
* Remove unused udf manage function
2024-06-26 21:08:48 +08:00
xiangzihao c7a0994fb0
[Chore] Add mergeable check (#16217)
* add mergeable check
2024-06-26 20:05:49 +08:00
xiangzihao c3d3a14cfc
[Fix-16174] Incorrect cluster installation guide. (#16208) 2024-06-26 10:34:37 +08:00
xiangzihao d0229663f9
improve pr title check (#16213) 2024-06-25 21:16:07 +08:00
Wenjun Ruan ec6a3e0727
[DSIP-46] Unify the logic task params data structure between front-end and back-end (#16193) 2024-06-25 13:32:13 +08:00
Wenjun Ruan f69e06408f
Remove unused SQLIntegrityConstraintViolationException in JdbcOperator (#16200)
Co-authored-by: xiangzihao <460888207@qq.com>
2024-06-25 10:18:42 +08:00
Wenjun Ruan b34fe46044
Fix task cannot use workflow's environment (#16199) 2024-06-24 20:27:25 +08:00
xiangzihao 9a823c4b98
bump up owasp version (#16187) 2024-06-24 15:08:51 +08:00
Wenjun Ruan f0e0395b36
[Chore] Use testcontainer origin exposed port rather than generate random port (#16195) 2024-06-21 22:19:54 +08:00
JohnHuang 4a76a07c9c
[Improvement][Helm] Make configmap of api/master/worker/alert configuration (#16058)
Update deploy/kubernetes/dolphinscheduler/templates/statefulset-dolphinscheduler-worker.yaml

* Update deploy/kubernetes/dolphinscheduler/values.yaml
2024-06-21 16:37:19 +08:00
Wenjun Ruan 2ab5f7dd54
Increase zk connect timeout (#16180) 2024-06-21 15:58:48 +08:00
Wenjun Ruan 3f3f0cd4cb
[Chore] Disable composite indicator (#16172) 2024-06-20 10:09:02 +08:00
tinglink 9bfc10d348
Fix admin login tenant unspecified issue after upgrade to v3.2.1 (#16064) 2024-06-19 16:31:39 +08:00
Wenjun Ruan e18ed376ac
Fix CommandDaoImplTest might failed (#16175) 2024-06-19 15:09:01 +08:00
Wenjun Ruan 6644abd5f7
Fix HdfsStorageOperatorTest NPE (#16178) 2024-06-19 14:32:21 +08:00
Wenjun Ruan 4c5dacf4ac
Fix DelayEntryTest might failed (#16176)
Co-authored-by: xiangzihao <460888207@qq.com>
2024-06-19 13:42:32 +08:00
Wenjun Ruan 5df4b1cbc3
Fix condition task will cause workflow instance failed (#16152) 2024-06-19 11:28:35 +08:00
Gallardot 17fdd7a152
[Chore] Add issue link tempate for IDEA (#16158)
* chore: add issue link tempate for IDEA

Signed-off-by: Gallardot <gallardot@apache.org>

* chore: add issue link tempate for IDEA

Signed-off-by: Gallardot <gallardot@apache.org>

---------

Signed-off-by: Gallardot <gallardot@apache.org>
Co-authored-by: xiangzihao <460888207@qq.com>
2024-06-18 21:02:15 +08:00
xiangzihao 469c19be08
[CI] Fix ci auto assign error (#16171)
* fix ci auto assign error
* labeler and codeowner improvement
2024-06-18 11:13:03 +08:00
caishunfeng fc927cea73
update code owner (#16163)
Co-authored-by: xiangzihao <460888207@qq.com>
2024-06-17 20:35:27 +08:00
xiangzihao a472d68c5f
[Chore ] CI add auto-assign-action (#16165)
* add .github/actions/auto-assign-action

* add auto assign-action to fix ci error
2024-06-17 17:16:24 +08:00
xiangzihao 6736115f58
[Chore] Improve ci check (#16161)
* improve ci check
2024-06-17 16:18:45 +08:00
Wenjun Ruan edeb1b2458
[DSIP-45] Polish the Storage SPI (#16141) 2024-06-17 15:24:56 +08:00
Cancai Cai 61a6bd0b30
[Fix] Fix typo: tpc -> tcp (#16160) 2024-06-17 12:06:50 +08:00
Cancai Cai 834c320d72
[Imporve][Master] Refine the doselect annotation of the distribution policy (#16149) 2024-06-14 11:57:21 +08:00
xiangzihao 8d0202ccaf
[CI][UT] Fix flaky unit test (#16151) 2024-06-14 10:47:29 +08:00
Cancai Cai 8e53f2fdcb
[Improvement][Worker] Rename workerZKPath to workerRegistryPath (#16144) 2024-06-13 14:04:45 +08:00
Cancai Cai a13eacd61c
[Imporvement] Improve the MasterCofnig module comments of dolphinscheduler (#16134)
Co-authored-by: xiangzihao <460888207@qq.com>
2024-06-12 13:29:23 +08:00
xiangzihao d8011d857a
improve e2e m1 chip local mode (#16130)
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-06-11 13:46:21 +08:00
Wenjun Ruan fd5a182cd6
Add RPC metrics (#16121) 2024-06-11 10:57:23 +08:00
Wenjun Ruan d6714bb77a
Fix SqlServer split merge sql will miss ; (#16118) 2024-06-06 14:10:13 +08:00
Wenjun Ruan 5e4afe6f64
Fix task nodes under switch task will not be skipped (#16108) 2024-06-05 21:04:23 +08:00
Wenjun Ruan 5867bee95d
Fix task instance which status is dispatch will not be failover (#16107) 2024-06-05 11:33:41 +08:00
Gallardot 4f6e7159b8
chore: fix a typo (#16104) 2024-06-04 14:01:06 +08:00
Wenjun Ruan 7ae9ca5a33
Revert "[Improvement] Abnormal characters check (#15824)" (#16102)
This reverts commit e5e7749251.
2024-05-31 19:45:12 +08:00
Wenjun Ruan 3bc88e32c7
Rename dolphinscheduler-aop to dolphinscheduler-yarn-aop (#16095) 2024-05-31 17:12:22 +08:00
changxiangshimian/changxiangshimian.github.io d675c28812
Update WorkflowExecuteRunnable.java (#16092)
Corrected the following issues
https://github.com/apache/dolphinscheduler/issues/15366
https://github.com/apache/dolphinscheduler/issues/16010
2024-05-31 09:22:26 +08:00
rockfang d8e0178599
[Fix][UI] Fix the message toast issue (#16088) 2024-05-30 15:35:49 +08:00
rockfang ac1eacafe0
[Fix][UI] ensure number type field has number type value in alarm-instance-manage (#16089) 2024-05-30 11:21:14 +08:00
JohnHuang a7245189a8
[Improvement][Flink] Change Flink command into FLINK_HOME (#16004) 2024-05-29 13:32:31 +08:00
Sofia Jia a71ae244af
[Doc] Update ZooKeeper download link (#16085) 2024-05-29 09:43:28 +08:00
lwyang ec01df1305
docs: fix several issues in installation md (#16079)
Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2024-05-28 14:14:48 +08:00
旺阳 e93ed78c0f
[Fix] Fix audit log parma typo (#16077) 2024-05-28 13:49:19 +08:00
Wenjun Ruan e6c57430e3
[DSIP-44] Set a delay time to TaskExecuteRunnable if it dispatched failed (#16069) 2024-05-27 21:53:11 +08:00
Wenjun Ruan af55f94cc0
Fix sudo enable is false will still check tenant exist (#16071)
(cherry picked from commit c5baa75ef93243c6bf88194eb3ad94a48173a003)
2024-05-27 18:34:14 +08:00
Gallardot fb9172cce8
[helm] remove appversion from labels (#16066) 2024-05-25 09:55:43 +08:00
sleo 26f2aadb06
Rename variable QUEUE_MAX_SIZE to QUEUE_INITIAL_SIZE (#16040) 2024-05-24 20:09:10 +08:00
Wenjun Ruan f754611509
[DSIP-42] Add dolphinscheduler-aws-authentication module (#16043) 2024-05-24 14:15:03 +08:00
yinxiaolog baa252a0ed
[DS-16046][fix] Set PreparedStatement parameter type (#16050)
Fix the PreparedStatement parameter is TIME, set it to java.sql.Time

Co-authored-by: Aaron Wang <wangweirao16@gmail.com>
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-05-24 13:12:16 +08:00
sleo 581a7edad8
modify log msg (#16062)
Co-authored-by: xiangzihao <460888207@qq.com>
2024-05-24 11:28:49 +08:00
Wenjun Ruan 5037f0a5e3
Remove OmitStackTraceInFastThrow in start.sh (#16054) 2024-05-24 10:34:10 +08:00
Wenjun Ruan 6862fe7548
Removed unused StateEventHandleFailure (#16052) 2024-05-23 11:35:46 +08:00
Wenjun Ruan 56ecec779c
Fix NettyRemotingClient might throw IllegalMonitorStateException (#16038) 2024-05-22 10:26:04 +08:00
小可耐 0fc2fe971a
[DSIP-39][parameter] Improvement startup parameters/global parameters/project parameters data type (#15967)
* [Improvement][parameter] New data types and type filtering

* [Improvement][parameter] Improvement startup parameters/global parameters data type

* fix api interfaces compatible

* add project parameter data type default value

* [Improvement][parameter] New data types and type filtering

* [Improvement][parameter] Improvement startup parameters/global parameters data type

* fix api interfaces compatible

* add project parameter data type default value

* improvement project code

* remove useless imports

* remove method onClearSearchTaskType

* add parameter doc

* optimisation logic

* code conflict resolution

* code conflict resolution

* [Improvement][Monitor] Show master && worker Busy Or Normal Status and Show Commands table list (#15978)

* update

* test

* add monitor enhance ui

* update

* update

* update doc

* fix spotless

* update

* update

* Update dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/DataAnalysisController.java

Co-authored-by: Wenjun Ruan <wenjun@apache.org>

* Update dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/DataAnalysisController.java

Co-authored-by: Wenjun Ruan <wenjun@apache.org>

* Update dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ErrorCommandMapper.java

Co-authored-by: Wenjun Ruan <wenjun@apache.org>

* Update dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ErrorCommandMapper.xml

Co-authored-by: Wenjun Ruan <wenjun@apache.org>

* Update dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/CommandMapper.java

Co-authored-by: Wenjun Ruan <wenjun@apache.org>

* Update dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ErrorCommandMapper.xml

Co-authored-by: Wenjun Ruan <wenjun@apache.org>

* update

* fix spotless

* update

---------

Co-authored-by: Wenjun Ruan <wenjun@apache.org>

* [Improvement][Monitor] Add UT for montor (#15998)

* formatting Code
2024-05-21 15:39:43 +08:00
TianXinCoord cf400b86ba
Correction of Typos in the Chinese Document Appendix for Task Parameters (#16033)
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-05-21 14:00:52 +08:00
Rick Cheng dbd790ddac
[Fix][CI] fix the ci error of Values.datasource.profile (#16031)
Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2024-05-21 11:16:30 +08:00
Wenjun Ruan e4df01a033
Increase block-until-connected in ZookeeperRegistryTestCase (#16041) 2024-05-21 10:32:15 +08:00
Wenjun Ruan b184364561
Fix WorkerTaskExecutorThreadPool#isOverload is incorrect (#16027) 2024-05-20 19:13:53 +08:00
Wenjun Ruan 5463d0255a
Fix rpc channel leak due to concurrent operation (#16021)
* Fix rpc channel leak due to concurrent operation

* Throw channel create failed exception

---------

Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-05-20 12:10:33 +08:00
jiabei 7b7a33337f
docs: fix type in contribute.md (#16022)
Co-authored-by: jxbwhe <iswanghe@aliyun.com>
2024-05-18 21:34:08 +08:00
Wenjun Ruan cb0b4fa52f
Deprecated 2.0.9/3.0.6 upgrade test (#16012) 2024-05-17 19:17:54 +08:00
Wenjun Ruan 4e73fc28b0
Use random port in registry IT (#16014) 2024-05-17 17:35:44 +08:00
JohnHuang 79f90a87f8
[Feature][Helm] make api/master/worker/alert application.yaml configurable (#15922) 2024-05-17 15:23:21 +08:00
Wenjun Ruan 61915a2d5d
Fix workflow instance restart failed due to duplicate key in varpool (#16001) 2024-05-16 11:32:27 +08:00
旺阳 68a190674f
[Improvement][Monitor] Add UT for montor (#15998) 2024-05-15 14:44:04 +08:00
旺阳 0e5cb664bb
[Improvement][Monitor] Show master && worker Busy Or Normal Status and Show Commands table list (#15978)
* update

* test

* add monitor enhance ui

* update

* update

* update doc

* fix spotless

* update

* update

* Update dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/DataAnalysisController.java

Co-authored-by: Wenjun Ruan <wenjun@apache.org>

* Update dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/DataAnalysisController.java

Co-authored-by: Wenjun Ruan <wenjun@apache.org>

* Update dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ErrorCommandMapper.java

Co-authored-by: Wenjun Ruan <wenjun@apache.org>

* Update dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ErrorCommandMapper.xml

Co-authored-by: Wenjun Ruan <wenjun@apache.org>

* Update dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/CommandMapper.java

Co-authored-by: Wenjun Ruan <wenjun@apache.org>

* Update dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ErrorCommandMapper.xml

Co-authored-by: Wenjun Ruan <wenjun@apache.org>

* update

* fix spotless

* update

---------

Co-authored-by: Wenjun Ruan <wenjun@apache.org>
2024-05-15 13:58:59 +08:00
Gee 4f4a13da02
[Fix-15992][server] maintain slot index by iterate MasterPriorityQueue orderly (#15993) 2024-05-15 11:44:27 +08:00
Wenjun Ruan 1a4537ecbd
Fix database schema change check failed with pg in ci (#15995)
Co-authored-by: xiangzihao <460888207@qq.com>
2024-05-15 10:36:27 +08:00
John Bampton 8d6e9eecfc
docs: fix spelling (#15996) 2024-05-15 09:41:02 +08:00
Eric Gao dc306bfa1d
[Improvement] Use safe constructor with snake yaml (#15758) 2024-05-14 18:04:04 +08:00
licc6 680d2e0b05
Repair resource configuration exist typo (#15988)
Co-authored-by: fuchanghai <changhaifu@apache.org>
2024-05-13 19:47:47 +08:00
Wenjun Ruan 7c8fa9b48c
Add IntegretionTest for registry module (#15981) 2024-05-13 16:35:37 +08:00
Wenjun Ruan 3446fd8ab1
EMR task support replace params placeholder (#15975)
Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2024-05-10 17:34:26 +08:00
Gallardot ace20f96c2
[Bug] [Helm] No DB Nodes Exist (#15970) 2024-05-10 15:43:00 +08:00
JohnHuang ad1a6af4fb
Add link to ETCD/JDBC Registry Guideline (#15597) 2024-05-09 16:52:37 +08:00
cntiger 60b019b729
[Improvement] Fix the git url command injection in pytorch task(#15873) (#15950)
* fix the git url command injection danger(#15873)

* [Improvement] Fix the git url command injection in pytorch,format code style task(#15873)

---------

Co-authored-by: cntigers <Xiaohu4321@>
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-05-09 14:50:27 +08:00
Zzih96 5c569b705c
[fix-15907] Fix get remote shell exit code is incorrect (#15911)
* ./mvnw spotless:apply

* Update dolphinscheduler-task-plugin/dolphinscheduler-task-remoteshell/src/main/java/org/apache/dolphinscheduler/plugin/task/remoteshell/RemoteExecutor.java

Co-authored-by: Wenjun Ruan <wenjun@apache.org>

---------

Co-authored-by: 詹子恒 <ziheng.zhan@longbridge.sg>
Co-authored-by: Wenjun Ruan <wenjun@apache.org>
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-05-09 14:15:06 +08:00
刘阳阳(liuyangyang) ba5de75829
Add tenantCode propagation to DynamicCommandUtils.createCommand (#15956) 2024-05-09 13:06:22 +08:00
Wenjun Ruan 8d336def61
[DSIP-35][Alert] Refactor the alert thread model (#15932) 2024-05-09 12:23:01 +08:00
privking bbca37d03e
[FIX] Completed tasks cannot be re-executed in a workflow instance (#15884)
* fix bug: Failed to resume stopped workflow instance

* Revert "fix bug: Failed to resume stopped workflow instance"

This reverts commit 1546e9d5a5.

* fix bug : Completed tasks cannot be re-executed in a workflow instance

---------

Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-05-09 11:36:56 +08:00
xiangzihao 8426d2346c
[HotFix] [CI] Temporary skipping mergeable check (#15958)
* temporary skipping mergeable check
2024-05-09 11:01:05 +08:00
Wenjun Ruan 99d8276be7
Optimizing the scope of RPC base classes (#15946)
* Optimizing the scope of RPC base classes

* Fix UT
2024-05-08 11:46:09 +08:00
JohnHuang d218b021e7
[DSIP-25][Remote Logging] Split remote logging configuration (#15826)
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-05-06 11:33:16 +08:00
Evan Sun fa6ea8ba7b
[TEST] increase coverage of project workergroup relation service (#15944)
Co-authored-by: abzymeinsjtu <abzymeinsjtu@B-54Q8MD6R-0244.local>
2024-05-06 10:02:04 +08:00
Evan Sun ebcdaeb9ac
[TEST] increase coverage of project preference service test (#15939) 2024-04-29 21:03:01 +08:00
Wenjun Ruan 0a11cd21bd
Fix jar path is not correct in java task (#15906) 2024-04-29 18:07:05 +08:00
Wenjun Ruan 647cbae400
[DSIP-32][Master] Add command fetcher strategy for master fetch command (#15900) 2024-04-29 16:14:23 +08:00
calvin 5a6c6c37f0
[Improvement-15910][UI] Supposed to provide a default value for the custom parallelism when using the mode of parallel execution. (#15912)
* worked out the issue

* imrpove the parallism strategy

* imrpove the parallism strategy

* merge from dev
2024-04-28 18:47:20 +08:00
小可耐 7a55adeae9
[Improvement-15919][datasource] Improvement datasource get name (#15920) 2024-04-28 11:02:44 +08:00
DaqianLiao b29965bdce
[Fix] In updateWorkerNodes method, the workerNodeInfoWriteLock should be used. #15898 (#15903)
Co-authored-by: answerliao <answerliao@tencent.com>
2024-04-26 11:24:05 +08:00
Wenjun Ruan d1135eabc7
[DSIP-34] Change required_approving_review_count to 2 (#15914) 2024-04-25 19:39:56 +08:00
Wenjun Ruan 446f6ba72b
Fix auto create tennat concurrently will cause the task failed (#15909) 2024-04-25 18:14:48 +08:00
Wenjun Ruan b3b8c0784d
Fix kill dynamic task doesn't kill the wait to run workflow instances (#15896) 2024-04-25 11:05:51 +08:00
Evan Sun 1d13ef09c3
[TEST] increase coverage of project parameter service test (#15905)
Co-authored-by: abzymeinsjtu <abzymeinsjtu@B-54Q8MD6R-0244.local>
2024-04-24 23:31:56 +08:00
旺阳 59f060e278
[Improvement] Fix alert code smell 2024-04-23 15:10:08 +08:00
Wenjun Ruan e9d85914d7
Fix queryByTypeAndJobId might error due to multiple result (#15883) 2024-04-22 17:41:17 +08:00
Wenjun Ruan e2c8b080f9
[DSIP-31] Reduce the thread pool size of hikari (#15890) 2024-04-22 17:05:24 +08:00
John Huang 6c78c8ec9a
[Improvement][Spark] Support Local Spark Cluster (#15589)
* [Improvement][Spark] Support Local Spark Cluster

* remote default local from deploy mode

---------

Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-04-22 15:05:59 +08:00
privking e66441a2c9
[FIX] Fix cannot recover a stopped workflow instance (#15880) 2024-04-20 07:32:18 +08:00
Wenjun Ruan 285c5a8eb5
[DSIP-28] Donnot scan whole bean under classpath (#15874) 2024-04-19 18:12:40 +08:00
Gallardot a9decc911f
[Bug][Helm] fix image.registry (#15860)
Signed-off-by: Gallardot <gallardot@apache.org>
Co-authored-by: fuchanghai <changhaifu@apache.org>
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-04-19 16:52:17 +08:00
旺阳 d306f1d04b
Refactor record audit log logic (#15881) 2024-04-19 15:20:31 +08:00
Wenjun Ruan 32f9288974
Fix dsip name (#15876) 2024-04-19 10:31:34 +08:00
Evan Sun 325bfa821f
[TEST] increase cov of logger service (#15870)
Co-authored-by: abzymeinsjtu <abzymeinsjtu@B-54Q8MD6R-0244.local>
Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2024-04-18 20:40:05 +08:00
Wenjun Ruan 8fc204940f
Add DSIP template (#15871) 2024-04-18 16:50:50 +08:00
Wenjun Ruan 163f8f01f0
Fix jdbc registry cannot work (#15861) 2024-04-18 15:43:28 +08:00
Wenjun Ruan a8bc23748d
Fix write audit log error will cause the request failed (#15868) 2024-04-18 11:31:11 +08:00
XinXing 3fe9fd45b1
[Fix-15706] Seatunnel improvement (#15852)
* fix_seatunnel_15706

* CodeFormat

* Change to use JSONUtils

* Constants moved to constant code

* Delete empty lines

* Delete empty lines
2024-04-18 10:36:18 +08:00
zuo 9a48aca83c
[Fix-15866][Doc] update the taobao mirror link (#15867) 2024-04-18 09:18:29 +08:00
Wenjun Ruan 9437d276e7
Change ssh heartbeat type to IGNORE (#15858) 2024-04-16 22:49:11 +08:00
Wenjun Ruan ead54534a2
Fix QUARTZ table order is not correct in initialization schema (#15857) 2024-04-16 17:27:36 +08:00
Wenjun Ruan 76d059810a
Forbidden forcess success a task instance in a running workflow instance (#15855) 2024-04-16 16:19:57 +08:00
Wenjun Ruan 27d0563fe4
Bind processId to constructor CodeGenerator (#15848) 2024-04-16 10:58:43 +08:00
旺阳 f99d3f1ed3
[Improvement][Audit] Change time to create_time (#15846)
* change time to create_time

* update

* update
2024-04-15 17:01:06 +08:00
Wenjun Ruan 6844c659bf
Fix ErrorCommand loss some fields in Command (#15847) 2024-04-15 16:14:32 +08:00
XinXing 5ad7b1509f
[Fix-15787] Reuse code and solve the problem of complex SQL parsing exceptions in… (#15833)
* Reuse code and solve the problem of complex SQL parsing exceptions in druid, corresponding to issue #15787

* Code Format

* Enhanced adaptability to SQL formatting
2024-04-15 15:01:28 +08:00
Evan Sun 7894ebb350
[TEST] increase coverage of environment service (#15840)
* [TEST] increase coverage of environment service

* spotless apply
2024-04-15 14:15:44 +08:00
旺阳 226345512e
[DSIP-26][Audit log] Audit log improvement design (#15554) 2024-04-15 13:40:35 +08:00
旺阳 efbffacfbe
delete useless code (#15844) 2024-04-15 11:29:11 +08:00
BaiJv 08ac132286
[Improvement] Modify python-gateway: enabled default to false. (#15825)
* remove python-gateway:auth-token,modify python gateway: enabled  default to false.

* reset token
2024-04-12 14:28:13 +08:00
BaiJv e5e7749251
[Improvement] Abnormal characters check (#15824)
* abnormal characters check

* add test case

* remove error log

* fix code style

* fix import
2024-04-12 10:06:32 +08:00
Wenjun Ruan 883848f6ee
Remove unused caffeine cache (#15830) 2024-04-11 19:28:00 +08:00
旧城 2b5f8433b7
Fix cannot construct instance of StreamingTaskTriggerResponse 2024-04-11 14:13:53 +08:00
sleo f93b27e121
[Worker] Fix will not kill the subprocess in remote when stop a remote-shell task #15570 (#15629)
* fix cannot kill the subprocess when stop a remote-shell task

* move parse pid logic into ProcessUtils

* extract common logic

---------

Co-authored-by: 旺阳 <wang@lqwang.net>
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-04-10 14:13:52 +08:00
旺阳 5050a8e1e6
[Improve] Fix typo on ProcessServiceImpl (#15817) 2024-04-09 14:38:47 +08:00
Wenjun Ruan 66df5d4b90
Split cpuUsage to systemCpuUsage and jvmCpuUsage (#15803) 2024-04-09 14:04:24 +08:00
songwenyong 9599b5aa81
fix:DataSource And UdfFunc list query use Enum code value not ordinal (#15714)
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-04-09 11:57:52 +08:00
John Huang 39274094f8
Fix typo on common.properties (#15806) 2024-04-07 15:28:21 +08:00
Evan Sun 200d23fc3e
[TEST] increase coverage of datasource service (#15801)
Co-authored-by: abzymeinsjtu <abzymeinsjtu@B-54Q8MD6R-0244.local>
2024-04-07 09:58:28 +08:00
Wenjun Ruan 3b1de41acb
Remove dolphinscheduler-data-quality from dolphinscheduler-task-dataquality (#15791) 2024-04-04 23:44:12 +08:00
Evan Sun 98bc9ce4c9
feat: inc coverage of alert plugin instance svc (#15799)
Co-authored-by: abzymeinsjtu <abzymeinsjtu@B-54Q8MD6R-0244.local>
2024-04-04 20:29:18 +08:00
songwenyong 5d8808dda4
[Fix-15760][datasource-plugin] fix sql task split error (#15760) (#15794)
* Fix the bug in SQL splitting by completing the task in two steps: 1. removeComment 2. split

* Add a unit test for Hive SQL splitting.
2024-04-03 16:31:03 +08:00
Evan Sun c0435e5bd8
fix dependent task logic (#15795)
Co-authored-by: abzymeinsjtu <abzymeinsjtu@B-54Q8MD6R-0244.local>
2024-04-03 13:56:41 +08:00
Wenjun Ruan 0419543d81
Directly use Quartz replase api to bootstrap a schedule (#15781) 2024-04-02 15:29:58 +08:00
小可耐 920ac154cb
[Improvement-15744][parameter] project parameter add update time and update user id (#15745)
* project parameter add update time and update user id

* project parameter add comment operator user id and UT

* project parameter add ui
2024-04-02 09:42:44 +08:00
caishunfeng 8acc697942
[Improvement] add resource full name check (#15786)
* [Improvement] add resource full name check
2024-04-01 22:49:59 +08:00
John Huang ac0189a636
[DSIP-24][RemoteLogging]Support AbsRemoteLogHandler (#15769) 2024-04-01 09:50:49 +08:00
John Huang d39bdcb165
[RemoteLogging] Move init into loghandler (#15780)
Co-authored-by: 旺阳 <wang@lqwang.net>
2024-03-31 21:47:26 +08:00
Wenjun Ruan dc4dad135c
Fix TaskGroupCoordinator might cause OOM when there is a lot of waiting TaskGroupQueue (#15773) 2024-03-30 09:43:42 +08:00
Evan Sun ae1fe84e85
[TEST] fill up alert group service test (#15777)
Co-authored-by: abzymeinsjtu <abzymeinsjtu@B-54Q8MD6R-0244.local>
Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2024-03-29 13:28:55 +08:00
He Wang 723126b52b
hotfix(ui): update datasourceTypes following the DbType in spi module (#15776) 2024-03-29 10:53:15 +08:00
Wenjun Ruan 929f4cf568
Remove replace sql_mode in dolphinscheduler_mysql.sql (#15775) 2024-03-28 15:30:55 +08:00
silentxingtian 5e3dc7b16f
[Fix-15771] Fix normal user can grant project permission (#15772)
* repair the bug #15771 by call the interface.

* Fix the bug by call the interface(#15771)

* Fix the grant project,datasource,udf bug (#15771)

* add Unit Test for modified (#15771)

* add Unit Test for UDF (#15771)

* [Fix] add Unit Test and grant Permission modify(#15771)

---------

Co-authored-by: liuw529 <liuw529@chinaunicom.cn>
2024-03-27 21:46:08 +08:00
Gallardot 5466117838
[Bug][Worker] Replace jre with jdk (#15764)
Signed-off-by: Gallardot <gallardot@apache.org>
2024-03-26 11:39:28 +08:00
caishunfeng bcf1b67255
[Fix] add resource full name check (#15757)
* add resource full name check

* fix UT

* fix query params error
2024-03-25 16:40:04 +08:00
Wenjun Ruan dcc9d64ef6
Fix Switch logic task doesn't check the branch exist (#15755) 2024-03-24 20:52:00 +08:00
Wenjun Ruan 2e169076dc
Fix delay execution task will never be dispatched (#15751)
Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2024-03-22 16:23:55 +08:00
caishunfeng 99a2461785
[Improvement] change js engine (#15747)
* change js engine

* add dependent jar
2024-03-22 11:31:47 +08:00
caishunfeng f7358c3e5e
add alert script check (#15752) 2024-03-21 20:10:23 +08:00
Wenjun Ruan 56a834b48b
[Bug] Disable delete a specific workflow version when exist workflow instance under this version which is not finish (#15730) 2024-03-21 17:07:03 +08:00
Eric Gao 023c22c340
remove unused method (#15743)
Co-authored-by: xiangzihao <460888207@qq.com>
2024-03-21 11:54:26 +08:00
xiangzihao 49d04de3ae
fix frontend ci not trigger (#15749) 2024-03-21 11:17:36 +08:00
arlendp a16a15c84e
[Fix-15698][UI] close the definition when opened in the new tab (#15736)
Co-authored-by: xiangzihao <460888207@qq.com>
2024-03-19 14:03:26 +08:00
xiangzihao 1440045fb8
[CI] Frontend ci require passed before merge (#15735)
* frontend ci require passed before merge
2024-03-19 10:26:20 +08:00
caishunfeng 4a255fd523
Fix switch js, add black key (#15680)
Co-authored-by: fuchanghai <changhaifu@apache.org>
Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2024-03-18 20:24:54 +08:00
xiangzihao faa794c39b
fix ui build error (#15732) 2024-03-18 17:48:42 +08:00
Rick Cheng b652967c53
[Improvement-15719] Remove the useless methods in ProcessUtils (#15720) 2024-03-18 12:22:59 +08:00
Evan Sun 0cce2201a8
[TEST] fill up access token test (#15710)
Co-authored-by: abzymeinsjtu <abzymeinsjtu@B-54Q8MD6R-0244.local>
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-03-18 10:40:56 +08:00
calvin d49dbbaac8
[Improvement-15725][UI] The default option of project preferences can be clearable. (#15727)
* adjust the project preferences
2024-03-16 18:13:43 +08:00
calvin 832826ea52
done (#15724) 2024-03-16 13:59:08 +08:00
Frank-Liao e97f6a41ed
Check whether the key exists when "start param to overwrite global param" (#15676) (#15677)
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-03-15 17:33:18 +08:00
ZhongJinHacker 4a08316294
fix word spell error (#15716) 2024-03-15 16:45:06 +08:00
calvin eab71f1071
[Improvement-15707][Master] Work out the issue that the workflow with a task dependency couldn't work well. (#15712) 2024-03-14 17:57:13 +08:00
ZhongJinHacker 738da1cda3
[Fix][Master] Fix Potential danger in the event of a worker failover (#15689)
* clean unused import

* fix style check

* fix when path is null or empty, it will cause serverhost is null,

* fix UT test (#15684)

* [Fix-15639] parameterPassing is null case NPE (#15678)

Co-authored-by: caishunfeng <caishunfeng2021@gmail.com>

* fix  when path is null or empty, it will cause serverhost is null,
2024-03-11 21:50:21 +08:00
calvin 2395ba5ef8
fix this issue (#15695) 2024-03-11 21:02:14 +08:00
Tq cd63069317
[Improvement-15692][task-datasync] rewrite the mockito test file for DatasyncTaskTest. (#15693)
* 15692 rewrite the mockito test file for DatasyncTaskTest.

* fix format
2024-03-11 16:54:55 +08:00
lch af578124a5
fix switch status button not show correctly (#15686)
Co-authored-by: xiangzihao <460888207@qq.com>
2024-03-11 10:47:43 +08:00
calvin c61b81e0c6
[Improvement-15603][API] When removing or modifying a workflow the system can check if there any tasks depend on it. (#15681)
* modify the function of queryTaskSubProcessDepOnProcess

* add a function to query downstream dependent tasks

* confirm to make the workflow offline

* query dependent tasks

* check dependencies

* done

* done

* done

* done

* improve the test case

* improve the test case

* improve codes

* prettier the codes

* prettier the codes
2024-03-10 18:55:12 +08:00
lch e3fdb1a3ff
[Fix-15639] parameterPassing is null case NPE (#15678)
Co-authored-by: caishunfeng <caishunfeng2021@gmail.com>
2024-03-08 17:52:24 +08:00
caishunfeng 68065d3f24
fix UT test (#15684) 2024-03-08 17:21:23 +08:00
王渔 e984300253
[bug] [dolphinscheduler-ui] UI timed scheduler Improvement (#15624)
* Update use-table.ts

* [Fix][CI] Remove useless code

* [Fix][CI] Remove useless code

* [Fix][CI] Remove useless code

---------

Co-authored-by: Rick Cheng <rickchengx@gmail.com>
Co-authored-by: 旺阳 <wang@lqwang.net>
Co-authored-by: xiangzihao <460888207@qq.com>
2024-03-06 10:02:16 +08:00
John Huang e3bd26322f
[Improvement][UT] Improve Worker runner coverage (#15428)
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
Co-authored-by: caishunfeng <caishunfeng2021@gmail.com>
2024-03-05 18:32:32 +08:00
zer0e 82ffdbfb30
fix: create linux user with home dir (#15670) 2024-03-05 11:30:23 +08:00
Wenjun Ruan 04a6b0d281
Fix task mighe be dispatched even if it has been killed (#15662) 2024-03-04 17:30:43 +08:00
John Huang 040ab34baf
[Doc][remote shell] missing remote shell doc for version 3.2.1 (#15660)
Co-authored-by: xiangzihao <460888207@qq.com>
2024-03-04 16:49:22 +08:00
Evan Sun 502b49a1cb
[TEST] fix log related test (#15659)
Co-authored-by: abzymeinsjtu <abzymeinsjtu@B-54Q8MD6R-0244.local>
Co-authored-by: xiangzihao <460888207@qq.com>
2024-03-04 16:22:18 +08:00
Jay Chung 48ea8f387a
chore: modify some CODEOWNERS (#15654)
* chore: modify some CODEOWNERS

* Add Eric as code owner for some dirs

---------

Co-authored-by: xiangzihao <460888207@qq.com>
2024-03-04 15:43:32 +08:00
xiangzihao f8919c0509
[Doc] Fix ci docs check timeout issue (#15664)
* fix docs check timeout issue

* fix docs check timeout issue

* fix docs check timeout issue

* fix docs check timeout issue

* fix docs check timeout issue

* fix docs check timeout issue

* fix docs check timeout issue

* fix docs check timeout issue

* fix docs check timeout issue
2024-03-04 15:16:11 +08:00
Wenjun Ruan 88a8f06b1d
Fix can modify file which is not under resource path (#15652) 2024-03-01 19:39:34 +08:00
Gallardot 3fda980006
[Task][Remoteshell] fix maven dependency warn (#15635)
Signed-off-by: Gallardot <gallardot@apache.org>
2024-02-27 19:19:11 +08:00
王渔 00008515c0
Update SeatunnelTask.java (#15621)
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
Co-authored-by: xiangzihao <460888207@qq.com>
2024-02-27 15:11:11 +08:00
Gallardot f14749a943
[Doc] fix CNCF logo (#15634)
Signed-off-by: Gallardot <gallardot@apache.org>
2024-02-27 14:42:07 +08:00
Gallardot b278df1311
[Improvement][API] add PageInfo UT (#15622)
Signed-off-by: Gallardot <gallardot@apache.org>
Co-authored-by: xiangzihao <460888207@qq.com>
2024-02-26 15:24:32 +08:00
zuo e498116025
Fix Hive jdbc url (#15627) 2024-02-26 14:15:32 +08:00
Evan Sun 380d108133
[TEST] add task definition log service test (#15631)
Co-authored-by: abzymeinsjtu <abzymeinsjtu@B-54Q8MD6R-0244.local>
Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2024-02-25 21:57:56 +08:00
Gallardot eb2a75b3b7
[Bug][API] list paging missing totalpage (#15619)
Signed-off-by: Gallardot <gallardot@apache.org>
2024-02-23 13:57:54 +08:00
Wenjun Ruan 24ff70dc88
Fix out parameter may loss (#15617) 2024-02-23 11:11:06 +08:00
Wenjun Ruan 2b4c1e06b6
Fix recover pause workflowInstance may generate failover taskInstance (#15611) 2024-02-22 15:57:08 +08:00
calvin 5213290262
[Feature-14863][API] Support to manage what worker groups can be used for a project. (#15600) 2024-02-20 17:20:00 +08:00
Wenjun Ruan 8a35e8b2f8
Fix switch task will throw exception when there is not parameters (#15594) 2024-02-19 11:12:22 +08:00
Jay Chung d77bbccdf2
release: change 3.2.1 docs (#15585)
Co-authored-by: BaoLiang <29528966+lenboo@users.noreply.github.com>
2024-02-11 21:16:39 +08:00
Jay Chung e3bef81214
merge schema 330 into 321 and change docs (#15582) (#15586)
* merge schema 330 into 321 and change docs (#15582)

* Add 3.2.2 schema

* remove post sql
2024-02-08 13:10:44 +08:00
Rick Cheng 718a01bb42
[Improvement][UT] Add UT for end time check when force success task (#15562) 2024-02-08 09:19:56 +08:00
Wenjun Ruan 3526b42df6
Add Server HealthIndicator (#15274) 2024-02-07 14:07:30 +08:00
Jay Chung bd83631955
fix: Resource relate path invalid when tenant change (#15581)
* fix can not get correct resource related path when
  user run workflow with differnet tenant of resource
  created
* also fix can not get correct related path when we
  use `resource.storage.type=LOCAL`
2024-02-06 23:56:03 +08:00
seckiller 89da67ddeb
[fix][worker]:Fix the issue of missing disk usage reporting information in the worker (#15565)
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-02-06 16:43:29 +08:00
Wenjun Ruan 1b32e28cc8
Set the workflow instance ready state to running in failover (#15572) 2024-02-06 15:25:50 +08:00
旺阳 73a5a77db2
[Fix] Fix WorkflowInstance batch start failed will throw incorrect exception. (#15577) 2024-02-06 13:16:25 +08:00
Wenjun Ruan 4541e74e53
Fix create parent directory will cause FileAlreadyExistsException (#15576)
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-02-06 11:59:07 +08:00
John Huang 69676b445c
[Improvement][UT] Improve Worker registry coverage (#15380)
Co-authored-by: fuchanghai <changhaifu@apache.org>
Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-02-06 10:45:53 +08:00
Wenjun Ruan 43a06525a2
Fix Recover WorkflowInstance will casue workflow Instance state is success but task insatnce is killed/paused (#15574) 2024-02-06 10:09:30 +08:00
Jay Chung 91d56f4860
fix: data quality may fail in docker mode (#15563) 2024-02-05 17:14:59 +08:00
Jay Chung 01eb8f834f
fix: start param for wf not work (#15544)
* fix: start param for wf not work

fix: #15280

* fix test
2024-02-05 16:17:30 +08:00
小可耐 e5a208f363
[Bug][force-success] force success add end time (#15144)
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-02-05 14:23:16 +08:00
Jay Chung d8e820c4b9
fix: ddl without drop exists (#14128)
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-02-05 12:20:07 +08:00
dada Sun 4d6af516b9
[Bug][Task Api] fix 'MACPATTERN' in ProcessUtils and cover all cases on MacOS in ProcessUtilsTest (#15480) (#15529)
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-02-05 11:41:21 +08:00
caishunfeng ef9ed3db55
fix switch js (#15487)
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2024-02-05 10:23:47 +08:00
Jay Chung 8efaa9fa1f
fix: data quality can not use (#15551)
* fix: data quality can not use

fix: #15468, #15249, #14858

---------

Co-authored-by: Rick Cheng <rickchengx@gmail.com>
Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2024-02-05 09:54:06 +08:00
Wenjun Ruan 4d15932ede
Fix createFile with permission will not work (#15556) 2024-02-03 18:00:33 +08:00
John Huang 1b42d45fcd
[Doc][Docker] fix typo on start with docker (#15534)
Co-authored-by: xiangzihao <460888207@qq.com>
Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2024-02-02 14:17:11 +08:00
Wenjun Ruan 89742332a8
Fix TaskGroupQueue will never be wakeup due to wakeup failed at one time (#15528) 2024-02-01 17:13:58 +08:00
John Huang 2f66a667ba
refactor comments & function name for confuse (#15546)
Co-authored-by: fuchanghai <changhaifu@apache.org>
2024-02-01 10:39:54 +08:00
Wenjun Ruan 25810a81dc
Exit JVM when OOM (#15538) 2024-01-31 13:59:30 +08:00
Gallardot 3640a28348
[Improvement][HTTP] support custom rendering of http body (#15531)
Signed-off-by: Gallardot <gallardot@apache.org>
Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2024-01-31 11:02:48 +08:00
Wenjun Ruan 86ef9666c4
Fix exception occur in RpcServer side, it will not be sent to RpcClient (#15536) 2024-01-30 17:54:29 +08:00
clovelll edbf5cd3af
front: When you edit a task in the task definition list, the front task list is displayed (#12819)
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-01-29 13:40:21 +08:00
BaiJv e20e066076
[Fix] [Bug] Change default version of Workflow/TaskDefinition to `1` (#15498) 2024-01-26 20:51:17 +08:00
Wenjun Ruan 419cb49311
Change download url in backend.yml (#15526) 2024-01-26 15:07:05 +08:00
sleo 431414729f
【Master】【Bug】Fix a bug, When the worker service offline, workerNodeInfo cache in master cannot delete the offline worker (#15459)
* remove work from workerNodeInfo when work server down

* modify log msg

Co-authored-by: xiangzihao <zihaoxiang@apache.org>

* add unit test

* add unit test

* modify the code style

* add license header

---------

Co-authored-by: xiangzihao <zihaoxiang@apache.org>
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-01-25 18:10:36 +08:00
tangjiaolong feb302335b
修复工作流导入时update_time时间一样,导致分页查询存在乱序问题 (#14810)
Co-authored-by: David Zollo <dailidong66@gmail.com>
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-01-25 17:36:12 +08:00
zhihuasu d80a29c48c
[BUG] #15013 Fix retryInterval in RetryPolicy will never be used in RetryUtils (#15014)
* Update RetryUtils.java

assigned

* UT

* Update RetryUtilsTest.java

---------

Co-authored-by: xiangzihao <460888207@qq.com>
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-01-25 15:07:11 +08:00
John Huang 8abb5e55b7
[Doc][K8S] Add DS K8S Operator into k8s deployment character (#15516)
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-01-24 11:10:58 +08:00
sunsongyang 95ae0036f6
[improvement][api] Fix typo for controllers (#15438)
Co-authored-by: fuchanghai <changhaifu@apache.org>
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-01-24 10:39:35 +08:00
Wenjun Ruan 5a7deb28f7
Throw IllegalArgumentException if parse time placeholder error (#15514)
(cherry picked from commit 5fa31e036d77698f3732a42664bfac3e7edcb8e4)
2024-01-22 10:21:54 +08:00
Wenjun Ruan 308e4fb4a6
Directly Throw exception when taskInstancy log path is empty which log need to be queried (#15511) 2024-01-20 16:40:30 +08:00
John Huang e00121b44b
Add guideline link into DolphinScheduler mail list (#15447)
Co-authored-by: Jay Chung <zhongjiajie955@gmail.com>
Co-authored-by: fuchanghai <changhaifu@apache.org>
2024-01-19 15:33:53 +08:00
Wenjun Ruan dcf69cad20
Fix PostgresqlDatabaseContainerProvider get Image is incorrect (#15434) 2024-01-19 10:29:46 +08:00
Wenjun Ruan 0dc373df2a
Set TaskGroupQueue updateTime when force start (#15510) 2024-01-18 22:11:50 +08:00
silenceland 16c97ef44d
[DS-15489][style]rename the vo object suffix (#15504)
- the naming suffix of the objects under the package dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/vo is not unified, such as AlertPluginInstanceVO and ScheduleVO, etc.
- this issue solve it, and uniformly modified to the VO suffix

Co-authored-by: fuchanghai <changhaifu@apache.org>
2024-01-18 17:13:53 +08:00
Wenjun Ruan 64e1e67581
Use DefaultUncaughtExceptionHandler to log the uncached exception (#15496)
Co-authored-by: fuchanghai <changhaifu@apache.org>
2024-01-18 14:59:17 +08:00
Wenjun Ruan 44c356db4d
TaskGroupPriority only compare When TaskGroup is same (#15486) 2024-01-18 10:59:54 +08:00
sunsongyang e1fcd4e485
[Bug][Api] Fix NPE when deleting a workflow instance (#15485) (#15488) 2024-01-17 22:03:33 +08:00
Gallardot c7a11ce6ed
[Improvement][K8S]Optimize MDC for K8S tasks (#15390)
Signed-off-by: Gallardot <gallardot@apache.org>
Co-authored-by: fuchanghai <changhaifu@apache.org>
2024-01-17 17:56:11 +08:00
Rick Cheng e4de06b5af
[Doc-15500][Task] Update cli opts of spark and flink (#15501) 2024-01-17 14:22:27 +08:00
Wenjun Ruan 603dfa2e4b
Fix notify failover WorkflowInstance will cause NPE (#15499) 2024-01-17 10:24:41 +08:00
aiwenmo ace0860d3d
[Feature-15475][DinkyTask] DinkyTask supports Dinky-1.0.0 and common sql (#15479) 2024-01-16 22:47:22 +08:00
Wenjun Ruan 0b873e6870
[HotFix] Fix createTaskInstanceWorkingDirectory failed if the old path exist (#15377) 2024-01-15 11:53:55 +08:00
AliceXiaoLu cb5317f7ca
[bug] Exception when using host in ipv6 format (#14040)
* DB2 edit again, no username.

* [bug] db2's jdbcUrl should be like this "jdbc:db2://localhost:50000/sample:currentSchema=DB2INST1;characterEncoding=UTF-8;".should be ":"

* Update Db2DataSourceProcessor.java

* Update Db2DataSourceProcessorTest.java

* 【Bug】OracleSource edit again, ConnectionType is null

* when user inputs ipv6,checkhost will return "!IPV4_PATTERN.matcher(host).matches()";
I think we should use isInetAddress to check the host is isValid

* Update AbstractDataSourceProcessor.java

* Update DatabendDataSourceProcessorTest.java

last week other modified this

* Update MySQLDataSourceProcessorTest.java

* Update DataSourceUtilsTest.java

* Update MySQLDataSourceProcessorTest.java

* Update KyuubiDataSourceProcessorTest.java

* Update AbstractDataSourceProcessor.java

if host is ipv6 or ipv4 will OK; if not check other

* Update AbstractDataSourceProcessor.java

* Update AbstractDataSourceProcessor.java

* Update DataSourceUtilsTest.java

增加ipv6数据源验证

* [Bug] [dolphinscheduler-api] queryDataSource'password should be hidden.

---------

Co-authored-by: xiangzihao <460888207@qq.com>
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2024-01-15 09:33:08 +08:00
Wenjun Ruan 7b9c9e0eb2
Enable set ServerLoadProtection fot Master/Worker (#15439) 2024-01-14 22:17:58 +08:00
Gallardot a405abec9e
[Bug][Master]serial_wait strategy workflow unable to wake up (#15270)
* fix: serial_wait strategy workflow unable to wake up

Signed-off-by: Gallardot <gallardot@apache.org>

* fix: serial_wait strategy workflow unable to wake up

Signed-off-by: Gallardot <gallardot@apache.org>

---------

Signed-off-by: Gallardot <gallardot@apache.org>
Co-authored-by: fuchanghai <changhaifu@apache.org>
2024-01-12 17:53:24 +08:00
lizhenglei 3c7a77c90e
[Improvement][E2E] add e2e javatask case (#15469)
* add java task

* fix

* support jdk

* fix java

* fix  java_home

* add ut

* recover

---------

Co-authored-by: 80597928 <673421862@qq.com>
Co-authored-by: xiangzihao <460888207@qq.com>
2024-01-12 17:20:40 +08:00
lizhenglei bd48c99178
[BUG][Task] fix java task classpath (#15470)
* fix javatask bug

* cover

---------

Co-authored-by: 80597928 <673421862@qq.com>
Co-authored-by: fuchanghai <changhaifu@apache.org>
2024-01-12 14:39:59 +08:00
liyou 0f7081be10
[Feature] timed scheduler Improvement (#15449) (#15450) 2024-01-11 17:25:31 +08:00
lgcareer 309c8c97a9
[Enhancement][API]Enhance mysql connection properties (#15433) 2024-01-06 19:25:08 +08:00
Wenjun Ruan 6c1e001edf
Add config for defaultTenantEnabled (#15391) 2024-01-06 18:26:22 +08:00
旺阳 e5a512803e
[Bug] [Audit log] Fix Audit log UI query error (#15427) 2024-01-05 13:25:54 +08:00
lizhenglei 4c31e19e11
[Improvement][E2E]e2e improve add workflow httpTask e2e case (#15420)
* e2e case

* Create local.yml

* local

* fix

* fix

* fix blank

---------

Co-authored-by: 80597928 <673421862@qq.com>
Co-authored-by: xiangzihao <460888207@qq.com>
2024-01-05 12:11:00 +08:00
dalong 3f21a7a577
doc write wrong,should be MinIO it's not MinION (#15395)
Co-authored-by: 86157 <mapengfei@lnxjit.commapengfei@lnxjit.com>
2024-01-03 14:25:05 +08:00
Gallardot 4fe59a7ae8
[Doc]remove temporary markdown comments (#15385)
Signed-off-by: Gallardot <gallardot@apache.org>
2024-01-03 10:48:07 +08:00
Gallardot 575b89e2f9
[Bug][Registry] Optimizing waiting strategy (#15223)
* [Improvement][Registry] Optimizing waiting strategy

Signed-off-by: Gallardot <gallardot@apache.org>
2024-01-02 22:41:50 +09:00
liyou fd74cf16cb
adjust the sequence of alarm group and add validate (#15382) (#15384) 2024-01-02 17:36:30 +08:00
Wenjun Ruan bf2cdc5300
Use Druid to split sql (#15367) 2024-01-02 12:00:53 +08:00
liyou c3ffb1330d
optimize add select filter (#15378) (#15379) 2023-12-29 13:29:09 +08:00
Gallardot 1c1d4bd592
[Improvement][Helm] using helm-docs to generate docs automatically (#15299) 2023-12-29 11:24:37 +08:00
Gallardot 93ea5f64c3
[Improvement][K8S] Custom label of a K8S task can be passed to the pod (#15369)
Signed-off-by: Gallardot <gallardot@apache.org>
2023-12-28 14:49:29 +09:00
Wenjun Ruan d6dea4633c
Optimize server startup log (#15362) 2023-12-27 20:20:21 +08:00
Wenjun Ruan 5523a62825
Remove taskQueue and looper in worker (#15292) 2023-12-27 19:51:45 +08:00
lizhenglei 74fd24b091
[Improvement][E2E] support e2e compose v2 fix code style (#15325)
* support e2e compose v2 fix code stystle

* fix

* fix

* fix version

* Revert "fix version"

This reverts commit 4f1c1963

* fix version

* fix blank

---------

Co-authored-by: 80597928 <673421862@qq.com>
Co-authored-by: David Zollo <dailidong66@gmail.com>
2023-12-27 15:35:05 +08:00
liyou c849501f3b
Display the resource file doesn't exist message in task create page (#15350) 2023-12-26 11:07:43 +08:00
Kerwin 4e069991c7
Add 3.1.9 release doc (#15361) 2023-12-25 23:37:05 +08:00
Wenjun Ruan 0e88ea3ac8
Recreate new TaskInstance Working Directory when exist in worker (#15358) 2023-12-25 16:00:41 +08:00
Wenjun Ruan 921253109a
[Bug] Close SSH session after remote shell finish (#15348)
* Close SSH session after remote shell finish

---------

Co-authored-by: David Zollo <davidzollo365@gmail.com>
2023-12-25 13:04:45 +08:00
Wenjun Ruan b73194bd35
Fix check value rather than key in AbstractDataSourceProcessor#checkOther (#15351) 2023-12-25 10:00:07 +08:00
Wenjun Ruan 5b6b0ceb31
Fix resource file usage(Delete Resource/ResourceUser which is deprecated) (#15355) 2023-12-23 22:47:59 +08:00
David Zollo a0bc778baf
[Improvement] Ensure that HttpUtils can only get result from certification URL (#15288)
* make httputils just can get Http request not Https
* add test
2023-12-23 19:08:02 +08:00
Devosend b7ffa74537
delete debugger (#15316) 2023-12-21 22:32:09 +08:00
Wenjun Ruan f921457a55
Set maxRows in SqlTask (#15342)
(cherry picked from commit b6b88e3e62d8245e08408fb60c48d23c0bd0bb46)
2023-12-21 20:51:49 +08:00
Gallardot f8a44ff719
[Bug][Master] send ACK event timeout (#15346) 2023-12-21 18:54:44 +08:00
chenrj ce11674668
Fix k8sTaskExecutionContext setting configYaml (#15116)
* fixed the issue of obtaining kubeConfig of k8s tasks

* removed excess files

* removed excess files

* formatted the code

---------

Co-authored-by: xiangzihao <460888207@qq.com>
Co-authored-by: Aaron Wang <wangweirao16@gmail.com>
2023-12-14 21:34:42 +08:00
xujiaqiang 159179ac95
[Feature-15146][dolphinscheduler-task-sqoop] add sqoop source/target type (#15146)
* task list: sgoop node params  optimize

* security.ts  add  alarm_instance params

* 1 add SqoopTask params
2 add alert plugin aliyun-voice

* add license header

* commit sqhoop optimize

* pnpm-locl.yaml supplement annotation

* remove irrelevent commit.

* Code specification optimization

* optimize sqoop task ui

* Merge Code

* add the license header to  pnpm-locl.yaml

* format the code

* format the code

* Fix sqoop task echo error

---------

Co-authored-by: xujiaqiang <xujiaqiang@aimatech.com>
Co-authored-by: xujiaqiang <“xujiaqiangwz@163.com”>
Co-authored-by: David Zollo <dailidong66@gmail.com>
2023-12-13 17:12:05 +08:00
xujiaqiang d144f48ed7
[Feature-15248][dolphinscheduler-alert-plugins] add alert plugin aliyun-voice (#15248)
* add alert aliyun-voice

* VoiceParam replace these with lombok @Data

* security.ts add alarm_instance params

* optimize alert aliyun vocie code

* Merge Code

* rollback pnpm-lock.yaml to branch :origin/dev version

* add the doc about the new plugin

* add com.aliyun.dyvmsapi20170525 version 2.14

* completed

* run mvn spotless:apply

* Code optimization

* Change to @Data

* Code specification optimization

* add com.aliyund.yvmsapi20170525.jar license

* modify com.aliyund.yvmsapi20170525.jar license

* modify com.aliyund.yvmsapi20170525.jar license

* add aliyun-vocie licenses

* add aliyun-voice link to docsdev.js

* modify vocie module to aliyunVoice

* add lisense

---------

Co-authored-by: xujiaqiang <“xujiaqiangwz@163.com”>
Co-authored-by: 旺阳 <wang@lqwang.net>
Co-authored-by: David Zollo <dailidong66@gmail.com>
2023-12-13 15:56:37 +08:00
xujiaqiang 0feb144180
[Improvement-15260][dolphinscheduler-datasource-hana] add hana related dependencies (#15260)
* add hana related dependencies

* optimizing HANA data source bugs

* run mvn spotless:apply

* Fix hana datasource getValidationQuery()

* Fix hana datasource testGetJdbcUrl()

---------

Co-authored-by: xujiaqiang <“xujiaqiangwz@163.com”>
Co-authored-by: David Zollo <dailidong66@gmail.com>
2023-12-12 17:11:27 +08:00
ll 0c470ffe66
[Fix #15129] [Dependent] The date rules of the dependent node are ambiguous. (#15289)
* [Fix-15129][Dependent] Fix the ambiguity in date rules for dependent node.

* [fix #15129] Revert ddl

* restore findLastProcessInterval

* update: mvn spotless:apply

---------

Co-authored-by: 李乐 <lile@boimc.com>
Co-authored-by: xiangzihao <460888207@qq.com>
2023-12-08 16:18:33 +08:00
Dyqer 0bb48f3429
fail-fast for dependent check (#15197)
Co-authored-by: Leoric Yue <leoric.yue@zoom.us>
Co-authored-by: caishunfeng <caishunfeng2021@gmail.com>
2023-12-07 11:06:10 +08:00
Wenjun Ruan 14272dafab
Fix failover Master might not release taskGroup (#15287) 2023-12-06 13:31:46 +08:00
Wenjun Ruan 2119e41800
[Improvement] Move delay calculation to Master (#15278) 2023-12-06 09:37:14 +08:00
Wenjun Ruan 43f5f24529
Add dolphinscheduler-extract-common module (#15266) 2023-12-05 21:06:39 +08:00
Jay Chung a6e30fd315
doc: Classify docs to avoid misleading (#15282)
* only admin user can modify queue and tenent
* task group is not related to tenant

---------

Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2023-12-05 19:05:57 +08:00
Wenjun Ruan db3d84b73d
[HotFix] Fix TaskOutputParameterParser might OOM if meed a bad output param expression (#15264) 2023-12-04 18:38:38 +08:00
zhanqian 7bfc6dc3cf
[Bug-15215][Api] non-admin should not modify tenantId and queue (#15254)
* bugfix-15215:Users are not allowed to modify the default tenant and queue through the update API
* fix: #15215
2023-12-04 10:20:34 +08:00
Wenjun Ruan ef2e9c9b67
Set the tenant as the owner in final stage (#15256) 2023-12-01 21:49:28 +08:00
Wenjun Ruan 71ee1f0c3d
Support parse task output params under multiple log (#15244) 2023-12-01 10:16:36 +08:00
Rick Cheng b4cf1ccaac
[Improvement-15009][Parameter] Change project parameter value to text (#15010) 2023-11-30 13:56:22 +08:00
Wenjun Ruan f2d146665c
Use chown to set the file owner (#15240) 2023-11-29 16:28:39 +08:00
旺阳 4c56acb467
[Fix] Change HTTP plugin timeout param to number type (#15234) 2023-11-28 17:07:57 +08:00
caishunfeng b5eddc0ce8
fix switch condition (#15228)
Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2023-11-27 14:03:37 +08:00
Wenjun Ruan 12f8138167
Expire session when update user password (#15219) 2023-11-26 18:53:44 +08:00
Jay Chung 0016b96b85
Fix docs style is incorrect by CI pass (#15167) 2023-11-25 22:32:38 +08:00
Wenjun Ruan 41fd4cde74
Remove unused cache-evict.png (#15220) 2023-11-24 17:17:48 +08:00
Wenjun Ruan 1d23e4fe5d
Remove spring cache for dao (#15184) 2023-11-24 14:54:05 +08:00
Wenjun Ruan 9c7ad6df0a
[Improvement] Clean up Scheduler logic (#15198)
* Clean up Scheduler logic

* Update dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java

Co-authored-by: 旺阳 <wang@lqwang.net>

---------

Co-authored-by: 旺阳 <wang@lqwang.net>
2023-11-24 10:53:23 +08:00
Wenjun Ruan df656a7671
Fix home page workflow instance miss status (#15193) 2023-11-22 10:33:24 +08:00
xiangzihao 7308888c70
fix security issue (#15192) 2023-11-21 11:07:13 +08:00
Dyqer cca1c4a172
fix can't stop bug (#15191)
Co-authored-by: Leoric Yue <leoric.yue@zoom.us>
2023-11-20 21:02:44 +08:00
Wenjun Ruan 9be81be328
Remove API Result in Service (#15181) 2023-11-20 17:04:03 +08:00
Wenjun Ruan 90250998c4
Add deploy on Terraform on README (#15189) 2023-11-20 16:19:07 +08:00
旺阳 6aa6e114a5
[Improvement][Alert] Add a test send feature when creating an alert instance (#15163)
* add alert test send feature

* update doc

* add alarm instance test send ui

* update

* fix mvn

* fix test

* update

* update

* change to rpc

* fix ut

* fix ut

* update

* update

* change result

* update

* Update docs/docs/en/guide/alert/alert_plugin_user_guide.md

Co-authored-by: Aaron Wang <wangweirao16@gmail.com>

---------

Co-authored-by: Aaron Wang <wangweirao16@gmail.com>
2023-11-20 10:03:37 +08:00
Gallardot 2f2825784a
[Improvement][Helm] support task type filter (#15179) 2023-11-19 15:15:10 +08:00
arlendp 2b4edb3815
[Improvement][Resource Center] Display brief file name in file-details page (#15137) (#15175) 2023-11-19 11:50:53 +08:00
旺阳 a158f1403f
[Improvement][Alert] Add timeout params for HTTP plugin (#15174) 2023-11-18 22:28:29 +08:00
destroydestiny 36f72056a9
[Bug] Fix TriggerRelationMapper cannot work due to miss DatabaseIdProvider (#15153) 2023-11-17 21:32:22 +08:00
Wenjun Ruan d6175f3bbf
Exclude DataSourceAutoConfiguration in worker server (#15169) 2023-11-16 19:17:39 +08:00
旺阳 9c8d1dc6d8
Fix spotless (#15164) 2023-11-15 14:21:19 +08:00
kevinkelin 3149928cdc
Modify the documentation that python task will not work properly when '\n' indicates the presence of a variable and needs to use 'repr(value)' (#15145)
Co-authored-by: yangyanxing <yangyanxing@360.cn>
Co-authored-by: xiangzihao <460888207@qq.com>
2023-11-15 09:30:37 +08:00
c3Vu b8e942208e
Fix incorrect button display text (#15160) 2023-11-14 18:05:06 +08:00
Jingliu Xiong 6096c58cb7
[feature#14654] alert-spi support prometheus alertmanager (#15079)
* feat alert-spi support prometheus alert manager

* fix: fix err into message

* Update dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-prometheus/src/main/java/org/apache/dolphinscheduler/plugin/alert/prometheus/PrometheusAlertSender.java

Co-authored-by: 旺阳 <wang@lqwang.net>
2023-11-13 13:23:33 +08:00
旺阳 5afd94136c
[Fix][Data Quality] Change t_ds_dq_rule_input_entry field name fix PostgreSQL not support value issue (#14992)
* change data quality field name

* fix-dao

* fix-dao

* fix-dao

* fix-dao

* update

* test

* update

* update
2023-11-13 11:04:30 +08:00
Susur 65a7c7f26b
fix missing 'KYUUBI' in droplist of datasource (#15140)
Co-authored-by: kai.he01 <kai.he01@idiaoyan.com>
2023-11-08 18:10:32 +08:00
fuchanghai 2622685784
[Bug] Fix endless loop (#15092)
* [fix-#13045] fix endless loop

---------

Co-authored-by: fuchanghai <‘2875334588@qq.com’>
2023-11-08 11:03:55 +08:00
Xinxing 5e135ba041
fix: execute sql error: datasource plugin 'doris' is not found。 (#15123)
Co-authored-by: xiangzihao <460888207@qq.com>
2023-11-07 14:37:07 +08:00
Eric Gao d675d32771
Fix confusing constant string for unit convertor (#15126) 2023-11-06 21:32:36 +08:00
Gallardot 8c01fcf14b
[Improvement][K8S] Remove ResourceQuota (#14991)
* [Improvement][K8S] Remove ResourceQuota

Signed-off-by: Gallardot <gallardot@apache.org>

* chore: fix pg

Signed-off-by: Gallardot <gallardot@apache.org>

* chore: Clean up unused code

Signed-off-by: Gallardot <gallardot@apache.org>

* chore: naming conventions

Signed-off-by: Gallardot <gallardot@apache.org>

---------

Signed-off-by: Gallardot <gallardot@apache.org>
Co-authored-by: xiangzihao <460888207@qq.com>
2023-11-03 15:18:50 +08:00
izualzhy 8665951981
[fix-#11726] fix error when set connection proerty both in the URL and an argument (#15093)
Co-authored-by: zhangying14 <zhangying14@zuoyebang.com>
Co-authored-by: xiangzihao <460888207@qq.com>
2023-11-03 14:44:27 +08:00
Aaron Wang dc503b0e00
[Fix-15072][Resource Center] Non-admin user can not query resource recursively (#15097) 2023-11-02 13:34:30 +08:00
Aaron Wang d5f99cc582
[E2E][Bug] Fix k8s-e2e (#15098) 2023-11-01 14:57:06 +08:00
chenrj c532fea00e
[Improvement] Refactoring K8S task plugin with connections managed in connection center (#14977) 2023-10-31 17:07:24 +08:00
chenrj 5a3827eef4
[DSIP-19] Support sagemaker connections in the connection center, as well as external connections to the connection center in sagemaker tasks (#14976)
* Refactoring `Sagemaker` task plugin with connections managed in connection center.

---------

Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2023-10-31 10:07:05 +08:00
chenrj e99c5950b9
[DSIP-19] Support zeppelin connections in the connection center, as well as external connections to the connection center in zeppelin tasks (#14434)
* Refactoring zeppelin task plugin with connections managed in connection center

---------

Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2023-10-30 16:44:54 +08:00
Wei Xiaonan c0ed68121d
[Feature-14832][Listener]Implementation of Listener Mechanism (#14981)
* first commit

* 1. sql: sync ddl
2. front-end: change to ternary expression
3. back-end: correct license header in ListenerEvent.java

* test case

* frontend: remove unnecessary console

* fix unit test

* remove log depends on user-provided value

* fix dolphinscheduler_postgresql.sql

* sync database schema

* fix unit test

* fix unit test

* fix some NIT.

* extract GLOBAL_ALERT_GROUP_ID into variable

* fix ddl bug

* add column task_type in t_ds_fav_task in upgrade/3.2.0_schema

* add unit test
2023-10-29 20:28:05 +08:00
Wenjun Ruan 99214d0fc3
Fix SqlTask cannot split the given sql when browser in windows (#15062) 2023-10-26 19:50:32 +08:00
Wenjun Ruan a5284e4024
Remove mapper usage in tools (#15073) 2023-10-25 22:58:47 +08:00
小可耐 ae847ba331
[Fix-15036] [API] Fix task definition edit doesn't work (#14801)
* [Bug] [task definition] 修复任务定义修改,工作流无法生效问题

* [Bug] [API] Fix task check apply

* [BUG][API] fix updateTaskDefinition method ut

* [BUG][API] fix updateTaskDefinition method code specification

* [BUG][API] fix one task corresponds to multiple workflow problems

* [BUG][API] queryProcessTaskRelationByTaskCodeAndTaskVersion method adjust

* [BUG][API] fix updateTaskDefinition method update

---------

Co-authored-by: David Zollo <dailidong66@gmail.com>
Co-authored-by: 旺阳 <wang@lqwang.net>
Co-authored-by: xiangzihao <460888207@qq.com>
2023-10-25 20:25:02 +08:00
Orange Summer 688f84452d
[Feature-14678][Master][UI]Dependent task parameter passing (#14702)
* feat: dependent task parameter passing

* style: code format

* refactor: remove inappropriate log

* refactor: Modify unreasonable code structure

* refactor: Modify unreasonable code structure

* refactor: Solve conflicts caused by merge

---------

Co-authored-by: Rick Cheng <rickchengx@gmail.com>
Co-authored-by: BaoLiang <29528966+lenboo@users.noreply.github.com>
2023-10-25 16:24:30 +08:00
Wenjun Ruan 2350775272
Add IT for mysql5/postgresql16 initialize/upgrade (#15063) 2023-10-24 14:44:02 +08:00
caishunfeng c59b2d5b8c
remove sub workflow finish notify (#15057)
Co-authored-by: xiangzihao <460888207@qq.com>
2023-10-23 10:19:57 +08:00
He Zhao f0f12c9fdf
Fix missing Kyuubi type in UI (#15051) 2023-10-21 14:17:45 +08:00
Wenjun Ruan b750db3c37
Add IT for dolphinscheduler-tools module (#15043) 2023-10-20 15:39:42 +08:00
Wenjun Ruan 37db913f04
Set kubectl version to v1.28.3 (#15053) 2023-10-20 11:47:09 +08:00
imp2002 8f16fd7975
[Fix-14885][pom] fix spotless format file path (#14889)
* fix: fix `spotless` format file path

* fix: remove duplicate dependencies

---------

Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
Co-authored-by: Aaron Wang <wangweirao16@gmail.com>
Co-authored-by: xiangzihao <460888207@qq.com>
2023-10-17 06:20:23 -05:00
Xin Xiu 28788c7df6
Fix When the task instance status is 'STOP' (#14967)
* Fix When the task instance status is 'STOP'

* Fix ITaskState types sort by ID

---------

Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
Co-authored-by: xiangzihao <460888207@qq.com>
2023-10-17 05:19:04 -05:00
Jarvis 06c3663e22
[Docs] fix typo (#15032)
Co-authored-by: xiangzihao <460888207@qq.com>
2023-10-17 04:15:41 -05:00
Jay Chung a13ce27671
chore: release version 3.2.0 (#15039) 2023-10-17 10:36:11 +08:00
旺阳 154e1679f9
[Improvement][Alert] Alert plugin enhance fail message (#15024)
* add webex && pagerduty fail log

* update

* fix spotless

* Update dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-http/src/main/java/org/apache/dolphinscheduler/plugin/alert/http/HttpSender.java

Co-authored-by: xiangzihao <zihaoxiang@apache.org>

* update

---------

Co-authored-by: xiangzihao <zihaoxiang@apache.org>
2023-10-16 00:13:45 -05:00
Wenjun Ruan 33084d281f
Add dolphinscheduler-dao-plugin module (#15019) 2023-10-14 17:58:40 +08:00
Gallardot 0a2cd61a85
[Doc] remove skywalking, update note (#15028)
Signed-off-by: Gallardot <gallardot@apache.org>
2023-10-14 10:26:29 +08:00
旺阳 a9a621fdee
update (#15027) 2023-10-13 22:40:44 +08:00
Wenjun Ruan 312c339722
Delete File generated by UT (#15022) 2023-10-13 16:43:54 +08:00
朱通通 166ef69066
[improvement][Resources] Improve details page return to the previous list page (#14951) (#14954)
* Update ResourcesServiceImpl.java

* Update index.tsx

feature-14951:Improvement details page

* Update use-edit.ts

* Update use-table.ts

* Update index.tsx

* [improvement] improve details page return to the previous list page (#14951)

improve details page return to the previous list page

* [improvement] improve details page return to the previous list page (#14951)

improve details page return to the previous list page

* [improvement] improve details page return to the previous list page (#14951)

improve details page return to the previous list page

* [improvement] improve details page return to the previous list page (#14951)

improve details page return to the previous list page

* [improvement] improve details page return to the previous list page (#14951)

improve details page return to the previous list page

* [improvement] improve details page return to the previous list page (#14951)

improve details page return to the previous list page

---------

Co-authored-by: xiangzihao <460888207@qq.com>
2023-10-12 22:07:33 -05:00
liyou d983e36ea4
improvement (#15018) 2023-10-12 07:01:04 -05:00
Kerwin 1f67e68400
Revert "[Bug] [Resource] fix resource delete bug (#15003)" (#15020)
This reverts commit d6a900667a.
2023-10-12 04:28:11 -05:00
liyou d6a900667a
[Bug] [Resource] fix resource delete bug (#15003) 2023-10-12 03:28:23 -05:00
旺阳 b532fe5eda
[Improvement][Registry][Jdbc] Add jdbc registry config in helm charts (#14431)
* k8s support jdbc registryt

* fix spotless

* fix

* update

* update

* update

* update
2023-10-11 20:52:11 -05:00
dbac d683553324
[Improvement][Master] Calculate the remainTime then we set the delay execution. (#15012)
* [#15007][fix][worker-server] fix bug task delay execution

* [#15007][fix][worker-server] fix bug task delay execution
    mvn spotless:apply

* [#15007][fix][worker-server] fix bug task delay execution
    worker fix  task delay logic

---------

Co-authored-by: 旺阳 <wang@lqwang.net>
2023-10-11 02:32:07 -05:00
Gallardot 23b2c8a532
[Doc]fix typo (#15005) 2023-10-11 11:09:10 +08:00
旺阳 a866de1754
[Improvement][Alert] HTTP Related Alert plugin add retry logic (#14972)
* add RetryHandler for http client

* fix spotless

* update
2023-10-10 21:20:43 -05:00
Gallardot 4fe41ac57f
[Feature][Helm] Supports deploying only partial components (#14985)
* [Feature][Helm] Supports deploying only partial components

* chore: add doc

* chore: miss some doc
2023-10-10 20:58:49 +08:00
Gallardot 049c1511fa
[Improvement][K8S] K8S task support passing context parameters to downstream task (#14934)
* [Improvement][K8S] K8S task support passing context parameters to downstream task

Signed-off-by: Gallardot <gallardot@apache.org>

* [Improvement][K8S] K8S task support passing context parameters to downstream task

Signed-off-by: Gallardot <gallardot@apache.org>

* chore: update doc img

Signed-off-by: Gallardot <gallardot@apache.org>

* chore: update doc

Signed-off-by: Gallardot <gallardot@apache.org>

* chore: add UT

Signed-off-by: Gallardot <gallardot@apache.org>

* merge suggestion

Co-authored-by: 旺阳 <wang@lqwang.net>

* merge suggestion

Co-authored-by: 旺阳 <wang@lqwang.net>

* merge suggestion

Co-authored-by: 旺阳 <wang@lqwang.net>

---------

Signed-off-by: Gallardot <gallardot@apache.org>
Co-authored-by: David Zollo <dailidong66@gmail.com>
Co-authored-by: 旺阳 <qingwli@cisco.com>
Co-authored-by: 旺阳 <wang@lqwang.net>
Co-authored-by: xiangzihao <460888207@qq.com>
2023-10-08 17:27:10 +08:00
Gallardot 2a65590117
[Improvement][Task] Mask password in task log (#14988)
Signed-off-by: Gallardot <gallardot@apache.org>
Co-authored-by: xiangzihao <460888207@qq.com>
2023-10-08 01:54:45 -05:00
Wenjun Ruan 629fced9ef
Fix task log appender will not be closed immediate after throwing exception (#14989) 2023-10-07 20:19:02 -05:00
winghv c5bc535b85
[Improvement][Common] Obtain resource information in the k8s environm… (#14968)
* [Improvement][Common] Obtain resource information in the k8s environment.

* [Improvement][Common] Change the comment

---------

Co-authored-by: 旺阳 <qingwli@cisco.com>
2023-09-28 16:40:17 +08:00
fuchanghai f90eadd40f
[feature-#14449] add secret in k8s Task (#14930)
* [feature-#14449] add secret

* [feature-#14449] upgrade UT and rename parameter ```secret```

* [feature-#14449] fix UT

* [feature-#14449] fix UT

* [feature-#14449] improvement

* [feature-#14449] format

---------

Co-authored-by: fuchanghai <‘2875334588@qq.com’>
2023-09-28 11:06:35 +08:00
Eric Gao 1e2fddf958
Fix typo (#14973) 2023-09-27 18:58:55 +08:00
旺阳 8cb765bdcb
[Bug] [Api] Logback file STDOUT duplicate (#14966) 2023-09-26 20:19:43 +08:00
Kerwin 6de1e2c1b3
Fix the error of using shell task to obtain Home variable in Ubuntu system. (#14964) 2023-09-26 17:18:38 +08:00
Wenjun Ruan 020092ed1e
Set charset in upgrading tools to solve read upgrade sql mojibake (#14955) 2023-09-26 09:46:25 +08:00
Chenshuai 4b5eb1a2bb
[Improvement-14894][dolphinscheduler-alert] alert message contains the operator (#14910)
* feat: add operator in alert info

* fix: optimize get user info directly

* fix: also optimize get user info directly

* fix: code style

* fix: code style

* fix: update test case

* fix: code check style

---------

Co-authored-by: Jim Chen <chenshuai19950725@gmail.com>
Co-authored-by: David Zollo <dailidong66@gmail.com>
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
Co-authored-by: caishunfeng <caishunfeng2021@gmail.com>
Co-authored-by: xiangzihao <460888207@qq.com>
2023-09-25 10:50:28 +08:00
Wenjun Ruan ab29ae77c1
Exclude DataSourceAutoConfiguration in WorkerServer (#14957) 2023-09-23 22:01:54 +08:00
LiuCanWu e748c2eb9a
fix the #14729 problem (#14902)
Co-authored-by: 刘阳 <liuy2590@chinaunicom.cn>
Co-authored-by: xiangzihao <460888207@qq.com>
2023-09-21 18:46:14 +08:00
AmriStrong b303648752
[Improvement][Api]Change default zookeeper timeout setting (#14940)
* Local running api project connection remote zookeeper always reported connection timeout #14939  Adjust the connection zookeeper timeout time

* Local running api project connection remote zookeeper always reported connection timeout #14939  Adjust the connection zookeeper timeout time

* Local running api project connection remote zookeeper always reported connection timeout #14939  Adjust the connection zookeeper timeout time

* reported connection timeout #14939  Adjust the connection  timeout time use the curator default setting

---------

Co-authored-by: AmriStrong <wanggang1@baseus.com>
2023-09-21 15:50:22 +08:00
Aaron Wang 2f2884fd6b
[Fix-14895][API] Keep printing null if task log file not exist (#14912) 2023-09-19 18:29:33 +08:00
Yhr-N 9083f9d0e0
[Fix-14546] seatunnel unable submit spark job to spark (#14617) 2023-09-19 13:23:27 +08:00
dong6349 298b8ccf5a
Fix the ephemeralId will not be deleted before jdbc-registry closed. (#14936) 2023-09-19 10:34:07 +08:00
AmriStrong c438d7194c
[Bug] Dependent components cannot be justified and viewed (#14924)
* Dependent components cannot be justified and viewed (dependent components cannot be edited and viewed) #14865

* Dependent components cannot be justified and viewed (dependent components cannot be edited and viewed) #14865  Improve stability

---------

Co-authored-by: AmriStrong <wanggang1@baseus.com>
Co-authored-by: xiangzihao <460888207@qq.com>
2023-09-18 19:17:23 +08:00
fuchanghai e3482fbe5d
[fix-#14918] add missing ddl (#14921) 2023-09-18 18:15:48 +08:00
Chenshuai 6dcc26f52e
feat: add task priority in alert info (#14919)
Co-authored-by: Jim Chen <chenshuai19950725@gmail.com>
Co-authored-by: Aaron Wang <wangweirao16@gmail.com>
2023-09-15 17:30:25 +08:00
Gallardot f6a6794289
[Bug][Worker] Global and local parameters are not replaced in SQL components (#14926)
Signed-off-by: Gallardot <gallardot@apache.org>
2023-09-15 10:31:14 +08:00
Aaron Wang 73e846d03e
[Improvement-14884][Master] Add overload state in master heartbeat to trigger slot change (#14887) 2023-09-14 10:36:42 +08:00
Kerwin 4938470d20
[Fix-14907]Fix click to view the history in the task node of the workflow instance (#14909) 2023-09-13 11:17:10 +08:00
calvin a070aa93a7
[Improvement][API] Support to check if the worker group has been used by any tasks or schedulers when users delete or rename it. (#14893) 2023-09-13 10:34:59 +08:00
JueLance e7c579d8f1
Fix java.sql.Date serialize error by convert it to java.util.Date (#13050) 2023-09-13 09:54:55 +08:00
Chenshuai 121c981a5d
[Fix-14788][dolphinscheduler-ui] Fix the task name of dependent node, keyword filtering not supported (#14791)
* fix: filter

* fix: dependent filter

---------

Co-authored-by: Jim Chen <chenshuai19950725@gmail.com>
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
Co-authored-by: xiangzihao <460888207@qq.com>
2023-09-12 15:11:00 +08:00
Chenshuai 034e99f5a9
[Fix-14790][dolphinscheduler-ui] Fix the data quality task, keyword filtering not supported (#14792)
* fix: filter

* fix: data-quality task filter rule

---------

Co-authored-by: Jim Chen <chenshuai19950725@gmail.com>
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
Co-authored-by: xiangzihao <460888207@qq.com>
2023-09-12 12:35:57 +08:00
kezhenxu94 613bcc3b5e
Add doap.rdf (#14883) 2023-09-09 22:40:36 +08:00
sgw 76bbcbeb30
[Improvement][Master] Split the task dependency mode of the dependent node into workflow dependent and task dependent (#14824)
* [Improvement][Master] Split the task dependency mode of the dependent node into workflow dependent and task dependent. (#11970)

* [Improvement][Master] Split the task dependency mode of the dependent node into workflow dependent and task dependent. (#11970)

- delete useless output

* [Improvement][Master] Split the task dependency mode of the dependent node into workflow dependent and task dependent. (#11970)

- add log
- run spotless check

---------

Co-authored-by: 旺阳 <qingwli@cisco.com>
Co-authored-by: JinYong Li <42576980+JinyLeeChina@users.noreply.github.com>
2023-09-09 17:23:34 +08:00
Hunter 3c71fb05f6
fix(dolphinscheduler-alert): fix create http request error (#14793)
request type should use equalsIgnoreCase to equal,msg should add URLEncoder.encode

Co-authored-by: hunter-cloud09 <liuhunter09@gmail.com>
Co-authored-by: Aaron Wang <wangweirao16@gmail.com>
Co-authored-by: JinYong Li <42576980+JinyLeeChina@users.noreply.github.com>
2023-09-09 16:39:27 +08:00
Jay Chung 3fa69d2db8
[Bug][Worker] Fix sql/shell task doesn't replace parameter (#14876)
Fix parameter assign error, fix #14869 which including
* shell task param not work, botch local and global
* others task chain assign not work
2023-09-08 10:09:16 +08:00
yeahhhz 70e384c9fc
[Improvement][UI] Optimize task disable node style in dark theme (#14871)
Co-authored-by: 旺阳 <qingwli@cisco.com>
2023-09-08 07:39:05 +08:00
Nothing Chan f3a4842bf6
[Improvement][doc] fix typo in readme (#14878) 2023-09-08 00:11:59 +08:00
gaopeng 5062aa12da
[Fix-14811][fix] Fix when using Casdoor SSO, ldap, OAuth2 to log in, the tenant problem of not specifying the currently logged in user (#14812) 2023-09-07 19:56:38 +08:00
Aaron Wang b12df72a0c
[Fix][Resource Center] Remove NONE storage type and set LOCAL type as default (#14661) 2023-09-07 14:09:15 +08:00
Wenjun Ruan bc4326125d
Fix session/thread leak at ssh datasource (#14859) 2023-09-07 11:55:31 +08:00
旺阳 89a55de070
[Bug] [UI] New tasks with the flag normal show a grey color (#14862) 2023-09-07 10:12:44 +08:00
lamberken 11c8e0bdf1
[Improve] Fix placeholders should match arguments in log statement (#14850) 2023-09-06 13:32:26 +08:00
Aaron Wang 6406243db0
chore: add revert label check (#14853) 2023-09-05 14:23:42 +08:00
Jay Chung 974d700984
Revert "fix: Local resource error in some entrypoint (#14826)" (#14838)
This reverts commit 9e60632201.
2023-09-05 12:41:04 +08:00
gaopeng adf49fd23f
[Feature-14802][api] Use Casdoor SSO to log in, add admin user configuration (#14814)
* [Feature-14802][feat] Use Casdoor SSO to log in, add admin user configuration

    Use Casdoor SSO to log in, add admin user configuration

This closes #14802

* [Feature-14802][feat] Use Casdoor SSO to log in, add admin user configuration

    Use Casdoor SSO to log in, add admin user configuration

This closes #14802

* update doc

* [Feature-14802][feat] Use Casdoor SSO to log in, add admin user configuration

    Use Casdoor SSO to log in, add admin user configuration

This closes #14802

---------

Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
Co-authored-by: 旺阳 <qingwli@cisco.com>
2023-09-04 13:25:40 +08:00
Jay Chung 46c0eb48c6
feat: Add others scopes for release tool (#14844)
Co-authored-by: caishunfeng <caishunfeng2021@gmail.com>
2023-09-02 10:14:21 +08:00
Zinway 96041e3876
fix invalid registry path ends with 'master' or 'worker' (#14328)
Co-authored-by: Zinway Liu <zinway.liu@ucloud.cn>
Co-authored-by: Aaron Wang <wangweirao16@gmail.com>
2023-09-01 15:11:49 +08:00
zhangbaipeng 7640c29495
[Improvement] [Task] Change Seatunnel task run-mode to deploy-mode (#14800) 2023-09-01 12:35:39 +08:00
calvin 168a3930fa
[Improvement-14835][UI] Support to immediately adjust the fill color of the task node after changing the run flag of the task. (#14837)
* worked out this issue
2023-09-01 09:01:16 +08:00
eye-gu 7ae4fb3787
[Fix-14149][master] task finished so not dispatch (#14161) 2023-08-31 20:08:09 +08:00
eye-gu 33525a17c3
[Fix-14828][master] check task id not null to avoid NPE (#14829)
Co-authored-by: eye <eye.gu@aloudata.com>
Co-authored-by: Aaron Wang <wangweirao16@gmail.com>
Co-authored-by: caishunfeng <caishunfeng2021@gmail.com>
2023-08-31 18:34:31 +08:00
Luke Yan 6e5870d711
[DS-14830][dolphinscheduler-storage-s3] Allow customization of s3 regions (#14831)
Replace `Regions. fromName (region). getName() ` with the `region ` variable

Co-authored-by: xiangzihao <460888207@qq.com>
2023-08-31 17:53:30 +08:00
Jay Chung 82eeeec750
fix wrong condition (#14836) 2023-08-31 09:23:59 +08:00
Jay Chung 25e841a228
chore: Correct db upgrade and add ci avoid regression (#14620)
add atlasgo to ci
https://atlasgo.io/declarative/diff
related: https://github.com/apache/dolphinscheduler/issues/11286

BTW, it seems some ddl change only exist in 3.1.3、3.1.5、3.1.6 but do not exist in dev which will also cause an error when updating from those version
2023-08-30 11:55:05 +08:00
Wenjun Ruan 742f0c3e60
Add workflowInstanceHost and taskInstanceHost in ITaskInstanceExecutionEvent (#14827) 2023-08-29 13:32:17 +08:00
Jay Chung 9e60632201
fix: Local resource error in some entrypoint (#14826)
Fix createResource, queryResourceListPaging, onlineCreateResource
resource error in local resource
2023-08-28 21:16:16 +08:00
eye-gu 3148dba7a5
[Improvement-14658][etcd] Distinguish between add and update by using pre kv (#14659)
Co-authored-by: eye <eye.gu@aloudata.com>
2023-08-28 09:28:52 +08:00
Wenjun Ruan d223d654cc
Add rpc benchmark test (#14797) 2023-08-27 20:59:55 +08:00
sgw 9c2838ccc9
fix the status of logical task is not be correctly changed when task is finished. (#14820) (#14822) 2023-08-27 13:20:37 +08:00
sgw ac04288e2b
fix the full log path of logical task is not be set when task is dispatched (#14819) (#14821) 2023-08-27 12:24:04 +08:00
kezhenxu94 294a6225f1
Fix cache is overriden randomly after build and before tests (#14808)
* Fix cache is overriden randomly after build and before tests
* Update backend.yml
* Update unit-test.yml
2023-08-24 22:27:24 +08:00
kezhenxu94 d62ce25a01
Remove `@AccessLogAnnotation` annotation, replace with built-in access log (#14803) 2023-08-24 15:19:01 +08:00
Wenjun Ruan 55cc77226f
[RPC] Refactor the remote module. (#14776)
* Add dolphinscheduler-extract-base
* Add dolphinscheduler-extract-master
* Add dolphinscheduler-extract-worker
* Add dolphinscheduler-extract-alert
2023-08-23 09:43:17 +08:00
yangyang zhong 70731a1617
[Feature][Authentication] support oauth2 login (#14743)
* support oauth2 login

---------

Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2023-08-21 15:57:30 +08:00
Chenshuai 502bd36fde
fix: filter (#14770)
Co-authored-by: Jim Chen <chenshuai19950725@gmail.com>
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
Co-authored-by: xiangzihao <460888207@qq.com>
2023-08-20 14:30:47 +08:00
Aaron Wang a491e3a849
fix: null app-info-path cause NPE (#14752) 2023-08-19 13:28:45 +08:00
caishunfeng 59998f4c75
[Improvement] add dispatch fail times when compare (#14761)
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2023-08-18 15:26:01 +08:00
wangzheyuan 34d2f67052
Fix a typo in development-environment-setup.md (#14767) 2023-08-18 14:18:41 +08:00
KingsleyY b3af374fe6
[Fix-14646][Worker] Fix match wrong pid on linux server (#14652)
* [DS-14646][Worker] Fix match wrong pid on linux server
This closes #14646

---------

Co-authored-by: yangxin3 <yangxin3@newhope.cn>
2023-08-17 19:17:16 +08:00
Gallardot f7ba26f030
fix: kubectl version update (#14762)
Signed-off-by: Gallardot <gallardot@apache.org>
2023-08-17 17:13:18 +08:00
calvin e2b97c026e
[Improvement][UI] Support to disable or enable the project preferences. (#14756) 2023-08-16 20:20:48 +08:00
Gallardot a826ed2c1a
[Improvement][security] get-user-info API endpoint should not return the user's password in MD5 format (#14680)
* [Improvement][security] get-user-info API endpoint should not return the user's password in MD5 format

Signed-off-by: Gallardot <gallardot@apache.org>

* [Improvement][security] list-paging API endpoint should not return the user's password in MD5 format

Signed-off-by: Gallardot <gallardot@apache.org>

---------

Signed-off-by: Gallardot <gallardot@apache.org>
Co-authored-by: Aaron Wang <wangweirao16@gmail.com>
2023-08-14 18:28:11 +08:00
Edison Catto 25480ae9e7
[Feature][Resource Center] Add support for Huawei Cloud OBS (#14643)
* [Feature][Resource Center] Add support for Huawei Cloud OBS as storage of resource center

* add license and add doc

* add 3-party dependency license

* Update LICENSE

* fix

* Update pom.xml

* fix

* fix

---------

Co-authored-by: sunkang <sunkang@hjfruit.com>
Co-authored-by: xiangzihao <460888207@qq.com>
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
2023-08-14 13:25:48 +08:00
eye-gu dde45dbdfb
[Fix-13972][dao] set default value for command (#14612) 2023-08-14 09:53:26 +08:00
Aaron Wang cb55476235
[Fix-14721] [K8S Task] Handle job delete event when user manually delete the job in k8s cluster (#14722)
Co-authored-by: Jay Chung <zhongjiajie955@gmail.com>
2023-08-11 17:15:07 +08:00
JieguangZhou 8e64026e93
fix fault tolerant enviroment missing (#14735) 2023-08-11 14:35:31 +08:00
Wenjun Ruan 93b0283dfe
Set tenant as the the resource file owner (#13832) 2023-08-11 00:57:47 +08:00
Aaron Wang 2314b67870
[Fix-14715] [Resource Center] Modify default fs of local storage plugin (#14716)
Co-authored-by: xiangzihao <460888207@qq.com>
2023-08-10 19:15:09 +08:00
Wenjun Ruan 27745a8a84
Upgrade JDK17 for Sonar (#14726) 2023-08-10 11:29:11 +08:00
Wenjun Ruan 3efcf0c5ac
Fix message in MessageRetryRunner might disorder (#14725) 2023-08-09 20:19:02 +08:00
eye-gu 7c37a7f9fe
[Fix-14714][master] package task instance before put into cache (#14718)
Co-authored-by: eye <eye.gu@aloudata.com>
Co-authored-by: xiangzihao <460888207@qq.com>
2023-08-09 13:41:28 +08:00
Gallardot 11d1df2f32
[Improvement][helm] configmap changes automatically trigger restart (#14657)
* [Improvement][helm] configmap changes automatically trigger restarts

Signed-off-by: Gallardot <gallardot@apache.org>

* feat: add an optional parameter

Signed-off-by: Gallardot <gallardot@apache.org>

---------

Signed-off-by: Gallardot <gallardot@apache.org>
Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2023-08-09 10:30:20 +08:00
Kerwin 420bcd69a6
Add 3.1.8 release document (#14707) 2023-08-07 13:39:14 +08:00
Wenjun Ruan db62ce0e47
Fix serial mode will cause NPE in Workflow bootstrap (#14703) 2023-08-04 23:43:57 +08:00
eye-gu 4bae7b1ae2
[Fix-14683][pom] upgrade mysql driver version (#14684) 2023-08-04 10:51:15 +08:00
Gallardot 57b9da145e
[Doc]fix typo (#14691)
Signed-off-by: Gallardot <gallardot@apache.org>
Co-authored-by: xiangzihao <460888207@qq.com>
2023-08-04 10:14:04 +08:00
xiangzihao 85f6a6e73c
use wildcard import (#14697) 2023-08-03 19:04:00 +08:00
Gallardot a5f5aacb5d
[Bug][Alert]batchInsert execption #14686 (#14687)
Signed-off-by: Gallardot <gallardot@apache.org>
Co-authored-by: xiangzihao <460888207@qq.com>
2023-08-03 18:15:09 +08:00
xiangzihao dec5228d62
[CI][E2E] Try to fix e2e timeout error (#14690)
* try to fix e2e timeout error

* remove use file
2023-08-03 17:08:37 +08:00
Aaron Wang 5ec9085113
fix: do not override k8sConfigYaml in ShShellInterceptorBuilder (#14682)
Co-authored-by: xiangzihao <460888207@qq.com>
2023-08-02 18:01:34 +08:00
sleo 139f23040a
[Fix-14668][dolphinscheduler-tools] Modify the imported jar package. Use org.apache.commons.lang3.StringUtils. (#14669) 2023-08-02 11:03:49 +08:00
Tengting Xu 9963bfc612
[Workflow] Print WorkflowInstance detail/ TaskInstance detail when finished (#14677)
* [Workflow] Print WorkflowInstance detail/ TaskInstance detail when finished

* [Workflow] minor fix

* [Workflow] add ut

* [Workflow] add header

---------

Co-authored-by: tengting.xu <xtt@dipeak.com>
2023-08-01 20:50:00 +08:00
Gallardot 37ecd262ee
[Bug][Alert]batchInsert execption #14675 (#14676)
Signed-off-by: Gallardot <gallardot@apache.org>
2023-08-01 13:54:00 +08:00
fuchanghai b391b74df4
[fix-#14537] the branch that needs to be executed overlaps with another branch, it may not be able to complete the normal execution (#14563) 2023-08-01 11:04:31 +08:00
Gallardot 2f3ab18b29
[Doc] fix built-in typo (#14667)
Signed-off-by: Gallardot <gallardot@apache.org>
2023-08-01 08:56:08 +08:00
Gallardot 150d9e04b0
[Improvement][UI] Image pull policy in the K8S task provides default values (#14650)
Signed-off-by: Gallardot <gallardot@apache.org>
Co-authored-by: Aaron Wang <wangweirao16@gmail.com>
2023-07-29 19:56:19 +08:00
eye-gu d87a0d831c
[Fix-14008][registry] Fix etcd memory leak due to leaseId (#14034) 2023-07-28 22:07:37 +08:00
Wenjun Ruan 9ce8871158
Support get property from env/jvm/common.properties (#14645) 2023-07-28 14:41:58 +08:00
Rick Cheng 79cf785eca
[Improvement][Parameter] Improve the order of project parameter (#14581) 2023-07-27 18:20:36 +08:00
Wenjun Ruan 2b99451ccd
Support filter restrict network interface (#14638) 2023-07-26 23:03:58 +08:00
Gallardot 5a550dd628
[Improvement][CI] deploy to k8s (#14555)
* [Improvement][CI] deploy to k8s

Signed-off-by: Gallardot <gallardot@apache.org>

---------

Signed-off-by: Gallardot <gallardot@apache.org>
Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
Co-authored-by: Aaron Wang <wangweirao16@gmail.com>
2023-07-26 17:18:04 +08:00
amao 5ccc4cc889
[Improvement-4375][api] cannot delete yarn queue (#13046)
* [Bug-12833][api]
delete api

* [Bug-12833][api]
delete yarn queue

* [Bug-12833][api]
add Unit Test

* Repair the failed CI

* Repair the failed UT

* Repair the failed Docs

* Repair the failed Doc

---------

Co-authored-by: amao <Guoqing.Mao@Yumchina.com>
Co-authored-by: xiangzihao <460888207@qq.com>
2023-07-26 11:52:57 +08:00
KingsleyY 512f4c7021
[Fix-10795][plugin] sqoop task query columns bug (#10776)
* [Improvement][Api] add @Override on the Override method

* [FIX]sqoop task query columns bug

* merge two if

* update checkstyle problem

* Update dolphinscheduler-task-plugin/dolphinscheduler-task-sqoop/src/main/java/org/apache/dolphinscheduler/plugin/task/sqoop/SqoopColumnType.java

Co-authored-by: Wenjun Ruan <wenjun@apache.org>

* Update dolphinscheduler-task-plugin/dolphinscheduler-task-sqoop/src/main/java/org/apache/dolphinscheduler/plugin/task/sqoop/generator/sources/MySQLSourceGenerator.java

Co-authored-by: Wenjun Ruan <wenjun@apache.org>

* code format

* code format

---------

Co-authored-by: Wenjun Ruan <wenjun@apache.org>
Co-authored-by: xiangzihao <460888207@qq.com>
2023-07-26 10:42:29 +08:00
Wenjun Ruan 4aab0b234f
Use AdHoc datasource client in sqlTask (#14631)
* Use AdHoc datasource client in sqlTask

* Add method in DataSourceChannel to create PooledDataSourceClient and AdHocDataSourceClient
2023-07-26 08:58:50 +08:00
xiangzihao c6696683e5
[CI][E2E] Upgrade e2e dependency version (#14634)
* upgrade e2e dependency version

* upgrade e2e dependency version

* optimize imports

* remove duplicated awaitility

* remove duplicated awaitility
2023-07-25 18:04:18 +08:00
KingsleyY 4a80e3a021
[DS-14566][master] fix serial_wait command_param does not replace global_params (#14606)
This closes #14566

Co-authored-by: yangxin3 <yangxin3@newhope.cn>
Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
Co-authored-by: xiangzihao <460888207@qq.com>
2023-07-25 13:36:35 +08:00
xiangzihao 164154488a
add e2e optional for ci (#14633) 2023-07-25 11:10:50 +08:00
Wenjun Ruan 6617e3fb72
Revert "datasource test and sql task Remove connection pool issues is #14179 (#14193)" (#14626)
This reverts commit e4fb5b30a4.
2023-07-24 17:33:43 +08:00
xiangzihao 930d2f05b7
[CI] [E2E] Increase e2e containers timeout (#14628)
* increase e2e containers timeout
2023-07-24 16:26:41 +08:00
Gallardot 0188f40b84
[Improvement][HELM] add driver-class-name (#14614)
Signed-off-by: Gallardot <gallardot@apache.org>
Co-authored-by: xiangzihao <460888207@qq.com>
Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2023-07-24 11:58:33 +08:00
Aaron Wang 759756ae80
[Improvement-14269][API] Bind task group with project (#14392)
* [Improvement-14269][API] Bind task group with project

* remove comment

* add project permission check for task group operation

* add doc
2023-07-23 12:11:37 +08:00
Aaron Wang ca760aabd4
[Fix-14512][BOM] kubernetes-client version conflict (#14561) 2023-07-21 18:17:53 +08:00
xuhui1231 e4fb5b30a4
datasource test and sql task Remove connection pool issues is #14179 (#14193)
* datasource test and sql task Remove connection pool issues is #14179

* datasource test and sql task Remove connection pool issues is #14179 uniform style

* datasource test and sql task Remove connection pool issues is #14179 uniform style by 20230720

* datasource test and sql task Remove connection pool issues is #14179 uniform style by 20230720

---------

Co-authored-by: xuhui <xuhui@3h1china.com>
Co-authored-by: Jay Chung <zhongjiajie955@gmail.com>
2023-07-21 16:14:21 +08:00
Jay Chung d92e2b360e
ci: Mergeable must have ready-to-merge and not require version (#14600)
you can see our init discuss in https://lists.apache.org/thread/xgcd3wndfst88ornvdknd64nol76k89n
2023-07-21 15:18:41 +08:00
Eric Gao d6a4e99e19
fix process utils comment typo (#14613) 2023-07-21 13:18:10 +08:00
eye-gu 50cc65b118
[Fix-13976][dao] task complete contain force success state (#14611)
Co-authored-by: eye <eye.gu@aloudata.com>
Co-authored-by: xiangzihao <460888207@qq.com>
2023-07-21 11:50:29 +08:00
Gallardot 1e31327418
[Improvement][K8S] Disable delete namespaces in the K8S cluster (#14597)
* [Improvement][K8S] Disable all namespaces operations in the K8S cluster

Signed-off-by: Gallardot <gallardot@apache.org>

---------

Signed-off-by: Gallardot <gallardot@apache.org>
Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2023-07-21 10:28:20 +08:00
calvin fc65c185dc
[Fix-14601][UI] Ironed out the issue with choosing an environment on the task form of both types of DMS and DATASYNC. (#14605)
* worked out this issue
2023-07-20 22:27:28 +08:00
Wenjun Ruan cbd354d134
Add host/port in heartbeat (#14591) 2023-07-20 21:26:35 +08:00
pppppjcc cbfb1cbffb
[Fix-14603] phone Number validate (#14604) 2023-07-20 20:39:54 +08:00
旺阳 3d033da55d
[Improvement] Dataquality code style enhance (#14592)
* code style enhance

* update

---------

Co-authored-by: xiangzihao <460888207@qq.com>
2023-07-20 20:02:51 +08:00
xiangzihao 149ff49f11
increase browser container timeout (#14608) 2023-07-20 19:17:47 +08:00
Aaron Wang 04800a48d1
[Feature-13763][K8S Task] collect real-time log (#14379)
* [Improvement-13763][K8S Task] collect real-time log

* fix codesmell

* get pod watcher until pod is ready

* fix codesmell

* specify container name & loop waiting pod creation

* sleep when pod is not initialized

---------

Co-authored-by: Jay Chung <zhongjiajie955@gmail.com>
2023-07-20 18:38:25 +08:00
Xinxing 1d0d85b988
[Feature] doris add datasource (#14391)
* Added doris data source plug-in

* Update DbType.java

* XML configuration

* doc and ui

* Missing catch of NumberFormatException

* code format

---------

Co-authored-by: xiangzihao <460888207@qq.com>
2023-07-20 17:15:22 +08:00
xiangzihao 311a715123
increase container healthcheck timeout (#14599) 2023-07-20 15:42:04 +08:00
kezhenxu94 68e8b352d3
Disable dependabot pull requests (#14596) 2023-07-20 14:00:09 +08:00
Kerwin 9664bef933
Fix wrong judgment condition when building parameters of seatunnel task node. (#14594) 2023-07-20 12:26:10 +08:00
Jay Chung de2d215aee
impv: Correct datax execute and python execute script name (#14523)
* impv: Correct datax execute and python execute script name

we use PYTHON_LAUNCHER for python script execute and
DATAX_LAUNCHER for datax script name

* Add pr number

* fix ut

* style

---------

Co-authored-by: xiangzihao <460888207@qq.com>
2023-07-20 09:13:55 +08:00
Wenjun Ruan 8505f1878d
Expose swagger.properties to release (#14590) 2023-07-19 22:24:42 +08:00
calvin 50386d622c
worked out the issue (#14588) 2023-07-19 18:46:46 +08:00
Orange Summer af2986eca1
[Feature-14545][Master][UI]Cross workflow parameter passing (#14552)
* feat: cross-workflow parameter passing

* refactor: remove useless parameters

* refactor: remove useless code

* refactor: code format

* docs: update docs

* docs: docs format

* more effective information

Co-authored-by: xiangzihao <zihaoxiang@apache.org>

* more effective information

Co-authored-by: xiangzihao <zihaoxiang@apache.org>

* fix: wrong writing of log code

* fix: perfect error log

---------

Co-authored-by: xiangzihao <zihaoxiang@apache.org>
Co-authored-by: xiangzihao <460888207@qq.com>
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
Co-authored-by: Jay Chung <zhongjiajie955@gmail.com>
2023-07-19 18:00:44 +08:00
Wenjun Ruan 93c3871925
Support parse ipv6 (#14584) 2023-07-19 17:25:58 +08:00
calvin 20cf4ad4e6
[Feature-14505][UI] Support to set project-level preferences (#14573)
* add a few codes about the project preferences
2023-07-19 15:35:54 +08:00
Wenjun Ruan c30cca9d9a
Support execute shell in different interceptor (#14582) 2023-07-19 14:50:04 +08:00
Gallardot 804b715643
[Bug][dolphinscheduler-api]validated for duplicate username when creating or registering a user (#14577)
* [Bug][dolphinscheduler-api]validated for duplicate username when creating or registering a user

Signed-off-by: Gallardot <gallardot@apache.org>

* [Bug][dolphinscheduler-api]validated for duplicate username when creating or registering a user

Signed-off-by: Gallardot <gallardot@apache.org>

---------

Signed-off-by: Gallardot <gallardot@apache.org>
Co-authored-by: xiangzihao <460888207@qq.com>
Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2023-07-19 12:58:00 +08:00
Rick Cheng 9778652f17
[Improvement-14136][task] Support submitting spark-sql task with the sql file in resource center (#14527)
Co-authored-by: xiangzihao <460888207@qq.com>
2023-07-19 10:09:30 +08:00
xiangzihao 758d5af023
[Dependency] Bump h2, snowflake-jdbc, snappy-java version (#14575)
* bump some dependency version
2023-07-19 09:31:50 +08:00
Wenjun Ruan 399d0d0ce9
Add log for NetUtils (#14578) 2023-07-18 21:17:17 +08:00
arlendp c0d776381c
[Fix-14531][UI] Tooltip of Chart not show text in light theme mode (#14532)
Co-authored-by: xiangzihao <460888207@qq.com>
Co-authored-by: Rick Cheng <rickchengx@gmail.com>
Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2023-07-18 17:56:36 +08:00
hoey 1ba0aecc71
[Bug][api] An error occurred while trying to access the Postgres database (#14574)
Signed-off-by: hoey94 <cnnqjban521@gmail.com>
2023-07-18 17:22:27 +08:00
Gallardot 9d10de6efa
[Improvement][Task] Mask configYaml in task log (#14571)
* [Improvement][Task] Mask configYaml in task log

Signed-off-by: Gallardot <gallardot@apache.org>
---------

Signed-off-by: Gallardot <gallardot@apache.org>
Co-authored-by: Aaron Wang <wangweirao16@gmail.com>
2023-07-18 15:02:20 +08:00
Rick Cheng 5a6f1c88a3
[Fix-14503][Worker] Fix the problem of subprocess cannot be killed (#14504)
Co-authored-by: xiangzihao <460888207@qq.com>
2023-07-17 21:43:34 +08:00
xiangzihao 6af361a7d6
[CI] Try to fix flaky CI (#14568)
* increase zk timeout in ci

* increase await timeout in WorkflowE2ETest
2023-07-17 19:02:55 +08:00
Gallardot f5be784044
[Feature][K8S] add prometheus serviceMonitor (#14539)
Signed-off-by: Gallardot <gallardot@apache.org>
Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2023-07-17 16:01:05 +08:00
FlechazoW 027d66d200
[Typo] standardized license header. (#14548)
Co-authored-by: wentz <wentz@getui.com>
Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2023-07-17 13:56:23 +08:00
Wenjun Ruan e6d94632b9
Add WorkflowExecuteContext (#14544) 2023-07-14 18:40:01 +08:00
旺阳 c812bf9d49
[Bug] [Mater] Not got latest task intance by task code (#14529)
* add task code->instance map

---------

Co-authored-by: Eric Gao <ericgao.apache@gmail.com>
2023-07-14 14:51:39 +08:00
Eric Gao 8020c1539c
[Improvement][API Test] Add api tests for process instance (#14514)
* Add test cases for process instance apis

---------

Co-authored-by: xiangzihao <460888207@qq.com>
2023-07-14 11:07:41 +08:00
Jay Chung b5d88f2a6f
fix terrafrom config bug (#14362) 2023-07-14 09:52:16 +08:00
Eric Gao 06b6ea81cf
[Bug][Core] Fix query process instances by trigger code bug (#14528)
* Fix query process instances by trigger code bug

* Add comment
2023-07-13 16:56:04 +08:00
lutongzero 484f8419c4
[FIX-14299][api]: check schedule exists (#14430)
* fix: check schedule exists

* put error message in result

---------

Co-authored-by: lutong <lutongtong211027@credithc.com>
2023-07-13 16:21:07 +08:00
Rick Cheng 09afa75a3d
[Improvement][Worker] No need to kill remote app when appid is empty (#14534) 2023-07-13 15:40:58 +08:00
Jay Chung dd9c8af051
ci: Require up to date before merging (#14530)
closed #14412
2023-07-13 14:30:28 +08:00
Rick Cheng c1cffba349
[Improvement] Remove the unused newDaemonSingleThreadExecutor (#14520) 2023-07-12 21:03:41 +08:00
Eric Gao 3e3e859c7f
[Improvement][API-Test] Add api tests for executor controller (#14500)
* Add api tests for executor apis
2023-07-12 13:48:07 +08:00
zyfjrx 4111acb58e
[Bug] [Seatunnel-Task] Run Mode defaults to run, and you cannot select a null value (#14267)
Co-authored-by: zhang <zhangyfcoder@163.com>
2023-07-12 09:06:19 +08:00
旺阳 175d976cd2
[Feature][Data Quality] Data Quality Support Choose Database (#14406)
* add dataquality database api

* change ui

* api change

* update

* fix spotless

* fix h2

* fix pg

* fix-dead-line

* update

* fix-spotless

* update pg sql

* add ut

* fix ut
2023-07-12 09:00:28 +08:00
eye-gu b72077011b
[Fix-13987][bom] set 3.17.2 version protobuf-java (#13998)
Co-authored-by: eye <eye.gu@aloudata.com>
2023-07-11 21:54:24 +08:00
Rick Cheng 29a9888167
[Improvement-12700][Project]Improve the sql of listAuthorizedProjects (#12702) 2023-07-11 20:12:16 +08:00
calvin c3c2dda861
[Improvement-14387][UI] Support to reset user's password. (#14498) 2023-07-11 12:01:49 +08:00
Wenjun Ruan 0246327083
Polish config, expose rpc config in application.yml (#14501) 2023-07-11 09:29:31 +08:00
Wenjun Ruan 406aeaf659
Use jvm_args_env.sh to set JVM args (#14487) 2023-07-10 17:39:57 +08:00
Eric Gao 0d2ea3e27b
Fix worker failover service comment (#14494) 2023-07-10 15:54:06 +08:00
jegger 75d29f6101
[improvement] DataQuality module improve (#14463) 2023-07-10 13:38:09 +08:00
calvin cb0866ca9b
[Fix-14488][UI] When creating a tenant add the strong validation of its tenant code. (#14492) 2023-07-10 13:33:58 +08:00
Rick Cheng 3de0b5a38c
[Feature-14339][Parameter] Add parameter combining of project-level parameters (#14452) 2023-07-10 10:17:46 +08:00
calvin 92d2b8e33f
[Improvement-14456][UI] When making the process online the system should remind user to take care of its offline timing. (#14460) 2023-07-10 08:46:39 +08:00
ahuljh a1bf597d0a
[document]Modify the inconsistencies of grammar and wording in README_zh_CN.md (#14471)
* Modify the inconsistencies of grammar and wording in README.md

* Update README_zh_CN.md

---------

Co-authored-by: David Zollo <davidzollo365@gmail.com>
2023-07-07 18:48:54 +08:00
Eric Gao d6735e8ecc
[Improvement][API] Fix some nits in apis (#14481)
* Fix some nits in apis
2023-07-07 18:19:01 +08:00
Eric Gao 7973324229
Add api test cases for scheduler page (#14480) 2023-07-07 15:34:54 +08:00
Aaron Wang 0b69236b04
[Feature-14251][Task] Support yarn queue definition in yarn task (#14310) 2023-07-07 14:24:47 +08:00
fuchanghai 742a2dc780
[Fix-14447][K8S Task] Fix IndexOutofBoundsException for pod name without dash (#14448) 2023-07-07 12:53:16 +08:00
He Wang 107643dba8
Support to use OceanBase like MySQL as metadata database (#13662)
* modify the order of creating tables

* use temp variable to set 'sql_mode'

* Revert "modify the order of creating tables"

This reverts commit 6f3534e928.
2023-07-07 10:36:44 +08:00
Rick Cheng cff53feaeb
[Improvement-14464][Task] Remove the useless taskResultString (#14465) 2023-07-06 17:31:33 +08:00
kezhenxu94 61ec5e33b1
Remove code owner (#14461) 2023-07-06 15:00:39 +08:00
Eric Gao d4c523830d
[Improvement][API Test] Add API test cases for process definition controller (#14300)
* add api tests for process definition controller
2023-07-06 13:17:13 +08:00
Rick Cheng 68a3a75211
[Improvement-14457][UT] Improve the expected and actual value of Assertions (#14459) 2023-07-06 13:12:48 +08:00
旺阳 d38d504332
[Fix] Fix running task instance throught api gots failed (#14433)
* update logic

* split method
2023-07-06 11:38:26 +08:00
calvin 76b1eefb68
[Feature-14321][API] Support to complement data in descending or ascending order of date (#14450) 2023-07-05 14:35:18 +08:00
Aaron Wang 65b6a4b097
[Feature-14421][K8S Task] Configurable image pull policy (#14426) 2023-07-05 09:17:47 +08:00
ligen d8cf0f8b85
fix issue#14441 (#14441) (#14444)
alert-plugin-instances api, if no alert-plugin-instances, it will response an empty list, but not null

Co-authored-by: ligen60 <ligen60@jd.com>
2023-07-04 16:20:14 +08:00
Rick Cheng 9cbb2629d9
[Improvement-14442][UI] Uniformly set the label name of parameter (#14443) 2023-07-04 14:09:30 +08:00
Rick Cheng 13dfa859b5
[Improvement-14371][Hivecli] Add support for hivevar setting in hivecli task (#14423) 2023-07-04 14:02:23 +08:00
Gavin Hawk dec066f8ce
修复Issue-14397:由于导入的工作流没有设置taskExecuteType导致在任务定义页面中无法展示出来,地址:https://github.com/apache/dolphinscheduler/issues/14397 (#14398)
Co-authored-by: huangjp@zetyun.com <huangjp@zetyun.com>
2023-07-04 10:47:15 +08:00
yeahhhz 0880549440
[Improvement-14318][UI] migrate version 2.x workflow definition d3 tree view to version 3.x (#14382)
* [Improvement][UI] migrate version 2.x workflow definition d3 tree view to version 3.x

* remove unnessnary code

* fix code smells

* update lock file to fix front-end CI Build error

* update package.json
2023-07-04 10:33:27 +08:00
calvin babb8d9d85
worked out this issue (#14438) 2023-07-03 20:50:42 +08:00
Jay Chung 0f190ae3da
chore: Add new step skip for ui build and spotless (#14427) 2023-07-03 20:41:12 +08:00
QuakeWang 8f3d354c3c
fix issue#14375 (#14435)
add sqoop config in website
2023-07-03 20:36:45 +08:00
旺阳 f186cd5dab
[Feature][Api] LDAP SSL supports&& Add LDAP K8s configuration (#14349) 2023-06-29 16:14:37 +08:00
Eric Gao 3c04d5c4fa
[Bug][Doc] Fix dead link in api test docs (#14419) 2023-06-28 14:22:38 +08:00
zhangkuantian 6f90156577
oss avoid listBuckets permission in bucket check (#14414)
---------

Co-authored-by: kuantian.zhang <kuantian.zhang@inceptio.ai>
2023-06-28 14:21:17 +08:00
Aaron Wang bcd1df19b8
[Improvement-14393][Resource Center] Remove deprecated resource description in api and UI page (#14394) 2023-06-28 14:13:20 +08:00
c3Vu 50195c46aa
[Improvement-11913] Mask password when creating/editing alert instances (#14415)
* [Improvement-11913] Mask password when creating/editing alert instances
2023-06-28 14:10:51 +08:00
IT-Kwj 7a24be0672
[Feature-14404][datasource-plugin] add HANA datasource (#14404)
---------

Co-authored-by: WeiJian Kong <>
Co-authored-by: xujiaqiang <Xjq634828243>
2023-06-28 10:56:41 +08:00
Aaron Wang 8a2c05f1ed
[Improvement][UI] Description input box can not input blank (#14396) 2023-06-28 09:15:31 +08:00
Rick Cheng 5250b253eb
[Improvement-14311][Permission]Remove duplicate checkProjectAndAuth (#14313) 2023-06-27 14:01:37 +08:00
Jay Chung 221df4a278
revert: Datasource need test binding to create prod (#14381)
We should keep our step as less as possible, for now, we have to
test datasource and binding it to the prod datasource, I think it will
make our users do not thing to use datasource, so I do like to revert
it and keep step as less as possible

related to https://github.com/apache/dolphinscheduler/pull/11670
2023-06-27 10:59:17 +08:00
Rick Cheng 79b6db74fe
[Improvement-14363][UI] Add Default Branch Flow in switch task (#14364) 2023-06-27 10:29:03 +08:00
Eric Gao 323129febb
[Improvement][API-Test] Add api tests for project page (#14402)
* add initial api tests for process definition controller

* Update

* Add test cases for project page

* Remove unrelated stuff

* Remove useless imports

* Add project api test case to github workflow matrix
2023-06-27 10:00:11 +08:00
xiangzihao 091d869d66
[CI] [Test] Try to fix jar conficts (#14407)
* try to fix jar conficts
2023-06-26 22:51:51 +08:00
Jeremy 9c92b4b240
fix: default datax plugin (#14204) 2023-06-25 16:18:38 +08:00
旺阳 a7b8e071b5
[Improvement][Registry][Jdbc] Add option can use ds database directly (#14369) 2023-06-24 22:10:58 +08:00
Aaron Wang 64e5741063
[Bug-14378][Master] Trigger task execution in workflow instance page cause workflow instance keep running status (#14389) 2023-06-24 22:10:14 +08:00
kami 5cbe170e43
[Bug] [Master] Fix complementListDate will throw IndexOutOfBoundsException (#14361) 2023-06-19 23:23:05 +08:00
pppppjcc 906353bbaf
feat: dynamic-dag-sidebar-change (#14244) 2023-06-19 14:28:53 +08:00
pppppjcc f840b17cfb
[Fix-14171] Add dynamic font sizes to dashboards (#14260)
* feat: Add dynamic font sizes to dashboards

* feat: code review

* feat: change initChart params

* feat: code review

* feat: code review

* feat: build fix
2023-06-15 15:48:29 +08:00
旺阳 c1a6790514
[Alert] [HTTP Plugin] Lose HTTP port (#14341) 2023-06-14 17:38:58 +08:00
Rick Cheng b49b91c45d
[Improvement-14331][common] Remove the duplicate ParameterUtils (#14332) 2023-06-14 15:00:54 +08:00
旺阳 1c0dfbb044
[Improvement][Etcd] Support SSL In Etcd And Enhance Etcd In Helm (#13924) 2023-06-14 13:29:50 +08:00
旺阳 465e7ae6ee
[Bug] [Master] Workflow keep running when task has no id (#14315)
* change completeTaskMap to completeTaskSet

* Update dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/WorkflowExecuteRunnable.java

Co-authored-by: Wenjun Ruan <wenjun@apache.org>

* change method name

* fix ut

* fix spotless

---------

Co-authored-by: Wenjun Ruan <wenjun@apache.org>
2023-06-14 12:53:16 +08:00
calvin d4921fa2dd
[Feature][UI] Support CRUD of project-level parameters. (#14344) 2023-06-13 18:54:41 +08:00
Wenjun Ruan a55612e4f7
Fix switch task use boolean type error (#14326) 2023-06-13 13:26:05 +08:00
xuankun zheng 61118d4467
[fix-14123] remove the equals and hashcode in Project pojo (#14167)
* [fix] remove the equals and hashcode in Project pojo

* [fix]fix the Strict Problem in Mockito by using `doReturn()` instead of `when()` functionw

---------

Co-authored-by: xuankun zheng <zhxuankun@gmail.com>
2023-06-13 11:19:04 +08:00
Rick Cheng 1cd5070b5d
[Improvement-14329][common] Remove the duplicate BusinessTimeUtils (#14330) 2023-06-13 08:30:34 +08:00
Kerwin 75f4fa2881
Fix the complement function does not generate the next running instances in parallel mode (#14335) 2023-06-12 19:40:26 +08:00
Rick Cheng 1c935d901e
[Feature-14214][Parameter] Support CRUD of project-level parameters (#14264) 2023-06-12 13:35:38 +08:00
Rick Cheng 4fa0ab4d7e
[feature][Resource] Add support for Azure Blob Storage in the resource center (#14082) 2023-06-12 12:05:49 +08:00
ORuteMa de2cc0e235
[bug][plugin]Fix: Correct the way to determine the yarn queue in Flink CommandLine and SQL mode (#14237)
* Fix: Correct the way to determine the yarn queue in Flink CommandLine

* fix the yarn queue in sql mode && refine the code

* refine code

* remove unnecessary comment

* fix yarn queue properties

* remove redundant variable
2023-06-12 11:04:39 +08:00
Wenjun Ruan aa2d9a7f05
Add baseDao (#14316) 2023-06-09 19:02:50 +08:00
Aaron Wang b7fb393eed
fix: trim node selector requirement value (#14307) 2023-06-09 18:06:52 +08:00
Rick Cheng 66e09dc66e
[Improvement-14295][common] Remove the duplicate FileUtils (#14301) 2023-06-08 08:59:53 +08:00
JieguangZhou e7cdc7c136
[Feature][Task Plugin] Add Dynamic task to generate dynamic worklfows with list parameters (#14127)
* add dynamic task plugin

* fix ui

* update code

* add DOC

* ADD UT

* fix doc

* fix sanity check

* add upgrade ddl
* fix sql
2023-06-07 16:01:06 +08:00
Rick Cheng 525e441223
[Improvement-14282][Task] Add app_link on the ui of task instance (#14283) 2023-06-07 15:00:12 +08:00
Rick Cheng 2c057d6a8f
[Improvement-14292][Common] Remove the duplicate OSUtils (#14293) 2023-06-07 14:59:25 +08:00
jackfanwan 6b1a952c6b
add if judge (#14290) 2023-06-07 14:57:48 +08:00
Rick Cheng 929811760a
[Fix-14284][DAO] update the check of Integer in equals() (#14285) 2023-06-07 12:08:48 +08:00
Rick Cheng ed8ae9c0ee
[Improvement-14286][BOM] Bump clickhouse-jdbc from 0.3.2-patch11 to 0.4.6 (#14287) 2023-06-07 12:08:23 +08:00
Rick Cheng 4d798e774e
[Improvement-14280][Task] update the task execution status check (#14281) 2023-06-06 15:25:57 +08:00
HQFGit d587b5f03d
[Bug][Master][Fixes 14216]workflow state keep READY_STOP when sub_process state … (#14221)
* [Bug] [Master] workflow state keep READY_STOP when sub_process state STOP
Fixes #14216

* [Bug] [Master] workflow state keep READY_STOP when sub_process state STOP
Fixes  mvn spotless:apply#14216

* Update testFile.txt.crc

* Update testFile.txt.crc

* Delete testFile.txt.crc
2023-06-06 11:04:32 +08:00
lgcareer fdb8fde776
[NOTICE]Update the NOTICE year (#14272)
Co-authored-by: lgcareer <lgcareer@apache.org>
2023-06-06 10:25:33 +08:00
Jay Chung dd55de4429
chore: Remove EOL issue version and add prepare one (#14270)
* due to we release the last version of 2.0.x and 3.0.x, we do not
  accept bug report for them now.
* Add new version 3.2.0-prepare for testing the incoming verison
  3.2.0-prepare
2023-06-04 17:12:40 +08:00
Devosend 85b581b232
fix resource center upload file timeout bug (#14268) 2023-06-02 21:15:13 +08:00
Zinway 18d176c5f4
feat: Introduce new datasource vertica (#14232)
Co-authored-by: Zinway Liu <zinway.liu@ucloud.cn>
2023-06-02 13:57:37 +08:00
Rick Cheng 767331281a
[Improvement-14255][Project] Remove userName when update project (#14256) 2023-06-02 09:58:22 +08:00
Eric Gao e86630bb7b
[Improvement][Metrics] Add more worker related metrics and fix some previous ones (#14254)
* Add more worker related metrics and fix some previous ones

* update metrics docs
2023-06-01 16:54:48 +08:00
alexBaiJW d67fe52c33
Fix the perm setting for the process definition import function (#14239)
* Fix the perm setting for the process definition import function

* fix the style issue
2023-06-01 15:59:02 +08:00
Rick Cheng 8aec3846b4
[Improvement-14243][Metrics] Add user tag of response time of api server (#14248) 2023-06-01 15:13:28 +08:00
Wenjun Ruan 5e9f1de075
Remove state check for dependent/subProcess in StateWheelExecuteThread (#14242) 2023-05-31 16:39:12 +08:00
Jay Chung 7226edd04e
chore: Release version 3.0.6 (#14234) 2023-05-30 10:36:58 +08:00
2744 changed files with 94063 additions and 60477 deletions

View File

@ -30,6 +30,7 @@ github:
- workflow-schedule
- powerful-data-pipelines
- data-pipelines
dependabot_updates: false
enabled_merge_buttons:
squash: true
merge: false
@ -37,12 +38,16 @@ github:
protected_branches:
dev:
required_status_checks:
# strict means "Require branches to be up to date before merging".
strict: true
contexts:
- Build
- Unit Test
- E2E
- Docs
- Frontend Build
- "Mergeable: milestone-label-check"
- "Title Validator"
required_pull_request_reviews:
dismiss_stale_reviews: true
required_approving_review_count: 1
required_approving_review_count: 2

54
.github/CODEOWNERS vendored
View File

@ -15,34 +15,40 @@
# limitations under the License.
#
/.github/ @kezhenxu94 @SbloodyS
/deploy/ @kezhenxu94 @caishunfeng
/dolphinscheduler-alert/ @kezhenxu94 @caishunfeng
/dolphinscheduler-e2e/ @kezhenxu94 @SbloodyS
/dolphinscheduler-api-test/ @SbloodyS
/dolphinscheduler-registry/ @kezhenxu94 @caishunfeng @ruanwenjun
/.github/ @SbloodyS
/deploy/ @SbloodyS
/dolphinscheduler-alert/ @SbloodyS
/dolphinscheduler-api/ @caishunfeng @SbloodyS
/dolphinscheduler-dao/ @caishunfeng @SbloodyS
/dolphinscheduler-dao/src/main/resources/sql/ @zhongjiajie
/dolphinscheduler-common/ @caishunfeng
/dolphinscheduler-standalone-server/ @kezhenxu94 @caishunfeng
/dolphinscheduler-datasource-plugin/ @caishunfeng
/dolphinscheduler-dist/ @kezhenxu94 @caishunfeng
/dolphinscheduler-meter/ @caishunfeng @kezhenxu94 @ruanwenjun @EricGao888
/dolphinscheduler-scheduler-plugin/ @caishunfeng
/dolphinscheduler-api-test/ @SbloodyS
/dolphinscheduler-authentication/ @ruanwenjun
/dolphinscheduler-bom/ @ruanwenjun
/dolphinscheduler-common/ @SbloodyS
/dolphinscheduler-dao/ @SbloodyS @ruanwenjun
/dolphinscheduler-dao-plugin/ @SbloodyS @ruanwenjun
/dolphinscheduler-data-quality/ @SbloodyS
/dolphinscheduler-datasource-plugin/ @SbloodyS
/dolphinscheduler-dist/ @SbloodyS
/dolphinscheduler-e2e/ @SbloodyS
/dolphinscheduler-extract/ @ruanwenjun
/dolphinscheduler-master/ @caishunfeng @SbloodyS @ruanwenjun
/dolphinscheduler-worker/ @caishunfeng @SbloodyS @ruanwenjun
/dolphinscheduler-meter/ @ruanwenjun @EricGao888
/dolphinscheduler-microbench/ @SbloodyS @ruanwenjun
/dolphinscheduler-registry/ @ruanwenjun
/dolphinscheduler-scheduler-plugin/ @ruanwenjun
/dolphinscheduler-service/ @caishunfeng
/dolphinscheduler-remote/ @caishunfeng
/dolphinscheduler-spi/ @caishunfeng
/dolphinscheduler-standalone-server/ @SbloodyS
/dolphinscheduler-storage-plugin/ @ruanwenjun @SbloodyS
/dolphinscheduler-task-plugin/ @caishunfeng @SbloodyS @zhuangchong
/dolphinscheduler-tools/ @caishunfeng @SbloodyS @zhongjiajie @EricGao888
/script/ @caishunfeng @SbloodyS @zhongjiajie @EricGao888
/dolphinscheduler-tools/ @caishunfeng @SbloodyS @EricGao888
/dolphinscheduler-ui/ @songjianet @Amy0104
/docs/ @zhongjiajie @EricGao888
/licenses/ @kezhenxu94 @zhongjiajie
/images/ @zhongjiajie @EricGao888
/style/ @caishunfeng
/dolphinscheduler-worker/ @caishunfeng @SbloodyS @ruanwenjun
/dolphinscheduler-yarn-aop/ @ruanwenjun
# All pom files
pom.xml @kezhenxu94
/dolphinscheduler-dao/src/main/resources/sql/ @EricGao888
/script/ @SbloodyS @EricGao888
/docs/ @EricGao888 @SbloodyS
/licenses/ @EricGao888
/images/ @EricGao888
/style/ @SbloodyS @EricGao888

View File

@ -100,8 +100,7 @@ body:
options:
- dev
- 3.1.x
- 3.0.x
- 2.0.x
- 3.2.x
validations:
required: true

77
.github/ISSUE_TEMPLATE/dsip-request.yml vendored Normal file
View File

@ -0,0 +1,77 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
name: DSIP
description: Suggest an idea for this project
title: "[DSIP-][Module Name] DSIP title"
labels: [ "DSIP", "Waiting for reply" ]
body:
- type: markdown
attributes:
value: |
For better global communication, Please write in English.
If you feel the description in English is not clear, then you can append description in Chinese, thanks!
- type: checkboxes
attributes:
label: Search before asking
description: >
Please make sure to search in the [DSIP](https://github.com/apache/dolphinscheduler/issues/14102) first
to see whether the same DSIP was created already.
options:
- label: >
I had searched in the [DSIP](https://github.com/apache/dolphinscheduler/issues/14102) and found no
similar DSIP.
required: true
- type: textarea
attributes:
label: Motivation
description: Why you want to do this change?
- type: textarea
attributes:
label: Design Detail
description: Your design.
placeholder: >
It's better to provide a detailed design, such as the design of the interface, the design of the database, etc.
- type: textarea
attributes:
label: Compatibility, Deprecation, and Migration Plan
description: >
If this feature is related to compatibility, deprecation, or migration, please describe it here.
- type: textarea
attributes:
label: Test Plan
description: >
How to test this improvement.
- type: checkboxes
attributes:
label: Code of Conduct
description: |
The Code of Conduct helps create a safe space for everyone. We require that everyone agrees to it.
options:
- label: |
I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)
required: true
- type: markdown
attributes:
value: "Thanks for completing our form!"

View File

@ -31,4 +31,7 @@ This change added tests and can be verified as follows:
(or)
## Pull Request Notice
[Pull Request Notice](https://github.com/apache/dolphinscheduler/blob/dev/docs/docs/en/contribute/join/pull-request.md)
If your pull request contain incompatible change, you should also add it to `docs/docs/en/guide/upgrede/incompatible.md`

1
.github/actions/auto-assign-action vendored Submodule

@ -0,0 +1 @@
Subproject commit 288f36f8cea1dded676b9c4477a64ff91e50c104

View File

@ -0,0 +1,22 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Set addAssignees to 'author' to set the PR creator as the assignee.
addAssignees: author
# Enable it to run on drafts
runOnDraft: true

View File

@ -18,37 +18,54 @@
backend:
- 'dolphinscheduler-alert/**/*'
- 'dolphinscheduler-api/**/*'
- 'dolphinscheduler-authentication/**/*'
- 'dolphinscheduler-bom/**/*'
- 'dolphinscheduler-common/**/*'
- 'dolphinscheduler-dao/**/*'
- 'dolphinscheduler-dao-plugin/**/*'
- 'dolphinscheduler-data-quality/**/*'
- 'dolphinscheduler-datasource-plugin/**/*'
- 'dolphinscheduler-dist/**/*'
- 'dolphinscheduler-extract/**/*'
- 'dolphinscheduler-master/**/*'
- 'dolphinscheduler-meter/**/*'
- 'dolphinscheduler-microbench/**/*'
- 'dolphinscheduler-registry/**/*'
- 'dolphinscheduler-remote/**/*'
- 'dolphinscheduler-scheduler-plugin/**/*'
- 'dolphinscheduler-service/**/*'
- 'dolphinscheduler-spi/**/*'
- 'dolphinscheduler-standalone-server/**/*'
- 'dolphinscheduler-storage-plugin/**/*'
- 'dolphinscheduler-task-plugin/**/*'
- 'dolphinscheduler-tools/**/*'
- 'dolphinscheduler-worker/**/*'
- 'dolphinscheduler-yarn-aop/**/*'
- 'script/**/*'
- '.github/workflows/backend.yml'
document:
- 'docs/**/*'
- '**/*.md'
CI&CD:
- any: ['.github/**/*']
docker:
- any: ['.deploy/**/*']
- any: ['deploy/docker/**/*']
UI:
- any: ['dolphinscheduler-ui/**/*']
- any: ['.github/workflows/frontend.yml']
e2e:
- any: ['dolphinscheduler-e2e/**/*']
- any: ['dolphinscheduler-api-test/**/*']
- any: ['.github/workflows/e2e.yml']
- any: ['.github/workflows/api-test.yml']
- any: ['.github/workflows/e2e-k8s.yml']
test:
- any: ['dolphinscheduler-api-test/**/*']
- any: ['**/test/**/*']
kubernetes:
- any: ['deploy/kubernetes/**/*']

72
.github/boring-cyborg.yml vendored Normal file
View File

@ -0,0 +1,72 @@
################################################################################
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Details: https://github.com/apps/boring-cyborg
###### IssueLink Adder #################################################################################################
# Insert Issue (Jira/Github etc) link in PR description based on the Issue ID in PR title.
insertIssueLinkInPrDescription:
# specify the placeholder for the issue link that should be present in the description
descriptionIssuePlaceholderRegexp: "^fix: (.*)$"
matchers:
# you can have several matches - for different types of issues
# only the first matching entry is replaced
jiraIssueMatch:
# specify the regexp of issue id that you can find in the title of the PR
# the match groups can be used to build the issue id (${1}, ${2}, etc.).
titleIssueIdRegexp: \[(Feature|Fix|Improvement|Test|E2E|Doc-[0-9]+)\]
# the issue link to be added. ${1}, ${2} ... are replaced with the match groups from the
# title match (remember to use quotes)
descriptionIssueLink: "[${1}](https://github.com/apache/dolphinschedule/${1}/)"
###### Title Validator #################################################################################################
# Verifies if commit/PR titles match the regexp specified
verifyTitles:
# Regular expression that should be matched by titles of commits or PR
titleRegexp: ^\[DSIP-[0-9]+\].*$|^\[Feature-[0-9]+\].*$|^\[Fix-[0-9]+\].*$|^\[Doc-[0-9]+\].*$|^\[Improvement-[0-9]+\].*$|^\[Test-[0-9]+\].*$|^\[E2E-[0-9]+\].*$|^\[CI].*$|^\[Chore].*$
# If set to true, it will always check the PR title (as opposed to the individual commits).
alwaysUsePrTitle: true
# If set to true, it will only check the commit in case there is a single commit.
# In case of multiple commits it will check PR title.
# This reflects the standard behaviour of Github that for `Squash & Merge` GitHub
# uses the PR title rather than commit messages for the squashed commit ¯\_(ツ)_/¯
# For single-commit PRs it takes the squashed commit message from the commit as expected.
#
# If set to false it will check all commit messages. This is useful when you do not squash commits at merge.
validateEitherPrOrSingleCommitTitle: true
# The title the GitHub status should appear from.
statusTitle: "Title Validator"
# A custom message to be displayed when the title passes validation.
successMessage: "Title Validation successful!"
# A custom message to be displayed when the title fails validation.
# Allows insertion of ${type} (commit/PR), ${title} (the title validated) and ${regex} (the titleRegexp above).
failureMessage: "Wrong ${type} title: ${title}"
# Various Flags to control behaviour of the "Labeler"
labelerFlags:
# If this flag is changed to 'false', labels would only be added when the PR is first created
# and not when existing PR is updated.
# The default is 'true' which means the labels would be added when PR is updated even if they
# were removed by the user
labelOnPRUpdates: true
# Comment to be posted to welcome users when they open their first PR
firstPRWelcomeComment: >
Thanks for opening this pull request! Please check out our contributing guidelines. (https://github.com/apache/dolphinscheduler/blob/dev/docs/docs/en/contribute/join/pull-request.md)
# Comment to be posted to congratulate user on their first merged PR
firstPRMergeComment: >
Awesome work, congrats on your first merged pull request!

62
.github/mergeable.yml vendored
View File

@ -1,62 +0,0 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
---
version: 2
mergeable:
# we can not use `pull_request.*` which including event `pull_request.labeled`, according to https://github.com/mergeability/mergeable/issues/643,
# otherwise mergeable will keep add or remove label endless, we just need this CI act like the default behavior as
# GitHub action workflow `pull_requests` https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request like,
# which only trigger runs when a pull_request event's activity type is opened, synchronize, or reopened
- when: pull_request.opened, pull_request.reopened, pull_request.synchronize
name: sync-sql-ddl
validate:
# Sql files must change synchronize
- do: dependent
files:
- 'dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_h2.sql'
- 'dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_mysql.sql'
- 'dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_postgresql.sql'
message: 'Sql files not change synchronize'
# Add labels 'sql not sync' and comment to reviewers if Sql files not change synchronize
fail:
- do: comment
payload:
body: >
:warning: This PR do not change database DDL synchronize.
leave_old_comment: false
- do: labels
add: 'sql not sync'
# Remove labels 'sql not sync' if pass
pass:
- do: labels
delete: 'sql not sync'
- when: pull_request.*
name: milestone-label-check
validate:
- do: milestone
no_empty:
enabled: false # Cannot be empty when true.
message: 'Milestone is required and cannot be empty.'
- do: label
and:
- must_include:
regex: 'feature|bug|improvement|document|chore'
message: 'Label must include one of the following: `feature`, `bug`, `improvement`, `document`, `chore`'
- must_include:
regex: '\d+\.\d+\.\w+'
message: 'Label must include one or more version numbers.'

View File

@ -20,6 +20,8 @@ on:
push:
branches:
- dev
- '[0-9]+.[0-9]+.[0-9]+-prepare'
- '[0-9]+.[0-9]+.[0-9]+-release'
name: API-Test
@ -35,7 +37,7 @@ jobs:
outputs:
not-ignore: ${{ steps.filter.outputs.not-ignore }}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- uses: dorny/paths-filter@b2feaf19c27470162a626bd6fa8438ae5b263721
id: filter
with:
@ -49,7 +51,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: true
- name: Sanity Check
@ -60,21 +62,20 @@ jobs:
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-api-test
restore-keys: ${{ runner.os }}-maven-
- name: Build Image
run: |
./mvnw -B clean install \
-Dmaven.test.skip \
-Dmaven.javadoc.skip \
-Dcheckstyle.skip=true \
-Pdocker,release -Ddocker.tag=ci \
-pl dolphinscheduler-standalone-server -am
-Dspotless.skip=true \
-Pdocker,release -Ddocker.tag=ci
- name: Export Docker Images
run: |
docker save apache/dolphinscheduler-standalone-server:ci -o /tmp/standalone-image.tar \
&& du -sh /tmp/standalone-image.tar
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v4
name: Upload Docker Images
with:
name: standalone-image
@ -92,19 +93,29 @@ jobs:
class: org.apache.dolphinscheduler.api.test.cases.TenantAPITest
- name: WorkerGroup
class: org.apache.dolphinscheduler.api.test.cases.WorkerGroupAPITest
- name: Project
class: org.apache.dolphinscheduler.api.test.cases.ProjectAPITest
- name: Workflow
class: org.apache.dolphinscheduler.api.test.cases.ProcessDefinitionAPITest
- name: Scheduler
class: org.apache.dolphinscheduler.api.test.cases.SchedulerAPITest
- name: Executor
class: org.apache.dolphinscheduler.api.test.cases.ExecutorAPITest
- name: ProcessInstance
class: org.apache.dolphinscheduler.api.test.cases.ProcessInstanceAPITest
env:
RECORDING_PATH: /tmp/recording-${{ matrix.case.name }}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: true
- name: Cache local Maven repository
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-api-test
restore-keys: ${{ runner.os }}-maven-
- uses: actions/download-artifact@v2
- uses: actions/download-artifact@v4
name: Download Docker Images
with:
name: standalone-image
@ -116,9 +127,9 @@ jobs:
run: |
./mvnw -B -f dolphinscheduler-api-test/pom.xml -am \
-DfailIfNoTests=false \
-Dcheckstyle.skip=false \
-Dspotless.skip=true \
-Dtest=${{ matrix.case.class }} test
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v4
if: always()
name: Upload Recording
with:

View File

@ -42,14 +42,17 @@ jobs:
runs-on: ubuntu-latest
outputs:
not-ignore: ${{ steps.filter.outputs.not-ignore }}
db-schema: ${{ steps.filter.outputs.db-schema }}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- uses: dorny/paths-filter@b2feaf19c27470162a626bd6fa8438ae5b263721
id: filter
with:
filters: |
not-ignore:
- '!(docs/**)'
db-schema:
- 'dolphinscheduler-dao/src/main/resources/sql/**'
build:
name: Backend-Build
needs: paths-filter
@ -60,7 +63,7 @@ jobs:
java: [ '8', '11' ]
timeout-minutes: 30
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: true
- name: Set up JDK ${{ matrix.java }}
@ -75,19 +78,20 @@ jobs:
- uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-backend
restore-keys: ${{ runner.os }}-maven-
- name: Build and Package on ${{ matrix.java }}
run: |
./mvnw -B clean install \
-Prelease,docker \
-Prelease \
-Dmaven.test.skip=true \
-Dcheckstyle.skip=true \
-Dspotless.skip=true \
-Dhttp.keepAlive=false \
-Dmaven.wagon.http.pool=false \
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
- name: Check dependency license
run: tools/dependencies/check-LICENSE.sh
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v4
if: ${{ matrix.java == '8' }}
name: Upload Binary Package
with:
@ -102,15 +106,19 @@ jobs:
strategy:
matrix:
case:
- name: cluster-test-mysql
script: .github/workflows/cluster-test/mysql/start-job.sh
- name: cluster-test-postgresql
script: .github/workflows/cluster-test/postgresql/start-job.sh
- name: cluster-test-mysql-with-zookeeper-registry
script: .github/workflows/cluster-test/mysql_with_zookeeper_registry/start-job.sh
- name: cluster-test-mysql-with-mysql-registry
script: .github/workflows/cluster-test/mysql_with_mysql_registry/start-job.sh
- name: cluster-test-postgresql-zookeeper-registry
script: .github/workflows/cluster-test/postgresql_with_zookeeper_registry/start-job.sh
- name: cluster-test-postgresql-with-postgresql-registry
script: .github/workflows/cluster-test/postgresql_with_postgresql_registry/start-job.sh
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: true
- uses: actions/download-artifact@v2
- uses: actions/download-artifact@v4
name: Download Binary Package
with:
# Only run cluster test on jdk8
@ -119,16 +127,147 @@ jobs:
- name: Running cluster test
run: |
/bin/bash ${{ matrix.case.script }}
schema-check:
runs-on: ubuntu-latest
if: ${{ (needs.paths-filter.outputs.db-schema == 'true') || (github.event_name == 'push') }}
timeout-minutes: 20
needs: build
services:
mysql:
image: mysql:5.7
env:
MYSQL_ROOT_PASSWORD: mysql
MYSQL_DATABASE: dolphinscheduler_dev
ports:
- 3306:3306
options: --name=mysql --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
postgres:
image: postgres:15
env:
POSTGRES_PASSWORD: postgres
POSTGRES_DB: dolphinscheduler_dev
ports:
- 5432:5432
options: --name=postgres --health-cmd=pg_isready --health-interval=10s --health-timeout=5s --health-retries=5
strategy:
fail-fast: false
matrix:
db: ["mysql", "postgresql"]
version: ["3.1.9", "3.2.0"]
steps:
- name: Set up JDK 8
uses: actions/setup-java@v2
with:
java-version: 8
distribution: 'adopt'
- name: Install Atlas and Create Dir
run: |
mkdir -p dolphinscheduler/dev dolphinscheduler/${{ matrix.version }}
curl -sSf https://atlasgo.sh | sh
- name: Download Tarball
uses: actions/download-artifact@v4
with:
name: binary-package-8
path: dolphinscheduler/dev
- name: Set Env
run: |
VERSION=${{ matrix.version }}
echo "DATABASE_VERSION=${VERSION//\./}" >> $GITHUB_ENV
- name: Prepare
run: |
wget https://archive.apache.org/dist/dolphinscheduler/${{ matrix.version }}/apache-dolphinscheduler-${{ matrix.version }}-bin.tar.gz -P dolphinscheduler/${{ matrix.version }}
tar -xzf dolphinscheduler/${{ matrix.version }}/apache-dolphinscheduler-${{ matrix.version }}-bin.tar.gz -C dolphinscheduler/${{ matrix.version }} --strip-components 1
tar -xzf dolphinscheduler/dev/apache-dolphinscheduler-*-bin.tar.gz -C dolphinscheduler/dev --strip-components 1
if [[ ${{ matrix.db }} == "mysql" ]]; then
MYSQL_JDBC_URL="https://repo.maven.apache.org/maven2/mysql/mysql-connector-java/8.0.16/mysql-connector-java-8.0.16.jar"
MYSQL_JDBC_JAR="mysql-connector-java-8.0.16.jar"
wget ${MYSQL_JDBC_URL} -O /tmp/${MYSQL_JDBC_JAR}
for base_dir in dolphinscheduler/dev dolphinscheduler/${{ matrix.version }}; do
if [[ $base_dir == *"dolphinscheduler/2"* ]]; then
cp /tmp/${MYSQL_JDBC_JAR} ${base_dir}/lib
else
for d in alert-server api-server master-server worker-server tools; do
cp /tmp/${MYSQL_JDBC_JAR} ${base_dir}/${d}/libs
done
fi
done
docker exec -i mysql mysql -uroot -pmysql -e "create database dolphinscheduler_${{ env.DATABASE_VERSION }}";
else
docker exec -i postgres psql -U postgres -c "create database dolphinscheduler_${{ env.DATABASE_VERSION }};"
fi
- name: Check
run: |
if [[ $DATABASE_VERSION -lt 300 ]]; then
chmod +x dolphinscheduler/dev/tools/bin/upgrade-schema.sh dolphinscheduler/${{ matrix.version }}/script/create-dolphinscheduler.sh
else
chmod +x dolphinscheduler/dev/tools/bin/upgrade-schema.sh dolphinscheduler/${{ matrix.version }}/tools/bin/upgrade-schema.sh
fi
if [[ ${{ matrix.db }} == "mysql" ]]; then
export DATABASE="mysql"
export SPRING_DATASOURCE_DRIVER_CLASS_NAME="com.mysql.cj.jdbc.Driver"
export SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/dolphinscheduler_dev?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false"
export SPRING_DATASOURCE_USERNAME="root"
export SPRING_DATASOURCE_PASSWORD="mysql"
bash dolphinscheduler/dev/tools/bin/upgrade-schema.sh
export SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/dolphinscheduler_${{ env.DATABASE_VERSION }}?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false"
if [[ $DATABASE_VERSION -lt 300 ]]; then
bash dolphinscheduler/${{ matrix.version }}/script/create-dolphinscheduler.sh
else
bash dolphinscheduler/${{ matrix.version }}/tools/bin/upgrade-schema.sh
fi
bash dolphinscheduler/dev/tools/bin/upgrade-schema.sh
atlas_result=$(atlas schema diff \
--from "mysql://root:mysql@127.0.0.1:3306/dolphinscheduler_${{ env.DATABASE_VERSION }}" \
--to "mysql://root:mysql@127.0.0.1:3306/dolphinscheduler_dev")
if [[ ${atlas_result} != *"Schemas are synced"* ]]; then
echo "================================================================================================"
echo " !!!!! For Contributors !!!!!"
echo "================================================================================================"
echo "Database schema not sync, please add below change in the latest version of dolphinscheduler-dao/src/main/resources/sql/upgrade directory"
echo "${atlas_result}"
exit 1
fi
else
export DATABASE="postgresql"
export SPRING_DATASOURCE_DRIVER_CLASS_NAME="org.postgresql.Driver"
export SPRING_DATASOURCE_URL="jdbc:postgresql://127.0.0.1:5432/dolphinscheduler_dev"
export SPRING_DATASOURCE_USERNAME="postgres"
export SPRING_DATASOURCE_PASSWORD="postgres"
bash dolphinscheduler/dev/tools/bin/upgrade-schema.sh
export SPRING_DATASOURCE_URL="jdbc:postgresql://127.0.0.1:5432/dolphinscheduler_${{ env.DATABASE_VERSION }}"
if [[ $DATABASE_VERSION -lt 300 ]]; then
bash dolphinscheduler/${{ matrix.version }}/script/create-dolphinscheduler.sh
else
bash dolphinscheduler/${{ matrix.version }}/tools/bin/upgrade-schema.sh
fi
bash dolphinscheduler/dev/tools/bin/upgrade-schema.sh
atlas_result=$(atlas schema diff \
--from "postgres://postgres:postgres@127.0.0.1:5432/dolphinscheduler_${{ env.DATABASE_VERSION }}?search_path=public&sslmode=disable" \
--to "postgres://postgres:postgres@127.0.0.1:5432/dolphinscheduler_dev?search_path=public&sslmode=disable")
if [[ ${atlas_result} != *"Schemas are synced"* ]]; then
echo "================================================================================================"
echo " !!!!! For Contributors !!!!!"
echo "================================================================================================"
echo "Database schema not sync, please add below change in the latest version in dolphinscheduler-dao/src/main/resources/sql/upgrade directory"
echo "${atlas_result}"
exit 1
fi
fi
result:
name: Build
runs-on: ubuntu-latest
timeout-minutes: 30
needs: [ build, paths-filter, cluster-test ]
needs: [ build, paths-filter, cluster-test, schema-check ]
if: always()
steps:
- name: Status
run: |
if [[ ${{ needs.paths-filter.outputs.not-ignore }} == 'false' && ${{ github.event_name }} == 'pull_request' ]]; then
if [[ ${{ needs.paths-filter.outputs.not-ignore }} == 'false' && ${{ needs.paths-filter.outputs.db-schema }} == 'false' && ${{ github.event_name }} == 'pull_request' ]]; then
echo "Skip Build!"
exit 0
fi

View File

@ -28,10 +28,10 @@ RUN mv /root/apache-dolphinscheduler-*-SNAPSHOT-bin /root/apache-dolphinschedule
ENV DOLPHINSCHEDULER_HOME /root/apache-dolphinscheduler-test-SNAPSHOT-bin
#Setting install.sh
COPY .github/workflows/cluster-test/mysql/install_env.sh $DOLPHINSCHEDULER_HOME/bin/env/install_env.sh
COPY .github/workflows/cluster-test/mysql_with_mysql_registry/install_env.sh $DOLPHINSCHEDULER_HOME/bin/env/install_env.sh
#Setting dolphinscheduler_env.sh
COPY .github/workflows/cluster-test/mysql/dolphinscheduler_env.sh $DOLPHINSCHEDULER_HOME/bin/env/dolphinscheduler_env.sh
COPY .github/workflows/cluster-test/mysql_with_mysql_registry/dolphinscheduler_env.sh $DOLPHINSCHEDULER_HOME/bin/env/dolphinscheduler_env.sh
#Download mysql jar
ENV MYSQL_URL "https://repo.maven.apache.org/maven2/mysql/mysql-connector-java/8.0.16/mysql-connector-java-8.0.16.jar"
@ -43,6 +43,6 @@ cp $DOLPHINSCHEDULER_HOME/alert-server/libs/$MYSQL_DRIVER $DOLPHINSCHEDULER_HOME
cp $DOLPHINSCHEDULER_HOME/alert-server/libs/$MYSQL_DRIVER $DOLPHINSCHEDULER_HOME/tools/libs/$MYSQL_DRIVER
#Deploy
COPY .github/workflows/cluster-test/mysql/deploy.sh /root/deploy.sh
COPY .github/workflows/cluster-test/mysql_with_mysql_registry/deploy.sh /root/deploy.sh
CMD [ "/bin/bash", "/root/deploy.sh" ]

View File

@ -0,0 +1,44 @@
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
set -euox pipefail
USER=root
#Create database
mysql -hmysql -P3306 -uroot -p123456 -e "CREATE DATABASE IF NOT EXISTS dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;"
#Sudo
sed -i '$a'$USER' ALL=(ALL) NOPASSWD: NOPASSWD: ALL' /etc/sudoers
sed -i 's/Defaults requirett/#Defaults requirett/g' /etc/sudoers
#SSH
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
service ssh start
#Init schema
/bin/bash $DOLPHINSCHEDULER_HOME/tools/bin/upgrade-schema.sh
/bin/bash $DOLPHINSCHEDULER_HOME/tools/bin/initialize-jdbc-registry.sh
#Start Cluster
/bin/bash $DOLPHINSCHEDULER_HOME/bin/start-all.sh
#Keep running
tail -f /dev/null

View File

@ -0,0 +1,34 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
version: "3"
services:
mysql:
container_name: mysql
image: mysql:5.7.36
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: 123456
ports:
- "3306:3306"
healthcheck:
test: mysqladmin ping -h 127.0.0.1 -u root --password=$$MYSQL_ROOT_PASSWORD
interval: 5s
timeout: 60s
retries: 120

View File

@ -0,0 +1,57 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# JAVA_HOME, will use it to start DolphinScheduler server
export JAVA_HOME=${JAVA_HOME:-/opt/java/openjdk}
# Database related configuration, set database type, username and password
export DATABASE=${DATABASE:-mysql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:mysql://mysql:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false"
export SPRING_DATASOURCE_USERNAME=root
export SPRING_DATASOURCE_PASSWORD=123456
# DolphinScheduler server related configuration
export SPRING_CACHE_TYPE=${SPRING_CACHE_TYPE:-none}
export SPRING_JACKSON_TIME_ZONE=${SPRING_JACKSON_TIME_ZONE:-UTC}
# Registry center configuration, determines the type and link of the registry center
export REGISTRY_TYPE=${REGISTRY_TYPE:-jdbc}
export REGISTRY_HIKARI_CONFIG_JDBC_URL="jdbc:mysql://mysql:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false"
export REGISTRY_HIKARI_CONFIG_USERNAME=root
export REGISTRY_HIKARI_CONFIG_PASSWORD=123456
# Tasks related configurations, need to change the configuration if you use the related tasks.
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark}
export PYTHON_LAUNCHER=${PYTHON_LAUNCHER:-/opt/soft/python/bin/python3}
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
export DATAX_LAUNCHER=${DATAX_LAUNCHER:-/opt/soft/datax/bin/datax.py}
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_LAUNCHER:$PATH
export MASTER_RESERVED_MEMORY=0.01
export WORKER_RESERVED_MEMORY=0.01
# applicationId auto collection related configuration, the following configurations are unnecessary if setting appId.collect=log
#export HADOOP_CLASSPATH=`hadoop classpath`:${DOLPHINSCHEDULER_HOME}/tools/libs/*
#export SPARK_DIST_CLASSPATH=$HADOOP_CLASSPATH:$SPARK_DIST_CLASS_PATH
#export HADOOP_CLIENT_OPTS="-javaagent:${DOLPHINSCHEDULER_HOME}/tools/libs/aspectjweaver-1.9.7.jar":$HADOOP_CLIENT_OPTS
#export SPARK_SUBMIT_OPTS="-javaagent:${DOLPHINSCHEDULER_HOME}/tools/libs/aspectjweaver-1.9.7.jar":$SPARK_SUBMIT_OPTS
#export FLINK_ENV_JAVA_OPTS="-javaagent:${DOLPHINSCHEDULER_HOME}/tools/libs/aspectjweaver-1.9.7.jar":$FLINK_ENV_JAVA_OPTS

View File

@ -22,7 +22,7 @@
# including master, worker, api, alert. If you want to deploy in pseudo-distributed
# mode, just write a pseudo-distributed hostname
# Example for hostnames: ips="ds1,ds2,ds3,ds4,ds5", Example for IPs: ips="192.168.8.1,192.168.8.2,192.168.8.3,192.168.8.4,192.168.8.5"
ips=${ips:-"ds1,ds2,ds3,ds4,ds5"}
ips=${ips:-"localhost"}
# Port of SSH protocol, default value is 22. For now we only support same port in all `ips` machine
# modify it if you use different ssh port
@ -31,33 +31,28 @@ sshPort=${sshPort:-"22"}
# A comma separated list of machine hostname or IP would be installed Master server, it
# must be a subset of configuration `ips`.
# Example for hostnames: masters="ds1,ds2", Example for IPs: masters="192.168.8.1,192.168.8.2"
masters=${masters:-"ds1,ds2"}
masters=${masters:-"localhost"}
# A comma separated list of machine <hostname>:<workerGroup> or <IP>:<workerGroup>.All hostname or IP must be a
# subset of configuration `ips`, And workerGroup have default value as `default`, but we recommend you declare behind the hosts
# Example for hostnames: workers="ds1:default,ds2:default,ds3:default", Example for IPs: workers="192.168.8.1:default,192.168.8.2:default,192.168.8.3:default"
workers=${workers:-"ds1:default,ds2:default,ds3:default,ds4:default,ds5:default"}
workers=${workers:-"localhost:default"}
# A comma separated list of machine hostname or IP would be installed Alert server, it
# must be a subset of configuration `ips`.
# Example for hostname: alertServer="ds3", Example for IP: alertServer="192.168.8.3"
alertServer=${alertServer:-"ds3"}
alertServer=${alertServer:-"localhost"}
# A comma separated list of machine hostname or IP would be installed API server, it
# must be a subset of configuration `ips`.
# Example for hostname: apiServers="ds1", Example for IP: apiServers="192.168.8.1"
apiServers=${apiServers:-"ds1"}
apiServers=${apiServers:-"localhost"}
# The directory to install DolphinScheduler for all machine we config above. It will automatically be created by `install.sh` script if not exists.
# Do not set this configuration same as the current path (pwd). Do not add quotes to it if you using related path.
installPath=${installPath:-"/tmp/dolphinscheduler"}
# Do not set this configuration same as the current path (pwd)
installPath=${installPath:-"/root/apache-dolphinscheduler-*-SNAPSHOT-bin"}
# The user to deploy DolphinScheduler for all machine we config above. For now user must create by yourself before running `install.sh`
# script. The user needs to have sudo privileges and permissions to operate hdfs. If hdfs is enabled than the root directory needs
# to be created by this user
deployUser=${deployUser:-"dolphinscheduler"}
# The root of zookeeper, for now DolphinScheduler default registry server is zookeeper.
# It will delete ${zkRoot} in the zookeeper when you run install.sh, so please keep it same as registry.zookeeper.namespace in yml files.
# Similarly, if you want to modify the value, please modify registry.zookeeper.namespace in yml files as well.
zkRoot=${zkRoot:-"/dolphinscheduler"}

View File

@ -24,7 +24,7 @@ WORKER_HEALTHCHECK_COMMAND="curl -I -m 10 -o /dev/null -s -w %{http_code} http:/
ALERT_HEALTHCHECK_COMMAND="curl -I -m 10 -o /dev/null -s -w %{http_code} http://0.0.0.0:50053/actuator/health"
#Cluster start health check
TIMEOUT=120
TIMEOUT=180
START_HEALTHCHECK_EXITCODE=0
for ((i=1; i<=TIMEOUT; i++))
@ -45,11 +45,28 @@ do
fi
if [[ $i -eq $TIMEOUT ]];then
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/master-server/logs/dolphinscheduler-master.log"
echo "cluster start health check failed"
if [[ $MASTER_HTTP_STATUS -ne 200 ]];then
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/master-server/logs/dolphinscheduler-master.log"
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/master-server/logs/*.out"
echo "master start health check failed"
fi
if [[ $WORKER_HTTP_STATUS -ne 200 ]]; then
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/worker-server/logs/dolphinscheduler-worker.log"
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/worker-server/logs/*.out"
echo "worker start health check failed"
fi
if [[ $API_HTTP_STATUS -ne 200 ]]; then
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/api-server/logs/dolphinscheduler-api.log"
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/api-server/logs/*.out"
echo "api start health check failed"
fi
if [[ $ALERT_HTTP_STATUS -ne 200 ]]; then
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/alert-server/logs/dolphinscheduler-alert.log"
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/alert-server/logs/*.out"
echo "alert start health check failed"
fi
exit $START_HEALTHCHECK_EXITCODE
fi
sleep 1
done

View File

@ -18,16 +18,16 @@
set -euox pipefail
#Start base service containers
docker-compose -f .github/workflows/cluster-test/mysql/docker-compose-base.yaml up -d
docker-compose -f .github/workflows/cluster-test/mysql_with_mysql_registry/docker-compose-base.yaml up -d
#Build ds mysql cluster image
docker build -t jdk8:ds_mysql_cluster -f .github/workflows/cluster-test/mysql/Dockerfile .
docker build -t jdk8:ds_mysql_cluster -f .github/workflows/cluster-test/mysql_with_mysql_registry/Dockerfile .
#Start ds mysql cluster container
docker-compose -f .github/workflows/cluster-test/mysql/docker-compose-cluster.yaml up -d
docker-compose -f .github/workflows/cluster-test/mysql_with_mysql_registry/docker-compose-cluster.yaml up -d
#Running tests
/bin/bash .github/workflows/cluster-test/mysql/running_test.sh
/bin/bash .github/workflows/cluster-test/mysql_with_mysql_registry/running_test.sh
#Cleanup
docker rm -f $(docker ps -aq)

View File

@ -0,0 +1,48 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
FROM eclipse-temurin:8-jre
RUN apt update ; \
apt install -y wget default-mysql-client sudo openssh-server netcat-traditional ;
COPY ./apache-dolphinscheduler-*-SNAPSHOT-bin.tar.gz /root
RUN tar -zxvf /root/apache-dolphinscheduler-*-SNAPSHOT-bin.tar.gz -C ~
RUN mv /root/apache-dolphinscheduler-*-SNAPSHOT-bin /root/apache-dolphinscheduler-test-SNAPSHOT-bin
ENV DOLPHINSCHEDULER_HOME /root/apache-dolphinscheduler-test-SNAPSHOT-bin
#Setting install.sh
COPY .github/workflows/cluster-test/mysql_with_zookeeper_registry/install_env.sh $DOLPHINSCHEDULER_HOME/bin/env/install_env.sh
#Setting dolphinscheduler_env.sh
COPY .github/workflows/cluster-test/mysql_with_zookeeper_registry/dolphinscheduler_env.sh $DOLPHINSCHEDULER_HOME/bin/env/dolphinscheduler_env.sh
#Download mysql jar
ENV MYSQL_URL "https://repo.maven.apache.org/maven2/mysql/mysql-connector-java/8.0.16/mysql-connector-java-8.0.16.jar"
ENV MYSQL_DRIVER "mysql-connector-java-8.0.16.jar"
RUN wget -O $DOLPHINSCHEDULER_HOME/alert-server/libs/$MYSQL_DRIVER $MYSQL_URL ; \
cp $DOLPHINSCHEDULER_HOME/alert-server/libs/$MYSQL_DRIVER $DOLPHINSCHEDULER_HOME/api-server/libs/$MYSQL_DRIVER ; \
cp $DOLPHINSCHEDULER_HOME/alert-server/libs/$MYSQL_DRIVER $DOLPHINSCHEDULER_HOME/master-server/libs/$MYSQL_DRIVER ; \
cp $DOLPHINSCHEDULER_HOME/alert-server/libs/$MYSQL_DRIVER $DOLPHINSCHEDULER_HOME/worker-server/libs/$MYSQL_DRIVER ; \
cp $DOLPHINSCHEDULER_HOME/alert-server/libs/$MYSQL_DRIVER $DOLPHINSCHEDULER_HOME/tools/libs/$MYSQL_DRIVER
#Deploy
COPY .github/workflows/cluster-test/mysql_with_zookeeper_registry/deploy.sh /root/deploy.sh
CMD [ "/bin/bash", "/root/deploy.sh" ]

View File

@ -0,0 +1,29 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
version: "3"
services:
ds:
container_name: ds
image: jdk8:ds_mysql_cluster
restart: always
ports:
- "12345:12345"
- "5679:5679"
- "1235:1235"
- "50053:50053"

View File

@ -28,22 +28,25 @@ export SPRING_DATASOURCE_PASSWORD=123456
# DolphinScheduler server related configuration
export SPRING_CACHE_TYPE=${SPRING_CACHE_TYPE:-none}
export SPRING_JACKSON_TIME_ZONE=${SPRING_JACKSON_TIME_ZONE:-UTC}
export MASTER_FETCH_COMMAND_NUM=${MASTER_FETCH_COMMAND_NUM:-10}
# Registry center configuration, determines the type and link of the registry center
export REGISTRY_TYPE=${REGISTRY_TYPE:-zookeeper}
export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-zoo1:2181,zoo2:2182,zoo3:2183}
export REGISTRY_ZOOKEEPER_BLOCK_UNTIL_CONNECTED=30000ms
# Tasks related configurations, need to change the configuration if you use the related tasks.
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark}
export PYTHON_HOME=${PYTHON_HOME:-/opt/soft/python}
export PYTHON_LAUNCHER=${PYTHON_LAUNCHER:-/opt/soft/python/bin/python3}
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
export DATAX_HOME=${DATAX_HOME:-/opt/soft/datax}
export DATAX_LAUNCHER=${DATAX_LAUNCHER:-/opt/soft/datax/bin/datax.py}
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin:$PATH
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_LAUNCHER:$PATH
export MASTER_RESERVED_MEMORY=0.01
export WORKER_RESERVED_MEMORY=0.01
# applicationId auto collection related configuration, the following configurations are unnecessary if setting appId.collect=log
#export HADOOP_CLASSPATH=`hadoop classpath`:${DOLPHINSCHEDULER_HOME}/tools/libs/*

View File

@ -24,7 +24,7 @@ WORKER_HEALTHCHECK_COMMAND="curl -I -m 10 -o /dev/null -s -w %{http_code} http:/
ALERT_HEALTHCHECK_COMMAND="curl -I -m 10 -o /dev/null -s -w %{http_code} http://0.0.0.0:50053/actuator/health"
#Cluster start health check
TIMEOUT=120
TIMEOUT=180
START_HEALTHCHECK_EXITCODE=0
for ((i=1; i<=TIMEOUT; i++))
@ -45,11 +45,28 @@ do
fi
if [[ $i -eq $TIMEOUT ]];then
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/master-server/logs/dolphinscheduler-master.log"
echo "cluster start health check failed"
if [[ $MASTER_HTTP_STATUS -ne 200 ]];then
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/master-server/logs/dolphinscheduler-master.log"
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/master-server/logs/*.out"
echo "master start health check failed"
fi
if [[ $WORKER_HTTP_STATUS -ne 200 ]]; then
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/worker-server/logs/dolphinscheduler-worker.log"
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/worker-server/logs/*.out"
echo "worker start health check failed"
fi
if [[ $API_HTTP_STATUS -ne 200 ]]; then
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/api-server/logs/dolphinscheduler-api.log"
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/api-server/logs/*.out"
echo "api start health check failed"
fi
if [[ $ALERT_HTTP_STATUS -ne 200 ]]; then
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/alert-server/logs/dolphinscheduler-alert.log"
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/alert-server/logs/*.out"
echo "alert start health check failed"
fi
exit $START_HEALTHCHECK_EXITCODE
fi
sleep 1
done

View File

@ -0,0 +1,33 @@
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
set -euox pipefail
#Start base service containers
docker-compose -f .github/workflows/cluster-test/mysql_with_zookeeper_registry/docker-compose-base.yaml up -d
#Build ds mysql cluster image
docker build -t jdk8:ds_mysql_cluster -f .github/workflows/cluster-test/mysql_with_zookeeper_registry/Dockerfile .
#Start ds mysql cluster container
docker-compose -f .github/workflows/cluster-test/mysql_with_zookeeper_registry/docker-compose-cluster.yaml up -d
#Running tests
/bin/bash .github/workflows/cluster-test/mysql_with_zookeeper_registry/running_test.sh
#Cleanup
docker rm -f $(docker ps -aq)

View File

@ -0,0 +1,39 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
FROM eclipse-temurin:8-jre
RUN apt update ; \
apt install -y wget sudo openssh-server netcat-traditional ;
COPY ./apache-dolphinscheduler-*-SNAPSHOT-bin.tar.gz /root
RUN tar -zxvf /root/apache-dolphinscheduler-*-SNAPSHOT-bin.tar.gz -C ~
RUN mv /root/apache-dolphinscheduler-*-SNAPSHOT-bin /root/apache-dolphinscheduler-test-SNAPSHOT-bin
ENV DOLPHINSCHEDULER_HOME /root/apache-dolphinscheduler-test-SNAPSHOT-bin
#Setting install.sh
COPY .github/workflows/cluster-test/postgresql_with_postgresql_registry/install_env.sh $DOLPHINSCHEDULER_HOME/bin/env/install_env.sh
#Setting dolphinscheduler_env.sh
COPY .github/workflows/cluster-test/postgresql_with_postgresql_registry/dolphinscheduler_env.sh $DOLPHINSCHEDULER_HOME/bin/env/dolphinscheduler_env.sh
#Deploy
COPY .github/workflows/cluster-test/postgresql_with_postgresql_registry/deploy.sh /root/deploy.sh
CMD [ "/bin/bash", "/root/deploy.sh" ]

View File

@ -0,0 +1,41 @@
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
set -euox pipefail
USER=root
#Sudo
sed -i '$a'$USER' ALL=(ALL) NOPASSWD: NOPASSWD: ALL' /etc/sudoers
sed -i 's/Defaults requirett/#Defaults requirett/g' /etc/sudoers
#SSH
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
service ssh start
#Init schema
/bin/bash $DOLPHINSCHEDULER_HOME/tools/bin/upgrade-schema.sh
/bin/bash $DOLPHINSCHEDULER_HOME/tools/bin/initialize-jdbc-registry.sh
#Start Cluster
/bin/bash $DOLPHINSCHEDULER_HOME/bin/start-all.sh
#Keep running
tail -f /dev/null

View File

@ -0,0 +1,35 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
version: "3"
services:
postgres:
container_name: postgres
image: postgres:14.1
restart: always
environment:
POSTGRES_PASSWORD: postgres
POSTGRES_DB: dolphinscheduler
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 60s
retries: 120

View File

@ -0,0 +1,57 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# JAVA_HOME, will use it to start DolphinScheduler server
export JAVA_HOME=${JAVA_HOME:-/opt/java/openjdk}
# Database related configuration, set database type, username and password
export DATABASE=${DATABASE:-postgresql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:postgresql://postgres:5432/dolphinscheduler"
export SPRING_DATASOURCE_USERNAME=postgres
export SPRING_DATASOURCE_PASSWORD=postgres
# DolphinScheduler server related configuration
export SPRING_CACHE_TYPE=${SPRING_CACHE_TYPE:-none}
export SPRING_JACKSON_TIME_ZONE=${SPRING_JACKSON_TIME_ZONE:-UTC}
# Registry center configuration, determines the type and link of the registry center
export REGISTRY_TYPE=jdbc
export REGISTRY_HIKARI_CONFIG_JDBC_URL="jdbc:postgresql://postgres:5432/dolphinscheduler"
export REGISTRY_HIKARI_CONFIG_USERNAME=postgres
export REGISTRY_HIKARI_CONFIG_PASSWORD=postgres
# Tasks related configurations, need to change the configuration if you use the related tasks.
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark}
export PYTHON_LAUNCHER=${PYTHON_LAUNCHER:-/opt/soft/python/bin/python3}
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
export DATAX_LAUNCHER=${DATAX_LAUNCHER:-/opt/soft/datax/bin/datax.py}
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_LAUNCHER:$PATH
export MASTER_RESERVED_MEMORY=0.01
export WORKER_RESERVED_MEMORY=0.01
# applicationId auto collection related configuration, the following configurations are unnecessary if setting appId.collect=log
#export HADOOP_CLASSPATH=`hadoop classpath`:${DOLPHINSCHEDULER_HOME}/tools/libs/*
#export SPARK_DIST_CLASSPATH=$HADOOP_CLASSPATH:$SPARK_DIST_CLASS_PATH
#export HADOOP_CLIENT_OPTS="-javaagent:${DOLPHINSCHEDULER_HOME}/tools/libs/aspectjweaver-1.9.7.jar":$HADOOP_CLIENT_OPTS
#export SPARK_SUBMIT_OPTS="-javaagent:${DOLPHINSCHEDULER_HOME}/tools/libs/aspectjweaver-1.9.7.jar":$SPARK_SUBMIT_OPTS
#export FLINK_ENV_JAVA_OPTS="-javaagent:${DOLPHINSCHEDULER_HOME}/tools/libs/aspectjweaver-1.9.7.jar":$FLINK_ENV_JAVA_OPTS

View File

@ -0,0 +1,58 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# ---------------------------------------------------------
# INSTALL MACHINE
# ---------------------------------------------------------
# A comma separated list of machine hostname or IP would be installed DolphinScheduler,
# including master, worker, api, alert. If you want to deploy in pseudo-distributed
# mode, just write a pseudo-distributed hostname
# Example for hostnames: ips="ds1,ds2,ds3,ds4,ds5", Example for IPs: ips="192.168.8.1,192.168.8.2,192.168.8.3,192.168.8.4,192.168.8.5"
ips=${ips:-"localhost"}
# Port of SSH protocol, default value is 22. For now we only support same port in all `ips` machine
# modify it if you use different ssh port
sshPort=${sshPort:-"22"}
# A comma separated list of machine hostname or IP would be installed Master server, it
# must be a subset of configuration `ips`.
# Example for hostnames: masters="ds1,ds2", Example for IPs: masters="192.168.8.1,192.168.8.2"
masters=${masters:-"localhost"}
# A comma separated list of machine <hostname>:<workerGroup> or <IP>:<workerGroup>.All hostname or IP must be a
# subset of configuration `ips`, And workerGroup have default value as `default`, but we recommend you declare behind the hosts
# Example for hostnames: workers="ds1:default,ds2:default,ds3:default", Example for IPs: workers="192.168.8.1:default,192.168.8.2:default,192.168.8.3:default"
workers=${workers:-"localhost:default"}
# A comma separated list of machine hostname or IP would be installed Alert server, it
# must be a subset of configuration `ips`.
# Example for hostname: alertServer="ds3", Example for IP: alertServer="192.168.8.3"
alertServer=${alertServer:-"localhost"}
# A comma separated list of machine hostname or IP would be installed API server, it
# must be a subset of configuration `ips`.
# Example for hostname: apiServers="ds1", Example for IP: apiServers="192.168.8.1"
apiServers=${apiServers:-"localhost"}
# The directory to install DolphinScheduler for all machine we config above. It will automatically be created by `install.sh` script if not exists.
# Do not set this configuration same as the current path (pwd)
installPath=${installPath:-"/root/apache-dolphinscheduler-*-SNAPSHOT-bin"}
# The user to deploy DolphinScheduler for all machine we config above. For now user must create by yourself before running `install.sh`
# script. The user needs to have sudo privileges and permissions to operate hdfs. If hdfs is enabled than the root directory needs
# to be created by this user
deployUser=${deployUser:-"dolphinscheduler"}

View File

@ -0,0 +1,109 @@
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
set -x
API_HEALTHCHECK_COMMAND="curl -I -m 10 -o /dev/null -s -w %{http_code} http://0.0.0.0:12345/dolphinscheduler/actuator/health"
MASTER_HEALTHCHECK_COMMAND="curl -I -m 10 -o /dev/null -s -w %{http_code} http://0.0.0.0:5679/actuator/health"
WORKER_HEALTHCHECK_COMMAND="curl -I -m 10 -o /dev/null -s -w %{http_code} http://0.0.0.0:1235/actuator/health"
ALERT_HEALTHCHECK_COMMAND="curl -I -m 10 -o /dev/null -s -w %{http_code} http://0.0.0.0:50053/actuator/health"
#Cluster start health check
TIMEOUT=180
START_HEALTHCHECK_EXITCODE=0
for ((i=1; i<=TIMEOUT; i++))
do
MASTER_HTTP_STATUS=$(eval "$MASTER_HEALTHCHECK_COMMAND")
WORKER_HTTP_STATUS=$(eval "$WORKER_HEALTHCHECK_COMMAND")
API_HTTP_STATUS=$(eval "$API_HEALTHCHECK_COMMAND")
ALERT_HTTP_STATUS=$(eval "$ALERT_HEALTHCHECK_COMMAND")
if [[ $MASTER_HTTP_STATUS -eq 200 && $WORKER_HTTP_STATUS -eq 200 && $API_HTTP_STATUS -eq 200 && $ALERT_HTTP_STATUS -eq 200 ]];then
START_HEALTHCHECK_EXITCODE=0
else
START_HEALTHCHECK_EXITCODE=2
fi
if [[ $START_HEALTHCHECK_EXITCODE -eq 0 ]];then
echo "cluster start health check success"
break
fi
if [[ $i -eq $TIMEOUT ]];then
if [[ $MASTER_HTTP_STATUS -ne 200 ]];then
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/master-server/logs/dolphinscheduler-master.log"
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/master-server/logs/*.out"
echo "master start health check failed"
fi
if [[ $WORKER_HTTP_STATUS -ne 200 ]]; then
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/worker-server/logs/dolphinscheduler-worker.log"
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/worker-server/logs/*.out"
echo "worker start health check failed"
fi
if [[ $API_HTTP_STATUS -ne 200 ]]; then
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/api-server/logs/dolphinscheduler-api.log"
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/api-server/logs/*.out"
echo "api start health check failed"
fi
if [[ $ALERT_HTTP_STATUS -ne 200 ]]; then
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/alert-server/logs/dolphinscheduler-alert.log"
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/alert-server/logs/*.out"
echo "alert start health check failed"
fi
exit $START_HEALTHCHECK_EXITCODE
fi
sleep 1
done
#Stop Cluster
docker exec -u root ds bash -c "/root/apache-dolphinscheduler-*-SNAPSHOT-bin/bin/stop-all.sh"
#Cluster stop health check
sleep 5
MASTER_HTTP_STATUS=$(eval "$MASTER_HEALTHCHECK_COMMAND")
if [[ $MASTER_HTTP_STATUS -ne 200 ]];then
echo "master stop health check success"
else
echo "master stop health check failed"
exit 3
fi
WORKER_HTTP_STATUS=$(eval "$WORKER_HEALTHCHECK_COMMAND")
if [[ $WORKER_HTTP_STATUS -ne 200 ]];then
echo "worker stop health check success"
else
echo "worker stop health check failed"
exit 3
fi
API_HTTP_STATUS=$(eval "$API_HEALTHCHECK_COMMAND")
if [[ $API_HTTP_STATUS -ne 200 ]];then
echo "api stop health check success"
else
echo "api stop health check failed"
exit 3
fi
ALERT_HTTP_STATUS=$(eval "$ALERT_HEALTHCHECK_COMMAND")
if [[ $ALERT_HTTP_STATUS -ne 200 ]];then
echo "alert stop health check success"
else
echo "alert stop health check failed"
exit 3
fi

View File

@ -0,0 +1,33 @@
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
set -euox pipefail
#Start base service containers
docker-compose -f .github/workflows/cluster-test/postgresql_with_postgresql_registry/docker-compose-base.yaml up -d
#Build ds postgresql cluster image
docker build -t jdk8:ds_postgresql_cluster -f .github/workflows/cluster-test/postgresql_with_postgresql_registry/Dockerfile .
#Start ds postgresql cluster container
docker-compose -f .github/workflows/cluster-test/postgresql_with_postgresql_registry/docker-compose-cluster.yaml up -d
#Running tests
/bin/bash .github/workflows/cluster-test/postgresql_with_postgresql_registry/running_test.sh
#Cleanup
docker rm -f $(docker ps -aq)

View File

@ -28,12 +28,12 @@ RUN mv /root/apache-dolphinscheduler-*-SNAPSHOT-bin /root/apache-dolphinschedule
ENV DOLPHINSCHEDULER_HOME /root/apache-dolphinscheduler-test-SNAPSHOT-bin
#Setting install.sh
COPY .github/workflows/cluster-test/postgresql/install_env.sh $DOLPHINSCHEDULER_HOME/bin/env/install_env.sh
COPY .github/workflows/cluster-test/postgresql_with_zookeeper_registry/install_env.sh $DOLPHINSCHEDULER_HOME/bin/env/install_env.sh
#Setting dolphinscheduler_env.sh
COPY .github/workflows/cluster-test/postgresql/dolphinscheduler_env.sh $DOLPHINSCHEDULER_HOME/bin/env/dolphinscheduler_env.sh
COPY .github/workflows/cluster-test/postgresql_with_zookeeper_registry/dolphinscheduler_env.sh $DOLPHINSCHEDULER_HOME/bin/env/dolphinscheduler_env.sh
#Deploy
COPY .github/workflows/cluster-test/postgresql/deploy.sh /root/deploy.sh
COPY .github/workflows/cluster-test/postgresql_with_zookeeper_registry/deploy.sh /root/deploy.sh
CMD [ "/bin/bash", "/root/deploy.sh" ]

View File

@ -0,0 +1,29 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
version: "3"
services:
ds:
container_name: ds
image: jdk8:ds_postgresql_cluster
restart: always
ports:
- "12345:12345"
- "5679:5679"
- "1235:1235"
- "50053:50053"

View File

@ -28,22 +28,25 @@ export SPRING_DATASOURCE_PASSWORD=postgres
# DolphinScheduler server related configuration
export SPRING_CACHE_TYPE=${SPRING_CACHE_TYPE:-none}
export SPRING_JACKSON_TIME_ZONE=${SPRING_JACKSON_TIME_ZONE:-UTC}
export MASTER_FETCH_COMMAND_NUM=${MASTER_FETCH_COMMAND_NUM:-10}
# Registry center configuration, determines the type and link of the registry center
export REGISTRY_TYPE=${REGISTRY_TYPE:-zookeeper}
export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-zoo1:2181,zoo2:2182,zoo3:2183}
export REGISTRY_ZOOKEEPER_BLOCK_UNTIL_CONNECTED=30000ms
# Tasks related configurations, need to change the configuration if you use the related tasks.
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark}
export PYTHON_HOME=${PYTHON_HOME:-/opt/soft/python}
export PYTHON_LAUNCHER=${PYTHON_LAUNCHER:-/opt/soft/python/bin/python3}
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
export DATAX_HOME=${DATAX_HOME:-/opt/soft/datax}
export DATAX_LAUNCHER=${DATAX_LAUNCHER:-/opt/soft/datax/bin/datax.py}
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin:$PATH
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_LAUNCHER:$PATH
export MASTER_RESERVED_MEMORY=0.01
export WORKER_RESERVED_MEMORY=0.01
# applicationId auto collection related configuration, the following configurations are unnecessary if setting appId.collect=log
#export HADOOP_CLASSPATH=`hadoop classpath`:${DOLPHINSCHEDULER_HOME}/tools/libs/*

View File

@ -0,0 +1,109 @@
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
set -x
API_HEALTHCHECK_COMMAND="curl -I -m 10 -o /dev/null -s -w %{http_code} http://0.0.0.0:12345/dolphinscheduler/actuator/health"
MASTER_HEALTHCHECK_COMMAND="curl -I -m 10 -o /dev/null -s -w %{http_code} http://0.0.0.0:5679/actuator/health"
WORKER_HEALTHCHECK_COMMAND="curl -I -m 10 -o /dev/null -s -w %{http_code} http://0.0.0.0:1235/actuator/health"
ALERT_HEALTHCHECK_COMMAND="curl -I -m 10 -o /dev/null -s -w %{http_code} http://0.0.0.0:50053/actuator/health"
#Cluster start health check
TIMEOUT=180
START_HEALTHCHECK_EXITCODE=0
for ((i=1; i<=TIMEOUT; i++))
do
MASTER_HTTP_STATUS=$(eval "$MASTER_HEALTHCHECK_COMMAND")
WORKER_HTTP_STATUS=$(eval "$WORKER_HEALTHCHECK_COMMAND")
API_HTTP_STATUS=$(eval "$API_HEALTHCHECK_COMMAND")
ALERT_HTTP_STATUS=$(eval "$ALERT_HEALTHCHECK_COMMAND")
if [[ $MASTER_HTTP_STATUS -eq 200 && $WORKER_HTTP_STATUS -eq 200 && $API_HTTP_STATUS -eq 200 && $ALERT_HTTP_STATUS -eq 200 ]];then
START_HEALTHCHECK_EXITCODE=0
else
START_HEALTHCHECK_EXITCODE=2
fi
if [[ $START_HEALTHCHECK_EXITCODE -eq 0 ]];then
echo "cluster start health check success"
break
fi
if [[ $i -eq $TIMEOUT ]];then
if [[ $MASTER_HTTP_STATUS -ne 200 ]];then
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/master-server/logs/dolphinscheduler-master.log"
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/master-server/logs/*.out"
echo "master start health check failed"
fi
if [[ $WORKER_HTTP_STATUS -ne 200 ]]; then
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/worker-server/logs/dolphinscheduler-worker.log"
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/worker-server/logs/*.out"
echo "worker start health check failed"
fi
if [[ $API_HTTP_STATUS -ne 200 ]]; then
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/api-server/logs/dolphinscheduler-api.log"
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/api-server/logs/*.out"
echo "api start health check failed"
fi
if [[ $ALERT_HTTP_STATUS -ne 200 ]]; then
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/alert-server/logs/dolphinscheduler-alert.log"
docker exec -u root ds bash -c "cat /root/apache-dolphinscheduler-*-SNAPSHOT-bin/alert-server/logs/*.out"
echo "alert start health check failed"
fi
exit $START_HEALTHCHECK_EXITCODE
fi
sleep 1
done
#Stop Cluster
docker exec -u root ds bash -c "/root/apache-dolphinscheduler-*-SNAPSHOT-bin/bin/stop-all.sh"
#Cluster stop health check
sleep 5
MASTER_HTTP_STATUS=$(eval "$MASTER_HEALTHCHECK_COMMAND")
if [[ $MASTER_HTTP_STATUS -ne 200 ]];then
echo "master stop health check success"
else
echo "master stop health check failed"
exit 3
fi
WORKER_HTTP_STATUS=$(eval "$WORKER_HEALTHCHECK_COMMAND")
if [[ $WORKER_HTTP_STATUS -ne 200 ]];then
echo "worker stop health check success"
else
echo "worker stop health check failed"
exit 3
fi
API_HTTP_STATUS=$(eval "$API_HEALTHCHECK_COMMAND")
if [[ $API_HTTP_STATUS -ne 200 ]];then
echo "api stop health check success"
else
echo "api stop health check failed"
exit 3
fi
ALERT_HTTP_STATUS=$(eval "$ALERT_HEALTHCHECK_COMMAND")
if [[ $ALERT_HTTP_STATUS -ne 200 ]];then
echo "alert stop health check success"
else
echo "alert stop health check failed"
exit 3
fi

View File

@ -18,16 +18,16 @@
set -euox pipefail
#Start base service containers
docker-compose -f .github/workflows/cluster-test/postgresql/docker-compose-base.yaml up -d
docker-compose -f .github/workflows/cluster-test/postgresql_with_zookeeper_registry/docker-compose-base.yaml up -d
#Build ds postgresql cluster image
docker build -t jdk8:ds_postgresql_cluster -f .github/workflows/cluster-test/postgresql/Dockerfile .
docker build -t jdk8:ds_postgresql_cluster -f .github/workflows/cluster-test/postgresql_with_zookeeper_registry/Dockerfile .
#Start ds postgresql cluster container
docker-compose -f .github/workflows/cluster-test/postgresql/docker-compose-cluster.yaml up -d
docker-compose -f .github/workflows/cluster-test/postgresql_with_zookeeper_registry/docker-compose-cluster.yaml up -d
#Running tests
/bin/bash .github/workflows/cluster-test/postgresql/running_test.sh
/bin/bash .github/workflows/cluster-test/postgresql_with_zookeeper_registry/running_test.sh
#Cleanup
docker rm -f $(docker ps -aq)

View File

@ -23,6 +23,8 @@ on:
pull_request:
branches:
- 'dev'
- '[0-9]+.[0-9]+.[0-9]+-prepare'
- '[0-9]+.[0-9]+.[0-9]+-release'
concurrency:
group: codeql-${{ github.event.pull_request.number || github.ref }}

View File

@ -30,7 +30,7 @@ jobs:
timeout-minutes: 10
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Style Check
run: ./mvnw spotless:check
img-check:
@ -40,7 +40,7 @@ jobs:
run:
working-directory: docs
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Set up Python 3.9
uses: actions/setup-python@v2
with:
@ -54,14 +54,51 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v2
- run: sudo npm install -g markdown-link-check@3.10.0
- uses: actions/checkout@v4
- run: sudo npm install -g markdown-link-check@3.11.2
- run: sudo apt install plocate -y
# NOTE: Change command from `find . -name "*.md"` to `find . -not -path "*/node_modules/*" -not -path "*/.tox/*" -name "*.md"`
# if you want to run check locally
- run: |
for file in $(find . -name "*.md" -not \( -path ./deploy/terraform/aws/README.md -prune \)); do
markdown-link-check -c .dlc.json -q "$file"
for file in $(locate "$PWD*/*.md" | grep -v ./deploy/terraform/aws/README.md); do
markdown-link-check -c .dlc.json -q "$file" &
done
wait
paths-filter:
name: Helm-Doc-Path-Filter
runs-on: ubuntu-latest
outputs:
helm-doc: ${{ steps.filter.outputs.helm-doc }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@b2feaf19c27470162a626bd6fa8438ae5b263721
id: filter
with:
filters: |
helm-doc:
- 'deploy/**'
helm-doc:
name: Helm-Doc-Execute
needs: paths-filter
if: ${{ (needs.paths-filter.outputs.helm-doc == 'true') || (github.event_name == 'push') }}
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Generating helm-doc
run: |
./mvnw validate -P helm-doc -pl :dolphinscheduler
- name: Check helm-doc
run: |
DIFF=$(git diff ${GITHUB_WORKSPACE}/deploy/kubernetes/*md)
if [ ! -z "$DIFF" ]; then
echo "###### ERROR: helm-doc is not up to date ######"
echo "Please execute './mvnw validate -P helm-doc -pl :dolphinscheduler' in your clone, of your fork, of the project, and commit an updated deploy/kubernetes/README.md for the chart."
echo "###### ERROR: helm-doc is not up to date ######"
fi
git diff --exit-code
result:
name: Docs
runs-on: ubuntu-latest
@ -70,9 +107,13 @@ jobs:
- style
- img-check
- dead-link
if: success()
if: always()
steps:
- name: success
- name: Status
run: |
echo "Docs check success"
exit 0
if [[ ${{ contains(needs.*.result, 'failure') }} == 'true' || ${{ contains(needs.*.result, 'cancelled') }} == 'true' ]]; then
echo "Build Failed!"
exit 1
else
echo "Build Success!"
fi

149
.github/workflows/e2e-k8s.yml vendored Normal file
View File

@ -0,0 +1,149 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
on:
pull_request:
push:
branches:
- dev
- '[0-9]+.[0-9]+.[0-9]+-prepare'
- '[0-9]+.[0-9]+.[0-9]+-release'
name: E2E-K8S
concurrency:
group: E2E-K8S-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
paths-filter:
name: E2E-K8S-Path-Filter
runs-on: ubuntu-latest
outputs:
not-ignore: ${{ steps.filter.outputs.not-ignore }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@b2feaf19c27470162a626bd6fa8438ae5b263721
id: filter
with:
filters: |
not-ignore:
- '!(docs/**)'
e2e-k8s:
name: E2E-K8S-Execute
needs: paths-filter
if: ${{ (needs.paths-filter.outputs.not-ignore == 'true') || (github.event_name == 'push') }}
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Build Image
run: |
./mvnw -B clean package \
-Dmaven.test.skip \
-Dmaven.javadoc.skip \
-Dspotless.skip=true \
-Dmaven.checkstyle.skip \
-Dmaven.deploy.skip \
-Ddocker.push.skip=true \
-Pdocker,release -Ddocker.tag=ci \
-pl org.apache.dolphinscheduler:dolphinscheduler-alert-server \
-pl dolphinscheduler-tools \
-pl dolphinscheduler-api \
-pl dolphinscheduler-master \
-pl dolphinscheduler-worker -am
- name: Create k8s Kind Cluster
run: |
# install kubectl
curl -LO "https://dl.k8s.io/release/v1.28.3/bin/linux/amd64/kubectl"
sudo chmod +x kubectl
sudo mv kubectl /usr/local/bin/kubectl
# install kind
curl -LO https://github.com/kubernetes-sigs/kind/releases/download/v0.20.0/kind-linux-amd64
sudo chmod +x kind-linux-amd64
sudo mv kind-linux-amd64 /usr/local/bin/kind
kind version
# create kind cluster
kind_node_image="kindest/node:v1.23.17"
echo "Kubernetes version: ${kind_node_image}"
kind create cluster --name dolphinscheduler --image ${kind_node_image}
kubectl version
kubectl get all --all-namespaces
- name: Load images
run: |
components=("master" "worker" "api" "tools" "alert-server")
for component in "${components[@]}"; do
kind load docker-image apache/dolphinscheduler-${component}:ci --name dolphinscheduler
done
- name: Helm install dolphinscheduler
working-directory: ${{ github.workspace }}/deploy/kubernetes/dolphinscheduler
run: |
# install helm
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
# install ds chart via helm
helm repo add bitnami https://charts.bitnami.com/bitnami
helm dependency update .
helm upgrade --install --create-namespace -n dolphinscheduler dolphinscheduler . -f - <<EOF
image:
registry: apache
tag: ci
master:
replicas: 1
livenessProbe:
initialDelaySeconds: 120
readinessProbe:
initialDelaySeconds: 120
worker:
replicas: 1
livenessProbe:
initialDelaySeconds: 120
readinessProbe:
initialDelaySeconds: 120
alert:
livenessProbe:
initialDelaySeconds: 120
readinessProbe:
initialDelaySeconds: 120
api:
livenessProbe:
initialDelaySeconds: 120
readinessProbe:
initialDelaySeconds: 120
EOF
- name: Wait for pods
run: |
JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}';
components=("master" "worker" "api" "alert")
for component in "${components[@]}"; do
until kubectl -n dolphinscheduler get pods -l app.kubernetes.io/component=${component} -o jsonpath="$JSONPATH" 2>&1 | grep -q "Ready=True"; do
echo "waiting for dolphinscheduler ${component} to be available"
sleep 10
kubectl get pods --all-namespaces
kubectl get events --all-namespaces
for pod in $(kubectl get pods -n dolphinscheduler -o jsonpath='{.items[*].metadata.name}'); do
echo "logs for pod $pod:"
kubectl logs --tail=1000 -n dolphinscheduler $pod
done
done
done

View File

@ -20,6 +20,8 @@ on:
push:
branches:
- dev
- '[0-9]+.[0-9]+.[0-9]+-prepare'
- '[0-9]+.[0-9]+.[0-9]+-release'
name: E2E
@ -35,7 +37,7 @@ jobs:
outputs:
not-ignore: ${{ steps.filter.outputs.not-ignore }}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- uses: dorny/paths-filter@b2feaf19c27470162a626bd6fa8438ae5b263721
id: filter
with:
@ -49,7 +51,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: true
- name: Sanity Check
@ -60,21 +62,21 @@ jobs:
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-e2e
restore-keys: ${{ runner.os }}-maven-
- name: Build Image
run: |
./mvnw -B clean install \
-Dmaven.test.skip \
-Dmaven.javadoc.skip \
-Dcheckstyle.skip=true \
-Dspotless.skip=true \
-Pdocker,release -Ddocker.tag=ci \
-pl dolphinscheduler-standalone-server -am
- name: Export Docker Images
run: |
docker save apache/dolphinscheduler-standalone-server:ci -o /tmp/standalone-image.tar \
&& du -sh /tmp/standalone-image.tar
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v4
name: Upload Docker Images
with:
name: standalone-image
@ -106,20 +108,62 @@ jobs:
class: org.apache.dolphinscheduler.e2e.cases.TokenE2ETest
- name: Workflow
class: org.apache.dolphinscheduler.e2e.cases.WorkflowE2ETest
- name: WorkflowHttp
class: org.apache.dolphinscheduler.e2e.cases.WorkflowHttpTaskE2ETest
- name: WorkflowJava
class: org.apache.dolphinscheduler.e2e.cases.WorkflowJavaTaskE2ETest
# - name: WorkflowForSwitch
# class: org.apache.dolphinscheduler.e2e.cases.WorkflowSwitchE2ETest
- name: FileManage
class: org.apache.dolphinscheduler.e2e.cases.FileManageE2ETest
- name: UdfManage
class: org.apache.dolphinscheduler.e2e.cases.UdfManageE2ETest
- name: FunctionManage
class: org.apache.dolphinscheduler.e2e.cases.FunctionManageE2ETest
- name: MysqlDataSource
class: org.apache.dolphinscheduler.e2e.cases.MysqlDataSourceE2ETest
- name: ClickhouseDataSource
class: org.apache.dolphinscheduler.e2e.cases.ClickhouseDataSourceE2ETest
- name: PostgresDataSource
class: org.apache.dolphinscheduler.e2e.cases.PostgresDataSourceE2ETest
- name: ShellTaskE2ETest
class: org.apache.dolphinscheduler.e2e.cases.tasks.ShellTaskE2ETest
env:
RECORDING_PATH: /tmp/recording-${{ matrix.case.name }}
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Cache local Maven repository
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-e2e
restore-keys: ${{ runner.os }}-maven-
- uses: actions/download-artifact@v4
name: Download Docker Images
with:
name: standalone-image
path: /tmp
- name: Load Docker Images
run: |
docker load -i /tmp/standalone-image.tar
- name: Run Test
run: |
./mvnw -B -f dolphinscheduler-e2e/pom.xml -am \
-DfailIfNoTests=false \
-Dtest=${{ matrix.case.class }} test
- uses: actions/upload-artifact@v4
if: always()
name: Upload Recording
with:
name: recording-${{ matrix.case.name }}
path: ${{ env.RECORDING_PATH }}
retention-days: 1
e2e-optional:
name: ${{ matrix.case.name }}
needs: build
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
matrix:
case:
- name: SqlServerDataSource
class: org.apache.dolphinscheduler.e2e.cases.SqlServerDataSourceE2ETest
- name: HiveDataSource
@ -127,29 +171,29 @@ jobs:
env:
RECORDING_PATH: /tmp/recording-${{ matrix.case.name }}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: true
- name: Cache local Maven repository
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-e2e
restore-keys: ${{ runner.os }}-maven-
- uses: actions/download-artifact@v2
- uses: actions/download-artifact@v4
name: Download Docker Images
with:
name: standalone-image
path: /tmp
- name: Load Docker Images
run: |
docker load -i /tmp/standalone-image.tar
docker load -i /tmp/standalone-image.tar
- name: Run Test
run: |
./mvnw -B -f dolphinscheduler-e2e/pom.xml -am \
-DfailIfNoTests=false \
-Dtest=${{ matrix.case.class }} test
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v4
if: always()
name: Upload Recording
with:

View File

@ -20,14 +20,12 @@ name: Frontend
on:
push:
branches:
- dev
- '[0-9]+.[0-9]+.[0-9]+-prepare'
- '[0-9]+.[0-9]+.[0-9]+-release'
paths:
- '.github/workflows/frontend.yml'
- 'dolphinscheduler-ui/**'
pull_request:
paths:
- '.github/workflows/frontend.yml'
- 'dolphinscheduler-ui/**'
defaults:
run:
@ -38,15 +36,30 @@ concurrency:
cancel-in-progress: true
jobs:
paths-filter:
name: Frontend-Path-Filter
runs-on: ubuntu-latest
outputs:
not-ignore: ${{ steps.filter.outputs.not-ignore }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@b2feaf19c27470162a626bd6fa8438ae5b263721
id: filter
with:
filters: |
not-ignore:
- '!(docs/**)'
build:
name: Build
needs: paths-filter
if: ${{ (needs.paths-filter.outputs.not-ignore == 'true') || (github.event_name == 'push') }}
runs-on: ${{ matrix.os }}
timeout-minutes: 20
timeout-minutes: 30
strategy:
matrix:
os: [ ubuntu-latest, macos-latest ]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: true
- if: matrix.os == 'ubuntu-latest'
@ -56,9 +69,28 @@ jobs:
uses: actions/setup-node@v2
with:
node-version: 16
- name: Compile and Build
- name: Compile and Build on ${{ matrix.os }}
run: |
set -x
npm install pnpm@7 -g
pnpm install
pnpm run lint
pnpm run build:prod
result:
name: Frontend Build
runs-on: ubuntu-latest
timeout-minutes: 30
needs: [ build, paths-filter ]
if: always()
steps:
- uses: actions/checkout@v4
- name: Status
run: |
if [[ ${{ needs.paths-filter.outputs.not-ignore }} == 'false' && ${{ github.event_name }} == 'pull_request' ]]; then
echo "Skip Frontend Build!"
exit 0
fi
if [[ ${{ needs.build.result }} != 'success' ]]; then
echo "Frontend Build Failed!"
exit -1
fi

View File

@ -26,7 +26,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: "Checkout ${{ github.ref }}"
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
persist-credentials: false
submodules: true

63
.github/workflows/mergeable.yml vendored Normal file
View File

@ -0,0 +1,63 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
on:
pull_request:
types:
- opened
- reopened
- synchronize
- labeled
- unlabeled
- milestoned
- demilestoned
name: "Mergeable"
jobs:
result:
name: "Mergeable: milestone-label-check"
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Check milestone and labels
uses: actions/github-script@v7
with:
script: |
const { data } = await github.request("GET /repos/{owner}/{repo}/pulls/{pr}", {
owner: context.repo.owner,
repo: context.repo.repo,
pr: context.payload.pull_request.number
});
if (data.milestone) {
core.info(`This pull request has a milestone: ${data.milestone.title}`);
} else {
core.setFailed(`A maintainer needs to set the milestone for this pull request.`);
}
let labeledFlag = false;
for (const label of data.labels) {
if (['feature', 'bug', 'improvement', 'document', 'chore', 'DSIP', 'CI&CD', 'revert'].includes(label.name)) {
core.info(`This pull request has a valid label: ${label.name}`);
labeledFlag = true;
break;
}
}
if (!labeledFlag) {
core.setFailed(`A maintainer needs to set a valid label for this pull request.`);
}

View File

@ -20,7 +20,8 @@ name: OWASP Dependency Check
on:
push:
branches:
- dev
- '[0-9]+.[0-9]+.[0-9]+-prepare'
- '[0-9]+.[0-9]+.[0-9]+-release'
pull_request:
paths:
- '**/pom.xml'
@ -30,8 +31,9 @@ env:
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 120
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: true
- name: Set up JDK 8
@ -40,11 +42,11 @@ jobs:
java-version: 8
distribution: 'adopt'
- name: Run OWASP Dependency Check
run: ./mvnw -B clean install verify dependency-check:check -DskipDepCheck=false -Dmaven.test.skip=true -Dcheckstyle.skip=true
run: ./mvnw -B clean install verify dependency-check:check -DskipDepCheck=false -Dmaven.test.skip=true -Dspotless.skip=true
- name: Upload report
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: ${{ cancelled() || failure() }}
continue-on-error: true
with:
name: dependency report
path: target/dependency-check-report.html
path: target/dependency-check-report.html

View File

@ -33,14 +33,13 @@ jobs:
packages: write
timeout-minutes: 30
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Cache local Maven repository
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-docker
restore-keys: ${{ runner.os }}-maven-
- name: Set environment variables
run: |
if [[ ${{ github.event_name }} == "release" ]]; then
@ -71,7 +70,7 @@ jobs:
./mvnw -B clean deploy \
-Dmaven.test.skip \
-Dmaven.javadoc.skip \
-Dcheckstyle.skip=true \
-Dspotless.skip=true \
-Dmaven.deploy.skip \
-Ddocker.tag=${{ env.DOCKER_TAG }} \
-Ddocker.hub=${{ env.HUB }} \

View File

@ -33,7 +33,7 @@ jobs:
packages: write
timeout-minutes: 30
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Set environment variables
run: |
if [[ ${{ github.event_name }} == "release" ]]; then

View File

@ -15,20 +15,21 @@
# limitations under the License.
#
name: "pull-request-robot"
name: "pull-request-target-robot"
on:
pull_request_target:
jobs:
labelRobot:
pullRequestTargetRobot:
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: "Checkout ${{ github.ref }}"
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
persist-credentials: false
submodules: true
@ -39,3 +40,8 @@ jobs:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration-path: .github/actions/labeler/labeler.yml
sync-labels: true
- name: "Auto assign in pull request"
uses: ./.github/actions/auto-assign-action
with:
configuration-path: .github/actions/auto-assign/auto-assign.yml

View File

@ -24,7 +24,8 @@ on:
- '**/*.md'
- 'dolphinscheduler-ui'
branches:
- dev
- '[0-9]+.[0-9]+.[0-9]+-prepare'
- '[0-9]+.[0-9]+.[0-9]+-release'
env:
LOG_DIR: /tmp/dolphinscheduler
@ -40,7 +41,7 @@ jobs:
outputs:
not-ignore: ${{ steps.filter.outputs.not-ignore }}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- uses: dorny/paths-filter@b2feaf19c27470162a626bd6fa8438ae5b263721
id: filter
with:
@ -57,7 +58,7 @@ jobs:
java: ['8', '11']
timeout-minutes: 45
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: true
- name: Sanity Check
@ -72,25 +73,26 @@ jobs:
- uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-unit-test
restore-keys: ${{ runner.os }}-maven-
- name: Run Unit tests
run: ./mvnw clean verify -B -Dmaven.test.skip=false -Dcheckstyle.skip=true
run: ./mvnw clean verify -B -Dmaven.test.skip=false -Dspotless.skip=true -DskipUT=false
- name: Upload coverage report to codecov
run: CODECOV_TOKEN="09c2663f-b091-4258-8a47-c981827eb29a" bash <(curl -s https://codecov.io/bash)
# Set up JDK 11 for SonarCloud.
- name: Set up JDK 11
# Set up JDK 17 for SonarCloud.
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
java-version: 11
java-version: 17
distribution: 'adopt'
- name: Run SonarCloud Analysis
run: >
./mvnw --batch-mode verify sonar:sonar
-Dsonar.coverage.jacoco.xmlReportPaths=target/site/jacoco/jacoco.xml
-Dmaven.test.skip=true
-Dcheckstyle.skip=true
-Dspotless.skip=true
-Dsonar.host.url=https://sonarcloud.io
-Dsonar.organization=apache
-Dsonar.core.codeCoveragePlugin=jacoco
@ -98,22 +100,11 @@ jobs:
-Dsonar.login=e4058004bc6be89decf558ac819aa1ecbee57682
-Dsonar.exclusions=,dolphinscheduler-ui/src/**/i18n/locale/*.js,dolphinscheduler-microbench/src/**/*
-Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-DskipUT=true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
- name: Collect logs
continue-on-error: true
run: |
mkdir -p ${LOG_DIR}
docker-compose -f $(pwd)/docker/docker-swarm/docker-compose.yml logs dolphinscheduler-postgresql > ${LOG_DIR}/db.txt
- name: Upload logs
uses: actions/upload-artifact@v2
continue-on-error: true
with:
name: unit-test-logs
path: ${LOG_DIR}
result:
name: Unit Test
runs-on: ubuntu-latest

1
.gitignore vendored
View File

@ -7,6 +7,7 @@
.target
.idea/
!.idea/icon.png
!.idea/vcs.xml
.run/
target/
dist/

4
.gitmodules vendored
View File

@ -21,3 +21,7 @@
[submodule ".github/actions/translate-on-issue"]
path = .github/actions/translate-on-issue
url = https://github.com/xingchun-chen/translation-helper
[submodule ".github/actions/auto-assign-action"]
path = .github/actions/auto-assign-action
url = https://github.com/kentaro-m/auto-assign-action.git
branch = 288f36f

16
.idea/vcs.xml Normal file
View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="IssueNavigationConfiguration">
<option name="links">
<list>
<IssueNavigationLink>
<option name="issueRegexp" value="#(\d+)" />
<option name="linkRegexp" value="https://github.com/apache/dolphinscheduler/issues/$1" />
</IssueNavigationLink>
</list>
</option>
</component>
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

View File

@ -50,5 +50,7 @@ header:
- tools/dependencies/known-dependencies.txt
- '**/banner.txt'
- '.terraform.lock.hcl'
- deploy/kubernetes/dolphinscheduler/README.md.gotmpl
- .idea/vcs.xml
comment: on-failure

2
NOTICE
View File

@ -1,5 +1,5 @@
Apache DolphinScheduler
Copyright 2019-2022 The Apache Software Foundation
Copyright 2019-2023 The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

View File

@ -3,7 +3,7 @@
[![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html)
![codecov](https://codecov.io/gh/apache/dolphinscheduler/branch/dev/graph/badge.svg)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=apache-dolphinscheduler&metric=alert_status)](https://sonarcloud.io/dashboard?id=apache-dolphinscheduler)
[![Twitter Follow](https://img.shields.io/twitter/follow/dolphinschedule.svg?style=social&label=Follow)](https://twitter.com/dolphinschedule)
[![Twitter Follow](https://img.shields.io/twitter/follow/dolphinschedule.svg?style=social&label=Follow)](https://twitter.com/dolphinschedule) <!-- markdown-link-check-disable-line -->
[![Slack Status](https://img.shields.io/badge/slack-join_chat-white.svg?logo=slack&style=social)](https://s.apache.org/dolphinscheduler-slack)
[![CN doc](https://img.shields.io/badge/文档-中文版-blue.svg)](README_zh_CN.md)
@ -31,6 +31,8 @@ The key features for DolphinScheduler are as follows:
- Want to [start with Docker](https://dolphinscheduler.apache.org/en-us/docs/3.1.5/guide/start/docker)
- For Kubernetes
- [Start with Kubernetes](https://dolphinscheduler.apache.org/en-us/docs/3.1.5/guide/installation/kubernetes)
- For Terraform
- [Start with Terraform](deploy/terraform/README.md)
## User Interface Screenshots
@ -63,16 +65,14 @@ find the good first issue in [here](https://github.com/apache/dolphinscheduler/c
Welcome to join the Apache DolphinScheduler community by:
- Join the [DolphinScheduler Slack](https://s.apache.org/dolphinscheduler-slack) to keep in touch with the community
- Follow the [DolphinScheduler Twitter](https://twitter.com/dolphinschedule) and get the latest news
- Subscribe DolphinScheduler mail list, users@dolphinscheduler.apache.org for user and dev@dolphinscheduler.apache.org for developer
- Follow the [DolphinScheduler Twitter](https://twitter.com/dolphinschedule) and get the latest news <!-- markdown-link-check-disable-line -->
- Subscribe DolphinScheduler mail list, [users@dolphinscheduler.apache.org](mailto:users-subscribe@dolphinscheduler.apache.org) for user and [dev@dolphinscheduler.apache.org](mailto:dev-subscribe@dolphinscheduler.apache.org) for developer
# Landscapes
<p align="center">
<br/><br/>
<img src="https://landscape.cncf.io/images/left-logo.svg" width="150"/>&nbsp;&nbsp;<img src="https://landscape.cncf.io/images/right-logo.svg" width="200"/>
<img src="./images/cncf-landscape-white-bg.jpg" width="175" alt="cncf-landscape"/>&nbsp;&nbsp;<img src="./images/cncf-white-bg.jpg" width="200" alt="cncf-logo"/>
<br/><br/>
DolphinScheduler enriches the <a href="https://landscape.cncf.io/?landscape=observability-and-analysis&license=apache-license-2-0">CNCF CLOUD NATIVE Landscape.</a >
DolphinScheduler enriches the <a href="https://landscape.cncf.io/?item=orchestration-management--scheduling-orchestration--dolphinscheduler">CNCF CLOUD NATIVE Landscape.</a >
</p >

View File

@ -3,7 +3,7 @@
[![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html)
[![codecov](https://codecov.io/gh/apache/dolphinscheduler/branch/dev/graph/badge.svg)]()
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=apache-dolphinscheduler&metric=alert_status)](https://sonarcloud.io/dashboard?id=apache-dolphinscheduler)
[![Twitter Follow](https://img.shields.io/twitter/follow/dolphinschedule.svg?style=social&label=Follow)](https://twitter.com/dolphinschedule)
[![Twitter Follow](https://img.shields.io/twitter/follow/dolphinschedule.svg?style=social&label=Follow)](https://twitter.com/dolphinschedule) <!-- markdown-link-check-disable-line -->
[![Slack Status](https://img.shields.io/badge/slack-join_chat-white.svg?logo=slack&style=social)](https://s.apache.org/dolphinscheduler-slack)
[![EN doc](https://img.shields.io/badge/document-English-blue.svg)](README.md)
@ -13,9 +13,9 @@
DolphinScheduler 的主要特性如下:
- 易于部署提供四种部署方式包括Standalone、Cluster、Docker和Kubernetes
- 易于部署提供四种部署方式包括Standalone、Cluster、Docker和Kubernetes
- 易于使用可以通过四种方式创建和管理工作流包括Web UI、[Python SDK](https://dolphinscheduler.apache.org/python/main/index.html)、Yaml文件和Open API
- 高可靠高可用,多主多从的去中心化架构,原生支持横向扩展
- 高可靠高可用,多主多从的去中心化架构,原生支持横向扩展
- 高性能性能比其他编排平台快N倍每天可支持千万级任务
- Cloud NativeDolphinScheduler支持编排多云/数据中心工作流,支持自定义任务类型
- 对工作流和工作流实例(包括任务)进行版本控制
@ -39,10 +39,10 @@ DolphinScheduler 的主要特性如下:
* **工作流定义** 通过拖拉拽创建和管理工作流,轻松构建和维护复杂的工作流。
![workflow-definition](images/workflow-definition.png)
* **工作流树状图** 抽象的树形结构可以更清晰理解任务之间的关系
* **工作流树状图** 抽象的树形结构可以更清晰理解任务之间的关系
![workflow-tree](images/workflow-tree.png)
* **数据源** 管理支持多种外部数据源为MySQL、PostgreSQL、Hive、Trino等并提供统一的数据访问能力。
* **数据源** 支持管理多种外部数据源为MySQL、PostgreSQL、Hive、Trino等并提供统一的数据访问能力。
![data-source](images/data-source.png)
* **监控**实时查看master、worker和数据库的状态包括服务器资源使用情况和负载情况无需登录服务器即可快速进行健康检查。
@ -54,23 +54,22 @@ DolphinScheduler 的主要特性如下:
## 参与贡献
社区欢迎大家贡献,请参考此页面了解更多:[如何贡献](docs/docs/zh/contribute/join/contribute.md),在[这里](https://github.com/apache/dolphinscheduler/contribute)可以找到good first issue
如果你是首次贡献 dolphinscheduler。
社区欢迎大家贡献,请参考此页面了解更多:[如何贡献](docs/docs/zh/contribute/join/contribute.md),如果你是首次贡献 DolphinScheduler在[这里](https://github.com/apache/dolphinscheduler/contribute)可以找到good first issue
## 社区
欢迎通过以方式加入社区:
- 加入 [DolphinScheduler Slack](https://s.apache.org/dolphinscheduler-slack)
- 关注 [DolphinScheduler Twitter](https://twitter.com/dolphinschedule) 来获取最新消息
- 订阅 DolphinScheduler 邮件列表, 用户订阅 users@dolphinscheduler.apache.org 开发者请订阅 dev@dolphinscheduler.apache.org
- 关注 [DolphinScheduler Twitter](https://twitter.com/dolphinschedule) 来获取最新消息 <!-- markdown-link-check-disable-line -->
- 订阅 DolphinScheduler 邮件列表, 用户订阅 [users@dolphinscheduler.apache.org](mailto:users-subscribe@dolphinscheduler.apache.org) 开发者请订阅 [dev@dolphinscheduler.apache.org](mailto:dev-subscribe@dolphinscheduler.apache.org)
# Landscapes
<p align="center">
<br/><br/>
<img src="https://landscape.cncf.io/images/left-logo.svg" width="150"/>&nbsp;&nbsp;<img src="https://landscape.cncf.io/images/right-logo.svg" width="200"/>
<img src="./images/cncf-landscape-white-bg.jpg" width="175" alt="cncf-landscape"/>&nbsp;&nbsp;<img src="./images/cncf-white-bg.jpg" width="200" alt="cncf-logo"/>
<br/><br/>
DolphinScheduler enriches the <a href="https://landscape.cncf.io/?landscape=observability-and-analysis&license=apache-license-2-0">CNCF CLOUD NATIVE Landscape.</a >
DolphinScheduler enriches the <a href="https://landscape.cncf.io/?item=orchestration-management--scheduling-orchestration--dolphinscheduler">CNCF CLOUD NATIVE Landscape.</a >
</p >

View File

@ -2,3 +2,4 @@
- [Start Up DolphinScheduler with Docker](https://dolphinscheduler.apache.org/en-us/docs/3.1.2/guide/start/docker)
- [Start Up DolphinScheduler with Kubernetes](https://dolphinscheduler.apache.org/en-us/docs/3.1.2/guide/installation/kubernetes)
- [Start Up DolphinScheduler with Terraform](./terraform/README.md)

View File

@ -0,0 +1,37 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/

View File

@ -0,0 +1,366 @@
## About DolphinScheduler for Kubernetes
Dolphin Scheduler is a distributed and easy-to-expand visual DAG workflow scheduling system, dedicated to solving the complex dependencies in data processing, making the scheduling system out of the box for data processing.
This chart bootstraps all the components needed to run Apache DolphinScheduler on a Kubernetes Cluster using [Helm](https://helm.sh).
## QuickStart in Kubernetes
Please refer to the [Quick Start in Kubernetes](../../../docs/docs/en/guide/installation/kubernetes.md)
## Values
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| alert.affinity | object | `{}` | Affinity is a group of affinity scheduling rules. If specified, the pod's scheduling constraints. More info: [node-affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity) |
| alert.annotations | object | `{}` | You can use annotations to attach arbitrary non-identifying metadata to objects. Clients such as tools and libraries can retrieve this metadata. |
| alert.customizedConfig | object | `{}` | configure aligned with https://github.com/apache/dolphinscheduler/blob/dev/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/resources/application.yaml |
| alert.enableCustomizedConfig | bool | `false` | enable configure custom config |
| alert.enabled | bool | `true` | Enable or disable the Alert-Server component |
| alert.env.JAVA_OPTS | string | `"-Xms512m -Xmx512m -Xmn256m"` | The jvm options for alert server |
| alert.livenessProbe | object | `{"enabled":true,"failureThreshold":"3","initialDelaySeconds":"30","periodSeconds":"30","successThreshold":"1","timeoutSeconds":"5"}` | Periodic probe of container liveness. Container will be restarted if the probe fails. More info: [container-probes](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes) |
| alert.livenessProbe.enabled | bool | `true` | Turn on and off liveness probe |
| alert.livenessProbe.failureThreshold | string | `"3"` | Minimum consecutive failures for the probe |
| alert.livenessProbe.initialDelaySeconds | string | `"30"` | Delay before liveness probe is initiated |
| alert.livenessProbe.periodSeconds | string | `"30"` | How often to perform the probe |
| alert.livenessProbe.successThreshold | string | `"1"` | Minimum consecutive successes for the probe |
| alert.livenessProbe.timeoutSeconds | string | `"5"` | When the probe times out |
| alert.nodeSelector | object | `{}` | NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: [assign-pod-node](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/) |
| alert.persistentVolumeClaim | object | `{"accessModes":["ReadWriteOnce"],"enabled":false,"storage":"20Gi","storageClassName":"-"}` | PersistentVolumeClaim represents a reference to a PersistentVolumeClaim in the same namespace. More info: [persistentvolumeclaims](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims) |
| alert.persistentVolumeClaim.accessModes | list | `["ReadWriteOnce"]` | `PersistentVolumeClaim` access modes |
| alert.persistentVolumeClaim.enabled | bool | `false` | Set `alert.persistentVolumeClaim.enabled` to `true` to mount a new volume for `alert` |
| alert.persistentVolumeClaim.storage | string | `"20Gi"` | `PersistentVolumeClaim` size |
| alert.persistentVolumeClaim.storageClassName | string | `"-"` | `Alert` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning |
| alert.readinessProbe | object | `{"enabled":true,"failureThreshold":"3","initialDelaySeconds":"30","periodSeconds":"30","successThreshold":"1","timeoutSeconds":"5"}` | Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. More info: [container-probes](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes) |
| alert.readinessProbe.enabled | bool | `true` | Turn on and off readiness probe |
| alert.readinessProbe.failureThreshold | string | `"3"` | Minimum consecutive failures for the probe |
| alert.readinessProbe.initialDelaySeconds | string | `"30"` | Delay before readiness probe is initiated |
| alert.readinessProbe.periodSeconds | string | `"30"` | How often to perform the probe |
| alert.readinessProbe.successThreshold | string | `"1"` | Minimum consecutive successes for the probe |
| alert.readinessProbe.timeoutSeconds | string | `"5"` | When the probe times out |
| alert.replicas | int | `1` | Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1. |
| alert.resources | object | `{}` | Compute Resources required by this container. More info: [manage-resources-containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) |
| alert.service.annotations | object | `{}` | annotations may need to be set when want to scrapy metrics by prometheus but not install prometheus operator |
| alert.service.serviceMonitor | object | `{"annotations":{},"enabled":false,"interval":"15s","labels":{},"path":"/actuator/prometheus"}` | serviceMonitor for prometheus operator |
| alert.service.serviceMonitor.annotations | object | `{}` | serviceMonitor.annotations ServiceMonitor annotations |
| alert.service.serviceMonitor.enabled | bool | `false` | Enable or disable alert-server serviceMonitor |
| alert.service.serviceMonitor.interval | string | `"15s"` | serviceMonitor.interval interval at which metrics should be scraped |
| alert.service.serviceMonitor.labels | object | `{}` | serviceMonitor.labels ServiceMonitor extra labels |
| alert.service.serviceMonitor.path | string | `"/actuator/prometheus"` | serviceMonitor.path path of the metrics endpoint |
| alert.strategy | object | `{"rollingUpdate":{"maxSurge":"25%","maxUnavailable":"25%"},"type":"RollingUpdate"}` | The deployment strategy to use to replace existing pods with new ones. |
| alert.strategy.rollingUpdate.maxSurge | string | `"25%"` | The maximum number of pods that can be scheduled above the desired number of pods |
| alert.strategy.rollingUpdate.maxUnavailable | string | `"25%"` | The maximum number of pods that can be unavailable during the update |
| alert.strategy.type | string | `"RollingUpdate"` | Type of deployment. Can be "Recreate" or "RollingUpdate" |
| alert.tolerations | list | `[]` | Tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass. |
| api.affinity | object | `{}` | Affinity is a group of affinity scheduling rules. If specified, the pod's scheduling constraints. More info: [node-affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity) |
| api.annotations | object | `{}` | You can use annotations to attach arbitrary non-identifying metadata to objects. Clients such as tools and libraries can retrieve this metadata. |
| api.customizedConfig | object | `{}` | configure aligned with https://github.com/apache/dolphinscheduler/blob/dev/dolphinscheduler-api/src/main/resources/application.yaml |
| api.enableCustomizedConfig | bool | `false` | enable configure custom config |
| api.enabled | bool | `true` | Enable or disable the API-Server component |
| api.env.JAVA_OPTS | string | `"-Xms512m -Xmx512m -Xmn256m"` | The jvm options for api server |
| api.livenessProbe | object | `{"enabled":true,"failureThreshold":"3","initialDelaySeconds":"30","periodSeconds":"30","successThreshold":"1","timeoutSeconds":"5"}` | Periodic probe of container liveness. Container will be restarted if the probe fails. More info: [container-probes](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes) |
| api.livenessProbe.enabled | bool | `true` | Turn on and off liveness probe |
| api.livenessProbe.failureThreshold | string | `"3"` | Minimum consecutive failures for the probe |
| api.livenessProbe.initialDelaySeconds | string | `"30"` | Delay before liveness probe is initiated |
| api.livenessProbe.periodSeconds | string | `"30"` | How often to perform the probe |
| api.livenessProbe.successThreshold | string | `"1"` | Minimum consecutive successes for the probe |
| api.livenessProbe.timeoutSeconds | string | `"5"` | When the probe times out |
| api.nodeSelector | object | `{}` | NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: [assign-pod-node](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/) |
| api.persistentVolumeClaim | object | `{"accessModes":["ReadWriteOnce"],"enabled":false,"storage":"20Gi","storageClassName":"-"}` | PersistentVolumeClaim represents a reference to a PersistentVolumeClaim in the same namespace. More info: [persistentvolumeclaims](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims) |
| api.persistentVolumeClaim.accessModes | list | `["ReadWriteOnce"]` | `PersistentVolumeClaim` access modes |
| api.persistentVolumeClaim.enabled | bool | `false` | Set `api.persistentVolumeClaim.enabled` to `true` to mount a new volume for `api` |
| api.persistentVolumeClaim.storage | string | `"20Gi"` | `PersistentVolumeClaim` size |
| api.persistentVolumeClaim.storageClassName | string | `"-"` | `api` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning |
| api.readinessProbe | object | `{"enabled":true,"failureThreshold":"3","initialDelaySeconds":"30","periodSeconds":"30","successThreshold":"1","timeoutSeconds":"5"}` | Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. More info: [container-probes](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes) |
| api.readinessProbe.enabled | bool | `true` | Turn on and off readiness probe |
| api.readinessProbe.failureThreshold | string | `"3"` | Minimum consecutive failures for the probe |
| api.readinessProbe.initialDelaySeconds | string | `"30"` | Delay before readiness probe is initiated |
| api.readinessProbe.periodSeconds | string | `"30"` | How often to perform the probe |
| api.readinessProbe.successThreshold | string | `"1"` | Minimum consecutive successes for the probe |
| api.readinessProbe.timeoutSeconds | string | `"5"` | When the probe times out |
| api.replicas | string | `"1"` | Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1. |
| api.resources | object | `{}` | Compute Resources required by this container. More info: [manage-resources-containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) |
| api.service.annotations | object | `{}` | annotations may need to be set when service.type is LoadBalancer service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:us-east-1:EXAMPLE_CERT |
| api.service.clusterIP | string | `""` | clusterIP is the IP address of the service and is usually assigned randomly by the master |
| api.service.externalIPs | list | `[]` | externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service |
| api.service.externalName | string | `""` | externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service, requires Type to be ExternalName |
| api.service.loadBalancerIP | string | `""` | loadBalancerIP when service.type is LoadBalancer. LoadBalancer will get created with the IP specified in this field |
| api.service.nodePort | string | `""` | nodePort is the port on each node on which this api service is exposed when type=NodePort |
| api.service.pythonNodePort | string | `""` | pythonNodePort is the port on each node on which this python api service is exposed when type=NodePort |
| api.service.serviceMonitor | object | `{"annotations":{},"enabled":false,"interval":"15s","labels":{},"path":"/dolphinscheduler/actuator/prometheus"}` | serviceMonitor for prometheus operator |
| api.service.serviceMonitor.annotations | object | `{}` | serviceMonitor.annotations ServiceMonitor annotations |
| api.service.serviceMonitor.enabled | bool | `false` | Enable or disable api-server serviceMonitor |
| api.service.serviceMonitor.interval | string | `"15s"` | serviceMonitor.interval interval at which metrics should be scraped |
| api.service.serviceMonitor.labels | object | `{}` | serviceMonitor.labels ServiceMonitor extra labels |
| api.service.serviceMonitor.path | string | `"/dolphinscheduler/actuator/prometheus"` | serviceMonitor.path path of the metrics endpoint |
| api.service.type | string | `"ClusterIP"` | type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer |
| api.strategy | object | `{"rollingUpdate":{"maxSurge":"25%","maxUnavailable":"25%"},"type":"RollingUpdate"}` | The deployment strategy to use to replace existing pods with new ones. |
| api.strategy.rollingUpdate.maxSurge | string | `"25%"` | The maximum number of pods that can be scheduled above the desired number of pods |
| api.strategy.rollingUpdate.maxUnavailable | string | `"25%"` | The maximum number of pods that can be unavailable during the update |
| api.strategy.type | string | `"RollingUpdate"` | Type of deployment. Can be "Recreate" or "RollingUpdate" |
| api.taskTypeFilter.enabled | bool | `false` | Enable or disable the task type filter. If set to true, the API-Server will return tasks of a specific type set in api.taskTypeFilter.task Note: This feature only filters tasks to return a specific type on the WebUI. However, you can still create any task that DolphinScheduler supports via the API. |
| api.taskTypeFilter.task | object | `{}` | ref: [task-type-config.yaml](https://github.com/apache/dolphinscheduler/blob/dev/dolphinscheduler-api/src/main/resources/task-type-config.yaml) |
| api.tolerations | list | `[]` | Tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass. |
| common.configmap.DATAX_LAUNCHER | string | `"/opt/soft/datax/bin/datax.py"` | Set `DATAX_LAUNCHER` for DolphinScheduler's task environment |
| common.configmap.DATA_BASEDIR_PATH | string | `"/tmp/dolphinscheduler"` | User data directory path, self configuration, please make sure the directory exists and have read write permissions |
| common.configmap.DOLPHINSCHEDULER_OPTS | string | `""` | The jvm options for dolphinscheduler, suitable for all servers |
| common.configmap.FLINK_HOME | string | `"/opt/soft/flink"` | Set `FLINK_HOME` for DolphinScheduler's task environment |
| common.configmap.HADOOP_CONF_DIR | string | `"/opt/soft/hadoop/etc/hadoop"` | Set `HADOOP_CONF_DIR` for DolphinScheduler's task environment |
| common.configmap.HADOOP_HOME | string | `"/opt/soft/hadoop"` | Set `HADOOP_HOME` for DolphinScheduler's task environment |
| common.configmap.HIVE_HOME | string | `"/opt/soft/hive"` | Set `HIVE_HOME` for DolphinScheduler's task environment |
| common.configmap.JAVA_HOME | string | `"/opt/java/openjdk"` | Set `JAVA_HOME` for DolphinScheduler's task environment |
| common.configmap.PYTHON_LAUNCHER | string | `"/usr/bin/python/bin/python3"` | Set `PYTHON_LAUNCHER` for DolphinScheduler's task environment |
| common.configmap.RESOURCE_UPLOAD_PATH | string | `"/dolphinscheduler"` | Resource store on HDFS/S3 path, please make sure the directory exists on hdfs and have read write permissions |
| common.configmap.SPARK_HOME | string | `"/opt/soft/spark"` | Set `SPARK_HOME` for DolphinScheduler's task environment |
| common.fsFileResourcePersistence.accessModes | list | `["ReadWriteMany"]` | `PersistentVolumeClaim` access modes, must be `ReadWriteMany` |
| common.fsFileResourcePersistence.enabled | bool | `false` | Set `common.fsFileResourcePersistence.enabled` to `true` to mount a new file resource volume for `api` and `worker` |
| common.fsFileResourcePersistence.storage | string | `"20Gi"` | `PersistentVolumeClaim` size |
| common.fsFileResourcePersistence.storageClassName | string | `"-"` | Resource persistent volume storage class, must support the access mode: `ReadWriteMany` |
| common.sharedStoragePersistence.accessModes | list | `["ReadWriteMany"]` | `PersistentVolumeClaim` access modes, must be `ReadWriteMany` |
| common.sharedStoragePersistence.enabled | bool | `false` | Set `common.sharedStoragePersistence.enabled` to `true` to mount a shared storage volume for Hadoop, Spark binary and etc |
| common.sharedStoragePersistence.mountPath | string | `"/opt/soft"` | The mount path for the shared storage volume |
| common.sharedStoragePersistence.storage | string | `"20Gi"` | `PersistentVolumeClaim` size |
| common.sharedStoragePersistence.storageClassName | string | `"-"` | Shared Storage persistent volume storage class, must support the access mode: ReadWriteMany |
| conf.auto | bool | `false` | auto restart, if true, all components will be restarted automatically after the common configuration is updated. if false, you need to restart the components manually. default is false |
| conf.common."alert.rpc.port" | int | `50052` | rpc port |
| conf.common."appId.collect" | string | `"log"` | way to collect applicationId: log, aop |
| conf.common."aws.credentials.provider.type" | string | `"AWSStaticCredentialsProvider"` | |
| conf.common."aws.s3.access.key.id" | string | `"minioadmin"` | The AWS access key. if resource.storage.type=S3, and credentials.provider.type is AWSStaticCredentialsProvider. This configuration is required |
| conf.common."aws.s3.access.key.secret" | string | `"minioadmin"` | The AWS secret access key. if resource.storage.type=S3, and credentials.provider.type is AWSStaticCredentialsProvider. This configuration is required |
| conf.common."aws.s3.bucket.name" | string | `"dolphinscheduler"` | The name of the bucket. You need to create them by yourself. Otherwise, the system cannot start. All buckets in Amazon S3 share a single namespace; ensure the bucket is given a unique name. |
| conf.common."aws.s3.endpoint" | string | `"http://minio:9000"` | You need to set this parameter when private cloud s3. If S3 uses public cloud, you only need to set resource.aws.region or set to the endpoint of a public cloud such as S3.cn-north-1.amazonaws.com.cn |
| conf.common."aws.s3.region" | string | `"ca-central-1"` | The AWS Region to use. if resource.storage.type=S3, This configuration is required |
| conf.common."conda.path" | string | `"/opt/anaconda3/etc/profile.d/conda.sh"` | set path of conda.sh |
| conf.common."data-quality.jar.dir" | string | `nil` | data quality option |
| conf.common."data.basedir.path" | string | `"/tmp/dolphinscheduler"` | user data local directory path, please make sure the directory exists and have read write permissions |
| conf.common."datasource.encryption.enable" | bool | `false` | datasource encryption enable |
| conf.common."datasource.encryption.salt" | string | `"!@#$%^&*"` | datasource encryption salt |
| conf.common."development.state" | bool | `false` | development state |
| conf.common."hadoop.security.authentication.startup.state" | bool | `false` | whether to startup kerberos |
| conf.common."java.security.krb5.conf.path" | string | `"/opt/krb5.conf"` | java.security.krb5.conf path |
| conf.common."kerberos.expire.time" | int | `2` | kerberos expire time, the unit is hour |
| conf.common."login.user.keytab.path" | string | `"/opt/hdfs.headless.keytab"` | login user from keytab path |
| conf.common."login.user.keytab.username" | string | `"hdfs-mycluster@ESZ.COM"` | login user from keytab username |
| conf.common."ml.mlflow.preset_repository" | string | `"https://github.com/apache/dolphinscheduler-mlflow"` | mlflow task plugin preset repository |
| conf.common."ml.mlflow.preset_repository_version" | string | `"main"` | mlflow task plugin preset repository version |
| conf.common."resource.alibaba.cloud.access.key.id" | string | `"<your-access-key-id>"` | alibaba cloud access key id, required if you set resource.storage.type=OSS |
| conf.common."resource.alibaba.cloud.access.key.secret" | string | `"<your-access-key-secret>"` | alibaba cloud access key secret, required if you set resource.storage.type=OSS |
| conf.common."resource.alibaba.cloud.oss.bucket.name" | string | `"dolphinscheduler"` | oss bucket name, required if you set resource.storage.type=OSS |
| conf.common."resource.alibaba.cloud.oss.endpoint" | string | `"https://oss-cn-hangzhou.aliyuncs.com"` | oss bucket endpoint, required if you set resource.storage.type=OSS |
| conf.common."resource.alibaba.cloud.region" | string | `"cn-hangzhou"` | alibaba cloud region, required if you set resource.storage.type=OSS |
| conf.common."resource.azure.client.id" | string | `"minioadmin"` | azure storage account name, required if you set resource.storage.type=ABS |
| conf.common."resource.azure.client.secret" | string | `"minioadmin"` | azure storage account key, required if you set resource.storage.type=ABS |
| conf.common."resource.azure.subId" | string | `"minioadmin"` | azure storage subId, required if you set resource.storage.type=ABS |
| conf.common."resource.azure.tenant.id" | string | `"minioadmin"` | azure storage tenantId, required if you set resource.storage.type=ABS |
| conf.common."resource.hdfs.fs.defaultFS" | string | `"hdfs://mycluster:8020"` | if resource.storage.type=S3, the value like: s3a://dolphinscheduler; if resource.storage.type=HDFS and namenode HA is enabled, you need to copy core-site.xml and hdfs-site.xml to conf dir |
| conf.common."resource.hdfs.root.user" | string | `"hdfs"` | if resource.storage.type=HDFS, the user must have the permission to create directories under the HDFS root path |
| conf.common."resource.manager.httpaddress.port" | int | `8088` | resourcemanager port, the default value is 8088 if not specified |
| conf.common."resource.storage.type" | string | `"S3"` | resource storage type: HDFS, S3, OSS, GCS, ABS, NONE |
| conf.common."resource.storage.upload.base.path" | string | `"/dolphinscheduler"` | resource store on HDFS/S3 path, resource file will store to this base path, self configuration, please make sure the directory exists on hdfs and have read write permissions. "/dolphinscheduler" is recommended |
| conf.common."sudo.enable" | bool | `true` | use sudo or not, if set true, executing user is tenant user and deploy user needs sudo permissions; if set false, executing user is the deploy user and doesn't need sudo permissions |
| conf.common."support.hive.oneSession" | bool | `false` | Whether hive SQL is executed in the same session |
| conf.common."task.resource.limit.state" | bool | `false` | Task resource limit state |
| conf.common."yarn.application.status.address" | string | `"http://ds1:%s/ws/v1/cluster/apps/%s"` | if resourcemanager HA is enabled or not use resourcemanager, please keep the default value; If resourcemanager is single, you only need to replace ds1 to actual resourcemanager hostname |
| conf.common."yarn.job.history.status.address" | string | `"http://ds1:19888/ws/v1/history/mapreduce/jobs/%s"` | job history status url when application number threshold is reached(default 10000, maybe it was set to 1000) |
| conf.common."yarn.resourcemanager.ha.rm.ids" | string | `"192.168.xx.xx,192.168.xx.xx"` | if resourcemanager HA is enabled, please set the HA IPs; if resourcemanager is single, keep this value empty |
| datasource.profile | string | `"postgresql"` | The profile of datasource |
| externalDatabase.database | string | `"dolphinscheduler"` | The database of external database |
| externalDatabase.driverClassName | string | `"org.postgresql.Driver"` | The driverClassName of external database |
| externalDatabase.enabled | bool | `false` | If exists external database, and set postgresql.enable value to false. external database will be used, otherwise Dolphinscheduler's internal database will be used. |
| externalDatabase.host | string | `"localhost"` | The host of external database |
| externalDatabase.params | string | `"characterEncoding=utf8"` | The params of external database |
| externalDatabase.password | string | `"root"` | The password of external database |
| externalDatabase.port | string | `"5432"` | The port of external database |
| externalDatabase.type | string | `"postgresql"` | The type of external database, supported types: postgresql, mysql |
| externalDatabase.username | string | `"root"` | The username of external database |
| externalRegistry.registryPluginName | string | `"zookeeper"` | If exists external registry and set `zookeeper.enable` && `registryEtcd.enabled` && `registryJdbc.enabled` to false, specify the external registry plugin name |
| externalRegistry.registryServers | string | `"127.0.0.1:2181"` | If exists external registry and set `zookeeper.enable` && `registryEtcd.enabled` && `registryJdbc.enabled` to false, specify the external registry servers |
| image.alert | string | `"dolphinscheduler-alert-server"` | alert-server image |
| image.api | string | `"dolphinscheduler-api"` | api-server image |
| image.master | string | `"dolphinscheduler-master"` | master image |
| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy. Options: Always, Never, IfNotPresent |
| image.pullSecret | string | `""` | Specify a imagePullSecrets |
| image.registry | string | `"apache"` | Docker image repository for the DolphinScheduler |
| image.tag | string | `"latest"` | Docker image version for the DolphinScheduler |
| image.tools | string | `"dolphinscheduler-tools"` | tools image |
| image.worker | string | `"dolphinscheduler-worker"` | worker image |
| ingress.annotations | object | `{}` | Ingress annotations |
| ingress.enabled | bool | `false` | Enable ingress |
| ingress.host | string | `"dolphinscheduler.org"` | Ingress host |
| ingress.path | string | `"/dolphinscheduler"` | Ingress path |
| ingress.tls.enabled | bool | `false` | Enable ingress tls |
| ingress.tls.secretName | string | `"dolphinscheduler-tls"` | Ingress tls secret name |
| initImage | object | `{"busybox":"busybox:1.30.1","pullPolicy":"IfNotPresent"}` | Used to detect whether dolphinscheduler dependent services such as database are ready |
| initImage.busybox | string | `"busybox:1.30.1"` | Specify initImage repository |
| initImage.pullPolicy | string | `"IfNotPresent"` | Image pull policy. Options: Always, Never, IfNotPresent |
| master.affinity | object | `{}` | Affinity is a group of affinity scheduling rules. If specified, the pod's scheduling constraints. More info: [node-affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity) |
| master.annotations | object | `{}` | You can use annotations to attach arbitrary non-identifying metadata to objects. Clients such as tools and libraries can retrieve this metadata. |
| master.customizedConfig | object | `{}` | configure aligned with https://github.com/apache/dolphinscheduler/blob/dev/dolphinscheduler-master/src/main/resources/application.yaml |
| master.enableCustomizedConfig | bool | `false` | enable configure custom config |
| master.enabled | bool | `true` | Enable or disable the Master component |
| master.env.JAVA_OPTS | string | `"-Xms1g -Xmx1g -Xmn512m"` | The jvm options for master server |
| master.env.MASTER_DISPATCH_TASK_NUM | string | `"3"` | Master dispatch task number per batch |
| master.env.MASTER_EXEC_TASK_NUM | string | `"20"` | Master execute task number in parallel per process instance |
| master.env.MASTER_EXEC_THREADS | string | `"100"` | Master execute thread number to limit process instances |
| master.env.MASTER_FAILOVER_INTERVAL | string | `"10m"` | Master failover interval, the unit is minute |
| master.env.MASTER_HEARTBEAT_ERROR_THRESHOLD | string | `"5"` | Master heartbeat error threshold |
| master.env.MASTER_HOST_SELECTOR | string | `"LowerWeight"` | Master host selector to select a suitable worker, optional values include Random, RoundRobin, LowerWeight |
| master.env.MASTER_KILL_APPLICATION_WHEN_HANDLE_FAILOVER | string | `"true"` | Master kill application when handle failover |
| master.env.MASTER_MAX_HEARTBEAT_INTERVAL | string | `"10s"` | Master max heartbeat interval |
| master.env.MASTER_SERVER_LOAD_PROTECTION_ENABLED | bool | `false` | If set true, will open master overload protection |
| master.env.MASTER_SERVER_LOAD_PROTECTION_MAX_DISK_USAGE_PERCENTAGE_THRESHOLDS | float | `0.7` | Master max disk usage , when the master's disk usage is smaller then this value, master server can execute workflow. |
| master.env.MASTER_SERVER_LOAD_PROTECTION_MAX_JVM_CPU_USAGE_PERCENTAGE_THRESHOLDS | float | `0.7` | Master max jvm cpu usage, when the master's jvm cpu usage is smaller then this value, master server can execute workflow. |
| master.env.MASTER_SERVER_LOAD_PROTECTION_MAX_SYSTEM_CPU_USAGE_PERCENTAGE_THRESHOLDS | float | `0.7` | Master max system cpu usage, when the master's system cpu usage is smaller then this value, master server can execute workflow. |
| master.env.MASTER_SERVER_LOAD_PROTECTION_MAX_SYSTEM_MEMORY_USAGE_PERCENTAGE_THRESHOLDS | float | `0.7` | Master max System memory usage , when the master's system memory usage is smaller then this value, master server can execute workflow. |
| master.env.MASTER_STATE_WHEEL_INTERVAL | string | `"5s"` | master state wheel interval, the unit is second |
| master.env.MASTER_TASK_COMMIT_INTERVAL | string | `"1s"` | master commit task interval, the unit is second |
| master.env.MASTER_TASK_COMMIT_RETRYTIMES | string | `"5"` | Master commit task retry times |
| master.livenessProbe | object | `{"enabled":true,"failureThreshold":"3","initialDelaySeconds":"30","periodSeconds":"30","successThreshold":"1","timeoutSeconds":"5"}` | Periodic probe of container liveness. Container will be restarted if the probe fails. More info: [container-probes](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes) |
| master.livenessProbe.enabled | bool | `true` | Turn on and off liveness probe |
| master.livenessProbe.failureThreshold | string | `"3"` | Minimum consecutive failures for the probe |
| master.livenessProbe.initialDelaySeconds | string | `"30"` | Delay before liveness probe is initiated |
| master.livenessProbe.periodSeconds | string | `"30"` | How often to perform the probe |
| master.livenessProbe.successThreshold | string | `"1"` | Minimum consecutive successes for the probe |
| master.livenessProbe.timeoutSeconds | string | `"5"` | When the probe times out |
| master.nodeSelector | object | `{}` | NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: [assign-pod-node](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/) |
| master.persistentVolumeClaim | object | `{"accessModes":["ReadWriteOnce"],"enabled":false,"storage":"20Gi","storageClassName":"-"}` | PersistentVolumeClaim represents a reference to a PersistentVolumeClaim in the same namespace. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name. |
| master.persistentVolumeClaim.accessModes | list | `["ReadWriteOnce"]` | `PersistentVolumeClaim` access modes |
| master.persistentVolumeClaim.enabled | bool | `false` | Set `master.persistentVolumeClaim.enabled` to `true` to mount a new volume for `master` |
| master.persistentVolumeClaim.storage | string | `"20Gi"` | `PersistentVolumeClaim` size |
| master.persistentVolumeClaim.storageClassName | string | `"-"` | `Master` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning |
| master.podManagementPolicy | string | `"Parallel"` | PodManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. |
| master.readinessProbe | object | `{"enabled":true,"failureThreshold":"3","initialDelaySeconds":"30","periodSeconds":"30","successThreshold":"1","timeoutSeconds":"5"}` | Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. More info: [container-probes](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes) |
| master.readinessProbe.enabled | bool | `true` | Turn on and off readiness probe |
| master.readinessProbe.failureThreshold | string | `"3"` | Minimum consecutive failures for the probe |
| master.readinessProbe.initialDelaySeconds | string | `"30"` | Delay before readiness probe is initiated |
| master.readinessProbe.periodSeconds | string | `"30"` | How often to perform the probe |
| master.readinessProbe.successThreshold | string | `"1"` | Minimum consecutive successes for the probe |
| master.readinessProbe.timeoutSeconds | string | `"5"` | When the probe times out |
| master.replicas | string | `"3"` | Replicas is the desired number of replicas of the given Template. |
| master.resources | object | `{}` | Compute Resources required by this container. More info: [manage-resources-containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) |
| master.service.annotations | object | `{}` | annotations may need to be set when want to scrapy metrics by prometheus but not install prometheus operator |
| master.service.serviceMonitor | object | `{"annotations":{},"enabled":false,"interval":"15s","labels":{},"path":"/actuator/prometheus"}` | serviceMonitor for prometheus operator |
| master.service.serviceMonitor.annotations | object | `{}` | serviceMonitor.annotations ServiceMonitor annotations |
| master.service.serviceMonitor.enabled | bool | `false` | Enable or disable master serviceMonitor |
| master.service.serviceMonitor.interval | string | `"15s"` | serviceMonitor.interval interval at which metrics should be scraped |
| master.service.serviceMonitor.labels | object | `{}` | serviceMonitor.labels ServiceMonitor extra labels |
| master.service.serviceMonitor.path | string | `"/actuator/prometheus"` | serviceMonitor.path path of the metrics endpoint |
| master.tolerations | list | `[]` | Tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass. |
| minio.auth.rootPassword | string | `"minioadmin"` | minio password |
| minio.auth.rootUser | string | `"minioadmin"` | minio username |
| minio.defaultBuckets | string | `"dolphinscheduler"` | minio default buckets |
| minio.enabled | bool | `true` | Deploy minio and configure it as the default storage for DolphinScheduler, note this is for demo only, not for production. |
| minio.persistence.enabled | bool | `false` | Set minio.persistence.enabled to true to mount a new volume for internal minio |
| mysql.auth.database | string | `"dolphinscheduler"` | mysql database |
| mysql.auth.params | string | `"characterEncoding=utf8"` | mysql params |
| mysql.auth.password | string | `"ds"` | mysql password |
| mysql.auth.username | string | `"ds"` | mysql username |
| mysql.driverClassName | string | `"com.mysql.cj.jdbc.Driver"` | mysql driverClassName |
| mysql.enabled | bool | `false` | If not exists external MySQL, by default, the DolphinScheduler will use a internal MySQL |
| mysql.primary.persistence.enabled | bool | `false` | Set mysql.primary.persistence.enabled to true to mount a new volume for internal MySQL |
| mysql.primary.persistence.size | string | `"20Gi"` | `PersistentVolumeClaim` size |
| mysql.primary.persistence.storageClass | string | `"-"` | MySQL data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning |
| postgresql.driverClassName | string | `"org.postgresql.Driver"` | The driverClassName for internal PostgreSQL |
| postgresql.enabled | bool | `true` | If not exists external PostgreSQL, by default, the DolphinScheduler will use a internal PostgreSQL |
| postgresql.params | string | `"characterEncoding=utf8"` | The params for internal PostgreSQL |
| postgresql.persistence.enabled | bool | `false` | Set postgresql.persistence.enabled to true to mount a new volume for internal PostgreSQL |
| postgresql.persistence.size | string | `"20Gi"` | `PersistentVolumeClaim` size |
| postgresql.persistence.storageClass | string | `"-"` | PostgreSQL data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning |
| postgresql.postgresqlDatabase | string | `"dolphinscheduler"` | The database for internal PostgreSQL |
| postgresql.postgresqlPassword | string | `"root"` | The password for internal PostgreSQL |
| postgresql.postgresqlUsername | string | `"root"` | The username for internal PostgreSQL |
| registryEtcd.authority | string | `""` | Etcd authority |
| registryEtcd.enabled | bool | `false` | If you want to use Etcd for your registry center, change this value to true. And set zookeeper.enabled to false |
| registryEtcd.endpoints | string | `""` | Etcd endpoints |
| registryEtcd.namespace | string | `"dolphinscheduler"` | Etcd namespace |
| registryEtcd.passWord | string | `""` | Etcd passWord |
| registryEtcd.ssl.certFile | string | `"etcd-certs/ca.crt"` | CertFile file path |
| registryEtcd.ssl.enabled | bool | `false` | If your Etcd server has configured with ssl, change this value to true. About certification files you can see [here](https://github.com/etcd-io/jetcd/blob/main/docs/SslConfig.md) for how to convert. |
| registryEtcd.ssl.keyCertChainFile | string | `"etcd-certs/client.crt"` | keyCertChainFile file path |
| registryEtcd.ssl.keyFile | string | `"etcd-certs/client.pem"` | keyFile file path |
| registryEtcd.user | string | `""` | Etcd user |
| registryJdbc.enabled | bool | `false` | If you want to use JDbc for your registry center, change this value to true. And set zookeeper.enabled and registryEtcd.enabled to false |
| registryJdbc.hikariConfig.driverClassName | string | `"com.mysql.cj.jdbc.Driver"` | Default use same Dolphinscheduler's database if you don't change this value. If you set this value, Registry jdbc's database type will use it |
| registryJdbc.hikariConfig.enabled | bool | `false` | Default use same Dolphinscheduler's database, if you want to use other database please change `enabled` to `true` and change other configs |
| registryJdbc.hikariConfig.jdbcurl | string | `"jdbc:mysql://"` | Default use same Dolphinscheduler's database if you don't change this value. If you set this value, Registry jdbc's database type will use it |
| registryJdbc.hikariConfig.password | string | `""` | Default use same Dolphinscheduler's database if you don't change this value. If you set this value, Registry jdbc's database type will use it |
| registryJdbc.hikariConfig.username | string | `""` | Default use same Dolphinscheduler's database if you don't change this value. If you set this value, Registry jdbc's database type will use it |
| registryJdbc.termExpireTimes | int | `3` | Used to calculate the expire time |
| registryJdbc.termRefreshInterval | string | `"2s"` | Used to schedule refresh the ephemeral data/ lock |
| security.authentication.ldap.basedn | string | `"dc=example,dc=com"` | LDAP base dn |
| security.authentication.ldap.password | string | `"password"` | LDAP password |
| security.authentication.ldap.ssl.enable | bool | `false` | LDAP ssl switch |
| security.authentication.ldap.ssl.jksbase64content | string | `""` | LDAP jks file base64 content. If you use macOS, please run `base64 -b 0 -i /path/to/your.jks`. If you use Linux, please run `base64 -w 0 /path/to/your.jks`. If you use Windows, please run `certutil -f -encode /path/to/your.jks`. Then copy the base64 content to below field in one line |
| security.authentication.ldap.ssl.truststore | string | `"/opt/ldapkeystore.jks"` | LDAP jks file absolute path, do not change this value |
| security.authentication.ldap.ssl.truststorepassword | string | `""` | LDAP jks password |
| security.authentication.ldap.urls | string | `"ldap://ldap.forumsys.com:389/"` | LDAP urls |
| security.authentication.ldap.user.admin | string | `"read-only-admin"` | Admin user account when you log-in with LDAP |
| security.authentication.ldap.user.emailattribute | string | `"mail"` | LDAP user email attribute |
| security.authentication.ldap.user.identityattribute | string | `"uid"` | LDAP user identity attribute |
| security.authentication.ldap.user.notexistaction | string | `"CREATE"` | action when ldap user is not exist,default value: CREATE. Optional values include(CREATE,DENY) |
| security.authentication.ldap.username | string | `"cn=read-only-admin,dc=example,dc=com"` | LDAP username |
| security.authentication.type | string | `"PASSWORD"` | Authentication types (supported types: PASSWORD,LDAP,CASDOOR_SSO) |
| timezone | string | `"Asia/Shanghai"` | World time and date for cities in all time zones |
| worker.affinity | object | `{}` | Affinity is a group of affinity scheduling rules. If specified, the pod's scheduling constraints. More info: [node-affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity) |
| worker.annotations | object | `{}` | You can use annotations to attach arbitrary non-identifying metadata to objects. Clients such as tools and libraries can retrieve this metadata. |
| worker.customizedConfig | object | `{}` | configure aligned with https://github.com/apache/dolphinscheduler/blob/dev/dolphinscheduler-worker/src/main/resources/application.yaml |
| worker.enableCustomizedConfig | bool | `false` | enable configure custom config |
| worker.enabled | bool | `true` | Enable or disable the Worker component |
| worker.env.DEFAULT_TENANT_ENABLED | bool | `false` | If set true, will use worker bootstrap user as the tenant to execute task when the tenant is `default`; |
| worker.env.WORKER_EXEC_THREADS | string | `"100"` | Worker execute thread number to limit task instances |
| worker.env.WORKER_HOST_WEIGHT | string | `"100"` | Worker host weight to dispatch tasks |
| worker.env.WORKER_MAX_HEARTBEAT_INTERVAL | string | `"10s"` | Worker heartbeat interval |
| worker.env.WORKER_SERVER_LOAD_PROTECTION_ENABLED | bool | `false` | If set true, will open worker overload protection |
| worker.env.WORKER_SERVER_LOAD_PROTECTION_MAX_DISK_USAGE_PERCENTAGE_THRESHOLDS | float | `0.7` | Worker max disk usage , when the worker's disk usage is smaller then this value, worker server can be dispatched tasks. |
| worker.env.WORKER_SERVER_LOAD_PROTECTION_MAX_JVM_CPU_USAGE_PERCENTAGE_THRESHOLDS | float | `0.7` | Worker max jvm cpu usage, when the worker's jvm cpu usage is smaller then this value, worker server can be dispatched tasks. |
| worker.env.WORKER_SERVER_LOAD_PROTECTION_MAX_SYSTEM_CPU_USAGE_PERCENTAGE_THRESHOLDS | float | `0.7` | Worker max system cpu usage, when the worker's system cpu usage is smaller then this value, worker server can be dispatched tasks. |
| worker.env.WORKER_SERVER_LOAD_PROTECTION_MAX_SYSTEM_MEMORY_USAGE_PERCENTAGE_THRESHOLDS | float | `0.7` | Worker max memory usage , when the worker's memory usage is smaller then this value, worker server can be dispatched tasks. |
| worker.env.WORKER_TENANT_CONFIG_AUTO_CREATE_TENANT_ENABLED | bool | `true` | tenant corresponds to the user of the system, which is used by the worker to submit the job. If system does not have this user, it will be automatically created after the parameter worker.tenant.auto.create is true. |
| worker.keda.advanced | object | `{}` | Specify HPA related options |
| worker.keda.cooldownPeriod | int | `30` | How many seconds KEDA will wait before scaling to zero. Note that HPA has a separate cooldown period for scale-downs |
| worker.keda.enabled | bool | `false` | Enable or disable the Keda component |
| worker.keda.maxReplicaCount | int | `3` | Maximum number of workers created by keda |
| worker.keda.minReplicaCount | int | `0` | Minimum number of workers created by keda |
| worker.keda.namespaceLabels | object | `{}` | Keda namespace labels |
| worker.keda.pollingInterval | int | `5` | How often KEDA polls the DolphinScheduler DB to report new scale requests to the HPA |
| worker.livenessProbe.enabled | bool | `true` | Turn on and off liveness probe |
| worker.livenessProbe.failureThreshold | string | `"3"` | Minimum consecutive failures for the probe |
| worker.livenessProbe.initialDelaySeconds | string | `"30"` | Delay before liveness probe is initiated |
| worker.livenessProbe.periodSeconds | string | `"30"` | How often to perform the probe |
| worker.livenessProbe.successThreshold | string | `"1"` | Minimum consecutive successes for the probe |
| worker.livenessProbe.timeoutSeconds | string | `"5"` | When the probe times out |
| worker.nodeSelector | object | `{}` | NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: [assign-pod-node](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/) |
| worker.persistentVolumeClaim | object | `{"dataPersistentVolume":{"accessModes":["ReadWriteOnce"],"enabled":false,"storage":"20Gi","storageClassName":"-"},"enabled":false,"logsPersistentVolume":{"accessModes":["ReadWriteOnce"],"enabled":false,"storage":"20Gi","storageClassName":"-"}}` | PersistentVolumeClaim represents a reference to a PersistentVolumeClaim in the same namespace. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name. |
| worker.persistentVolumeClaim.dataPersistentVolume.accessModes | list | `["ReadWriteOnce"]` | `PersistentVolumeClaim` access modes |
| worker.persistentVolumeClaim.dataPersistentVolume.enabled | bool | `false` | Set `worker.persistentVolumeClaim.dataPersistentVolume.enabled` to `true` to mount a data volume for `worker` |
| worker.persistentVolumeClaim.dataPersistentVolume.storage | string | `"20Gi"` | `PersistentVolumeClaim` size |
| worker.persistentVolumeClaim.dataPersistentVolume.storageClassName | string | `"-"` | `Worker` data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning |
| worker.persistentVolumeClaim.enabled | bool | `false` | Set `worker.persistentVolumeClaim.enabled` to `true` to enable `persistentVolumeClaim` for `worker` |
| worker.persistentVolumeClaim.logsPersistentVolume.accessModes | list | `["ReadWriteOnce"]` | `PersistentVolumeClaim` access modes |
| worker.persistentVolumeClaim.logsPersistentVolume.enabled | bool | `false` | Set `worker.persistentVolumeClaim.logsPersistentVolume.enabled` to `true` to mount a logs volume for `worker` |
| worker.persistentVolumeClaim.logsPersistentVolume.storage | string | `"20Gi"` | `PersistentVolumeClaim` size |
| worker.persistentVolumeClaim.logsPersistentVolume.storageClassName | string | `"-"` | `Worker` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning |
| worker.podManagementPolicy | string | `"Parallel"` | PodManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. |
| worker.readinessProbe | object | `{"enabled":true,"failureThreshold":"3","initialDelaySeconds":"30","periodSeconds":"30","successThreshold":"1","timeoutSeconds":"5"}` | Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. More info: [container-probes](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes) |
| worker.readinessProbe.enabled | bool | `true` | Turn on and off readiness probe |
| worker.readinessProbe.failureThreshold | string | `"3"` | Minimum consecutive failures for the probe |
| worker.readinessProbe.initialDelaySeconds | string | `"30"` | Delay before readiness probe is initiated |
| worker.readinessProbe.periodSeconds | string | `"30"` | How often to perform the probe |
| worker.readinessProbe.successThreshold | string | `"1"` | Minimum consecutive successes for the probe |
| worker.readinessProbe.timeoutSeconds | string | `"5"` | When the probe times out |
| worker.replicas | string | `"3"` | Replicas is the desired number of replicas of the given Template. |
| worker.resources | object | `{}` | Compute Resources required by this container. More info: [manage-resources-containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) |
| worker.service.annotations | object | `{}` | annotations may need to be set when want to scrapy metrics by prometheus but not install prometheus operator |
| worker.service.serviceMonitor | object | `{"annotations":{},"enabled":false,"interval":"15s","labels":{},"path":"/actuator/prometheus"}` | serviceMonitor for prometheus operator |
| worker.service.serviceMonitor.annotations | object | `{}` | serviceMonitor.annotations ServiceMonitor annotations |
| worker.service.serviceMonitor.enabled | bool | `false` | Enable or disable worker serviceMonitor |
| worker.service.serviceMonitor.interval | string | `"15s"` | serviceMonitor.interval interval at which metrics should be scraped |
| worker.service.serviceMonitor.labels | object | `{}` | serviceMonitor.labels ServiceMonitor extra labels |
| worker.service.serviceMonitor.path | string | `"/actuator/prometheus"` | serviceMonitor.path path of the metrics endpoint |
| worker.tolerations | list | `[]` | Tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass. |
| zookeeper.enabled | bool | `true` | If not exists external registry, the zookeeper registry will be used by default. |
| zookeeper.fourlwCommandsWhitelist | string | `"srvr,ruok,wchs,cons"` | A list of comma separated Four Letter Words commands to use |
| zookeeper.persistence.enabled | bool | `false` | Set `zookeeper.persistence.enabled` to true to mount a new volume for internal ZooKeeper |
| zookeeper.persistence.size | string | `"20Gi"` | PersistentVolumeClaim size |
| zookeeper.persistence.storageClass | string | `"-"` | ZooKeeper data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning |
| zookeeper.service.port | int | `2181` | The port of zookeeper |

View File

@ -0,0 +1,11 @@
## About DolphinScheduler for Kubernetes
{{ template "chart.description" . }}
This chart bootstraps all the components needed to run Apache DolphinScheduler on a Kubernetes Cluster using [Helm](https://helm.sh).
## QuickStart in Kubernetes
Please refer to the [Quick Start in Kubernetes](../../../docs/docs/en/guide/installation/kubernetes.md)
{{ template "chart.valuesSection" . }}

View File

@ -51,7 +51,6 @@ Create a default common labels.
{{- define "dolphinscheduler.common.labels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
{{- end -}}
{{/*
@ -146,6 +145,10 @@ Create a database environment variables.
{{- else }}
value: {{ .Values.externalDatabase.type | quote }}
{{- end }}
{{- if or .Values.mysql.enabled (eq .Values.externalDatabase.type "mysql") }}
- name: SPRING_PROFILES_ACTIVE
value: mysql
{{- end }}
- name: SPRING_DATASOURCE_URL
{{- if .Values.postgresql.enabled }}
value: jdbc:postgresql://{{ template "dolphinscheduler.postgresql.fullname" . }}:5432/{{ .Values.postgresql.postgresqlDatabase }}?{{ .Values.postgresql.params }}
@ -175,6 +178,46 @@ Create a database environment variables.
name: {{ include "dolphinscheduler.fullname" . }}-externaldb
key: database-password
{{- end }}
- name: SPRING_DATASOURCE_DRIVER-CLASS-NAME
{{- if .Values.postgresql.enabled }}
value: {{ .Values.postgresql.driverClassName }}
{{- else if .Values.mysql.enabled }}
value: {{ .Values.mysql.driverClassName }}
{{- else }}
value: {{ .Values.externalDatabase.driverClassName | quote }}
{{- end }}
{{- end -}}
{{/*
Create a security environment variables.
*/}}
{{- define "dolphinscheduler.security.env_vars" -}}
- name: SECURITY_AUTHENTICATION_TYPE
value: {{ .Values.security.authentication.type | quote }}
{{- if eq .Values.security.authentication.type "LDAP" }}
- name: SECURITY_AUTHENTICATION_LDAP_URLS
value: {{ .Values.security.authentication.ldap.urls | quote }}
- name: SECURITY_AUTHENTICATION_LDAP_BASE_DN
value: {{ .Values.security.authentication.ldap.basedn | quote }}
- name: SECURITY_AUTHENTICATION_LDAP_USERNAME
value: {{ .Values.security.authentication.ldap.username | quote }}
- name: SECURITY_AUTHENTICATION_LDAP_PASSWORD
value: {{ .Values.security.authentication.ldap.password | quote }}
- name: SECURITY_AUTHENTICATION_LDAP_USER_ADMIN
value: {{ .Values.security.authentication.ldap.user.admin | quote }}
- name: SECURITY_AUTHENTICATION_LDAP_USER_IDENTITY_ATTRIBUTE
value: {{ .Values.security.authentication.ldap.user.identityattribute | quote }}
- name: SECURITY_AUTHENTICATION_LDAP_USER_EMAIL_ATTRIBUTE
value: {{ .Values.security.authentication.ldap.user.emailattribute | quote }}
- name: SECURITY_AUTHENTICATION_LDAP_USER_NOT_EXIST_ACTION
value: {{ .Values.security.authentication.ldap.user.notexistaction | quote }}
- name: SECURITY_AUTHENTICATION_LDAP_SSL_ENABLE
value: {{ .Values.security.authentication.ldap.ssl.enable | quote }}
- name: SECURITY_AUTHENTICATION_LDAP_SSL_TRUST_STORE
value: {{ .Values.security.authentication.ldap.ssl.truststore | quote }}
- name: SECURITY_AUTHENTICATION_LDAP_SSL_TRUST_STORE_PASSWORD
value: {{ .Values.security.authentication.ldap.ssl.truststorepassword | quote }}
{{- end }}
{{- end -}}
{{/*
@ -212,15 +255,56 @@ Create a registry environment variables.
- name: REGISTRY_TYPE
{{- if .Values.zookeeper.enabled }}
value: "zookeeper"
{{- else if .Values.registryEtcd.enabled }}
value: "etcd"
{{- else if .Values.registryJdbc.enabled }}
value: "jdbc"
{{- else }}
value: {{ .Values.externalRegistry.registryPluginName }}
{{- end }}
{{- if .Values.registryEtcd.enabled }}
- name: REGISTRY_ENDPOINTS
value: {{ .Values.registryEtcd.endpoints }}
- name: REGISTRY_NAMESPACE
value: {{ .Values.registryEtcd.namespace }}
- name: REGISTRY_USER
value: {{ .Values.registryEtcd.user }}
- name: REGISTRY_PASSWORD
value: {{ .Values.registryEtcd.passWord }}
- name: REGISTRY_AUTHORITY
value: {{ .Values.registryEtcd.authority }}
- name: REGISTRY_CERT_FILE
value: {{ .Values.registryEtcd.ssl.certFile }}
- name: REGISTRY_KEY_CERT_CHAIN_FILE
value: {{ .Values.registryEtcd.ssl.keyCertChainFile }}
- name: REGISTRY_KEY_FILE
value: {{ .Values.registryEtcd.ssl.keyFile }}
{{- else if .Values.registryJdbc.enabled }}
- name: REGISTRY_TERM_REFRESH_INTERVAL
value: {{ .Values.registryJdbc.termRefreshInterval }}
- name: REGISTRY_TERM_EXPIRE_TIMES
value: {{ .Values.registryJdbc.termExpireTimes | quote}}
{{- if .Values.registryJdbc.hikariConfig.enabled }}
- name: REGISTRY_HIKARI_CONFIG_DRIVER_CLASS_NAME
value: {{ .Values.registryJdbc.hikariConfig.driverClassName }}
- name: REGISTRY_HIKARI_CONFIG_JDBC_URL
value: {{ .Values.registryJdbc.hikariConfig.jdbcurl }}
- name: REGISTRY_HIKARI_CONFIG_USERNAME
value: {{ .Values.registryJdbc.hikariConfig.username }}
- name: REGISTRY_HIKARI_CONFIG_PASSWORD
valueFrom:
secretKeyRef:
name: {{ include "dolphinscheduler.fullname" . }}-registry-db
key: registry-password
{{- end }}
{{- else }}
- name: REGISTRY_ZOOKEEPER_CONNECT_STRING
{{- if .Values.zookeeper.enabled }}
value: {{ template "dolphinscheduler.zookeeper.quorum" . }}
{{- else }}
value: {{ .Values.externalRegistry.registryServers }}
{{- end }}
{{- end }}
{{- end -}}
{{/*
@ -264,3 +348,53 @@ Create a fsFileResourcePersistence volumeMount.
name: {{ include "dolphinscheduler.fullname" . }}-fs-file
{{- end -}}
{{- end -}}
{{/*
Create a etcd ssl volume.
*/}}
{{- define "dolphinscheduler.etcd.ssl.volume" -}}
{{- if .Values.registryEtcd.ssl.enabled -}}
- name: etcd-ssl
secret:
secretName: {{ include "dolphinscheduler.fullname" . }}-etcd-ssl
{{- end -}}
{{- end -}}
{{/*
Create a etcd ssl volumeMount.
*/}}
{{- define "dolphinscheduler.etcd.ssl.volumeMount" -}}
{{- if .Values.registryEtcd.ssl.enabled -}}
- mountPath: /opt/dolphinscheduler/{{ .Values.registryEtcd.ssl.certFile }}
name: etcd-ssl
subPath: cert-file
- mountPath: /opt/dolphinscheduler/{{ .Values.registryEtcd.ssl.keyCertChainFile }}
name: etcd-ssl
subPath: key-cert-chain-file
- mountPath: /opt/dolphinscheduler/{{ .Values.registryEtcd.ssl.keyFile }}
name: etcd-ssl
subPath: key-file
{{- end -}}
{{- end -}}
{{/*
Create a ldap ssl volume.
*/}}
{{- define "dolphinscheduler.ldap.ssl.volume" -}}
{{- if .Values.security.authentication.ldap.ssl.enable -}}
- name: jks-file
secret:
secretName: {{ include "dolphinscheduler.fullname" . }}-ldap-ssl
{{- end -}}
{{- end -}}
{{/*
Create a ldap ssl volumeMount.
*/}}
{{- define "dolphinscheduler.ldap.ssl.volumeMount" -}}
{{- if .Values.security.authentication.ldap.ssl.enable -}}
- mountPath: {{ .Values.security.authentication.ldap.ssl.truststore }}
name: jks-file
subPath: jks-file
{{- end -}}
{{- end -}}

View File

@ -0,0 +1,30 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
{{- if .Values.alert.enableCustomizedConfig }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "dolphinscheduler.fullname" . }}-alert
labels:
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-alert
{{- include "dolphinscheduler.alert.labels" . | nindent 4 }}
data:
{{- range $path, $config := .Values.alert.customizedConfig }}
{{ $path }}: |
{{ $config | indent 4 -}}
{{- end -}}
{{- end -}}

View File

@ -0,0 +1,30 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
{{- if .Values.api.enableCustomizedConfig }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "dolphinscheduler.fullname" . }}-api
labels:
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-api
{{- include "dolphinscheduler.api.labels" . | nindent 4 }}
data:
{{- range $path, $config := .Values.api.customizedConfig }}
{{ $path }}: |
{{ $config | indent 4 -}}
{{- end -}}
{{- end -}}

View File

@ -0,0 +1,30 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
{{- if .Values.master.enableCustomizedConfig }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "dolphinscheduler.fullname" . }}-master
labels:
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-master
{{- include "dolphinscheduler.master.labels" . | nindent 4 }}
data:
{{- range $path, $config := .Values.master.customizedConfig }}
{{ $path }}: |
{{ $config | indent 4 -}}
{{- end -}}
{{- end -}}

View File

@ -0,0 +1,30 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
{{- if .Values.worker.enableCustomizedConfig }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "dolphinscheduler.fullname" . }}-worker
labels:
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-worker
{{- include "dolphinscheduler.worker.labels" . | nindent 4 }}
data:
{{- range $path, $config := .Values.worker.customizedConfig }}
{{ $path }}: |
{{ $config | indent 4 -}}
{{- end -}}
{{- end -}}

View File

@ -22,12 +22,22 @@ metadata:
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-common
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
data:
common_properties: |-
{{- if and .Values.api.taskTypeFilter.enabled }}
task-type-config.yaml: |-
{{- if .Values.api.taskTypeFilter.task }}
task:
{{- range $key, $value := .Values.api.taskTypeFilter.task }}
{{ $key }}:
{{- toYaml $value | nindent 8 }}
{{- end }}
{{- end }}
{{- end }}
common.properties: |-
{{- if index .Values.conf "common" }}
{{- range $key, $value := index .Values.conf "common" }}
{{- if and $.Values.minio.enabled }}
{{- if eq $key "resource.storage.type" }}{{ $value = "S3" }}{{- end }}
{{- if eq $key "resource.aws.s3.endpoint" }}{{ $value = print "http://" (include "dolphinscheduler.minio.fullname" $) ":9000" }}{{- end }}
{{- if eq $key "aws.s3.endpoint" }}{{ $value = print "http://" (include "dolphinscheduler.minio.fullname" $) ":9000" }}{{- end }}
{{- end }}
{{ $key }}={{ $value }}
{{- end }}

View File

@ -14,6 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
{{- if and .Values.alert.enabled }}
apiVersion: apps/v1
kind: Deployment
metadata:
@ -34,9 +35,14 @@ spec:
metadata:
labels:
{{- include "dolphinscheduler.alert.labels" . | nindent 8 }}
{{- if .Values.alert.annotations }}
{{- if or .Values.alert.annotations .Values.conf.auto }}
annotations:
{{- if .Values.conf.auto }}
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
{{- end }}
{{- if .Values.alert.annotations }}
{{- toYaml .Values.alert.annotations | nindent 8 }}
{{- end }}
{{- end }}
spec:
serviceAccountName: {{ template "dolphinscheduler.fullname" . }}
@ -108,7 +114,12 @@ spec:
name: {{ include "dolphinscheduler.fullname" . }}-alert
- name: config-volume
mountPath: /opt/dolphinscheduler/conf/common.properties
subPath: common_properties
subPath: common.properties
{{- if .Values.alert.enableCustomizedConfig }}
- name: alert-config-volume
mountPath: /opt/dolphinscheduler/conf/application.yaml
subPath: application.yaml
{{- end }}
volumes:
- name: {{ include "dolphinscheduler.fullname" . }}-alert
{{- if .Values.alert.persistentVolumeClaim.enabled }}
@ -120,3 +131,9 @@ spec:
- name: config-volume
configMap:
name: {{ include "dolphinscheduler.fullname" . }}-configs
{{- if .Values.alert.enableCustomizedConfig }}
- name: alert-config-volume
configMap:
name: {{ include "dolphinscheduler.fullname" . }}-alert
{{- end }}
{{- end }}

View File

@ -14,6 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
{{- if and .Values.api.enabled }}
apiVersion: apps/v1
kind: Deployment
metadata:
@ -34,9 +35,14 @@ spec:
metadata:
labels:
{{- include "dolphinscheduler.api.labels" . | nindent 8 }}
{{- if .Values.api.annotations }}
{{- if or .Values.api.annotations .Values.conf.auto }}
annotations:
{{- if .Values.conf.auto }}
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
{{- end }}
{{- if .Values.api.annotations }}
{{- toYaml .Values.api.annotations | nindent 8 }}
{{- end }}
{{- end }}
spec:
serviceAccountName: {{ template "dolphinscheduler.fullname" . }}
@ -72,6 +78,7 @@ spec:
value: {{ .Values.timezone }}
{{- include "dolphinscheduler.database.env_vars" . | nindent 12 }}
{{- include "dolphinscheduler.registry.env_vars" . | nindent 12 }}
{{- include "dolphinscheduler.security.env_vars" . | nindent 12 }}
{{ range $key, $value := .Values.api.env }}
- name: {{ $key }}
value: {{ $value | quote }}
@ -108,9 +115,21 @@ spec:
name: {{ include "dolphinscheduler.fullname" . }}-api
- name: config-volume
mountPath: /opt/dolphinscheduler/conf/common.properties
subPath: common_properties
subPath: common.properties
{{- if .Values.api.taskTypeFilter.enabled }}
- name: config-volume
mountPath: /opt/dolphinscheduler/conf/task-type-config.yaml
subPath: task-type-config.yaml
{{- end }}
{{- if .Values.api.enableCustomizedConfig }}
- name: api-config-volume
mountPath: /opt/dolphinscheduler/conf/application.yaml
subPath: application.yaml
{{- end }}
{{- include "dolphinscheduler.sharedStorage.volumeMount" . | nindent 12 }}
{{- include "dolphinscheduler.fsFileResource.volumeMount" . | nindent 12 }}
{{- include "dolphinscheduler.ldap.ssl.volumeMount" . | nindent 12 }}
{{- include "dolphinscheduler.etcd.ssl.volumeMount" . | nindent 12 }}
volumes:
- name: {{ include "dolphinscheduler.fullname" . }}-api
{{- if .Values.api.persistentVolumeClaim.enabled }}
@ -122,5 +141,13 @@ spec:
- name: config-volume
configMap:
name: {{ include "dolphinscheduler.fullname" . }}-configs
{{- if .Values.api.enableCustomizedConfig }}
- name: api-config-volume
configMap:
name: {{ include "dolphinscheduler.fullname" . }}-api
{{- end }}
{{- include "dolphinscheduler.sharedStorage.volume" . | nindent 8 }}
{{- include "dolphinscheduler.fsFileResource.volume" . | nindent 8 }}
{{- include "dolphinscheduler.ldap.ssl.volume" . | nindent 8 }}
{{- include "dolphinscheduler.etcd.ssl.volume" . | nindent 8 }}
{{- end }}

View File

@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
{{- if .Values.ingress.enabled }}
{{- if and .Values.api.enabled .Values.ingress.enabled }}
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
apiVersion: networking.k8s.io/v1
{{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1/Ingress" }}

View File

@ -14,6 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
{{- if and .Values.api.enabled }}
apiVersion: batch/v1
kind: Job
metadata:
@ -52,3 +53,4 @@ spec:
envFrom:
- configMapRef:
name: {{ include "dolphinscheduler.fullname" . }}-common
{{- end }}

View File

@ -18,7 +18,7 @@
################################
## DolphinScheduler Worker KEDA Scaler
#################################
{{- if and .Values.worker.keda.enabled }}
{{- if and .Values.worker.keda.enabled .Values.worker.enabled }}
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:

View File

@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
{{- if .Values.alert.persistentVolumeClaim.enabled }}
{{- if and .Values.alert.enabled .Values.alert.persistentVolumeClaim.enabled }}
apiVersion: v1
kind: PersistentVolumeClaim
metadata:

View File

@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
{{- if .Values.api.persistentVolumeClaim.enabled }}
{{- if and .Values.api.enabled .Values.api.persistentVolumeClaim.enabled }}
apiVersion: v1
kind: PersistentVolumeClaim
metadata:

View File

@ -25,4 +25,4 @@ metadata:
type: Opaque
data:
database-password: {{ .Values.externalDatabase.password | b64enc | quote }}
{{- end }}
{{- end }}

View File

@ -0,0 +1,30 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
{{- if .Values.registryEtcd.ssl.enabled }}
apiVersion: v1
kind: Secret
metadata:
name: {{ include "dolphinscheduler.fullname" . }}-etcd-ssl
labels:
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-etcd-ssl
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
type: Opaque
data:
cert-file: {{ .Files.Get .Values.registryEtcd.ssl.certFile | b64enc | quote }}
key-cert-chain-file: {{ .Files.Get .Values.registryEtcd.ssl.keyCertChainFile | b64enc | quote }}
key-file: {{ .Files.Get .Values.registryEtcd.ssl.keyFile | b64enc | quote }}
{{- end }}

View File

@ -0,0 +1,28 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
{{- if .Values.security.authentication.ldap.ssl.enable }}
apiVersion: v1
kind: Secret
metadata:
name: {{ include "dolphinscheduler.fullname" . }}-ldap-ssl
labels:
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-ldap-ssl
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
type: Opaque
data:
jks-file: {{ .Values.security.authentication.ldap.ssl.jksbase64content | quote }}
{{- end }}

View File

@ -0,0 +1,28 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
{{- if .Values.registryJdbc.hikariConfig.enabled }}
apiVersion: v1
kind: Secret
metadata:
name: {{ include "dolphinscheduler.fullname" . }}-registry-db
labels:
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-registry-db
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
type: Opaque
data:
registry-password: {{ .Values.registryJdbc.hikariConfig.password | b64enc | quote }}
{{- end }}

View File

@ -14,6 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
{{- if and .Values.master.enabled }}
apiVersion: apps/v1
kind: StatefulSet
metadata:
@ -31,9 +32,14 @@ spec:
metadata:
labels:
{{- include "dolphinscheduler.master.labels" . | nindent 8 }}
{{- if .Values.master.annotations }}
{{- if or .Values.master.annotations .Values.conf.auto }}
annotations:
{{- if .Values.conf.auto }}
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
{{- end }}
{{- if .Values.master.annotations }}
{{- toYaml .Values.master.annotations | nindent 8 }}
{{- end }}
{{- end }}
spec:
serviceAccountName: {{ template "dolphinscheduler.fullname" . }}
@ -60,6 +66,8 @@ spec:
ports:
- containerPort: 5678
name: "master-port"
- containerPort: 5679
name: "actuator-port"
env:
- name: TZ
value: {{ .Values.timezone }}
@ -101,10 +109,16 @@ spec:
volumeMounts:
- mountPath: "/opt/dolphinscheduler/logs"
name: {{ include "dolphinscheduler.fullname" . }}-master
{{- if .Values.master.enableCustomizedConfig }}
- name: master-config-volume
mountPath: /opt/dolphinscheduler/conf/application.yaml
subPath: application.yaml
{{- end }}
{{- include "dolphinscheduler.sharedStorage.volumeMount" . | nindent 12 }}
- name: config-volume
mountPath: /opt/dolphinscheduler/conf/common.properties
subPath: common_properties
subPath: common.properties
{{- include "dolphinscheduler.etcd.ssl.volumeMount" . | nindent 12 }}
volumes:
- name: {{ include "dolphinscheduler.fullname" . }}-master
{{- if .Values.master.persistentVolumeClaim.enabled }}
@ -113,10 +127,16 @@ spec:
{{- else }}
emptyDir: {}
{{- end }}
{{- if .Values.master.enableCustomizedConfig }}
- name: master-config-volume
configMap:
name: {{ include "dolphinscheduler.fullname" . }}-master
{{- end }}
{{- include "dolphinscheduler.sharedStorage.volume" . | nindent 8 }}
- name: config-volume
configMap:
name: {{ include "dolphinscheduler.fullname" . }}-configs
{{- include "dolphinscheduler.etcd.ssl.volume" . | nindent 8 }}
{{- if .Values.master.persistentVolumeClaim.enabled }}
volumeClaimTemplates:
- metadata:
@ -134,3 +154,4 @@ spec:
requests:
storage: {{ .Values.master.persistentVolumeClaim.storage | quote }}
{{- end }}
{{- end }}

View File

@ -14,6 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
{{- if and .Values.worker.enabled }}
apiVersion: apps/v1
kind: StatefulSet
metadata:
@ -31,9 +32,14 @@ spec:
metadata:
labels:
{{- include "dolphinscheduler.worker.labels" . | nindent 8 }}
{{- if .Values.worker.annotations }}
{{- if or .Values.worker.annotations .Values.conf.auto }}
annotations:
{{- if .Values.conf.auto }}
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
{{- end }}
{{- if .Values.worker.annotations }}
{{- toYaml .Values.worker.annotations | nindent 8 }}
{{- end }}
{{- end }}
spec:
serviceAccountName: {{ template "dolphinscheduler.fullname" . }}
@ -60,6 +66,8 @@ spec:
ports:
- containerPort: 1234
name: "worker-port"
- containerPort: 1235
name: "actuator-port"
env:
- name: TZ
value: {{ .Values.timezone }}
@ -103,11 +111,17 @@ spec:
name: {{ include "dolphinscheduler.fullname" . }}-worker-data
- mountPath: "/opt/dolphinscheduler/logs"
name: {{ include "dolphinscheduler.fullname" . }}-worker-logs
{{- if .Values.worker.enableCustomizedConfig }}
- name: worker-config-volume
mountPath: /opt/dolphinscheduler/conf/application.yaml
subPath: application.yaml
{{- end }}
- name: config-volume
mountPath: /opt/dolphinscheduler/conf/common.properties
subPath: common_properties
subPath: common.properties
{{- include "dolphinscheduler.sharedStorage.volumeMount" . | nindent 12 }}
{{- include "dolphinscheduler.fsFileResource.volumeMount" . | nindent 12 }}
{{- include "dolphinscheduler.etcd.ssl.volumeMount" . | nindent 12 }}
volumes:
{{- if .Values.worker.persistentVolumeClaim.enabled }}
- name: {{ include "dolphinscheduler.fullname" . }}-worker-data
@ -130,11 +144,17 @@ spec:
- name: {{ include "dolphinscheduler.fullname" . }}-worker-logs
emptyDir: {}
{{- end }}
{{- if .Values.worker.enableCustomizedConfig }}
- name: worker-config-volume
configMap:
name: {{ include "dolphinscheduler.fullname" . }}-worker
{{- end }}
- name: config-volume
configMap:
name: {{ include "dolphinscheduler.fullname" . }}-configs
{{- include "dolphinscheduler.sharedStorage.volume" . | nindent 8 }}
{{- include "dolphinscheduler.fsFileResource.volume" . | nindent 8 }}
{{- include "dolphinscheduler.etcd.ssl.volume" . | nindent 8 }}
{{- if .Values.worker.persistentVolumeClaim.enabled }}
volumeClaimTemplates:
{{- if .Values.worker.persistentVolumeClaim.dataPersistentVolume.enabled }}
@ -170,3 +190,4 @@ spec:
storage: {{ .Values.worker.persistentVolumeClaim.logsPersistentVolume.storage | quote }}
{{- end }}
{{- end }}
{{- end }}

View File

@ -14,13 +14,18 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
{{- if and .Values.alert.enabled }}
apiVersion: v1
kind: Service
metadata:
name: {{ include "dolphinscheduler.fullname" . }}-alert
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-alert
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
{{- if .Values.alert.service.annotations }}
annotations: {{- toYaml .Values.alert.service.annotations | nindent 4 }}
{{- end }}
spec:
ports:
- port: 50052
@ -33,3 +38,34 @@ spec:
name: actuator-port
selector:
{{- include "dolphinscheduler.alert.labels" . | nindent 4 }}
---
{{- if .Values.alert.service.serviceMonitor.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ include "dolphinscheduler.fullname" . }}-alert
namespace: {{ .Release.Namespace }}
labels:
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
{{- if .Values.alert.service.serviceMonitor.labels }}
{{- toYaml .Values.alert.service.serviceMonitor.labels | nindent 4 }}
{{- end }}
{{- if .Values.alert.service.serviceMonitor.annotations }}
annotations: {{- toYaml .Values.alert.service.serviceMonitor.annotations | nindent 4 }}
{{- end }}
spec:
namespaceSelector:
matchNames:
- {{ .Values.alert.service.serviceMonitor.namespace | default .Release.Namespace }}
selector:
matchLabels:
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-alert
{{- include "dolphinscheduler.common.labels" . | nindent 6 }}
endpoints:
- scheme: http
targetPort: actuator-port
path: {{ .Values.alert.service.serviceMonitor.path }}
interval: {{ .Values.alert.service.serviceMonitor.interval }}
{{- end }}
{{- end }}

View File

@ -14,6 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
{{- if and .Values.api.enabled }}
apiVersion: v1
kind: Service
metadata:
@ -21,11 +22,8 @@ metadata:
labels:
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-api
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
{{- if and (eq .Values.api.service.type "LoadBalancer") .Values.api.service.annotations }}
annotations:
{{- range $key, $value := .Values.api.service.annotations }}
{{ $key }}: {{ $value | quote }}
{{- end }}
{{- if .Values.api.service.annotations }}
annotations: {{- toYaml .Values.api.service.annotations | nindent 4 }}
{{- end }}
spec:
type: {{ .Values.api.service.type }}
@ -59,3 +57,34 @@ spec:
{{- end }}
selector:
{{- include "dolphinscheduler.api.labels" . | nindent 4 }}
---
{{- if .Values.api.service.serviceMonitor.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ include "dolphinscheduler.fullname" . }}-api
namespace: {{ .Release.Namespace }}
labels:
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
{{- if .Values.api.service.serviceMonitor.labels }}
{{- toYaml .Values.api.service.serviceMonitor.labels | nindent 4 }}
{{- end }}
{{- if .Values.api.service.serviceMonitor.annotations }}
annotations: {{- toYaml .Values.api.service.serviceMonitor.annotations | nindent 4 }}
{{- end }}
spec:
namespaceSelector:
matchNames:
- {{ .Values.api.service.serviceMonitor.namespace | default .Release.Namespace }}
selector:
matchLabels:
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-api
{{- include "dolphinscheduler.common.labels" . | nindent 6 }}
endpoints:
- scheme: http
targetPort: api-port
path: {{ .Values.api.service.serviceMonitor.path }}
interval: {{ .Values.api.service.serviceMonitor.interval }}
{{- end }}
{{- end }}

View File

@ -14,6 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
{{- if and .Values.master.enabled }}
apiVersion: v1
kind: Service
metadata:
@ -21,6 +22,9 @@ metadata:
labels:
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-master-headless
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
{{- if .Values.master.service.annotations }}
annotations: {{- toYaml .Values.master.service.annotations | nindent 4 }}
{{- end }}
spec:
clusterIP: "None"
ports:
@ -28,5 +32,40 @@ spec:
targetPort: master-port
protocol: TCP
name: master-port
- port: 5679
targetPort: actuator-port
protocol: TCP
name: actuator-port
selector:
{{- include "dolphinscheduler.master.labels" . | nindent 4 }}
{{- include "dolphinscheduler.master.labels" . | nindent 4 }}
---
{{- if .Values.master.service.serviceMonitor.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ include "dolphinscheduler.fullname" . }}-master
namespace: {{ .Release.Namespace }}
labels:
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
{{- if .Values.master.service.serviceMonitor.labels }}
{{- toYaml .Values.master.service.serviceMonitor.labels | nindent 4 }}
{{- end }}
{{- if .Values.master.service.serviceMonitor.annotations }}
annotations: {{- toYaml .Values.master.service.serviceMonitor.annotations | nindent 4 }}
{{- end }}
spec:
namespaceSelector:
matchNames:
- {{ .Values.master.service.serviceMonitor.namespace | default .Release.Namespace }}
selector:
matchLabels:
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-master-headless
{{- include "dolphinscheduler.common.labels" . | nindent 6 }}
endpoints:
- scheme: http
targetPort: actuator-port
path: {{ .Values.master.service.serviceMonitor.path }}
interval: {{ .Values.master.service.serviceMonitor.interval }}
{{- end }}
{{- end }}

View File

@ -14,6 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
{{- if and .Values.worker.enabled }}
apiVersion: v1
kind: Service
metadata:
@ -21,6 +22,9 @@ metadata:
labels:
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-worker-headless
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
{{- if .Values.worker.service.annotations }}
annotations: {{- toYaml .Values.worker.service.annotations | nindent 4 }}
{{- end }}
spec:
clusterIP: "None"
ports:
@ -28,5 +32,40 @@ spec:
targetPort: worker-port
protocol: TCP
name: worker-port
- port: 1235
targetPort: actuator-port
protocol: TCP
name: actuator-port
selector:
{{- include "dolphinscheduler.worker.labels" . | nindent 4 }}
{{- include "dolphinscheduler.worker.labels" . | nindent 4 }}
---
{{- if .Values.worker.service.serviceMonitor.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ include "dolphinscheduler.fullname" . }}-worker
namespace: {{ .Release.Namespace }}
labels:
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
{{- if .Values.worker.service.serviceMonitor.labels }}
{{- toYaml .Values.worker.service.serviceMonitor.labels | nindent 4 }}
{{- end }}
{{- if .Values.worker.service.serviceMonitor.annotations }}
annotations: {{- toYaml .Values.worker.service.serviceMonitor.annotations | nindent 4 }}
{{- end }}
spec:
namespaceSelector:
matchNames:
- {{ .Values.worker.service.serviceMonitor.namespace | default .Release.Namespace }}
selector:
matchLabels:
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-worker-headless
{{- include "dolphinscheduler.common.labels" . | nindent 6 }}
endpoints:
- scheme: http
targetPort: actuator-port
path: {{ .Values.worker.service.serviceMonitor.path }}
interval: {{ .Values.worker.service.serviceMonitor.interval }}
{{- end }}
{{- end }}

File diff suppressed because it is too large Load Diff

View File

@ -2,67 +2,58 @@
# Manual edits may be lost in future updates.
provider "registry.terraform.io/hashicorp/aws" {
version = "4.42.0"
version = "5.1.0"
constraints = ">= 4.9.0"
hashes = [
"h1:cS7q80JomJrUZpm+bnK5H/iRjF5+7HAA3qgw+JznPiM=",
"zh:091b64bccee701462b19ca99fe3bff0716e9445a88d0e4d0d0f322062b02bb60",
"zh:1fd9b0bf3421ad65284d693e60de068fc9b247d4fa7df6c1d62ad4796088f795",
"zh:3e34e4fcfaa30b04811aaa92c4d6115ddaa820ac11fa82ad217f42ae17a068ea",
"zh:47b412ab9cc3730797659ffb775a429b5398a5f403c9cca2ec5f663e21a69077",
"zh:8e29e90fdf29d76bb8fab62c184c4ec78e37030277dbe2c0dd97557fdfcbcb50",
"zh:8ef4e94b5672234a68649bdbb93416c1829c5cd6f37be584f8e8610f14ca95b0",
"zh:92a3eb5ae0c2c83717973c56b0427bf1fe8fba3ba72ced01e5eefc5c0cff8bf3",
"zh:96b9f714aed24206f8f47af39426aa8c02f172ac6d5516bcc375583d120bf4f8",
"zh:996ec2065cf0c52b125e3ac8bbd059e5733d8393143cebbb427a236d08c742b4",
"h1:iDyYmwv8q94Dvr4DRG1KBxTWPZRFkRmKGa3cjCEsPZU=",
"zh:0c48f157b804c1f392adb5c14b81e756c652755e358096300ea8dd1283021129",
"zh:1a50495a6c0e5665e51df57dac6e781ec71439b11ebf05f971b6f3a3eb4eb7b2",
"zh:2959ff472c05e56d59e012118dd8d55022f005534c0ae961ce81136de9f66a4d",
"zh:2dfda9133581b99ed6e709e89a453fd2974ce88c703d3e073ec31bf99d7508ce",
"zh:2f3d92cc7a6624da42cee2202f8fb23e6d38f156ab7851884d637282cb0dc709",
"zh:3bc2a34d09cbaf439a1815846904f070c782cd8dfd60b5e0116827cda25f7549",
"zh:4ef43f1a247aa8de8690ac3bbc2b00ebaf6b2872fc8d0f5130e4a8130c874b87",
"zh:5477cb272dcaeb0030091bcf23a9f0f33b5410e44e317e9d3d49446f545dbaa4",
"zh:734c8fb4c0b79c82dd757566761dda5b91ee1ef9a2b848a748ade11e0e1cc69f",
"zh:80346c051b677f4f018da7fe06318b87c5bd0f1ec67ce78ab33baed3bb8b031a",
"zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425",
"zh:b3abba32ccbea87b6a46e846c878ca0b2e9736dbaedd512a712398ece91de431",
"zh:b77292051d499f66ed80434ac435930204b92ca906c0d38fdb8a0ac37efa25ae",
"zh:f4ed19b15bd7cd99ee248023a94a10d586e69f81d0d8326d87a79cc37b579a4f",
"zh:f906a8003e6ad0dd561d8c62e02a65835d8c5009dd7cbfe03e28becced82e5db",
"zh:faff211d1559cbae669b63cdd6436a2ef0fb24108d8fa73b625dc5334b50aada",
"zh:a865b2f88dfee13df14116c5cf53d033d2c15855f4b59b9c65337309a928df2c",
"zh:c0345f266eedaece5612c1000722b302f895d1bc5af1d5a4265f0e7000ca48bb",
"zh:d59703c8e6a9d8b4fbd3b4583b945dfff9cb2844c762c0b3990e1cef18282279",
"zh:d8d04a6a6cd2dfcb23b57e551db7b15e647f6166310fb7d883d8ec67bdc9bdc8",
]
}
provider "registry.terraform.io/hashicorp/local" {
version = "2.2.3"
version = "2.4.0"
hashes = [
"h1:KmHz81iYgw9Xn2L3Carc2uAzvFZ1XsE7Js3qlVeC77k=",
"zh:04f0978bb3e052707b8e82e46780c371ac1c66b689b4a23bbc2f58865ab7d5c0",
"zh:6484f1b3e9e3771eb7cc8e8bab8b35f939a55d550b3f4fb2ab141a24269ee6aa",
"zh:78a56d59a013cb0f7eb1c92815d6eb5cf07f8b5f0ae20b96d049e73db915b238",
"h1:ZUEYUmm2t4vxwzxy1BvN1wL6SDWrDxfH7pxtzX8c6d0=",
"zh:53604cd29cb92538668fe09565c739358dc53ca56f9f11312b9d7de81e48fab9",
"zh:66a46e9c508716a1c98efbf793092f03d50049fa4a83cd6b2251e9a06aca2acf",
"zh:70a6f6a852dd83768d0778ce9817d81d4b3f073fab8fa570bff92dcb0824f732",
"zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3",
"zh:8aa9950f4c4db37239bcb62e19910c49e47043f6c8587e5b0396619923657797",
"zh:996beea85f9084a725ff0e6473a4594deb5266727c5f56e9c1c7c62ded6addbb",
"zh:9a7ef7a21f48fabfd145b2e2a4240ca57517ad155017e86a30860d7c0c109de3",
"zh:a63e70ac052aa25120113bcddd50c1f3cfe61f681a93a50cea5595a4b2cc3e1c",
"zh:a6e8d46f94108e049ad85dbed60354236dc0b9b5ec8eabe01c4580280a43d3b8",
"zh:bb112ce7efbfcfa0e65ed97fa245ef348e0fd5bfa5a7e4ab2091a9bd469f0a9e",
"zh:d7bec0da5c094c6955efed100f3fe22fca8866859f87c025be1760feb174d6d9",
"zh:fb9f271b72094d07cef8154cd3d50e9aa818a0ea39130bc193132ad7b23076fd",
"zh:82a803f2f484c8b766e2e9c32343e9c89b91997b9f8d2697f9f3837f62926b35",
"zh:9708a4e40d6cc4b8afd1352e5186e6e1502f6ae599867c120967aebe9d90ed04",
"zh:973f65ce0d67c585f4ec250c1e634c9b22d9c4288b484ee2a871d7fa1e317406",
"zh:c8fa0f98f9316e4cfef082aa9b785ba16e36ff754d6aba8b456dab9500e671c6",
"zh:cfa5342a5f5188b20db246c73ac823918c189468e1382cb3c48a9c0c08fc5bf7",
"zh:e0e2b477c7e899c63b06b38cd8684a893d834d6d0b5e9b033cedc06dd7ffe9e2",
"zh:f62d7d05ea1ee566f732505200ab38d94315a4add27947a60afa29860822d3fc",
"zh:fa7ce69dde358e172bd719014ad637634bbdabc49363104f4fca759b4b73f2ce",
]
}
provider "registry.terraform.io/hashicorp/template" {
version = "2.2.0"
hashes = [
"h1:0wlehNaxBX7GJQnPfQwTNvvAf38Jm0Nv7ssKGMaG6Og=",
"zh:01702196f0a0492ec07917db7aaa595843d8f171dc195f4c988d2ffca2a06386",
"zh:09aae3da826ba3d7df69efeb25d146a1de0d03e951d35019a0f80e4f58c89b53",
"zh:09ba83c0625b6fe0a954da6fbd0c355ac0b7f07f86c91a2a97849140fea49603",
"zh:0e3a6c8e16f17f19010accd0844187d524580d9fdb0731f675ffcf4afba03d16",
"zh:45f2c594b6f2f34ea663704cc72048b212fe7d16fb4cfd959365fa997228a776",
"zh:77ea3e5a0446784d77114b5e851c970a3dde1e08fa6de38210b8385d7605d451",
"zh:8a154388f3708e3df5a69122a23bdfaf760a523788a5081976b3d5616f7d30ae",
"zh:992843002f2db5a11e626b3fc23dc0c87ad3729b3b3cff08e32ffb3df97edbde",
"zh:ad906f4cebd3ec5e43d5cd6dc8f4c5c9cc3b33d2243c89c5fc18f97f7277b51d",
"zh:c979425ddb256511137ecd093e23283234da0154b7fa8b21c2687182d9aea8b2",
"h1:C0epDvyWsN2Roo+yua2ltW61FVHEOsXHaM43Fj9bMA8=",
]
}
provider "registry.terraform.io/hashicorp/tls" {
version = "4.0.4"
hashes = [
"h1:Wd3RqmQW60k2QWPN4sK5CtjGuO1d+CRNXgC+D4rKtXc=",
"h1:GZcFizg5ZT2VrpwvxGBHQ/hO9r6g0vYdQqx3bFD3anY=",
"zh:23671ed83e1fcf79745534841e10291bbf34046b27d6e68a5d0aab77206f4a55",
"zh:45292421211ffd9e8e3eb3655677700e3c5047f71d8f7650d2ce30242335f848",
"zh:59fedb519f4433c0fdb1d58b27c210b27415fddd0cd73c5312530b4309c088be",

View File

@ -7,7 +7,7 @@
Set necessary variables by creating a file `ds-ami.pkrvars.hcl` and adding the following variables according to your own usage.
```hcl
```shel
cat <<EOF > ds-ami.pkrvars.hcl
aws_access_key = ""
aws_secret_key = ""
@ -17,7 +17,7 @@ aws_region = "cn-north-1"
ds_ami_name = "my-test-ds-2"
# If you want to use the official distribution tar, just set the `ds_version` to the one you want.
ds_version = 3.1.1
ds_version = "3.1.1"
# If you want to use a locally built distribution tar, set the `ds_tar` to the tar file location.
ds_tar = "~/workspace/dolphinscheduler/dolphinscheduler-dist/target/apache-dolphinscheduler-3.1.3-SNAPSHOT-bin.tar.gz"
@ -50,6 +50,7 @@ Make sure `ds_ami_name` is the same as the one in `ds-ami.pkrvars.hcl` above.
cat <<EOF > terraform.tfvars
aws_access_key = ""
aws_secret_key = ""
aws_region = ""
name_prefix = "test-ds-terraform"
ds_ami_name = "my-test-ds"

View File

@ -57,6 +57,7 @@ data "template_file" "worker_user_data" {
"database_username" = aws_db_instance.database.username
"database_password" = aws_db_instance.database.password
"zookeeper_connect_string" = var.zookeeper_connect_string != "" ? var.zookeeper_connect_string : aws_instance.zookeeper[0].private_ip
"alert_server_host" = ""
"s3_access_key_id" = aws_iam_access_key.s3.id
"s3_secret_access_key" = aws_iam_access_key.s3.secret
"s3_region" = var.aws_region

View File

@ -19,11 +19,13 @@ module "s3_bucket" {
source = "terraform-aws-modules/s3-bucket/aws"
version = "~> 3.6"
bucket_prefix = var.s3_bucket_prefix
acl = "private"
force_destroy = true
attach_policy = true
policy = data.aws_iam_policy_document.s3.json
bucket_prefix = var.s3_bucket_prefix
acl = "private"
control_object_ownership = true
object_ownership = "ObjectWriter"
force_destroy = true
attach_policy = true
policy = data.aws_iam_policy_document.s3.json
}
resource "aws_iam_user" "s3" {

View File

@ -68,6 +68,7 @@ resource "aws_instance" "zookeeper" {
vpc_security_group_ids = [aws_security_group.zookeeper_sg[count.index].id]
source_dest_check = false
associate_public_ip_address = var.vm_associate_public_ip_address.standalone_server
key_name = aws_key_pair.key_pair.key_name
user_data = data.template_file.zookeeper_user_data.rendered
@ -94,7 +95,7 @@ resource "aws_instance" "zookeeper" {
connection {
type = "ssh"
user = "root"
user = "ec2-user"
private_key = tls_private_key.key_pair.private_key_pem
host = self.public_ip
timeout = "30s"

45
doap.rdf Normal file
View File

@ -0,0 +1,45 @@
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<?xml-stylesheet type="text/xsl"?>
<rdf:RDF xml:lang="en"
xmlns="http://usefulinc.com/ns/doap#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:asfext="http://projects.apache.org/ns/asfext#"
xmlns:foaf="http://xmlns.com/foaf/0.1/">
<Project rdf:about="https://dolphinscheduler.apache.org">
<created>2023-09-09</created>
<license rdf:resource="https://spdx.org/licenses/Apache-2.0" />
<name>Apache DolphinScheduler</name>
<homepage rdf:resource="https://dolphinscheduler.apache.org" />
<asfext:pmc rdf:resource="https://dolphinscheduler.apache.org" />
<shortdesc>Apache DolphinScheduler is a modern data orchestration platform.</shortdesc>
<description>Apache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code. It is also provided powerful user interface, dedicated to solving complex task dependencies in the data pipeline and providing various types of jobs available out of the box</description>
<bug-database rdf:resource="https://github.com/apache/dolphinscheduler/issues" />
<mailing-list rdf:resource="https://lists.apache.org/list.html?dev@dolphinscheduler.apache.org" />
<download-page rdf:resource="https://dolphinscheduler.apache.org/en-us/download" />
<programming-language>Java</programming-language>
<category rdf:resource="https://projects.apache.org/category/big-data" />
<repository>
<GitRepository>
<location rdf:resource="https://github.com/apache/dolphinscheduler.git"/>
<browse rdf:resource="https://github.com/apache/dolphinscheduler"/>
</GitRepository>
</repository>
</Project>
</rdf:RDF>

View File

@ -101,6 +101,10 @@ export default {
title: 'SubProcess',
link: '/en-us/docs/dev/user_doc/guide/task/sub-process.html',
},
{
title: 'Dynamic',
link: '/en-us/docs/dev/user_doc/guide/task/dynamic.html',
},
{
title: 'Dependent',
link: '/en-us/docs/dev/user_doc/guide/task/dependent.html',
@ -138,8 +142,8 @@ export default {
link: '/en-us/docs/dev/user_doc/guide/task/datax.html',
},
{
title: 'Pigeon',
link: '/en-us/docs/dev/user_doc/guide/task/pigeon.html',
title: 'Sqoop',
link: '/en-us/docs/dev/user_doc/guide/task/sqoop.html',
},
{
title: 'Conditions',
@ -242,6 +246,10 @@ export default {
title: 'Local Parameter',
link: '/en-us/docs/dev/user_doc/guide/parameter/local.html',
},
{
title: 'Project-level Parameter',
link: '/en-us/docs/dev/user_doc/guide/parameter/project-parameter.html',
},
{
title: 'Parameter Context',
link: '/en-us/docs/dev/user_doc/guide/parameter/context.html',
@ -254,6 +262,14 @@ export default {
title: 'File Parameter',
link: '/en-us/docs/dev/user_doc/guide/parameter/file-parameter.html',
},
{
title: 'Vertica',
link: '/en-us/docs/dev/user_doc/guide/datasource/vertica.html',
},
{
title: 'Remote Shell',
link: '/en-us/docs/dev/user_doc/guide/task/remoteshell.html',
},
],
},
{
@ -339,6 +355,14 @@ export default {
title: 'Databend',
link: '/en-us/docs/dev/user_doc/guide/datasource/databend.html',
},
{
title: 'HANA',
link: '/en-us/docs/dev/user_doc/guide/datasource/hana.html',
},
{
title: 'doris',
link: '/en-us/docs/dev/user_doc/guide/datasource/doris.html',
}
],
},
{
@ -383,6 +407,9 @@ export default {
{
title: 'Slack',
link: '/en-us/docs/dev/user_doc/guide/alert/slack.html',
},{
title: 'Aliyun Voice',
link: '/en-us/docs/dev/user_doc/guide/alert/aliyun-voice.html',
},
],
},
@ -401,10 +428,6 @@ export default {
title: 'File Manage',
link: '/en-us/docs/dev/user_doc/guide/resource/file-manage.html'
},
{
title: 'UDF Manage',
link: '/en-us/docs/dev/user_doc/guide/resource/udf-manage.html'
},
{
title: 'Task Group Manage',
link: '/en-us/docs/dev/user_doc/guide/resource/task-group.html'
@ -806,6 +829,10 @@ export default {
title: 'SubProcess',
link: '/zh-cn/docs/dev/user_doc/guide/task/sub-process.html',
},
{
title: 'Dynamic',
link: '/zh-cn/docs/dev/user_doc/guide/task/dynamic.html',
},
{
title: 'Dependent',
link: '/zh-cn/docs/dev/user_doc/guide/task/dependent.html',
@ -843,8 +870,8 @@ export default {
link: '/zh-cn/docs/dev/user_doc/guide/task/datax.html',
},
{
title: 'Pigeon',
link: '/zh-cn/docs/dev/user_doc/guide/task/pigeon.html',
title: 'Sqoop',
link: '/zh-cn/docs/dev/user_doc/guide/task/sqoop.html',
},
{
title: 'Conditions',
@ -930,6 +957,14 @@ export default {
title: 'SSH',
link: '/zh-cn/docs/dev/user_doc/guide/task/ssh.html',
},
{
title: 'Vertica',
link: '/zh-cn/docs/dev/user_doc/guide/datasource/vertica.html',
},
{
title: 'Remote Shell',
link: '/zh-cn/docs/dev/user_doc/guide/task/remoteshell.html',
},
],
},
{
@ -947,6 +982,10 @@ export default {
title: '本地参数',
link: '/zh-cn/docs/dev/user_doc/guide/parameter/local.html',
},
{
title: '项目级别参数',
link: '/zh-cn/docs/dev/user_doc/guide/parameter/project-parameter.html',
},
{
title: '参数传递',
link: '/zh-cn/docs/dev/user_doc/guide/parameter/context.html',
@ -1028,6 +1067,14 @@ export default {
title: 'Databend',
link: '/zh-cn/docs/dev/user_doc/guide/datasource/databend.html',
},
{
title: 'HANA',
link: '/zh-cn/docs/dev/user_doc/guide/datasource/hana.html',
},
{
title: 'Doris',
link: '/zh-cn/docs/dev/user_doc/guide/datasource/doris.html',
}
],
},
{
@ -1073,6 +1120,10 @@ export default {
title: 'Slack告警',
link: '/zh-cn/docs/dev/user_doc/guide/alert/slack.html',
},
{
title: '阿里云语音告警',
link: '/zh-cn/docs/dev/user_doc/guide/alert/aliyun-voice.html',
},
],
},
{
@ -1090,10 +1141,6 @@ export default {
title: '文件管理',
link: '/zh-cn/docs/dev/user_doc/guide/resource/file-manage.html'
},
{
title: 'UDF 管理',
link: '/zh-cn/docs/dev/user_doc/guide/resource/udf-manage.html'
},
{
title: '任务组管理',
link: '/zh-cn/docs/dev/user_doc/guide/resource/task-group.html'

View File

@ -50,6 +50,7 @@ import docs302Config from '../../../site_config/docs3-0-2';
import docs303Config from '../../../site_config/docs3-0-3';
import docs304Config from '../../../site_config/docs3-0-4';
import docs305Config from '../../../site_config/docs3-0-5';
import docs306Config from '../../../site_config/docs3-0-6';
import docs310Config from '../../../site_config/docs3-1-0';
import docs311Config from '../../../site_config/docs3-1-1';
import docs312Config from '../../../site_config/docs3-1-2';
@ -58,6 +59,10 @@ import docs314Config from '../../../site_config/docs3-1-4';
import docs315Config from '../../../site_config/docs3-1-5';
import docs316Config from '../../../site_config/docs3-1-6';
import docs317Config from '../../../site_config/docs3-1-7';
import docs318Config from '../../../site_config/docs3-1-8';
import docs319Config from '../../../site_config/docs3-1-9';
import docs320Config from '../../../site_config/docs3-2-0';
import docs310Config from '../../../site_config/docs3-2-1';
import docsDevConfig from '../../../site_config/docsdev';
const docsSource = {
@ -84,6 +89,7 @@ const docsSource = {
'3.0.3': docs303Config,
'3.0.4': docs304Config,
'3.0.5': docs305Config,
'3.0.6': docs306Config,
'3.1.0': docs310Config,
'3.1.1': docs311Config,
'3.1.2': docs312Config,
@ -92,6 +98,10 @@ const docsSource = {
'3.1.5': docs315Config,
'3.1.6': docs316Config,
'3.1.7': docs317Config,
'3.1.8': docs318Config,
'3.1.9': docs319Config,
'3.2.0': docs320Config,
'3.2.1': docs321Config,
dev: docsDevConfig,
};

View File

@ -24,7 +24,7 @@ export default {
port: 8080,
domain: 'dolphinscheduler.apache.org',
copyToDist: ['asset', 'img', 'file', '.asf.yaml', 'sitemap.xml', '.nojekyll', '.htaccess', 'googled0df7b96f277a143.html'],
docsLatest: '3.1.7',
docsLatest: '3.2.1',
defaultSearch: 'google', // default search engine
defaultLanguage: 'en-us',
'en-us': {
@ -45,13 +45,13 @@ export default {
children: [
{
key: 'docs0',
text: 'latest(3.1.7)',
text: 'latest(3.2.1)',
link: '/en-us/docs/latest/user_doc/about/introduction.html',
},
{
key: 'docs1',
text: '3.0.5',
link: '/en-us/docs/3.0.5/user_doc/about/introduction.html',
text: '3.1.9',
link: '/en-us/docs/3.1.9/user_doc/about/introduction.html',
},
{
key: 'docs2',
@ -173,13 +173,13 @@ export default {
children: [
{
key: 'docs0',
text: '最新版本latest(3.1.7)',
text: '最新版本latest(3.2.1)',
link: '/zh-cn/docs/latest/user_doc/about/introduction.html',
},
{
key: 'docs1',
text: '3.0.5',
link: '/zh-cn/docs/3.0.5/user_doc/about/introduction.html',
text: '3.1.9',
link: '/zh-cn/docs/3.1.9/user_doc/about/introduction.html',
},
{
key: 'docs2',

Some files were not shown because too many files have changed in this diff Show More