Compare commits

...

2592 Commits

Author SHA1 Message Date
Jianbo Sun
b596b70ebe Fix: addon function converted (#4411)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-07-19 19:54:44 +08:00
github-actions[bot]
0cd370e867 Fix: fix volumes duplicate in list (#4390)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
(cherry picked from commit 08fb73aa95)

Co-authored-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-07-15 20:11:49 +08:00
github-actions[bot]
d9adc73e5c Fix: add usage comment for ref-objects (#4386)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit 0418c83117)

Co-authored-by: Somefive <yd219913@alibaba-inc.com>
2022-07-14 18:51:05 +08:00
github-actions[bot]
4a2d9807c8 [Backport release-1.4] Fix: fail directly when app terminated (#4385)
* fail directly when app terminated

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit 842c211cf6)

* support suspend

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix typo

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit 307ef372f1)

Co-authored-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-07-14 18:50:23 +08:00
github-actions[bot]
840cb8ce58 Fix: several minor bugs (#4381)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit c5f10a5723)

Co-authored-by: Somefive <yd219913@alibaba-inc.com>
2022-07-14 11:22:41 +08:00
github-actions[bot]
5a64fec916 Fix: abuse timeout context in terraform provider (#4375)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
(cherry picked from commit ab56b3c274)

Co-authored-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-07-13 15:48:13 +08:00
Jianbo Sun
657a374ded Fix: add the job of independently publishing chart packages (#4360) (#4361)
* Fix: add the job of independently publishing chart packages

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: add the job of independently publishing chart packages

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

Co-authored-by: barnettZQG <barnett.zqg@gmail.com>
2022-07-12 12:31:05 +08:00
Tianxin Dong
dfe12cd9ca [Backport-1.4]: optimize imports packages to reduce 75% cpu with better performance (#4355)
* Feat: optimize imports packages

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix test

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-07-11 18:33:53 +08:00
github-actions[bot]
cd42f67848 Fix: init container bug (#4354)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit 3f116c7f10)

Co-authored-by: Somefive <yd219913@alibaba-inc.com>
2022-07-11 17:03:49 +08:00
github-actions[bot]
61d2c588e3 Fix: health check use original ns if no override and original exists (#4353)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit f7923b5ac9)

Co-authored-by: Somefive <yd219913@alibaba-inc.com>
2022-07-11 16:49:24 +08:00
github-actions[bot]
b3dad698a5 Fix: enhance sidecar & init traits (#4343)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit dc9b18d119)

Co-authored-by: Somefive <yd219913@alibaba-inc.com>
2022-07-08 19:09:55 +08:00
github-actions[bot]
ec5159c2ca Fix: disable apprev status update when apprev disabled (#4338)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit b4c8e3265a)

Co-authored-by: Somefive <yd219913@alibaba-inc.com>
2022-07-07 15:51:35 +08:00
github-actions[bot]
a7b2b221e0 [Backport release-1.4] Fix: more cluster system info range. (#4333)
* more collect info

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit b27764e072)

* fix comments

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit 57805aa844)

Co-authored-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-07-06 16:15:31 +08:00
github-actions[bot]
caa495a5d9 [Backport release-1.4] Fix: ref-objects parameter with invalid field definition (#4330)
* fix: ref-objects parameter with invalid field definition

which cause validating webhook failed when use ref-objects component

Signed-off-by: jiangshantao <jiangshantao-dbg@qq.com>
(cherry picked from commit 13f328f362)

* fix: run make reviewable

Signed-off-by: jiangshantao <jiangshantao-dbg@qq.com>
(cherry picked from commit e09410af90)

Co-authored-by: jst <jst@meitu.com>
2022-07-06 14:18:17 +08:00
github-actions[bot]
15bea4fb64 Fix: fail to query the application logs with the special characters (#4308)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
(cherry picked from commit 0101396a42)

Co-authored-by: barnettZQG <barnett.zqg@gmail.com>
2022-07-01 20:15:09 +08:00
github-actions[bot]
1a094a4eea Fix: Jfrog Webhook Handler Cannot Get Right Image (#4306)
Merge branch 'release-1.4'

Apply suggestions from code review

Co-authored-by: lqs429521992 <lqs429521992@qq.com>

Update webhook.go

Fix: format

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
(cherry picked from commit b0d0a81731)

Co-authored-by: qingsliu <lqs429521992@qq.com>
2022-07-01 20:08:40 +08:00
github-actions[bot]
65b6f47330 Fix: fix the goroutine leak in http request (#4304)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
(cherry picked from commit 559ef83abd)

Co-authored-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-07-01 17:57:34 +08:00
github-actions[bot]
3a4cd2dca6 Fix: kube apply ignore userinfo for rt (#4300)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit 2a9e741d4c)

Co-authored-by: Somefive <yd219913@alibaba-inc.com>
2022-07-01 17:32:52 +08:00
github-actions[bot]
9fabd950e5 Chore: avoid update version file when publish smaller version (#4287)
Signed-off-by: qiaozp <chivalry.pp@gmail.com>
(cherry picked from commit 696234e1aa)

Co-authored-by: qiaozp <chivalry.pp@gmail.com>
2022-06-30 15:51:17 +08:00
github-actions[bot]
0a012b4d34 Feat: enhance ServiceAccount trait to support privileges (#4278)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit f8d4aca499)

Co-authored-by: Somefive <yd219913@alibaba-inc.com>
2022-06-29 15:00:32 +08:00
github-actions[bot]
7c231e6c48 Fix: support stdin and url for vela ql (#4277)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
(cherry picked from commit 235a4471c0)

Co-authored-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-06-29 14:53:26 +08:00
github-actions[bot]
36b6c3e7b5 Fix: trim quot char for velaql output (#4269)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
(cherry picked from commit fdd0c93dba)

Co-authored-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-06-27 16:52:26 +08:00
github-actions[bot]
4cc019722c [Backport release-1.4] Feat: enhance velq ql and support cue file (#4266)
* Feat: enhance velq ql and support cue file

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
(cherry picked from commit 70ed417326)

* add statement

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
(cherry picked from commit 25260eb9ef)

Co-authored-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-06-27 16:17:21 +08:00
github-actions[bot]
b040ae65da [Backport release-1.4] Fix: provider can't be added since 1.4 as context abused && Feat: add cache for remote terraform module in vela show (#4263)
* Fix: provider can't be added since 1.4 as context abused

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
(cherry picked from commit b05fb26418)

* Feat: add cache for remote terraform module in vela show

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
(cherry picked from commit 4722028530)

* Fix: add message for terraform resource in error state

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
(cherry picked from commit 438145b12e)

Co-authored-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-06-27 11:32:20 +08:00
github-actions[bot]
f0fb4ed099 Feat: omit service output if there's nothing (#4262)
Signed-off-by: Sumit Tembe <sumit.tembe@outlook.com>
(cherry picked from commit 8911143389)

Co-authored-by: Sumit Tembe <sumit.tembe@outlook.com>
2022-06-27 10:31:49 +08:00
github-actions[bot]
7f89d12059 environment from configmap or secret not mandatory in task and crontask componentdefinition (#4254)
Signed-off-by: Carmendelope <carmen@napptive.com>
(cherry picked from commit 35f130ea08)

Co-authored-by: Carmendelope <carmen@napptive.com>
2022-06-25 09:00:24 +08:00
github-actions[bot]
3c61bcb8f0 Fix: vela status print wrong STATUS (#4249)
Signed-off-by: StevenLeiZhang <zhangleiic@163.com>
(cherry picked from commit 5f4616a453)

Co-authored-by: StevenLeiZhang <zhangleiic@163.com>
2022-06-24 17:16:58 +08:00
github-actions[bot]
a14b536fd1 [Backport release-1.4] Feat: skip validating version check (#4247)
* skip validating version check

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit 4b94a967ae)

* add comments

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit bbdc19c472)

* fix comments

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit b5c705013d)

* fix test

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit adff7ef309)

* fix commments

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit cf4afee0d8)

* add compatible logic for old controller

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit 3f5a6d33b9)

* modify minimal

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit b020725112)

Co-authored-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-06-24 14:13:17 +08:00
github-actions[bot]
ba5a726854 [Backport release-1.4] Fix: fixed the problems of display definition in web and support displaying WorkflowStep and Policy (#4241)
* Fix: fixed the problems of display definition in web

Some ComponentDefinitions, TraitDefinitions, WorkflowDefinitions
failed to show the usage in web browser

Signed-off-by: Zheng Xi Zhou <zhengxi.zzx@alibaba-inc.com>
(cherry picked from commit c8985ccc3e)

* set printable type for {}

Signed-off-by: Zheng Xi Zhou <zhengxi.zzx@alibaba-inc.com>
(cherry picked from commit 87efb357b2)

* support WorkflowSteps and Policies

Signed-off-by: Zheng Xi Zhou <zhengxi.zzx@alibaba-inc.com>
(cherry picked from commit 8fb83152bc)

Co-authored-by: Zheng Xi Zhou <zhengxi.zzx@alibaba-inc.com>
2022-06-23 19:46:51 +08:00
github-actions[bot]
ffb9d06427 Fix: json-patch & json-merge-patch open result (#4229)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit 4ea3ca8d5b)

Co-authored-by: Somefive <yd219913@alibaba-inc.com>
2022-06-22 20:05:19 +08:00
barnettZQG
819dc26ace Chore: change the acr registry address (#4214) (#4216)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-06-22 14:46:13 +08:00
github-actions[bot]
5e3ab732df [Backport release-1.4] Feat: add the API for querying the image info (#4211)
* Feat: add the API for querying the image info

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
(cherry picked from commit e257cc6658)

* Fix: the code style

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
(cherry picked from commit 45e183b44b)

Co-authored-by: barnettZQG <barnett.zqg@gmail.com>
2022-06-21 15:05:15 +08:00
github-actions[bot]
62d5507499 Fix: cue patch remove temp var (#4208)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit 660e89b3a0)

Co-authored-by: Somefive <yd219913@alibaba-inc.com>
2022-06-20 17:38:34 +08:00
github-actions[bot]
c0daf688a6 Fix: clear namespace for cluster scoped resource for dispatching (#4195)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit 7c9de1b071)

Co-authored-by: Somefive <yd219913@alibaba-inc.com>
2022-06-16 14:50:44 +08:00
github-actions[bot]
48d19a2427 [Backport release-1.4] Feat: cli addon add registry add more git types (#4191)
* add more git types

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit 1d6a5eea22)

* fix comments

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix comments

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit 91122432ec)

Co-authored-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-06-16 12:23:15 +08:00
github-actions[bot]
4da8d49e60 Fix: fix the annotation for APIService (#4190)
Make the annatation for cert-manger be the same as the new version
secret

Signed-off-by: Zheng Xi Zhou <zhengxi.zzx@alibaba-inc.com>
(cherry picked from commit 62ef7b7f99)

Co-authored-by: Zheng Xi Zhou <zhengxi.zzx@alibaba-inc.com>
2022-06-16 11:02:35 +08:00
github-actions[bot]
4db9e89816 Fix: enhance CLI for managing OCM clusters (#4178)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit 0662e2a79d)

Co-authored-by: Somefive <yd219913@alibaba-inc.com>
2022-06-15 11:23:12 +08:00
github-actions[bot]
667053409d Fix: fix trait customStatus error when controlPlanOnly=true (#4177)
Signed-off-by: fourierr <maxiangboo@qq.com>
(cherry picked from commit 38648fcf30)

Co-authored-by: fourierr <maxiangboo@qq.com>
2022-06-15 11:22:15 +08:00
github-actions[bot]
eb9ddaabd3 [Backport release-1.4] Feat: optimize the API that list and detail definition (#4160)
* Fix: ignore the error that the definition API schema is not exist

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
(cherry picked from commit 855716d989)

* Fix: disable the cache when listing the definitions

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
(cherry picked from commit f25882974d)

Co-authored-by: barnettZQG <barnett.zqg@gmail.com>
2022-06-13 13:25:41 +08:00
github-actions[bot]
f11a94612f Feat: support insecure cluster (#4159)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit 8abedf3005)

Co-authored-by: Somefive <yd219913@alibaba-inc.com>
2022-06-13 13:15:34 +08:00
github-actions[bot]
56f9d7cb9c [Backport release-1.4] Fix: mongoDB datastore can't list special email user(#4104) (#4148)
* Add description column to vela trait and component command (#4107)

Signed-off-by: Holger Protzek <holger.protzek@springernature.com>
Signed-off-by: fengkang <fengkangb@digitalchina.com>
(cherry picked from commit 9c57ae2a15)

* Fix: mongoDB datastore can't list special email user(#4104)

Signed-off-by: fengkang <fengkangb@digitalchina.com>
(cherry picked from commit ec07790935)

* Fix: mongoDB datastore can't list special email user(#4104)
     change the function name from verifyUserValue to verifyValue
     add test case to test kubeapi.go:87

Signed-off-by: fengkang <fengkangb@digitalchina.com>
(cherry picked from commit 4c55e0688f)

* Fix: mongoDB datastore can't list special email user(#4104)
     change the function name from verifyUserValue to verifyValue
     add test case to test kubeapi.go:87
     add delete test case

Signed-off-by: fengkang <fengkangb@digitalchina.com>
(cherry picked from commit b2e76001c9)

* Fix: mongoDB datastore can't list special email user(#4104)
     optimize the test case

Signed-off-by: fengkang <fengkangb@digitalchina.com>
(cherry picked from commit a63c96fae1)

* Fix: mongoDB datastore can't list special email user(#4104)
     optimize the test case use user
     change all verify timing in kubeapi

Signed-off-by: fengkang <fengkangb@digitalchina.com>
(cherry picked from commit 2ede4f7b0c)

* Fix: mongoDB datastore can't list special email user(#4104)

Signed-off-by: fengkang <fengkangb@digitalchina.com>
(cherry picked from commit 356150642f)

* Fix: mongoDB datastore can't list special email user(#4104)

Signed-off-by: fengkang <fengkangb@digitalchina.com>
(cherry picked from commit 48a9e55937)

Co-authored-by: Holger Protzek <3481523+hprotzek@users.noreply.github.com>
Co-authored-by: fengkang01 <fengkangb@digitalchina.com>
2022-06-10 15:33:53 +08:00
github-actions[bot]
fbbc666019 [Backport release-1.4] Fix: api not exist don't break whole query process (#4137)
* make resource tree more

resourceTree more robust

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit 327ec35cf4)

* log the error

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit 1136afe78c)

Co-authored-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-06-09 11:36:57 +08:00
github-actions[bot]
d0788254cb Fix: vela addon registry get panic (#4136)
Signed-off-by: ZhongsJie <zhongsjie@gmail.com>
(cherry picked from commit 0d329e394e)

Co-authored-by: ZhongsJie <zhongsjie@gmail.com>
2022-06-09 10:19:28 +08:00
github-actions[bot]
c72a6aef87 Chore(deps): Bump github.com/containerd/containerd from 1.5.10 to 1.5.13 (#4125)
Bumps [github.com/containerd/containerd](https://github.com/containerd/containerd) from 1.5.10 to 1.5.13.
- [Release notes](https://github.com/containerd/containerd/releases)
- [Changelog](https://github.com/containerd/containerd/blob/main/RELEASES.md)
- [Commits](https://github.com/containerd/containerd/compare/v1.5.10...v1.5.13)

---
updated-dependencies:
- dependency-name: github.com/containerd/containerd
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit 9982c7ceaa)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-08 12:56:05 +08:00
github-actions[bot]
195b7fe0c7 [Backport release-1.4] Fix: bump oamdev/kube-webhook-certgen to v2.4.1 to support arm64 (#4117)
* Fix: split the image build process to make it faster

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
(cherry picked from commit 339977e874)

* Fix: bump oamdev/kube-webhook-certgen to v2.4.1 to support arm64

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
(cherry picked from commit dc054e2ce2)

Co-authored-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-06-05 15:10:48 +08:00
github-actions[bot]
33c9e3b170 Fix: change the image name in ghcr to align with docker image registry (#4111)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
(cherry picked from commit 71776c374b)

Co-authored-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-06-04 14:19:21 +08:00
github-actions[bot]
ea0508a634 [Backport release-1.4] Fix: hold the force uninstalling process untill the last addon been deleted (#4103)
* hold the force uninstalling process untill the last addon been deleted

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix lint

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix comments

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix comments

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit 1d4266432c)

* fix comments

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix lint

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit cecd8c28d0)

* add period

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit 62e4dac538)

Co-authored-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-06-02 16:29:02 +08:00
github-actions[bot]
23e29aa62a Fix: vela provider delete command's example is wrong (#4099)
Signed-off-by: StevenLeiZhang <zhangleiic@163.com>
(cherry picked from commit 9b66f90100)

Co-authored-by: StevenLeiZhang <zhangleiic@163.com>
2022-06-02 11:04:34 +08:00
github-actions[bot]
ed2cb80219 Fix: the new default values do not take effect when upgrading the vela core (#4097)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
(cherry picked from commit 0ccbbb2636)

Co-authored-by: barnettZQG <barnett.zqg@gmail.com>
2022-06-02 10:23:30 +08:00
github-actions[bot]
1a3d5debd5 Fix: show the default password (#4095)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
(cherry picked from commit c3cfc4729e)

Co-authored-by: barnettZQG <barnett.zqg@gmail.com>
2022-06-02 10:14:43 +08:00
github-actions[bot]
d4a82fe292 Fix: load the provider subcommands on demand (#4090)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
(cherry picked from commit 52bbf937bb)

Co-authored-by: barnettZQG <barnett.zqg@gmail.com>
2022-06-01 16:32:53 +08:00
github-actions[bot]
963ae400fa Feat: use deferred config in CLI (#4085)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit 478434003b)

Co-authored-by: Somefive <yd219913@alibaba-inc.com>
2022-06-01 10:24:57 +08:00
github-actions[bot]
8f7a8258fe [Backport release-1.4] Fix(addon): more note info and filter prerelease addon version (#4082)
* more note info and filter prerelease addon version

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit 6eefcd2c14)

* wrap the error optimize the show info

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit 00ad8304c8)

* fix golint

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit 9de32d5474)

Co-authored-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-05-31 18:56:54 +08:00
github-actions[bot]
70bc306678 Chore: hide some definitions in VelaUX (#4080)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
(cherry picked from commit 68b8db1d00)

Co-authored-by: barnettZQG <barnett.zqg@gmail.com>
2022-05-31 16:41:54 +08:00
github-actions[bot]
57428bbc8d Fix: change the region to customRegion (#4079)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
(cherry picked from commit 9f0008f001)

Co-authored-by: barnettZQG <barnett.zqg@gmail.com>
2022-05-31 16:19:37 +08:00
github-actions[bot]
e08541ca5c Fix: Improve vela provider add response (#4078)
Signed-off-by: StevenLeiZhang <zhangleiic@163.com>
(cherry picked from commit 39e96d287b)

Co-authored-by: StevenLeiZhang <zhangleiic@163.com>
2022-05-31 16:16:54 +08:00
github-actions[bot]
521a4edc10 Feat: vela ql into vela-cli (#4077)
Signed-off-by: Shukun Zhang <2236407598@qq.com>
(cherry picked from commit 38886a0ee2)

Co-authored-by: Shukun Zhang <2236407598@qq.com>
2022-05-31 16:13:00 +08:00
github-actions[bot]
82b330710c Fix: upgrade from v1.3+ to v1.4+ with new secret for cluster-gateway (#4076)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
(cherry picked from commit 161588c64e)

Co-authored-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-05-31 16:05:36 +08:00
github-actions[bot]
4a649f2cf1 Fix: Can not delete terraform provider (#4074)
Signed-off-by: StevenLeiZhang <zhangleiic@163.com>
(cherry picked from commit de79442f53)

Co-authored-by: StevenLeiZhang <zhangleiic@163.com>
2022-05-31 15:21:17 +08:00
github-actions[bot]
f6664106a2 Fix: remove the tcp protocol prefix in the endpoint string (#4068)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
(cherry picked from commit 8852ac691a)

Co-authored-by: barnettZQG <barnett.zqg@gmail.com>
2022-05-30 20:17:47 +08:00
github-actions[bot]
bbe2a2dec6 [Backport release-1.4] Fix: CI workflow for rollout acr image build and push (#4067)
* fix the rollout acr image

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit f6f4a36909)

* fix

test

test

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

finish fix

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit 1ce37d8ce1)

* merge two sction

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit adf2517e72)

Co-authored-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-05-30 19:35:47 +08:00
github-actions[bot]
404c7f6975 Fix: set workflow to finish before record in controller revision (#4066)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
(cherry picked from commit 7042c63e90)

Co-authored-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-05-30 19:30:03 +08:00
github-actions[bot]
2edfbabdab Fix: fix the dependency gc policy to reverse dependency (#4065)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
(cherry picked from commit 45cf38edb0)

Co-authored-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-05-30 19:29:42 +08:00
github-actions[bot]
e7b304de3b Fix: the policies can not be deleted (#4062)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
(cherry picked from commit 0c11a69779)

Co-authored-by: barnettZQG <barnett.zqg@gmail.com>
2022-05-30 16:23:03 +08:00
github-actions[bot]
b8b54baf26 Fix: fail to get the endpoints via the velaql (#4058)
Signed-off-by: yangsoon <songyang.song@alibaba-inc.com>
(cherry picked from commit a40d99f8d8)

Co-authored-by: yangsoon <songyang.song@alibaba-inc.com>
2022-05-30 15:52:38 +08:00
github-actions[bot]
87b6c9416e [Backport release-1.4] Feat: minimize controller privileges & enforce authentication in multicluster e2e test (#4044)
* Feat: enable auth in multicluster test & restrict controller privileges while enabling authentication

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit fc3fc39eb0)

* Feat: fix statekeep permission leak & comprev cleanup leak

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit eaa317316d)

* Fix: use user info in ref-object select

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit 67463d13fe)

* Feat: set legacy-rt-gc to disabled by default

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit 77f1fc4286)

* Fix: pending healthscope with authentication test

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit c21ae8ac6a)

Co-authored-by: Somefive <yd219913@alibaba-inc.com>
2022-05-28 01:27:35 +08:00
qiaozp
cd171d27db Fix: release script condition syntax (#4043)
Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2022-05-27 23:29:31 +08:00
github-actions[bot]
6d8be8b061 [Backport release-1.4] Feat: add if in workflow (#4041)
* Feat: add if in workflow struct

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
(cherry picked from commit e800ed3e98)

* Feat: implement the if in workflow

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
(cherry picked from commit e171fa9212)

* Feat: support dependency and skip for suspend step

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
(cherry picked from commit 6c045dc593)

* Fix: fix the rebase from sub steps

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
(cherry picked from commit f6746e7d26)

* Fix: fix the lint

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
(cherry picked from commit 9cb9887327)

* Feat: support if in sub steps

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
(cherry picked from commit c41ccfabb9)

* Feat: add tests in application controller

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
(cherry picked from commit b308d89912)

* Fix: fix the lint

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
(cherry picked from commit 2c784b185a)

* Test: add more tests in discover and custom

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
(cherry picked from commit 39f49fd901)

* Lint: fix lint

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
(cherry picked from commit f5149c859a)

* Tests: add more tests in application controller

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
(cherry picked from commit 255f4014c2)

* Fix: change failed after retries into reason

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
(cherry picked from commit dfbba699c5)

* Fix: fix the terminate cli

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
(cherry picked from commit 14192e1fb3)

* fix lint

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
(cherry picked from commit d1dd602cc8)

* remove the terminate workflow to pkg and add feature gates

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
(cherry picked from commit bf5c8d138a)

* resolve comments

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
(cherry picked from commit 8a1b499f24)

* nit fix

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
(cherry picked from commit 784e5f5db3)

* make finish condition more clear

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
(cherry picked from commit b4c1ca36b0)

Co-authored-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-05-27 22:02:02 +08:00
github-actions[bot]
e93912acff Fix: env trait error when existing env exists (#4040)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit 2d5a16d45f)

Co-authored-by: Somefive <yd219913@alibaba-inc.com>
2022-05-27 21:12:35 +08:00
github-actions[bot]
e48e39987f some small fixes (#4034)
Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit 99af188f91)

Co-authored-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-05-27 18:38:12 +08:00
github-actions[bot]
6264a66021 Feat: add the creating and deleting permission APIs (#4032)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
(cherry picked from commit 193515dfaf)

Co-authored-by: barnettZQG <barnett.zqg@gmail.com>
2022-05-27 17:42:49 +08:00
github-actions[bot]
9191127e01 Feat: add affinity trait to merge node and pod affinity (#4030)
Signed-off-by: ZhongsJie <zhongsjie@gmail.com>
(cherry picked from commit a4966310ae)

Co-authored-by: ZhongsJie <zhongsjie@gmail.com>
2022-05-27 17:39:10 +08:00
github-actions[bot]
1b047c10ba Fix: error message of vela init env is not clear (#4029)
Signed-off-by: fourierr <maxiangboo@qq.com>
(cherry picked from commit 378fdbdafb)

Co-authored-by: fourierr <maxiangboo@qq.com>
2022-05-27 17:35:23 +08:00
github-actions[bot]
02a1d390c4 Fix: vela port-forward not working for webservice component (#4028)
Signed-off-by: fourierr <maxiangboo@qq.com>
(cherry picked from commit 391532dd24)

Co-authored-by: fourierr <maxiangboo@qq.com>
2022-05-27 17:15:51 +08:00
github-actions[bot]
62866e19d8 Fix: unknown field ignoreTerraformComponent (#4027)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
(cherry picked from commit 0c27fe8199)

Co-authored-by: barnettZQG <barnett.zqg@gmail.com>
2022-05-27 17:15:23 +08:00
github-actions[bot]
3dc645ed52 Fix: velaql fail to parse query result to json format (#4025)
Signed-off-by: yangsoon <songyang.song@alibaba-inc.com>
(cherry picked from commit 6c1576c5a6)

Co-authored-by: yangsoon <songyang.song@alibaba-inc.com>
2022-05-27 16:57:38 +08:00
github-actions[bot]
e20ef02a6a [Backport release-1.4] Feat: enhance controller auth by removing useless features & add authentication for componentrevision+healthcheck (#4023)
* Feat: use application identity in gc & componentrevision & collectHealthStatus

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit 63fc4bcc69)

* Chore: remove useless features and roles

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit f4ef77b2b3)

* Fix: remove DELETE from mutating webhook

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit 75f3d5dc35)

* Chore: enhance deploy error display

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit e69079bdae)

* Fix: e2e test vela cli output match & controllerrevision recycle for serviceaccount impersonation

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit 05b85573a2)

Co-authored-by: Somefive <yd219913@alibaba-inc.com>
2022-05-27 16:00:04 +08:00
github-actions[bot]
371affb389 Fix: step group documentation update and bug fix of firstExecuteTime not record (#4021)
Signed-off-by: Qiang Zheng <zhengq20018@cmbchina.com>

Fix: step group documentation update and bug fix of firstExecuteTime not record

Signed-off-by: Qiang Zheng <zhengq20018@cmbchina.com>
(cherry picked from commit 751dd181be)

Co-authored-by: Qiang Zheng <zhengq20018@cmbchina.com>
2022-05-27 11:50:58 +08:00
github-actions[bot]
b35145be82 Fix: fail to query the count with mongodb (#4014)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
(cherry picked from commit ee2b446b5c)

Co-authored-by: barnettZQG <barnett.zqg@gmail.com>
2022-05-27 10:56:13 +08:00
github-actions[bot]
d92c8844ba [Backport release-1.4] Feat: optimize some logic of topology resource-tree (#4010)
* format

finish tests

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit e7c8c37237)

* add comments

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

no lint

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit e8c5185534)

* add pvc

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit c972fe0cd3)

* go mod tidy

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit 8bad8f417a)

* fix panic bug

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix panic

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit a5e6024abf)

Co-authored-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-05-26 22:18:12 +08:00
github-actions[bot]
82aaf5098b Fix: optimized the version comparison (#4006)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
(cherry picked from commit 8bfab07f8f)

Co-authored-by: barnettZQG <barnett.zqg@gmail.com>
2022-05-26 19:34:47 +08:00
github-actions[bot]
7399666275 Fix: add some default permissions about the configuration (#4005)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
(cherry picked from commit 595ccea622)

Co-authored-by: barnettZQG <barnett.zqg@gmail.com>
2022-05-26 17:27:06 +08:00
github-actions[bot]
0b394e766b [Backport release-1.4] Feat: upgrade cluster-gateway version (#4004)
* Feat: upgrade cluster-gateway version

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit e677ef707a)

* Fix: multicluster test unstable

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit 09d43391ef)

Co-authored-by: Somefive <yd219913@alibaba-inc.com>
2022-05-26 17:26:34 +08:00
github-actions[bot]
eb386ce9f7 Feat: support impersonation for application in apiserver (#4000)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
(cherry picked from commit 10dc83b60a)

Co-authored-by: Somefive <yd219913@alibaba-inc.com>
2022-05-26 16:55:09 +08:00
github-actions[bot]
e4fa5a5cf1 Fix: add Target fail by fetch terraform-provider error (#3999)
Signed-off-by: StevenLeiZhang <zhangleiic@163.com>
(cherry picked from commit 4a44ba2550)

Co-authored-by: StevenLeiZhang <zhangleiic@163.com>
2022-05-26 15:46:07 +08:00
github-actions[bot]
165e011bd0 Fix: delete Project fail (#3996)
Signed-off-by: StevenLeiZhang <zhangleiic@163.com>
(cherry picked from commit 87347f128d)

Co-authored-by: StevenLeiZhang <zhangleiic@163.com>
2022-05-26 11:31:40 +08:00
github-actions[bot]
9489b8d511 Fix: don't update version file when publish alpha/beta version (#3995)
Signed-off-by: qiaozp <chivalry.pp@gmail.com>
(cherry picked from commit 2c2809b975)

Co-authored-by: qiaozp <chivalry.pp@gmail.com>
2022-05-26 11:31:16 +08:00
github-actions[bot]
d95942c992 Feat: build docker image(oamdev/vela-cli) for vela-cli (#3991)
fixes #1392

One of the use case could be https://github.com/kubevela/kubevela/discussions/3821

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
(cherry picked from commit 1c46dec107)

Co-authored-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-05-26 10:30:37 +08:00
github-actions[bot]
c6aa8ddbbc [Backport release-1.4] Fix: initialize kube config multiple times (#3990)
* Fix: initialize kube config multiple times

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
(cherry picked from commit ef38b04a07)

* Fix: e2e test case

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
(cherry picked from commit 9e41954a75)

Co-authored-by: barnettZQG <barnett.zqg@gmail.com>
2022-05-26 10:21:16 +08:00
github-actions[bot]
c370ef04f3 [Backport release-1.4] Feat: mechanism to let user add relationship mapping rule by configmap (#3982)
* WIP add some code

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

small fix

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix all tests

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit 0b3c72bd66)

* add comment

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix ci

delete useless code

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

go mod vendor

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit f5a0bacee6)

* fix failed test

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit 65b6ee66ce)

* more test

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
(cherry picked from commit a1f3794ee0)

Co-authored-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-05-25 16:45:42 +08:00
wyike
1d82378053 Fix: velaql appliedResource bug and add e2e-test (#3965)
* fix bug and add e2e-test

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* fix comments

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-05-24 17:58:53 +08:00
barnettZQG
5daec5b017 Feat: support to configure the qps and burst (#3961)
* Feat: support to configure the qps and burst

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: code style

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: change the comment

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-05-24 16:36:07 +08:00
Somefive
cb5630af48 Fix: enhance grant privileges output (#3962)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-05-24 14:31:32 +08:00
Jianbo Sun
cdfdc7febd Deprecate: oam runtime is no longer maintained, users should use kubevela instead (#3958)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-05-24 10:24:22 +08:00
Diego Pinheiro
3f725cab01 Chore: Bump kubectl sdk (#3960)
* bump kubectl sdk version

Signed-off-by: diego-milhomes <diego.milhomes@stackspot.com>

* bump kubectl sdk version

Signed-off-by: s4rd1nh4 <diego.milhomes@gmail.com>

* bump kubectl sdk version

Signed-off-by: s4rd1nh4 <diego.milhomes@gmail.com>

Co-authored-by: diego-milhomes <diego.milhomes@stackspot.com>
2022-05-24 09:58:28 +08:00
Somefive
897f07fbec Feat: vela kube delete (#3952)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-05-24 09:38:22 +08:00
Tianxin Dong
a855eddedc Fix: refactor the step group in workflow (#3956)
* Fix: refactor the step group in workflow

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Feat: add tests for discover

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-05-23 20:17:13 +08:00
Somefive
7976b32ba4 Fix: grant privilege readonly incorrect binding (#3953)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-05-23 17:23:08 +08:00
wyike
ec0b12861b Feat: velaql provider for get application resource-tree (#3944)
* first commit

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

refactor code

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

finish all tests

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

resolve confilict

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

revert code

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix golint error

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix checkdiff

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* add more test for pod status

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* cue fmt

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* add filter

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* fix comments

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix comments

* fix

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix log error

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-05-23 16:41:19 +08:00
Somefive
2818f2ac4c Fix: listKubeCluster page=0 (#3951)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-05-23 14:06:55 +08:00
barnettZQG
09ce919b2b Feat: Refactoring the API Server module for better layering (#3945)
* Feat: Refactoring the API Server module for better layering

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: code style

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: code style

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: fix the lint errors

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-05-23 12:17:28 +08:00
JarHMJ
02903cd1c4 Feat: support download kustomize in local folder (#3949)
Signed-off-by: huangminjie <minjie.huang@daocloud.io>
2022-05-23 10:58:08 +08:00
qiaozp
75700e7dc8 Feat: make gateway trait's host field optional (#3912)
* Feat: make gateway trait's host field optional

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* modity hint

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* revert

Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2022-05-23 10:55:43 +08:00
Somefive
c5b28cb4b3 Feat: vela auth grant-privileges (#3943)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-05-23 10:47:13 +08:00
zq200618
7d9c647b1a Feat: support step group with substep in the workflow (#3772)
Signed-off-by: zhengq2006 <zhengq200618@cmbchina.com>

workflow substep develop

Feat: support step group with substep in the workflow

Signed-off-by: Qiang Zheng <zhengq20018@cmbchina.com>

Feat: support step group with substep in the workflow

Signed-off-by: Qiang Zheng <zhengq20018@cmbchina.com>

Feat: support step group with substep in the workflow

Signed-off-by: Qiang Zheng <zhengq20018@cmbchina.com>

Feat: support step group with substep in the workflow

Signed-off-by: Qiang Zheng <zhengq20018@cmbchina.com>

Feat: support step group with substep in the workflow

Signed-off-by: Qiang Zheng <zhengq20018@cmbchina.com>

Feat: support step group with substep in the workflow

Signed-off-by: Qiang Zheng <zhengq20018@cmbchina.com>

Feat: support step group with substep in the workflow

Signed-off-by: Qiang Zheng <zhengq20018@cmbchina.com>

Feat: support step group with substep in the workflow

Signed-off-by: Qiang Zheng <zhengq20018@cmbchina.com>

Feat: support step group with substep in the workflow

Signed-off-by: Qiang Zheng <zhengq20018@cmbchina.com>

Feat: support step group with substep in the workflow

Signed-off-by: Qiang Zheng <zhengq20018@cmbchina.com>

Feat: support step group with substep in the workflow

Signed-off-by: Qiang Zheng <zhengq20018@cmbchina.com>

Feat: support step group with substep in the workflow

Signed-off-by: Qiang Zheng <zhengq20018@cmbchina.com>

Feat: support step group with substep in the workflow

Signed-off-by: Qiang Zheng <zhengq20018@cmbchina.com>

Feat: support step group with substep in the workflow

Signed-off-by: Qiang Zheng <zhengq20018@cmbchina.com>

Feat: support step group with substep in the workflow

Signed-off-by: Qiang Zheng <zhengq20018@cmbchina.com>
2022-05-23 10:26:21 +08:00
Jianbo Sun
493a609864 Chore: trim updated docs, make the source clean (#3946)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-05-22 15:13:41 +08:00
Noorain Panjwani
564cbaf5d4 Feat(cli): added the offline flag to the dry-run command (#3875)
* Feat(cli): Added an offline flag to the 'dry-run' command

Signed-off-by: Noorain Panjwani <noorain.panjwani@gmail.com>

* Using a fake client now for offline mode

Signed-off-by: Noorain Panjwani <noorain.panjwani@gmail.com>
2022-05-21 23:00:45 +08:00
Oiar
250f395109 Feat: gateway trait support https protocol (#3832) (#3925)
Signed-off-by: Oiar <643921472@qq.com>
2022-05-21 22:59:57 +08:00
JarHMJ
55f82781ce Feat: support chart value to disable conversation on application crd (#3890)
Signed-off-by: huangminjie <minjie.huang@daocloud.io>
2022-05-21 22:57:38 +08:00
StevenLeiZhang
ba7c22a37e Fix: addon compare vela version failure (#3928)
Signed-off-by: StevenLeiZhang <zhangleiic@163.com>
2022-05-21 00:25:46 +08:00
Will Li
fecdc23fd3 Fix(cli): try to get mapValue type name (#2474)
* Fix(cli): try to get mapValue type name

Signed-off-by: Cuichen Li <cuichli@cisco.com>

* Fix: update output format based on comment and fix typo

Signed-off-by: Cuichen Li <cuichli@cisco.com>

* Style: make the change reviewable

Signed-off-by: Cuichen Li <cuichli@cisco.com>

* Fix: test

Signed-off-by: Cuichen Li <cuichli@cisco.com>
2022-05-21 00:25:20 +08:00
Zheng Xi Zhou
334446c264 Feat: support force delete Terraform typed application (#3929)
* Feat: support force delete Terraform typed application

If a Terraform typed application hangs on deletion, it could be forced to
delete by command line `vela delete xxx --force`

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix copyright

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* Upgrade terraform controller api version

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* add one more tests

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix two unit-tests

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-05-20 18:17:10 +08:00
Jianbo Sun
6bef810dc3 Fix: remove last-applied-config annotation for configmap and secret (#3939)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-05-20 17:08:36 +08:00
Zheng Xi Zhou
8ab311f2ff Feat: API of retrieving image registry secrets by image and its tag (#3719)
* Feat: check existence of an image

Checked existence of an image in
- public docker hub
- private image registry

Add an API to retrieve image registry secrets by an image and or
its tag. In veluaUX, it will help auto-fill uesrs' imagePullSecrets
fields

Fix https://github.com/kubevela/velaux/issues/436

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* replace the implementation with libary google/go-containerregistry

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* address comments

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* add more testcases

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix UT

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-05-20 15:23:58 +08:00
Somefive
0cd1ae155c Feat: vela kube apply --cluster (#3931)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-05-20 12:11:58 +08:00
ivyilike
1657326c38 Feat: webservice support healthProbe With http (#3930)
Signed-off-by: ivyilike <pww123@cmbchina.com>
2022-05-19 20:54:21 +08:00
Siege Lion
9436e7ffa0 Fix: fix a spelling error of velaQL usage document (#3932) 2022-05-19 20:53:51 +08:00
Charlie Chiang
eb5f416e4e Feat: add more detailed output for vela addon status (#3876)
* Feat: show available versions and dependencies in `addon status`

Also prettify output

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Feat: show addon dependencies in `addon status`

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Style: adjust `addon status` output

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Style: remove spaces in `addon status` output

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Fix: truncate string if available versions too long

if a local addon has been installed, the AVAILABLE-VERSIONS column of the registry one will not truncate. this commit fixes that.

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Perf: avoid unnecessary network requests to improve performance

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Feat: do not display remote info for local addons

Limit Description length when using `addon list`

Use simpler method to get addon info

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Test: add tests for cli/addon limitStringLength, generateParameterString

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Fix: fix output being empty if the searched addon does not exist anywhere

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Test: add tests for generateAddonInfo

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Test: add tests for generateAddonInfo and FindWholeAddonPackagesFromRegistry

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Style: format code

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Test: correct unnecessarily focused tests

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Style: remove unused code blocks

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Refactor: remove unnecessary output to stdout

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Test: remove added registry after tests has been completed

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Test: new RegistryDataStore every test, to avoid panics

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Test: fix failing tests due to incorrect registry name

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Refactor: move logic to get addon package out of where it is supposed to get addon status

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Test: add test cases for secret-getting in TestGetAddonStatus

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Feat: return error if an addon is not installed, nor does it exist in the registry

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Refactor: rename GetAddonWholePackage to GetDetailedAddon as per wonderflow

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Feat: require --verbose option to show details in `vela addon status`

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Feat: require --verbose option to show details in `vela addon status`

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* chore: run make reviewable

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Test: fix configmap being already existed

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Fix: fix output show addon does not exist when verbose is off and an addon is not installed, but it does exist in the registry

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Style: fix golangci-lint issues

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>
2022-05-19 16:21:36 +08:00
Kethavath Siva Naik
1cc5c54d32 Fix: corrected minor typo in code (#3913)
Signed-off-by: Kethavath Siva Naik <sivanaikk0903@gmail.com>
2022-05-19 10:55:41 +08:00
Somefive
12ec62dd65 Feat: vela auth list-privileges (#3923)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-05-18 20:57:39 +08:00
barnettZQG
1822e03505 Feat: support filter the resource by kind or apiVersion (#3901)
* Feat: support filter the resource by kind or apiVersion

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: update the env workflow after deleting a component

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-05-18 19:39:08 +08:00
Tianxin Dong
d9aa541f12 Feat: add the design of if condition in workflow (#3922)
* Feat: add the design of if condition in workflow

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* make the if example more clear

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-05-18 17:43:53 +08:00
Somefive
9d6706d48e Feat: vela auth gen-kubeconfig (#3911)
* Feat: vela create kubeconfig

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Chore: refactor

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-05-18 16:14:00 +08:00
Xiangbo Ma
fc078bbd93 Feat: extend apply-once to allow specified path configuration to drift (#3899)
Signed-off-by: fourierr <maxiangboo@qq.com>
2022-05-17 16:29:16 +08:00
StevenLeiZhang
f7687e3506 Fix: update API document (#3915)
Signed-off-by: StevenLeiZhang <zhangleiic@163.com>
2022-05-17 11:53:29 +08:00
Somefive
4d73715422 Feat: controller auto-impersonation (#3906)
* Feat: add featrue flags for controller auto impersonation

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Feat: add auto-detect for kubeconfig identity

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-05-16 18:05:56 +08:00
barnettZQG
30308fa8a1 Feat: add the component name field for the trigger (#3884)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-05-16 13:10:46 +08:00
ZhongsJie
0442baf932 Feat: create the definition for built-in policies (#3894)
Signed-off-by: Shijie Zhong <zhongsjie@cmbchina.com>
2022-05-16 13:10:26 +08:00
barnettZQG
987b369bee Fix: fail to create the cloud service application (#3893)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-05-16 11:10:06 +08:00
Afzal Ansari
3aa16bb5d1 Refactor: Minor changes on shell script to support double quotes format and [ ] POSIX (#3889)
* refactors sync sh

Signed-off-by: afzal442 <afzal442@gmail.com>

* fixes POSIX sh, as [[ ]] is undefined.

Signed-off-by: afzal442 <afzal442@gmail.com>
2022-05-14 13:21:28 +08:00
barnettZQG
3fdf39c8e1 Feat: change the default workflow step with deploy type (#3878)
* Feat: change the default workflow step with deploy type

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: format the cue script of the deploy step

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: unit test case

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: error words

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-05-13 14:24:14 +08:00
ZhongsJie
a19e90ea2c Fix: modify the template definition to solve the trait cli error Signed-off-by: Shijie Zhong <zhongsjie@cmbchina.com> (#3877)
Signed-off-by: ZhongsJie <zhongsjie@gmail.com>
2022-05-13 10:52:23 +08:00
Tianxin Dong
f447e6c642 Fix: delete context when patch outputs in trait (#3854)
* Fix: delete context when patch outputs in trait

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* use patchOutputs instead of outputs in patch

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix typo

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-05-12 18:38:57 +08:00
Somefive
0d3d75f29a Fix: use vela prism for accessing clusters as alternative (#3866)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-05-12 17:12:58 +08:00
cnfatal
a8ad79b1f2 Feat(charts): add cert-manager support for "cluster-gateway" component in chart "vela-core" (#3848)
* fix(charts): remove a not built in cap "containerizedwokrload" from disableCaps

Signed-off-by: cnfatal <cnfatal@gmail.com>

* Perf(charts): mv cluster-gateway to a dir

Signed-off-by: cnfatal <cnfatal@gmail.com>

* Feat(charts): support cert-manager on "cluster-gateway"

changes:
1. replace flag "--cert-dir" with "--tls-cert-file" and "--tls-private-key-file" due to cert-manager Certificate only support "k8s" style tls secret(with files "tls.crt","tls.key","ca.crt").
2. add cert-manager cainject annotation for APIService "v1alpha1.cluster.core.oam.dev"
3. add cert-manager Certificate for secret  "<release>-cluster-gateway-tls"
4. fix a typo in `values.yaml` , "optimize.optimizeCachedGvks" -> "optimize.cachedGvks" withch cause helm template failed

Signed-off-by: cnfatal <cnfatal@gmail.com>
2022-05-12 13:10:41 +08:00
Somefive
967bc7786d Fix: use vela prism for accessing clusters as alternative (#3849)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-05-12 10:47:35 +08:00
barnettZQG
fc5bcc6c33 Fix: the endpoints is repeated and can not query the ingress with v1 version (#3862)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-05-11 14:27:38 +08:00
JarHMJ
02f5a96a72 Feat: run image scan CI for every pull request and fix CVEs in time (#3855)
Signed-off-by: huangminjie <minjie.huang@daocloud.io>
2022-05-11 14:09:10 +08:00
Xiangbo Ma
1989b2f4a8 Fix: whencontrolPlaneOnly=true, There are probability to report error "resource not found" (#3850)
Signed-off-by: fourierr <maxiangboo@qq.com>
2022-05-11 13:59:02 +08:00
Somefive
0529ad8581 Fix: ignore no kind match error in gc (#3861)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-05-11 12:41:14 +08:00
Carmen de Lope Contreras
f808827882 Fix(makefile): update kustomize version to be available for darwin-arm64 (#3846)
* Fix(makefile): update kustomize version to be available for darwin-arm64

Signed-off-by: Carmendelope <carmen@napptive.com>

* make reviewable changes

Signed-off-by: Carmendelope <carmen@napptive.com>
2022-05-11 10:03:16 +08:00
Tianxin Dong
20f1d54bf3 Fix: add parse comments in lookupScript to make patch work (#3839)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-05-10 13:36:44 +08:00
Afzal Ansari
e6d47d3758 refactors http write resp to use 'html/template' instead (#3829)
Signed-off-by: afzal442 <afzal442@gmail.com>
2022-05-10 13:36:00 +08:00
Charlie Chiang
a598272491 Fix: resolve locally installed addons not being displayed (#3827)
* Fix: resolve locally installed addons not being displayed

Addressed an issue where locally installed addons may not be displayed
if one with the same name is in the registry

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Style: revert incorrect auto-formatting

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Refactor: change original variable name to avoid confusions

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Test: add tests for outputs from `vela addon list`
when an addon with the same as registry one is locally installed

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Refactor: use more concise method to check length

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Test: add one more test condition for dual addons
i.e. local and registry

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Refactor: simplify testing logic by removing unneeded looping

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>

* Style: add missing license header

Signed-off-by: Charlie Chiang <charlie_c_0129@outlook.com>
2022-05-10 13:35:12 +08:00
StevenLeiZhang
b260348f30 Fix: sensitive field of addon registry is exposed (#3837)
Signed-off-by: StevenLeiZhang <zhangleiic@163.com>
2022-05-10 10:08:28 +08:00
StevenLeiZhang
938fde9bba Fix: The new addon can not shown in the Addons page (#3835)
Signed-off-by: StevenLeiZhang <zhangleiic@163.com>
2022-05-10 10:02:13 +08:00
Zheng Xi Zhou
7bfcd6acc5 Fix: don't override user definied region (#3503)
* Fix: don't override user definied `region`

Fix #https://github.com/oam-dev/kubevela/issues/3384

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix check-diff

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix CI

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix CI

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix UT

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* revert some changes

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-05-09 15:10:31 +08:00
Afzal Ansari
8d99a35f01 Fix: Refactors shell to have double quotes format (#3830)
* refactors double quote to prevent globbing and word splitting e2e sh

Signed-off-by: afzal442 <afzal442@gmail.com>

* refactors e2e_core sh

Signed-off-by: afzal442 <afzal442@gmail.com>

* refactors cleanup sh

Signed-off-by: afzal442 <afzal442@gmail.com>

* refactors header-chk sh

Signed-off-by: afzal442 <afzal442@gmail.com>

* refactors installdef sh

Signed-off-by: afzal442 <afzal442@gmail.com>
2022-05-09 11:23:45 +08:00
Tianxin Dong
d593b7ad9c Feat: support multi keys in patchKey (#3826)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-05-08 10:39:01 +08:00
StevenLeiZhang
88fb854a26 Feat: Support basic-auth or reuse chartmuseum as addon registry (#3787)
Signed-off-by: StevenLeiZhang <zhangleiic@163.com>
2022-05-07 23:39:34 +08:00
Somefive
d2cb1bfd4a Feat: add support for apprt (#3824)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-05-07 20:31:41 +08:00
Jianbo Sun
eefccfb565 Chore: seprate test into linux env which can't be execute in darwin (#3823)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-05-07 18:14:12 +08:00
JarHMJ
d25676a68e Feat: Add short name velaapp for application CRD (#3816)
Signed-off-by: huangminjie <minjie.huang@daocloud.io>
2022-05-07 16:52:51 +08:00
cezhang
877ab3909d Fix: update latest version Fix: 1.2 upgrade 1.3 workflowstep XXX not found (#3804)
* Fix: 1.2 upgrade 1.3 workflowstep XXX not found

Signed-off-by: cezhang <c1zhang.dev@gmail.com>

handle publishversion case

Signed-off-by: cezhang <c1zhang.dev@gmail.com>

* add test

Signed-off-by: cezhang <c1zhang.dev@gmail.com>

add test

Signed-off-by: cezhang <c1zhang.dev@gmail.com>

lint code

Signed-off-by: cezhang <c1zhang.dev@gmail.com>
2022-05-07 12:07:26 +08:00
Xiangbo Ma
93841b479a Feat: Add example doc for controlPlaneOnly (#3810)
Signed-off-by: fourierr <maxiangboo@qq.com>
2022-05-06 14:33:52 +08:00
dependabot[bot]
94a82ce18d Chore(deps): Bump github.com/containerd/containerd from 1.5.4 to 1.5.10 (#3815)
Bumps [github.com/containerd/containerd](https://github.com/containerd/containerd) from 1.5.4 to 1.5.10.
- [Release notes](https://github.com/containerd/containerd/releases)
- [Changelog](https://github.com/containerd/containerd/blob/main/RELEASES.md)
- [Commits](https://github.com/containerd/containerd/compare/v1.5.4...v1.5.10)

---
updated-dependencies:
- dependency-name: github.com/containerd/containerd
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-05 19:11:28 +08:00
Jianbo Sun
6f927d326b Chore: add governance file and refer to the community repo (#3814)
* Chore: update docs

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Chore: add governance file and refer to the community repo

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-05-05 18:08:54 +08:00
Tianxin Dong
6c151ebcf1 Fix: add some message to make debug more clear (#3812)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-05-05 17:51:45 +08:00
qiaozp
331a25186e Chore: bump helm to v3.7.0 (#3767)
* Chore: bump helm to v3.7.0

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* tidy

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* tidy

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* tidy without compat

Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2022-05-05 17:51:17 +08:00
Zhiyu Wang
7f23165ee5 Feat: deploy user info (#3744)
Signed-off-by: Zhiyu Wang <zhiyuwang.newbis@gmail.com>
2022-05-05 17:22:40 +08:00
Tianxin Dong
ba0c226925 Feat: add some links in readme (#3811)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-05-05 15:17:19 +08:00
Somefive
3cde2337c6 Feat: upgrade dependencies (#3776)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-05-05 14:37:50 +08:00
JarHMJ
c8ae44c7e1 Test: add some unittest to addon cache (#3801)
Signed-off-by: huangminjie <minjie.huang@daocloud.io>
2022-05-04 10:31:44 +08:00
barnettZQG
99bb76a3fd Fix: update latest version (#3794)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-04-29 17:49:47 +08:00
Kunshuai Zhu
b74d5011da Feat: vela-core helm chart supports configure multicluster metrics (#3788)
* vela-core helm charts support config multicluster metrics

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>

* update comment

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>

* update readme

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>
2022-04-29 16:57:53 +08:00
Jianbo Sun
755ccad654 Chore: update some docs to the new org url (#3792)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-04-29 15:59:29 +08:00
StevenLeiZhang
0e4a480a4e Fix: useless \n is printed in log message (#3791)
Signed-off-by: StevenLeiZhang <zhangleiic@163.com>
2022-04-29 15:44:10 +08:00
StevenLeiZhang
57dcab5f18 Fix: log message wraps wrong arguments (#3781)
Signed-off-by: StevenLeiZhang <zhangleiic@163.com>
2022-04-29 13:26:58 +08:00
Daniel Higuero
9642ed9d9e Fix: Add application name to the generated workload entities (#3786)
* Add application name to the generated workload

Signed-off-by: Daniel Higuero <daniel@napptive.com>

* Make the PR reviewable

Signed-off-by: Daniel Higuero <daniel@napptive.com>
2022-04-29 10:35:14 +08:00
barnettZQG
2cc32e6c62 Chore: sync the cli binaries to OSS (#3764)
* Feat: show the parsing capability error message

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Chore: sync the cli binaries to OSS

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-04-28 19:18:16 +08:00
Somefive
7f5b8ef957 Fix: env trait compatible with valueFrom (#3778)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-04-28 17:49:01 +08:00
Somefive
1bd9a0eca3 Fix: kubectl check err (#3759)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-04-28 16:32:38 +08:00
Somefive
512664b9b3 Feat: support dependsOn in deploy workflowstep (#3750)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-04-28 16:29:34 +08:00
wyike
7935447d44 Fix: addon cli parse any type (#3775)
* fix addon parse any type

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* test int

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-04-28 15:58:23 +08:00
Xiangbo Ma
9238fc3edf Feat: Support trait with custom resource be dispatched to hubcluster. (#3774)
Signed-off-by: fourierr <maxiangboo@qq.com>
2022-04-28 13:44:52 +08:00
Tianxin Dong
6761b18229 Fix: fix up command add debug policy (#3770)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-04-27 21:31:07 +08:00
barnettZQG
7b2f4af610 Feat: add some APIs to manage the definitions (#3749)
* Feat: add a api for update the ui schema

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: change the unit test case

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: change the unit test case

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: add an API to change the definition status

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: change the e2e test case

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: change cache key

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: change the error words

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-04-27 14:23:05 +08:00
Tianxin Dong
a257c18e73 Fix: fix revision in webservice (#3758)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-04-27 14:17:48 +08:00
Tianxin Dong
a1ada2609e Feat: add default user in dex (#3753)
* Feat: add default user in dex

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix e2e test

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* remain log

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-04-27 10:21:10 +08:00
wyike
8f127ce715 Fix: fix the bug of vela cli enable addon by localDir on windows os (#3761)
* fix windows bug

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix several issue

fix bug

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix unit-test

* add more tests

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-04-26 20:52:19 +08:00
qiaozp
af53a58b8e Fix: velaux addon hint after enable (#3747)
* Fix: velaux addon hint after enable

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* check if upgrade

Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2022-04-26 15:27:43 +08:00
Zheng Xi Zhou
b4894cc284 Fix: use Terraform provider name as application in CLI (#3742)
* Fix: use Terraform provider name as application in CLI

In CLI, use Terraform provider name as application name when
create a Provider. Also display there providers in VelaUX.
1). manually created a Terraform Provider object, like https://github.com/oam-dev/terraform-controller/blob/master/getting-started.md#aws
2). by enabling a Terraform provider addon in version older than v1.3.0
3). by create a Terraform provider via `vela provider add`
4). by VelaUX

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* add UTs

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-04-26 12:53:14 +08:00
Zheng Xi Zhou
75def656fb Fix: public image registry config could not be created (#3736)
Fix #3663

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-04-25 13:58:22 +08:00
wyike
fa75c1f4a5 use unical project filter func to list secret (#3741)
Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix pointer

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-04-25 10:05:31 +08:00
Zhiyu Wang
cdc1550e17 Feat: apiserver definition alias (#3721)
Signed-off-by: Zhiyu Wang <zhiyuwang.newbis@gmail.com>
2022-04-24 18:03:55 +08:00
qiaozp
b8b254e582 Chore: fix e2e test check tag exist and set matrix (#3743)
Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2022-04-24 18:03:36 +08:00
Somefive
2d28fb35eb Feat: multi-cluster authentication (#3713)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-04-24 14:48:26 +08:00
qiaozp
d7c6f6cc73 Chore: fix missing trigger for e2e tests (#3738)
Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2022-04-24 10:15:28 +08:00
StevenLeiZhang
4162c413b3 Fix: vela-cli does not print cluster name, if application installed in default cluster (#3691)
Signed-off-by: StevenLeiZhang <zhangleiic@163.com>
2022-04-24 09:16:34 +08:00
Ziqi Zhao
172d41583f enhance slack url (#3727)
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
2022-04-22 18:02:06 +08:00
Zheng Xi Zhou
58edb344f6 Feat: check whether a project matched a config's project (#3725)
* Feat: check whether a project matched a config's project

If the config project is not nil, it's matched whether the project
matched the target project.
If the config project is nil, the target project matched the config.

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix CI

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix CI

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* change imports order

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* change imported libraries order again

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix CI

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-04-22 17:53:41 +08:00
qiaozp
1125f87fd7 Feat: run e2e test on several K8s version (#3714)
* Feat: run e2e test on several K8s version

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* upgrade kind version

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* rollback 1.22

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* bump up kruise

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* with sha

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* try fix ci

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* use 1.22

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* remove sah

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* revert kind

Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2022-04-22 17:05:19 +08:00
Xiangbo Ma
520e67f63b Feat: Delete the annotation "kubernetes.io/last-applied-configuration" in applicationRevision. Signed-off-by: Xiangbo Ma <maxiangboo@cmbchina.com> (#3724)
Signed-off-by: fourierr <maxiangboo@qq.com>
2022-04-22 17:04:24 +08:00
Tianxin Dong
7eb0002692 Feat: add sequential in gc policy (#3701)
* Feat: add sequential in gc policy

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* tidy the code

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* add suite test

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* add example docs and update the field

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix lint

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* change the name to dependency

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-04-22 16:34:07 +08:00
barnettZQG
1237f7350e Feat: change the webservice and config-image-registry definitions (#3732)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-04-22 16:33:23 +08:00
Basuotian
7907618a6a Feat: add env for sidecar and init-container trait (#3730)
Signed-off-by: tianshuai <tianshuai@huya.com>

Co-authored-by: tianshuai <tianshuai@huya.com>
2022-04-22 15:59:34 +08:00
fengkang01
54e333148f Feat(lang): The policy controller generate the OpenAPI schema (#3703)
* Fix: The policy controller generate the OpenAPI schema  (#3683)

Signed-off-by: DESKTOP-FV8IFEC\10690 <1069029381@qq.com>

* Feat(lang): The policy controller generate the OpenAPI schema  (#3683)

The policy controller does not generate the OpenAPI schema #3683
add CapabilityPolicyDefinition struct comment
add StoreOpenAPISchema of CapabilityPolicyDefinition comment

Signed-off-by: fengkang <fengkangb@digitalchina.com>

* Feat(lang): The policy controller generate the OpenAPI schema  (#3683)

The policy controller does not generate the OpenAPI schema #3683
fix unit-test

Signed-off-by: fengkang <fengkangb@digitalchina.com>

* Feat(lang): The policy controller generate the OpenAPI schema  (#3683)
fix unit-test about policydefinition_controller_test.go
The policy controller does not generate the OpenAPI schema #3683
fix unit-test

Signed-off-by: fengkang <fengkangb@digitalchina.com>

* Feat(lang): The policy controller generate the OpenAPI schema  (#3683)
fix unit-test about policydefinition_controller_test.go

Signed-off-by: fengkang <fengkangb@digitalchina.com>

* Feat(lang): The policy controller generate the OpenAPI schema  (#3683) gen crd

Signed-off-by: fengkang <fengkangb@digitalchina.com>

* Feat(lang): The policy controller generate the OpenAPI schema  (#3683) make reviewable

Signed-off-by: fengkang01 <fengkangb@digitalchina.com>

Co-authored-by: DESKTOP-FV8IFEC\10690 <1069029381@qq.com>
2022-04-22 15:53:20 +08:00
wyike
c126a5b272 fix several issues (#3729)
Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-04-22 15:47:08 +08:00
wyike
3eb1f53606 specify staticcheck version (#3726)
Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix the workflow

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix

try to fix

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix make file

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix makefile

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-04-22 14:16:15 +08:00
Tianxin Dong
426b22d2e5 Feat: add log provider (#3711)
* Feat: add log provider

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix lift

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix vet

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix rebase vet

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-04-22 13:14:51 +08:00
Arena.Su
007f13d2ee Feat(delay suspend): delayDuration in suspend step properties (#3644)
* Feat(delay suspend): add delayDuration in suspend step properties to support delay by certain time.Duration

Signed-off-by: suxiang <suxiang@asiainfo.com>
Signed-off-by: ArenaSu <704427617@qq.com>

* Feat(delay suspend): add delayDuration parameter to suspend cue

Signed-off-by: ArenaSu <704427617@qq.com>

* Feat(wait suspend): optimize wait suspend

Signed-off-by: ArenaSu <704427617@qq.com>

* Feat(wait suspend): change e2e test to local cluster env

Signed-off-by: ArenaSu <704427617@qq.com>

* Feat(wait suspend): fix WaitSuspend status modify bug

Signed-off-by: ArenaSu <704427617@qq.com>

* Feat(wait suspend): suspend cue parameter type error

Signed-off-by: ArenaSu <704427617@qq.com>

* Feat(wait suspend): set waitDuration optional param in suspend workflow step

Signed-off-by: ArenaSu <704427617@qq.com>

* Feat(wait suspend): add lost suspend.yaml

Signed-off-by: ArenaSu <704427617@qq.com>

* Feat(wait suspend): change solution to add suspendState

Signed-off-by: ArenaSu <704427617@qq.com>

* Feat(wait suspend): change durationWaiting to duration and add isPatch to gcResourceTrackers

Signed-off-by: ArenaSu <704427617@qq.com>
2022-04-22 11:40:13 +08:00
wyike
81d479aedf Fix: change systemInfo some fields (#3715)
* add some field an calculate workflow step

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* fix the calculate job cannot start issue

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* fix comments

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix test

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-04-22 10:18:28 +08:00
Lei Chu
25e33cdd6d Fix: embed.FS filepath that follow the unix style file path when running on windows (#3718)
* fix: "builtin-apply-component.cue: file does not exist"

Signed-off-by: lei.chu <1062186165@qq.com>

* fix: "builtin-apply-component.cue: file does not exist"

Signed-off-by: lei.chu <1062186165@qq.com>
2022-04-21 14:31:53 +08:00
qiaozp
900653a2da Feat: vela def gen-api command (#3699)
* Feat: vela def go-gen command

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* reviewable

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* Add unittest

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* lint

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* header

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* Add test case

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* more test

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* fix

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* add optional prefix, add omitempty in json tag

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* lint

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* lint

Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2022-04-20 18:08:24 +08:00
StevenLeiZhang
e3612ac352 Fix: vela-core does not report error, when component depends on invalid component (#3636)
Signed-off-by: StevenLeiZhang <zhangleiic@163.com>
2022-04-20 13:37:34 +08:00
Diego Pinheiro
62fb10625d Fix: Addressing CVEs (#3708)
* fix - patching vuln go mod

Signed-off-by: Diego Milhomes Pinheiro <diego.milhomes@ORA-7869.local>
Signed-off-by: s4rd1nh4 <diego.milhomes@gmail.com>

* fix - addressing cves

Signed-off-by: Diego Milhomes Pinheiro <diego.milhomes@ORA-7869.local>
Signed-off-by: s4rd1nh4 <diego.milhomes@gmail.com>

* fix - cves

Signed-off-by: Diego Milhomes Pinheiro <diego.milhomes@ORA-7869.local>
Signed-off-by: s4rd1nh4 <diego.milhomes@gmail.com>

* fix - cves

Signed-off-by: Diego Milhomes Pinheiro <diego.milhomes@ORA-7869.local>
Signed-off-by: s4rd1nh4 <diego.milhomes@gmail.com>
2022-04-20 09:54:49 +08:00
Somefive
571e154af3 Fix: bind env to system namespace (#3706)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-04-19 20:55:59 +08:00
wyike
2ac4ddad03 Feat: calculate systemInfo everyday periodically and store them in datastore (#3689)
* add framework

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

add

finish the framework

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

finish test manually

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

add update time

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

adding test

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

finish test

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

abs

fix test

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* move start func to leader election call back funcs

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* resolve the recycle import problecm

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix issue

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix ci
2022-04-19 10:24:54 +08:00
Somefive
c5e1855a55 Feat: support disable legacy gc upgrade operation (#3694)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-04-18 17:05:47 +08:00
Zheng Xi Zhou
cb4a9ea1a8 Fix: set provider name as the config name (#3687)
- For VelaUX, hidden a provider name (users don't need to manual set it). Used
the application/component name (config name) to be the provider name.
- Store description of a config to the annotation of the config application

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-04-18 16:47:51 +08:00
Tianxin Dong
21216055fb Feat: add vela debug command (#3580)
* Feat: add debug configmap if debug policy is specified

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Feat: add vela debug command

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* make code reviewable

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix sonartype lift

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix cue string

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Feat: display better for debug

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* tidy the go mod

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Feat: add debug test

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* change uitable vendor

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* add more tests

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* pass resource keeper from handler

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix lint

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix rebase

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Pending test temporary

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-04-18 11:06:14 +08:00
Michiel Stigter
eb60d94a06 Feat: Expose optimizeDisableComponentRevision in helm chart (#3470)
* Feat: Expose optimizeDisableComponentRevision in helm chart

Signed-off-by: michiel <michiel.stigter@springer.com>

* Feat: Expose optimizeDisableComponentRevision in helm chart

Signed-off-by: michiel <michiel.stigter@springer.com>

* Feat: Expose optimizeDisableComponentRevision in helm chart

Signed-off-by: michiel <michiel.stigter@springer.com>

* Feat: Expose optimizeDisableComponentRevision in helm chart

Signed-off-by: michiel <michiel.stigter@springer.com>

* Feat: Add all the other possible optimization params to the helm-values.

Taken from: https://kubevela.io/docs/platform-engineers/system-operation/performance-finetuning#advanced-optimization

Signed-off-by: michiel <michiel.stigter@springer.com>
2022-04-15 17:48:14 +08:00
Somefive
8998537dc8 Fix: rt resource key compare mismatch local cluster (#3681)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-04-15 16:13:07 +08:00
barnettZQG
4ddfe32fc4 Fix: can not query the instance list for the app with apply once policy (#3670)
* Fix: can not query the instance list for the app with apply once policy

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: change the test case about ListResourcesInApp

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-04-15 14:38:01 +08:00
wyike
28e2284284 mock an addon to fix flaky test (#3665)
Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-04-15 10:30:05 +08:00
Tianxin Dong
62ecc70ade Fix: fix token invalid after the server restarted (#3658)
* Fix: fix token invalid after the server restarted

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix lint

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Pending test temporary

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Pending test temporary

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-04-14 22:25:43 +08:00
Somefive
5857aa8790 Fix: vela status tree show cluster alias & raw format (#3659)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-04-14 19:35:47 +08:00
ZhongsJie
49646ddc8e Feat: enhance storage trait to support multi-mountToEnv config Signed-off-by: Shijie Zhong <zhongsjie@cmbchina.com> (#3657)
Signed-off-by: ZhongsJie <zhongsjie@gmail.com>
2022-04-14 19:34:12 +08:00
Jianbo Sun
707905d877 Fix: add label from inner system in CR can prevent sync (#3655)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-04-14 19:32:53 +08:00
barnettZQG
7d3ef0595a Fix: duplicately list pods in velaQL (#3650)
* Fix: duplicately list pods in velaQL

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: the create time of synced app is empty

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-04-14 17:43:54 +08:00
Zheng Xi Zhou
af6dc4bda3 Fix: failed to deploy application when no there is no avaiable (#3652)
When there are configs, but not in the project where the appliation
is about to deploy, the sync application will hit an issue. It will
lead to block the deploy of an application.

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-04-14 17:25:34 +08:00
Zheng Xi Zhou
f44bd7c6dd Fix: refine the config sync logic (#3602)
* Fix: refine config management

- Refine the config sync logics

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* address comments

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-04-14 13:03:59 +08:00
wyike
eaec8348d9 Fix: try to fix CVE (#3641)
* try to fix cve

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* add parse input func

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix lint

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix lint

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* use santize

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-04-14 10:03:15 +08:00
wyike
2849dfc1fb Fix: clear info when addon version cannot meet require (#3642)
* first

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

version miss match erro for addon

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

add log

* add test for this

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

small fix
2022-04-14 10:02:47 +08:00
Somefive
d657ea4daf Feat: rework vela up to support specified revision (#3634)
* Feat: rework vela up to support specified revision

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: add legacy compatibility

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Feat: fix test

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-04-13 22:20:07 +08:00
Zhiyu Wang
68500b3f17 Fix: verify password valid (#3545)
Signed-off-by: Zhiyu Wang <zhiyuwang.newbis@gmail.com>
2022-04-13 19:39:00 +08:00
Somefive
c33eaa0609 Fix: enhance vela status tree print (#3639)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-04-13 17:46:55 +08:00
Somefive
7a0d2b552b Feat: support alias in cluster (#3630)
* Feat: support alias in cluster

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: add test for cluster alias

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-04-13 13:58:35 +08:00
Zheng Xi Zhou
385b2462e9 Feat: refine config creation and provide config list (#3637)
- Make the api of creation a config to be async
- In listing config page, show the status of a config

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-04-13 13:45:41 +08:00
Kunshuai Zhu
0c35753530 Feat: allow select resource by resource type for gc policy (#3598)
* Feat: allow select resource by resource type for gc policy

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>

* Modify match label key

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>

* Unified label key

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>
2022-04-12 18:51:07 +08:00
Somefive
0e97aa2291 Feat: vela status --tree (#3609)
* Feat: vela status --tree

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Feat: support show not-deployed clusters

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: add tests

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: add multicluster e2e coverage

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Chore: minor fix

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-04-12 17:58:45 +08:00
Tianxin Dong
7fcb89906c Fix: fix dex login with existed email (#3623)
* Fix: fix dex login with existed email

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* add dex connector check

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* unset users' alias

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix ut

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix ut

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-04-12 16:29:21 +08:00
Somefive
86ef2d68e0 Fix: flags for controller (#3627)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-04-12 16:12:50 +08:00
wyike
2e57be1022 Feat: support basic auth private helm repo (#3595)
* support auth

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* add test

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix check diff

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix test

fix

add comments

fix test

* add tests

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix

add more test

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* add more test

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* extract set auth info as a global func

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* return bcode

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-04-12 14:33:44 +08:00
Gallardot
ad01f3062a Feat: add HealthProbe for sidecar (#3629)
* Feat: add HealthProbe for sidecar

Signed-off-by: Gallardot <tttick@163.com>

* Feat: add HealthProbe for sidecar

Signed-off-by: Gallardot <tttick@163.com>
2022-04-12 13:21:51 +08:00
Somefive
b6fac3f4d5 Fix: cli default switch on feature flags (#3625)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-04-11 20:40:13 +08:00
Min Kim
2eb7826070 bump cluster-gateway to 1.3.2 (#3619)
Signed-off-by: yue9944882 <291271447@qq.com>
2022-04-11 19:31:51 +08:00
Zheng Xi Zhou
5f7371815c Feat: add api of listing configs for project when creating a target (#3581)
* Feat: add api of listing configs for project

In a project, list configs by its type

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* address comments

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix ci

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* add query parameter definition

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* Update pkg/apiserver/rest/webservice/project.go

Co-authored-by: barnettZQG <barnett.zqg@gmail.com>

Co-authored-by: barnettZQG <barnett.zqg@gmail.com>
2022-04-11 19:05:18 +08:00
wyike
d6b96fee5a Fix: add e2e apiserver test for addon (#3607)
* add e2e apiserver test for addon

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

delete comment

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix

* fix test

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* close the reponse body

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* cover list enabled addon

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix e2e test

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix test

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix test

* fix test

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-04-11 17:46:46 +08:00
Jianbo Sun
85c673a574 Fix: reuse chart values in vela install (#3616)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-04-11 09:50:18 +08:00
qiaozp
7e6d9ccc73 Fix: vela logs without specified resource name (#3605)
* Fix: vela logs without specified resource name

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* add unittest

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* reviewable

Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2022-04-08 17:22:05 +08:00
Avery
e65dcf12db add sorting for properties, outputs, writeSecretRefParameters in vela def doc-gen (#3593)
Signed-off-by: Nicola115 <2225992901@qq.com>
2022-04-08 15:27:35 +08:00
Diego Pinheiro
fd5faed71a Chore: Nominate s4rd1nh4 as a Reviewer member (#3603)
Signed-off-by: GitHub <noreply@github.com>
2022-04-08 13:21:45 +08:00
Zheng Xi Zhou
b1823084af Fix: add terraform aws provider without AWS_SESSION_TOKEN (#3590)
* Fix: add terraform aws provider without AWS_SESSION_TOKEN

Fix #3589 and refine prompts for cli

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-04-07 13:41:29 +08:00
namo
83fe4a160e Feat(lang): add addons gitlab support (#3543)
* add addons gitlab support

Signed-off-by: Namo <lgj112113@163.com>

* add addons gitlab support

Signed-off-by: Namo <lgj112113@163.com>

* test file edit

Signed-off-by: Namo <lgj112113@163.com>

* typo edit

Signed-off-by: Namo <lgj112113@163.com>

* notes edit

Signed-off-by: Namo <lgj112113@163.com>

* move third party imports block

Signed-off-by: Namo <lgj112113@163.com>

* code format edit

Signed-off-by: Namo <lgj112113@163.com>

* notes edit

Signed-off-by: Namo <lgj112113@163.com>

* create addon registry bug fix

Signed-off-by: Namo <lgj112113@163.com>

* add gitlab addon registry bug fix

Signed-off-by: Namo <lgj112113@163.com>

* add addon gitlab support test file

Signed-off-by: Namo <lgj112113@163.com>

* add addon gitlab support test note edit

Signed-off-by: Namo <lgj112113@163.com>

* add addon gitlab branch support and fix bug

Signed-off-by: Namo <lgj112113@163.com>

* addon gitlab registry repo name invalid

Signed-off-by: Namo <lgj112113@163.com>

Co-authored-by: Namo <lgj112113@163.com>
2022-04-07 11:05:14 +08:00
Somefive
8af3dec0df Fix: add feature-gates to command-line args (#3591)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-04-06 17:00:44 +08:00
Tianxin Dong
edebcc6c59 Fix: fix refresh code expired bcode (#3582)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-04-06 14:36:05 +08:00
Jianbo Sun
32382ba6be Chore: add new code flow for kubevela milestone (#3586)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-04-06 13:34:30 +08:00
Zheng Xi Zhou
46ef6f9df4 Fix: add response struct to config deletion api (#3579)
Added an empty struct in the API of config deletion

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-04-06 13:32:49 +08:00
Jianbo Sun
aea98ff5bf Chore: try fix lint (#3571)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-04-06 10:19:53 +08:00
wyike
c093676575 aglin config secret label (#3576)
Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix not update label

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix addon cannot update label bug

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

revert
2022-04-01 16:59:15 +08:00
wyike
ed05b4b035 aglin config secret label (#3574)
Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-04-01 16:13:12 +08:00
Zheng Xi Zhou
3aa4412a0f Fix: remove config image registry (#3572)
Temporarily removed image registry config

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-04-01 01:07:43 +08:00
wyike
ef4b9816e1 fix bug (#3569)
Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix bugs

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix

fix
2022-04-01 01:04:29 +08:00
Tianxin Dong
1c5aab1852 Fix: fix dex config field (#3568)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-04-01 00:51:17 +08:00
Zheng Xi Zhou
966dbc1c74 Feat: add config management apis (#3562)
* Feat: add config management apis

Added some APIs for config management

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix check-diff

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix ci issue

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix config sync

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix static check

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix sync

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* Fix: sync config bug

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

Co-authored-by: barnettZQG <barnett.zqg@gmail.com>
2022-04-01 00:15:03 +08:00
qiaozp
4eafb46c87 Chore: bump test k8s to 1.20 (#3567)
Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2022-03-31 22:12:55 +08:00
Tianxin Dong
a97a4d0ed7 Feat: add update dex config in apiserver (#3548)
* Feat: add update dex config in apiserver

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* use get connectors to get dex connectors

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* lint the code

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Fix: seperate dex config from a component to an application

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Fix: use dex config from secret

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix not found

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix restart dex

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix system info

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix restart

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-03-31 18:42:18 +08:00
Jianbo Sun
77c02f9eec Chore: add video records in readme for chinese community call (#3565)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-03-31 18:05:22 +08:00
Jianbo Sun
3157efd421 Chore: refine chart readme and notes (#3563)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-03-31 17:33:06 +08:00
wyike
8ff93b33e2 Feat: add helm repo list endpoint (#3564)
* add helm repo list

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* fix commit

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* fix comments

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* build swagger

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-03-31 17:18:54 +08:00
qiaozp
c6b9abe4c4 Chore: bump k8s version contraint (#3560)
Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2022-03-31 16:42:14 +08:00
Somefive
150ef6e99e Fix: livediff minor bug (#3558)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-31 13:13:55 +08:00
wyike
0ada407fbe optimize the ux of addon (#3557)
Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix

fix
2022-03-31 10:24:20 +08:00
Somefive
c4af1ba643 Fix: topology use original resource namespace when not specify (#3554)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-30 19:52:10 +08:00
qiaozp
de84421487 Feat: add name param in vela logs (#3556)
Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2022-03-30 17:56:59 +08:00
yangs
38a8a7f88a Fix: fix the componentDefinition webservice parameter error (#3553)
Signed-off-by: yangsoon <songyang.song@alibaba-inc.com>

Co-authored-by: yangsoon <songyang.song@alibaba-inc.com>
2022-03-30 15:55:49 +08:00
Xiangbo Ma
b4ddf0e4c3 Feat: a new ComponentDefinition cron-task Signed-off-by: Xiangbo Ma <maxiangboo@cmbchina.com> (#3541)
Signed-off-by: fourierr <maxiangboo@qq.com>
2022-03-30 13:27:21 +08:00
wyike
47050c90b6 Fix: cli addon multicluster bug (#3547)
* fix addon multicluster bug

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

delete useless test

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

asd

asd

* fix test race condition

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-03-29 23:03:57 +08:00
barnettZQG
685d73a20c Feat: support with metadata as context render cue file in the addon (#3549)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-03-29 22:13:56 +08:00
Somefive
dde8a8e4c0 Fix: addon support empty components (#3542)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-29 16:42:43 +08:00
Min Kim
943af3ddf6 bump cluster-gateway to v1.3.0 (#3540)
Signed-off-by: yue9944882 <291271447@qq.com>
2022-03-29 16:18:38 +08:00
Somefive
a5c2edf777 Feat: allow select resource by component name for gc policy (#3539)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-29 14:00:50 +08:00
wyike
83d8022ce9 quick fix addon registry (#3537)
Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-03-29 12:40:25 +08:00
Zheng Xi Zhou
6d63014c6f Feat: support config management (#3430)
* Feat: componentDefinitions for Config management

Added ComponentDefinitions for config management
- helm chart repository
- image registry
- Dex connector
- Terraform provider

Co-authored-by: Tianxin Dong <wuwuglu19@gmail.com>
Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* Update vela-templates/definitions/internal/component/config-image-registry.cue

Co-authored-by: Jianbo Sun <wonderflow@icloud.com>

* address comments again

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

Co-authored-by: Tianxin Dong <wuwuglu19@gmail.com>
Co-authored-by: Jianbo Sun <wonderflow@icloud.com>
2022-03-29 10:28:07 +08:00
Jianbo Sun
d3fbd5fd45 Fix: addon API panic and override workflow step for addon installation (#3533)
* Fix: addon API panic

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Fix: use policy to deploy addon

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Fix: use create or update app instead of patch apply on addon update

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Fix: unit test

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-03-29 02:37:57 +08:00
barnettZQG
b0202ebf14 Fix: change the default permission name (#3531)
* Fix: change default permission name

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: the addon api bug

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: set local cluster name

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-03-28 23:37:25 +08:00
Tianxin Dong
295164229d Fix: optimize err for auth in apiserver (#3526)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-03-28 22:35:56 +08:00
Jianbo Sun
ba09cf5c2e Fix: fix migrate data duplicate in list API and add cluster info in addon status (#3528)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-03-28 22:30:35 +08:00
Somefive
099e25a552 Fix: enhance ref object to support health check for deployment (#3529)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-28 22:13:51 +08:00
Min Kim
b2f5b69380 chore: bump cluster-register (#3514)
Signed-off-by: yue9944882 <291271447@qq.com>
2022-03-28 21:57:44 +08:00
Zheng Xi Zhou
5d61cee3f6 Fix: support multiple-tenant cloud resources (#3305)
* Fix: support multiple-tenant cloud resources

Split terraform-xxx to two parts, the original addon will only install
definitions, and the provider object will be created by `vela provider`

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* continue

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* continue 0302

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* support `vela provider list`

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* generate a configmap in an addon terraform-xxx

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix listing providers

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* support add a provider

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* support delete a provider

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* support legacy providers

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-03-28 21:55:33 +08:00
Somefive
2af198bda7 Docs: add feature docs for multi-cluster and application revision (#3530)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-28 21:47:57 +08:00
wyike
161d2646cb Feat: helm repo as addon registry to support addon's multi-version (#3523)
* versioned registry impl
add more test

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* fix ci

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix ui

fix

fix

fix

modify addon registry
2022-03-28 21:25:38 +08:00
Avery
4f8e7506f9 Fix: fix bugs in vela def doc-gen from local file (#3490)
* fix bugs in using local filepath as markdown filename; fix bugs in parseLocalFile

Signed-off-by: Nicola115 <2225992901@qq.com>

* ignore control character mismatch between lc.TerraformConfiguration and raw text

Signed-off-by: Nicola115 <2225992901@qq.com>

* goimports

Signed-off-by: Nicola115 <2225992901@qq.com>

* store remote and local in MarkDownReference struct

Signed-off-by: Nicola115 <2225992901@qq.com>

* gofmt

Signed-off-by: Nicola115 <2225992901@qq.com>

* fix too many argument bugs in generate.go:45

Signed-off-by: Nicola115 <2225992901@qq.com>

* fix invalid comment

Signed-off-by: Nicola115 <2225992901@qq.com>
2022-03-28 20:57:24 +08:00
Somefive
160ef64855 Feat: support livediff for referred object (#3525)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-28 17:52:33 +08:00
Guangzhe Huang
905c49eb81 Fix: fix undefined field error in email workflowstep (#3522)
Signed-off-by: huanggze <gzhuang2014@gmail.com>
2022-03-28 16:14:13 +08:00
Somefive
c4a8fcf29c Feat: rework referred objects for version (#3446)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-28 16:09:12 +08:00
Somefive
e72690bade Fix: ignore kubebuilder generated file in code coverage (#3524)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-28 16:08:59 +08:00
barnettZQG
044c4bf73c Feat: add RBAC support (#3493)
* Feat: add the rbac data model

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: add some api about the project

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: add CRUD about the project and the project user

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: add CRUD about the role and perm check filter function

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: update swagger config

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: add default roles and perm policies

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: add perm check filter for all webservice

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: change the method that find project name

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: query applications and envs by user perm

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: support get login user info

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: change default permissions

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: change PermPolicy to Permission

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: add some unit test and fix the e2e test error

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: change some comment word

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: e2e api path error

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-03-28 16:03:11 +08:00
Somefive
795231ceb5 Feat: add revision command (#3506)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-28 14:47:47 +08:00
Min Kim
3f621e57b2 bugfix: helm install cluster-gateway be compatible w/ existing APIService w/o annoation (#3512)
Signed-off-by: yue9944882 <291271447@qq.com>
2022-03-28 11:52:47 +08:00
Somefive
9fc992ea3e Fix: concurrent write to controller revision (#3520)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-27 19:56:25 +08:00
Tianxin Dong
c2f5175fd1 Fix: fix parse token error validate (#3507)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-03-25 22:34:32 +08:00
Kunshuai Zhu
a7d3cd5d1a Chore: Nominate JooKS-me as a Reviewer member (#3508)
Signed-off-by: zhukunshuai <jookunshuai@gmail.com>
2022-03-25 18:04:11 +08:00
yangs
ccfab6ce7f Feat: add health check for componentdefinition task (#3509)
Signed-off-by: yangsoon <songyang.song@alibaba-inc.com>

Co-authored-by: yangsoon <songyang.song@alibaba-inc.com>
2022-03-25 16:21:57 +08:00
Tianxin Dong
03cd0d144a Feat: add login handle for apiserver (#3471)
* Feat: add login handle for apiserver

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix go lint

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Fix: clean up code and add user in ctx

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Fix: fix swagger conflict

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Feat: add auth in apiserver e2e test

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Fix: nit fix for apiserver e2e test

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-03-24 17:59:09 +08:00
Somefive
741544c00c Feat: rework apprev (#3498)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-24 14:40:19 +08:00
Jianbo Sun
723a5d83ca Fix: vela status --endpoint format (#3502)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-03-24 09:47:15 +08:00
StevenLeiZhang
8af5afa5dc Fix: api-server fail to start, when multi-cluster is disabled (#3501)
Signed-off-by: StevenLeiZhang <zhangleiic@163.com>
2022-03-23 20:46:29 +08:00
Tianxin Dong
aaa1db8760 Fix: fix workflow cli must have workflow in spec (#3469)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-03-23 17:16:39 +08:00
Jianbo Sun
c5baa1cae9 Feat: support specify cluster in addon installation (#3497)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-03-23 14:33:15 +08:00
Wei (段少)
eda7e6c5a0 Chore: Nomiante Daniel as a Maintainer (#3491)
Signed-off-by: BinaryHB0916 <davidduan0916@gmail.com>
2022-03-23 09:49:38 +08:00
Jianbo Sun
e5fd150cd5 Fix: add client validation and severside dry run for vela dry-run (#3485)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-03-22 16:39:36 +08:00
barnettZQG
d041d8c35d Feat: support delete the readonly application (#3492)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-03-22 15:49:55 +08:00
wyike
345e4c8144 fix disable addon check several bugs (#3488)
Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-03-22 10:06:16 +08:00
Jianbo Sun
9a8ec5d797 Fix: delete app won't be synced in UI (#3487)
* Fix: delete app won't be synced in UI

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Fix: cache should be ignored in app meta not exist

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-03-22 10:04:10 +08:00
Jianbo Sun
d9a676a688 Feat: add page index for env list API (#3482)
* Feat: add page index for env list API

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Fix: add check for target create without namespace or name

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Fix: adress commnets

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-03-21 19:28:28 +08:00
Jianbo Sun
9a3ad7ef84 Feat: add readOnly for velaux application which is synced from CR (#3479)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-03-21 16:33:29 +08:00
朱晓兵
9671e3b232 Fix(context): add support for context.appLables and context.appAnnotations (#3463) (#3468)
* Fix(context): add support for context.appLables and context.appAnnotations (#3463)

Signed-off-by: zxbyoyoyo <596908030@qq.com>
Signed-off-by: 朱晓兵 <596908030@qq.com>

* Fix: unit test

Signed-off-by: 朱晓兵 <596908030@qq.com>

* Fix: recover deleted field

Signed-off-by: 朱晓兵 <596908030@qq.com>
2022-03-21 12:02:30 +08:00
Jianbo Sun
0c97f8311c Chore: Nominate fourierr as a Reviewer member (#3475)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-03-21 12:01:39 +08:00
wyike
a6460d67b6 Feat: check if an addon is been used while disabling. (#3457)
* first commit

add more tests

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix ci

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix ci

fix test

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* fetch only definitions from registry for lagacy addon app

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix ci

* fix error test

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-03-21 10:38:56 +08:00
Tianxin Dong
3ea2ac6d0f Feat: add user management apis (#3458)
* Feat: add user management apis

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Feat: add e2e test and some nit fix

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Feat: add password validate

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Feat: add email modification in update user

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Fix: fix user detail to user base

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Fix: fix ut

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Fix: fix test

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Fix: fix rebase

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Fix: add password check in create user

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Fix: fix bcode confilt

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-03-19 15:51:32 +08:00
wyike
13c420dada Fix: optimize helm repository logic put cache lower layer and return bcode when error (#3466)
Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-03-18 18:36:19 +08:00
Jianbo Sun
6354912bba Feat: sync application from CR to data store (#3428)
* Feat: sync application from CR to data store

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Feature: address comments

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Feat: add migrate database feature to avoid max 63 charactor in kubeapi storage

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* update the sync data

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-03-18 09:55:15 +08:00
barnettZQG
5209be6da9 Feat: add the conditions for ui schema spec (#3461)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-03-18 09:52:58 +08:00
maxiangbo
8f9908e723 Feat: support the mountPath of trait-storage-secret is optional (#3462)
* Feat: support the mountPath parameter of trait-storage-secret is optional Signed-off-by: maxiangbo maxiangboo@cmbchina.com

Signed-off-by: fourierr <maxiangboo@qq.com>

* Feat: support the mountPath parameter of trait-storage is optional Signed-off-by: maxiangbo maxiangboo@cmbchina.com

Signed-off-by: fourierr <maxiangboo@qq.com>
2022-03-17 20:04:57 +08:00
Evan Li
296c82344b Fix(workflow): correct terraform component health check (#3456)
Closes: #3355
Signed-off-by: Evan Li <evan.li97@outlook.com>
2022-03-16 20:30:50 +08:00
Somefive
2d19454a35 Feat: enhance labels & annotations trait (#3454)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-16 17:50:12 +08:00
maxiangbo
f67d2db0d1 Fix: trait env and storage conflict Signed-off-by: maxiangbo maxiangboo@cmbchina.com (#3452)
Signed-off-by: fourierr <maxiangboo@qq.com>
2022-03-16 15:14:18 +08:00
Avery
3634ad6f18 Fix: enable provider elastic (#3453)
* enable provider ec

Signed-off-by: Nicola115 <2225992901@qq.com>

* rename provider ec as elastic

Signed-off-by: Nicola115 <2225992901@qq.com>
2022-03-16 15:07:25 +08:00
Tianxin Dong
6c5a40d768 Feat: add dex login in apiserver (#3417)
* Feat: add dex login in apiserver

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* resolve comments

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Fix: get dex config from secret

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Fix: delete cache for dex config

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix ci

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-03-16 14:37:41 +08:00
wyike
c91a7ac273 Feat(apiserver): helm apiserver webservice (list chart, list version, extract helm values) (#3398)
Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-03-16 11:42:08 +08:00
barnettZQG
b437cf4310 Feat: support query the policy definitions (#3445)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-03-16 10:56:53 +08:00
Sunghoon Kang
040d5e1776 Chore: fix issue-commands workflow (#3451)
It seems that the `issue-commands` workflow keeps failing.

This commit fixes the `issue-commands` workflow by bumping up the
action version and replacing `npm install` with `npm ci` for
reproducibility.

Refs: https://github.com/oam-dev/kubevela-github-actions/pull/11

Signed-off-by: Sunghoon Kang <hoon@linecorp.com>
2022-03-16 10:12:58 +08:00
barnettZQG
7bec3506f5 Feat: add auto clear data function for the memory cache (#3439)
* Feat: add auto clear data function for the memory cache

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: add memory cache store

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: add some test case for the utils package

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-03-15 19:14:20 +08:00
Jianbo Sun
efc1597317 Nominate devholic as as a Review member (#3444)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-03-15 16:45:26 +08:00
Kunshuai Zhu
38665e319d Feat: poll multi-cluster metrics and export to prometheus (#3429)
* Feat: poll multi-cluster metrics and export to prometheus

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>

* pass context to polling loop

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>

* move metrics definition to montitor/metrics/multicluster.go

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>

* remove pod usage metric and make reviewable

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>

* revert the change of GetClusterMetricsFromMetricsAPI

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>

* revert the change of GetClusterMetricsFromMetricsAPI

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>

* Separate the polling logic into a function

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>

* add start menber function

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>

* make refreshPeriod a menber var

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>

* fix typo

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>
2022-03-15 13:03:10 +08:00
barnettZQG
1e0f329304 Feat: add component definiton in the detail component response body (#3437)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-03-15 11:57:16 +08:00
Sunghoon Kang
1300a980f0 Feat: reconcile app with scoped permissions (#3434)
* Refactor: refactor multi cluster round trippers

Before adding more RoundTrippers, it would be better to expose common
logic in the utility package.

This commit exports `tryCancelRequest` at `utils` package, and make
`secretMultiClusterRoundTripper` implement `RoundTripperWrapper`
interface to allow chaining multiple round trippers.

Refs #3432

Signed-off-by: Sunghoon Kang <hoon@linecorp.com>

* Feat: reconcile app with scoped permissions

Currently, all Application resources are reconciled by the Roles bound
to the controller service account. This behavior gives us the power to
manage resources across multiple namespaces. However, this behavior can
be problematic in the soft-multitenancy environment.

This commit adds `serviceAccountName` to ApplicationSepc to reconcile
Application with the given service account for reconciling Application
with scoped permissions.

Refs #3432

Signed-off-by: Sunghoon Kang <hoon@linecorp.com>

* Refactor: extract context setter as method

https://github.com/oam-dev/kubevela/pull/3434#discussion_r825561603

Signed-off-by: Sunghoon Kang <hoon@linecorp.com>

* Feat: use annotation instead of spec

https://github.com/oam-dev/kubevela/issues/3432#issuecomment-1066460269

Signed-off-by: Sunghoon Kang <hoon@linecorp.com>

* Refactor: unify service account setter caller

https://github.com/oam-dev/kubevela/pull/3434#discussion_r825853612

Signed-off-by: Sunghoon Kang <hoon@linecorp.com>

* Refactor: rename GetServiceAccountName

https://github.com/oam-dev/kubevela/pull/3434#discussion_r826514565

Signed-off-by: Sunghoon Kang <hoon@linecorp.com>
2022-03-15 11:55:50 +08:00
Zheng Xi Zhou
b6b81c336e Fix: add generate JDBC connection workflowDefintion (#3360)
* Fix: add generate JDBC connection workflowDefintion

Added a WorkflowDefinition

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* format .cue definition

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-03-15 10:53:22 +08:00
Somefive
e2275efe56 Feat: local virtual cluster + namespace in topology (#3436)
* Feat: virtual cluster local + namespace

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Chore: refactor some names

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-15 10:06:36 +08:00
Somefive
c054ee32b1 Fix: use clusterLabelSelector as default (#3438)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-14 19:30:52 +08:00
Somefive
19424cfaa4 Fix: add state keep for healthy suspend (#3426)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-14 14:38:43 +08:00
Rimond
a5fb09814e Fix(docs): rollout example error (#3427)
* modify docs errors

Signed-off-by: liming.jlm <liming.jlm@alibaba-inc.com>

* modify the incorrect file name

Signed-off-by: liming.jlm <liming.jlm@alibaba-inc.com>

Co-authored-by: liming.jlm <liming.jlm@alibaba-inc.com>
2022-03-14 13:13:05 +08:00
Hongchao Deng
c1b116b360 Chore: update CODEOWNERS to promote barnettZQG and leejanee (#3435)
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2022-03-14 10:22:57 +08:00
Shukun Zhang
3af893950e add vela status --endpoint into the tips for vela up (#3433)
Co-authored-by: zhangshukun <zhangshukun.7@bytedance.com>
2022-03-14 09:39:11 +08:00
barnettZQG
20583e089a Feat: support query applied resources by velaQL (#3423)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-03-11 21:22:58 +08:00
qiaozp
96f8e4dc4c Feat: support preventing component from garbage collection (#3424)
* Feat: support preventing component from garbage collect

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* reviewable

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* Chore: add doc for changes

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* Chore: add comments

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* Chore: change json tag

Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2022-03-11 17:32:21 +08:00
wyike
68e2634911 add more test for complicated semver check (#3425)
Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-03-11 16:19:32 +08:00
Zheng Xi Zhou
c06dbf3142 Feat: upgrade API version for Terraform Controller (#3396)
* Upgrade API version for Terraform Controller

- Change json tag of spec.Region to `customRegion` in Configuration https://github.com/oam-dev/kubevela/issues/3384
- Use .status.observedGeneration to make Terraform outputs is latest https://github.com/oam-dev/terraform-controller/pull/269

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix ci

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-03-11 16:13:30 +08:00
Somefive
598de21f67 Feat: add support for json-patch and json-merge-patch (#3406)
* Feat: add support for json-patch and json-merge-patch

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: add e2e test

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: refactor json-patch field

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-11 14:57:50 +08:00
wyike
b13132ceba Feat: helm chart keep fluxcd addon while delete (#3404)
* keep fluxcd addon will delete

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-03-11 14:46:28 +08:00
Somefive
70408e4712 Feat: support vela cluster labels add/del to manage cluster labels (#3413)
* Feat: add vela cluster label command

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Feat: add vela cluster label command to help manage cluster labels

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: add e2e test

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: use vela cluster labels

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-11 14:13:17 +08:00
Somefive
b975c313c3 Fix: add parallelism params for deploy step (#3411)
* Fix: add parallelism params for deploy step

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: add test

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: add e2e test

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-11 13:20:12 +08:00
Somefive
a8dfc99ec9 Fix: pend registry test (#3420)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-11 11:35:40 +08:00
Zheng Xi Zhou
ca8d66471a Feat: add @evanli18 as one Reviewer (#3402)
Fix #3330

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-03-10 20:25:47 +08:00
Somefive
d5e8b68ad2 Fix: rework parallel execution for ApplyComponents and ResourceKeeper Dispatch (#3407)
* Fix: applyComponents lock and rework parallel execution

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: rename

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-10 16:43:22 +08:00
Somefive
d8f95c9cf8 Feat: support multicluster service in application status (#3387)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-10 10:21:56 +08:00
maxiangbo
52f3636a2d Feat: support gitee repository in addon registry (#3393)
* Feat: support gitee repository in addon registry
Signed-off-by: fourierr <maxiangboo@163.com>

* Feat: support gitee repository in addon registry
Signed-off-by: maxiangbo <maxiangboo@cmbchina.com>

Signed-off-by: fourierr <maxiangboo@yeah.net>

* Feat: support gitee repository in addon registry Signed-off-by: maxiangbo <maxiangboo@cmbchina.com>

* Feat: support gitee repository in addon registry Signed-off-by: maxiangbo <maxiangboo@cmbchina.com>

Signed-off-by: fourierr <maxiangboo@qq.com>

Co-authored-by: fourierr <maxiangboo@yeah.net>
2022-03-10 10:11:45 +08:00
Diego Pinheiro
04db938ffa fix - rename docs example dir (#3408)
Signed-off-by: GitHub <noreply@github.com>
2022-03-10 10:02:46 +08:00
Somefive
f9635de027 Fix: auto deploy spec missing (#3386)
* Fix: auto deploy spec missing

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: modify test

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-09 11:28:52 +08:00
Diego Pinheiro
d5ad037173 Fix: Helm Chart values.yaml typo (#3403)
* fix - typo

Signed-off-by: GitHub <noreply@github.com>

* fix - typo helm values

Signed-off-by: GitHub <noreply@github.com>
2022-03-09 11:18:46 +08:00
barnettZQG
600b3a7044 Feat: make the component list is in reverse order (#3350)
* Feat: update api doc

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: make the component list is in reverse order.

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: update swagger config

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-03-08 17:59:22 +08:00
Avery
7bc34b8dd9 Feat: support def doc-gen <LocalFile.yaml> and corresponding functions (#3368)
* add doc-gen --local <LocalFile> and corresponding functions

Signed-off-by: Nicola115 <2225992901@qq.com>

* go format

Signed-off-by: Nicola115 <2225992901@qq.com>

* refactor the usage of vela def doc-gen from local file; refactor the function GenerateReferenceDoc

Signed-off-by: Nicola115 <2225992901@qq.com>

* gofmt and goimports

Signed-off-by: Nicola115 <2225992901@qq.com>

* update prompts info

Signed-off-by: Nicola115 <2225992901@qq.com>

* remove parseLocalDefinition struct, using ComponentDefinition instead

Signed-off-by: Nicola115 <2225992901@qq.com>

* standardize the function ParseLocalFile

Signed-off-by: Nicola115 <2225992901@qq.com>

* add unit test for ParseLocalFile

Signed-off-by: Nicola115 <2225992901@qq.com>

* remove redundant functions

Signed-off-by: Nicola115 <2225992901@qq.com>

* remove redundant lines and do goimports formatting

Signed-off-by: Nicola115 <2225992901@qq.com>
2022-03-08 16:58:39 +08:00
Tianxin Dong
bef24bdf22 Fix: separate waiting and failed backoff time and make them configurable (#3362)
* Fix: separate waiting and failed backoff time and make them configurable

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* change var name in chart values

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix ci

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-03-08 16:04:19 +08:00
Zhiyu Wang
bed1fb373e Fix: The generated swagger.json is malformed. (#3372) (#3373)
Signed-off-by: Zhiyu Wang <zhiyuwang.newbis@gmail.com>
2022-03-08 15:48:05 +08:00
Somefive
b5ce5df9c5 Fix: remove deprecated rt field in app status (#3388)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-08 15:40:31 +08:00
Somefive
6e73c52116 Feat: enhance container related traits (#3359)
* Feat: enhance env trait

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: enhance container image trait

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Feat: add command trait

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: add test

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-08 15:40:04 +08:00
Kunshuai Zhu
0b0ed60b42 Feat: init multi-cluster metrics management (#3365)
* Feat: init multi-cluster metrics management

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>

* Refactor and add metrics collection for metrics-server

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>

* Modify comment

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>

* Fix staticcheck

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>

* Fix some error

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>

* Fix

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>
2022-03-08 14:20:36 +08:00
Somefive
aeaa199982 Fix: remove useless envbinding crd (#3379)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-08 13:40:05 +08:00
qiaozp
751aed0098 Fix: install definition script (#3376)
Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2022-03-08 12:26:25 +08:00
Somefive
17ee4268e2 Fix: upgrade dependency to fix alerts (#3378)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-07 14:16:40 +08:00
Somefive
7a30ec61d6 Fix: remove unused variable (#3377)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-07 11:57:59 +08:00
Somefive
de81c24f42 Feat: support standalone style multi-cluster (#3223)
* Feat: ref component

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Feat: support topology and override

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Feat: add support for external policy and workflow

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Feat: add admission control

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: disable cross namespace ref object

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Chore: refactor

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Feat: support labelSelector in ref-objects

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Feat: add pre approve for deploy step

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Chore: refactor

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: test

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Feat: support comp/trait type in override policy even not used by prototype

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Feat: support regex match for patch component name

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: labelSelector not work for cluster

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: ref workflow contains external policy

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: revision test

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Feat: parallel apply components

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Feat: add test for oam provider

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: service ref-comp & indirect trait ns

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: align namespace setting for chart

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: add strict unmarshal and reformat

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: merge with cluster rework

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Feat: patch trait-def

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: apply components + load dynamic component

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: add test for loadPoliciesInOrder

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Feat: add test for open merge

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: reformat & add test for step generator

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: add test for parse override policy related defs

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: add test for multicluster provider (expandTopology and overrideConfiguration)

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: add admission test

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: revert trait status pass in component status

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: add test for dependency in workflowstep & standalone multicluster test

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: add check for ref and steps in WorkflowStep & enhance ref-objects scheme check

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-03-07 10:21:00 +08:00
dependabot[bot]
93425889ef Chore(deps): Bump github.com/containerd/containerd from 1.4.12 to 1.4.13 (#3364)
Bumps [github.com/containerd/containerd](https://github.com/containerd/containerd) from 1.4.12 to 1.4.13.
- [Release notes](https://github.com/containerd/containerd/releases)
- [Changelog](https://github.com/containerd/containerd/blob/main/RELEASES.md)
- [Commits](https://github.com/containerd/containerd/compare/v1.4.12...v1.4.13)

---
updated-dependencies:
- dependency-name: github.com/containerd/containerd
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-04 09:43:04 +08:00
old prince
91c6458f35 Fix:deploy application api return value (#3358) 2022-03-03 18:27:13 +08:00
wyike
1cb4426e4b fix windows bug (#3351)
Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-03-03 14:43:40 +08:00
Sunghoon Kang
3399742709 Fix: clone request if round tripper modifies it (#3354)
Currently, multicluster round trippers are modifying request directly.
However, golang documentation says `RoundTrip` should not modify the
request.

This commit fixes round trippers to clone the request before the
modification.

https://pkg.go.dev/net/http#RoundTripper

Signed-off-by: Sunghoon Kang <hoon@linecorp.com>
2022-03-03 14:42:24 +08:00
c1_zh
4ec919e009 Feat: Addon yaml files discovery logic improvement (#3356)
Signed-off-by: cezhang <c1zhang.dev@gmail.com>
2022-03-03 13:12:23 +08:00
StevenLeiZhang
dfd316ef7b Fix: Position of parameter is always changing on addon's details page. (#3345)
Signed-off-by: StevenLeiZhang <zhangleiic@163.com>
2022-03-02 20:46:13 +08:00
Kingram
7f20b7c5be Fix: Fix the inaccurate judgment of ready status (#3317)
* fix: Fix the inaccurate judgment of ready status

Signed-off-by: kingram <kingram@163.com>

* fix: solve inaccurate isHealth

Signed-off-by: kingram <kingram@163.com>

* fix: update readyReplicas type

Signed-off-by: kingram <kingram@163.com>
2022-03-02 13:17:55 +08:00
wyike
12f63dcae5 fix hard code service account name in test (#3346)
Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-03-02 12:20:05 +08:00
barnettZQG
342b853315 Feat: add api for delete component (#3341)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-03-01 22:13:24 +08:00
Tianxin Dong
d6cf2cdd2f Fix: add process context in workflow (#3318)
* Fix: add process context in workflow

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* add context data in process context

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* delete usesless func

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix ut

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* use multi cluster ctx in process ctx

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* remove debug log

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-02-28 10:30:55 +08:00
Tianxin Dong
b8fd610523 Feat: add helm chart doc and make command (#3331)
* Feat: add helm chart doc and make command

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix makefile and add generate helm doc in release ci

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-02-28 10:03:23 +08:00
Wei (段少)
4a58af76cf Update: Nominee Wei as a maintainer (#3326) 2022-02-24 14:52:52 +08:00
StevenLeiZhang
b54ddf4c1c Fix: The order of status displayed by vela ls is not correct (#3302)
Signed-off-by: StevenLeiZhang <zhangleiic@163.com>
2022-02-23 14:50:04 +08:00
wyike
ca486be4eb Fix: addon store&show complicated parameter (#3310)
* fix

fix complicate args storage

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* wrap logic in func and add mock test

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

solve confict

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix
2022-02-23 14:35:18 +08:00
barnettZQG
13b1e85442 Feat: add style and immutable parameters for uischema (#3309)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-02-23 14:23:07 +08:00
wyike
16414a0d9f Feat: addon support version check (#3304)
* addon support version check

add more tests

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* add kubernetes tests

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* add more tests

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* reorgnize the check logic

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* fix addon error bug in apiserver

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix comments

fix test

* add err addon bcode

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* fix comments

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-02-23 12:17:31 +08:00
Somefive
7059c8df79 Feat: rework cluster to align velaux and cli (#3299)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-02-22 15:48:22 +08:00
Jian.Li
fb831345f0 Fix: Let versioned controller uses a separate election locker in one cluster. (#3298)
* versioned leader election id

Signed-off-by: Jian.Li <lj176172@alibaba-inc.com>

* modify GenerateLeaderElectionID

Signed-off-by: Jian.Li <lj176172@alibaba-inc.com>

* add license header

Signed-off-by: Jian.Li <lj176172@alibaba-inc.com>
2022-02-21 19:54:49 +08:00
Tianxin Dong
170debf3ae Fix: change seldon service from istio to ambassador (#3278)
* Fix: change seldon service from istio to ambassador

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix lint

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* get service name form sdep

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-02-20 13:06:24 +08:00
wyike
015f3cf72b Feat: vela can set default namespace and user can enable fluxcd addon by default (#3280)
* vela default namespace and enable addon by default

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* fix lint

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix cli error

fix comments

* add tests

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-02-18 17:23:50 +08:00
yangs
67e88ffbaf Fix(charts): the qps and brust of reconcile client configurable (#3289)
Signed-off-by: yangsoon <songyang.song@alibaba-inc.com>

Co-authored-by: yangsoon <songyang.song@alibaba-inc.com>
2022-02-18 16:27:37 +08:00
Zheng Xi Zhou
37a523cbf7 Fix: not steady unit test (#3293)
The UT `TestGetOpenAPISchemaFromTerraformComponentDefinition` won't
succeed 100%. The required variables in the generated isn't in the expected
order all the time.

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-02-18 15:15:10 +08:00
Jianbo Sun
42837ef162 Fix: make e2e CI more stable in vela show case (#3292)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-02-18 15:06:28 +08:00
Nash Tsai
1e022999a8 Refactor: refactor Helm chart with unnecessary 'systemDefinitionNames` value (#3267)
* refactor: refactor Helm chart with unnecessary 'systemDefinitionNamespace' value

* Revert "refactor: refactor Helm chart with unnecessary 'systemDefinitionNamespace' value"

This reverts commit 2ae764737f.

* Fix: Helm chart's 'Values.systemDefinitionNamespace' have default value of '.Release.Namespace' if unspecified.

* fix: fixed vela cli  referenced '{{.Values.systemDefinitionNamespace}}'

Co-authored-by: yungcheng.tyc <yungcheng.tyc@alibaba-inc.com>
2022-02-18 14:05:38 +08:00
Rui Jiang
8a1d0107b9 concurrent reconciles configurable (#3285)
Signed-off-by: jrkeen <jrkeen@hotmail.com>
2022-02-18 11:05:00 +08:00
Jianbo Sun
d3500b6d7c Chore: remove useless controller args to avoid confusion (#3284)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-02-17 19:13:40 +08:00
朱晓兵
debd9f2b40 Feat: add api for app compare、reset、dryrun (#3136)
* Feat: add api for app compare or reset

Signed-off-by: zxbyoyoyo <596908030@qq.com>

* Fix: fix lint

Signed-off-by: zxbyoyoyo <596908030@qq.com>

* Fix: fix lint

Signed-off-by: zxbyoyoyo <596908030@qq.com>

* Fix: fix imports

Signed-off-by: zxbyoyoyo <596908030@qq.com>
2022-02-17 13:58:48 +08:00
Zheng Xi Zhou
8eaa438631 Feat: add @wangwang as one Reviewer (#3268)
https://github.com/oam-dev/kubevela/issues/3261

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-02-16 19:46:24 +08:00
StevenLeiZhang
7102d7ad20 Fix: vela status api can not return customized arguments of addon (#3275)
Signed-off-by: StevenLeiZhang <zhangleiic@163.com>
2022-02-16 19:23:51 +08:00
Tianxin Dong
7b42515818 Fix: add DisableUpdateAnnotation for addon (#3260)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-02-16 15:27:22 +08:00
Tianxin Dong
7ee4b14a88 Feat: add seldon virtual service support in endpoints (#3259)
* Feat: add seldon virtual service support in endpoints

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix ut

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-02-16 14:25:34 +08:00
barnettZQG
3d0b9b7c71 Feat: rollout controller is disabled by default (#3250)
* Feat: rollout controller is disabled by default

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: change rollout image pull policy

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: remove controller from the rollout addon in testdata

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: rollout controller is disabled by default

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: extended waiting time for the addon mock server

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-02-16 14:25:04 +08:00
Kunshuai Zhu
4bae08c2e2 Fix: Optimize error msg of addon enable/upgrade local path (#3222)
* Optimize error msg of addon enable/upgrade local path

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>

* Fix and add unit test

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>

* Run make reviewable to include all changes

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>

* remove test case for windows

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>

* fix unit test.

Signed-off-by: zhukunshuai <jookunshuai@gmail.com>
2022-02-16 14:20:37 +08:00
Zheng Xi Zhou
46fce3262e Fix: properties table of cloud resource doc is broken (#3256)
If one column of a table contianers multiple line of a json
struct, it will break the table.

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-02-16 11:03:11 +08:00
Zheng Xi Zhou
46967daf11 Fix: fixed required items for a Terraform ComponentDefinition (#3257)
If a Terraform variable is required, the item in OpenAPI schema
is required.

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-02-15 18:53:40 +08:00
Wei (段少)
2fd8b7bc52 Feat: update owners_aliases (#3246)
* Update: ownerer-aliases

* Fix: keep up bootstrap-contributors

* Fix: reformat

* Fix: inherit all the maintainers from who maintain controller
2022-02-15 15:59:40 +08:00
Wei (段少)
a9e511d3a8 Feat: update logo to .svg (#3254) 2022-02-15 15:29:09 +08:00
Wei (段少)
37fb45bab8 Feat: update community.md (#3248) 2022-02-14 18:41:19 +08:00
barnettZQG
4a29776e8e Fix: registry don't have enough info to build a reader (#3237)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-02-14 18:04:34 +08:00
yangs
65522cabdb Fix: fix panic when user disable create apprevision (#3244)
Signed-off-by: yangsoon <songyang.song@alibaba-inc.com>

Co-authored-by: yangsoon <songyang.song@alibaba-inc.com>
2022-02-14 17:54:41 +08:00
Avery
d145487b96 Add cli support for provider gcp and baidu. (#3242)
Signed-off-by: Nicola115 <2225992901@qq.com>
2022-02-14 16:40:18 +08:00
wyike
7523576905 Feat: support complicated addon parameter (#3232)
* support complicated addon parameter

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

* fix: go mod tidy

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-02-14 14:02:16 +08:00
barnettZQG
5b356af7dc Fix: can not collector pod list with rollout trait (#3225)
* Fix: can not collector pod list with rollout trait

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: cue format error

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: default values and optional parameters cannot coexist

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-02-14 13:05:01 +08:00
wangcanfengxs
72a434134a Fix: remove duplicative route in application webservice. (#3236)
Signed-off-by: wangcanfeng <wangcanfeng@corp.netease.com>

Co-authored-by: wangcanfeng <wangcanfeng@corp.netease.com>
2022-02-14 13:03:58 +08:00
barnettZQG
5ab9f0986e Feat: remove the duplicate command (#3228)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-02-14 10:35:31 +08:00
barnettZQG
9fe9f98e30 Fix: apply crd error that the annotations too lang (#3231)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-02-14 10:33:50 +08:00
barnettZQG
fee4a3f2b8 Fix: the definition namespace is empty (#3227)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-02-11 19:56:29 +08:00
Shaw Ho
f0cbe816a6 Fix: ControllerRevision typo (#3214)
Signed-off-by: Xiaoxi He <xxhe@alauda.io>
2022-02-10 15:43:11 +08:00
Somefive
d7261cd965 Fix: disable cochange for apprev when def changes (#3217)
* Fix: disable cochange for apprev when def changes

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: add test

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-02-10 11:40:46 +08:00
barnettZQG
17794e4ce1 Fix: upgrade package github.com/docker/cli for CVE-2021-41092 (#3216)
* Fix: upgrade package github.com/docker/cli for CVE-2021-41092

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Chore: change go version to 1.17

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Chore: change go mod

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: change install cue shell

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-02-09 19:18:40 +08:00
barnettZQG
15418a6523 Feat: the golang version upgrade to 1.7 (#3208)
* Feat: the golang version upgrade to 1.7

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: install expat lib

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-02-09 15:17:50 +08:00
barnettZQG
fa1409f974 Fix: fix flag conflict (#3211)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-02-09 15:17:04 +08:00
Jianbo Sun
3157e65d8a Feat: Add image scan for vela core (#3210)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-02-09 14:00:12 +08:00
barnettZQG
f6eea78ec8 Feat: support install and uninstall vela core (#3181)
* Feat: support install and uninstall vela core

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: support upgrade crd

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: support set reuse args

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: apply CRD before install or upgrade

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-02-09 11:48:38 +08:00
Zheng Xi Zhou
24f147a72c Fix: support more Terraform variable types (#3204)
Support Any, set and some complicated variable types

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-02-08 18:48:38 +08:00
Jianbo Sun
7395994bdd Feat: add componentName in context for traitDefinition (#3200)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-02-08 16:26:16 +08:00
yangs
91125c6fec Feat: dispatch manifests in concurrent (#3060)
* Feat: dispatch manifests in concurrent

Signed-off-by: yangsoon <songyang.song@alibaba-inc.com>

* Fix: merge workflow pkg convert to pkg util

Signed-off-by: yangsoon <songyang.song@alibaba-inc.com>

Co-authored-by: yangsoon <songyang.song@alibaba-inc.com>
2022-02-08 16:25:57 +08:00
Jianbo Sun
0d8a9fc0de Chore: remove hack/website as docs moved to kubevela.io repo (#3197)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-02-08 16:24:26 +08:00
Jian.Li
68ada429f0 Feat: application support controller requirement (#3192)
* application controller version control

Signed-off-by: Jian.Li <lj176172@alibaba-inc.com>

* modify command arg name

Signed-off-by: Jian.Li <lj176172@alibaba-inc.com>
2022-02-08 15:44:38 +08:00
Zheng Xi Zhou
2c41ee9c3c Fix: add unit test for getting Terraform Configuration from remote git (#3193)
Add another unit test when the configuration of Terraform locates
in a subpath of a git remote repository

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-02-08 10:16:13 +08:00
Chazza
53198a9d9d Add nodeselector to jobs (#2811)
Signed-off-by: Chazza <github@whalecoiner.com>

Co-authored-by: Chazza <charlie@whalecoiner.com>
2022-02-08 09:36:51 +08:00
Somefive
7e102d70e0 Fix: error msg in webhook too complicated to read (#3169)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-01-27 16:09:23 +08:00
Jianbo Sun
ce25bd9985 Chore: add changelog of v1.2.x (#3167)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-01-26 11:23:01 +08:00
Oliver Otte
225b59156f Fix: Use systemDefinitionNamespace core Helm Chart (#3163)
Use value in Addon Registry CM and the Test Application

Signed-off-by: Oliver Otte <otte@gonicus.de>
2022-01-25 19:16:38 +08:00
Jianbo Sun
a73a4c64c2 Fix: krew install template of kubectl-vela.exe (#3162)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-01-25 18:46:05 +08:00
Tianxin Dong
614472b95a Feat: support vela show for workflow step definition (#3140)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-01-25 15:03:38 +08:00
zeed-w-beez
8b350a7258 Fix: add context parameters into the error message (#3145)
Signed-off-by: zeed-w-beez <zeed.w.zhao@gmail.com>
2022-01-25 13:27:26 +08:00
wyike
8d13c3c7bc fix: vela addnon enable cannot support = (#3156)
Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-01-25 13:22:45 +08:00
wyike
2da60419fc Feat: addon parameter support ui-shcema (#3154)
* Feat: addon parameter support ui-shcema

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>

fix ci

* add more tests

Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-01-25 10:43:38 +08:00
Zheng Xi Zhou
7895560675 Fix: retrieve Terraform variables from variables.tf (#3149)
* Fix: retrieve Terraform variables from variables.tf

If Terraform modules/resources are stored in remote git repos, get
variables from file `varialbes.tf`, or from `main.tf`.

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-01-24 11:52:07 +08:00
Zheng Xi Zhou
75dc45ced6 Fix: add providerRef in generated ComponentDefinition (#3142)
If the provider is not provider, append the providerRef section in
the generated ComponentDefinition

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-01-24 10:27:37 +08:00
Sunghoon Kang
665e2b6340 Feat: extend gateway trait to set class in spec (#3138)
* Feat: extend gateway trait to set class in spec

`kubernetes.io/ingress.class` annotation is deprecated in favor of
`.spec.ingressClassName`. However, there is no way to set it through
the gateway trait for now.

This commit extends the gateway trait by adding `classInSpec` to
parameter. Forcing the use of `.spec.ingressClassName` makes sense, but
some ingress controllers (including old versions) may not recognize
this field. Therefore, set default value of `classInSpec` to `false`
for backward compatibility.

Signed-off-by: Sunghoon Kang <hoon@linecorp.com>

* Chore: update classInSpec usage

Signed-off-by: Sunghoon Kang <hoon@linecorp.com>
2022-01-23 10:11:47 +08:00
Tianxin Dong
cb7bc0e7f4 Fix: handle workflow cache reconcile (#3128)
* Fix: handle workflow cache reconcile

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix return and move backoff to memory

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* handle failed to patch case

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* add store in err case

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* make reviewable

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix ut

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* do cleanup in ut

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-01-22 15:54:17 +08:00
Sunghoon Kang
4ad8913bbd Fix: prioritize namespace flag for vela up (#3135)
* Fix: prioritize namespace flag for `vela up`

Currently, CLI applies application to `default` namespace when there is
no explicit namespace in application spec, even if the namespace flag
is set.

This commit fixes issue by overriding the namespace if the namespace
flag is set.

Signed-off-by: Sunghoon Kang <hoon@linecorp.com>

* Test: add test cases for overriding namespaces

Signed-off-by: Sunghoon Kang <hoon@linecorp.com>
2022-01-21 10:22:25 +08:00
Zheng Xi Zhou
947455adb9 Fix: support generate Terraform ComponentDefinition from local HCL file (#3132)
Besides generating a Terraform ComponentDefinition from a remote git repo,
support generate one from local HCL file

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-01-20 14:15:22 +08:00
Jian.Li
354e92cfbd Fix: workflow skip executing all steps occasionally (#3025)
* fix asi

Signed-off-by: Jian.Li <lj176172@alibaba-inc.com>

* fix lint

Signed-off-by: Jian.Li <lj176172@alibaba-inc.com>

* add trace tag

* add args for this feature

Signed-off-by: Jian.Li <lj176172@alibaba-inc.com>

* enable-asi-compatibility

Signed-off-by: Jian.Li <lj176172@alibaba-inc.com>
2022-01-19 16:07:19 +08:00
StevenLeiZhang
7bdd3dd6e8 add imagePullSecrets for helm templates to support private docker registry (#3122)
Signed-off-by: StevenLeiZhang <zhangleiic@163.com>
2022-01-19 12:59:21 +08:00
Tianxin Dong
408c893cff Feat: add port name in webservice (#3110)
* Feat: add port name in webservice

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix port name in container

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* generate port name if not specified

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-01-18 18:59:48 +08:00
Zheng Xi Zhou
dd9ec2325a Fix: add app samples for Terraform definition (#3118)
Added application samples for all Terraform typed ComponentDefinition,
and also localize the title for AWS and AZure

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-01-18 18:08:30 +08:00
chwetion
951506b79b fix revision will change when add new trait with skiprevisionaffect to application (#3032)
Signed-off-by: chwetion <chwetion@foxmail.com>

Co-authored-by: chwetion <chwetion@foxmail.com>
2022-01-18 13:40:30 +08:00
Somefive
14b1354a68 Feat: support wild match for env patch (#3111)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-01-18 12:58:50 +08:00
qiaozp
bd2e574007 Fix: trait/comp command output without a new line (#3112)
Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2022-01-18 12:46:59 +08:00
chwetion
438a9fe7a5 Feat: add JFrog webhook trigger (#3104)
* add jfrog webhook to update application image

Signed-off-by: chwetion <chwetion@foxmail.com>

* edit jfrog default request header

Signed-off-by: chwetion <chwetion@foxmail.com>

Co-authored-by: chwetion <chwetion@foxmail.com>
2022-01-18 10:25:28 +08:00
Somefive
12f392cd92 Fix: rollout workload namespace not aligned with rollout (#3107)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-01-17 20:06:27 +08:00
StevenLeiZhang
af27e6a776 ignore vela-system, which is specified in needNamespace for addon metadata information (#3109)
Signed-off-by: StevenLeiZhang <zhangleiic@163.com>
2022-01-17 20:02:05 +08:00
StevenLeiZhang
f57815a5bf ignore files under the addon path of github addon registry (#3099)
Signed-off-by: StevenLeiZhang <zhangleiic@163.com>
2022-01-17 20:01:46 +08:00
Somefive
69527b257c Feat: support external revision in patch component (#3106)
Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-01-17 19:29:28 +08:00
barnettZQG
d88d4d8eca Fix: clear old data in mongodb unit test case (#3103)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-01-17 19:06:29 +08:00
Zheng Xi Zhou
4e881b44af Fix: support generate cloud resource docs in Chinese (#3079)
* Fix: support generate cloud resource docs in Chinese

`vela def doc-gen` will also generate Chinese cloud resource docs

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* Continue the development

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* add ut

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* add ut and fix linting issue

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* Address comments

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* Fix `Should not use dot imports. (ST1001) ` issue

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* add copyright

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-01-17 16:18:59 +08:00
wyike
800b50cf0b fix acr image no version (#3100)
Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
2022-01-17 16:09:21 +08:00
Jianbo Sun
3d9e1c7d80 Fix: use personel token of vela-bot instead of github token for homebrew update (#3096)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-01-17 11:45:01 +08:00
barnettZQG
fccc5df25e Fix: can't query data from the MongoDB (#3095)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-01-17 11:25:09 +08:00
yangsoon
6cee468743 Feat: add more performance optimization and prometheus metrics for controller (#3086)
* Feat: add more prometheus metrics

Signed-off-by: yangsoon <yangsoonlx@gmail.com>

* Feat: add detail gc rt duration metrics

Signed-off-by: Yin Da <yd219913@alibaba-inc.com>

* Feat: add monitor to client

Signed-off-by: Yin Da <yd219913@alibaba-inc.com>

* Feat: add all cache object

Signed-off-by: Yin Da <yd219913@alibaba-inc.com>

* Fix: watch job

Signed-off-by: Yin Da <yd219913@alibaba-inc.com>

* Feat: add deleg client

Signed-off-by: Yin Da <yd219913@alibaba-inc.com>

* Feat: add optimize for rt list and disable controllerrevision

Signed-off-by: Yin Da <yd219913@alibaba-inc.com>

* Feat: add apprev disable optimize

Signed-off-by: Yin Da <yd219913@alibaba-inc.com>

* Fix: optimize log

Signed-off-by: Yin Da <yd219913@alibaba-inc.com>

* Feat: add time recorder for app ctrl

Signed-off-by: Yin Da <yd219913@alibaba-inc.com>

* Feat: add in-memory workflow context

Signed-off-by: Yin Da <yd219913@alibaba-inc.com>

* Feat: add reconcile-reduction & random-pick-gc & optimize rt record

Signed-off-by: Yin Da <yd219913@alibaba-inc.com>

* Feat: add optimize for healthcheck & resourcetracker trigger

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Chore: refactor

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Feat: record the resource-tracker number by informer event-handler

Signed-off-by: yangsoon <songyang.song@alibaba-inc.com>

* Feat: add promethus collect annotation in template

Signed-off-by: yangsoon <songyang.song@alibaba-inc.com>

* Fix: command line comment bug

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Chore: rename args and remove legacy controller metrics

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: make code reviewable

Signed-off-by: yangsoon <songyang.song@alibaba-inc.com>

* Chore: optimize flag descriptions

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Chore: break optimize package

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: gc policy test

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

Co-authored-by: Yin Da <yd219913@alibaba-inc.com>
Co-authored-by: yangsoon <songyang.song@alibaba-inc.com>
2022-01-14 15:18:02 +08:00
wyike
102a155194 fix lost create time and spell error (#3089)
Signed-off-by: wangyike <wangyike_wyk@163.com>
2022-01-14 15:10:56 +08:00
wyike
f39a3fb792 Feat: system information collection logic in apiserver (#3082)
* Feat: userInfoCollection

Signed-off-by: wangyike <wangyike_wyk@163.com>

* Signed-off-by: wangyike <wangyike_wyk@163.com>

change enable/disable to update interface

Signed-off-by: wangyike <wangyike_wyk@163.com>
2022-01-14 10:16:31 +08:00
Somefive
8b5d7ed395 Feat: reset re-sync time (#3008)
* Feat: set resync

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Fix: rename re-sync period

Signed-off-by: Somefive <yd219913@alibaba-inc.com>

* Chore: refactor return value

Signed-off-by: Somefive <yd219913@alibaba-inc.com>
2022-01-13 20:12:54 +08:00
wyike
5b1c47c918 cue template health check skipStandard workload and fix test diverge (#3087)
Signed-off-by: wangyike <wangyike_wyk@163.com>

add annotation

Signed-off-by: wangyike <wangyike_wyk@163.com>

set skipStandardworkload in wl

Signed-off-by: wangyike <wangyike_wyk@163.com>

add annotation

Signed-off-by: wangyike <wangyike_wyk@163.com>
2022-01-13 19:08:43 +08:00
Jianbo Sun
c298c98f25 Fix: vela logs for namespace get from CLI and add container name args (#3084)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-01-12 21:22:42 +08:00
Jianbo Sun
7f7a9dcac0 Feat: vela up support read from stdin && refine CLI output && fix vela addon command (#3080)
* Feat: vela up support read from stdin

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Fix: addon name missed in output and fix test

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Chore: refine CLI output

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

Fix: add retry-on conflict on CLI

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-01-12 17:43:08 +08:00
barnettZQG
b4732ed275 Feat: add cluster name in service endpoint (#3076)
* Feat: add cluster name in service endpoint

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: add cli unit test

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-01-12 14:44:22 +08:00
chwetion
bfbdb85503 Feat: add DockerHub webhook trigger (#3081)
* add dockerhub webhook to update application image

Signed-off-by: chwetion <chwetion@foxmail.com>

* fix e2e webhook response return value

Signed-off-by: chwetion <chwetion@foxmail.com>

* add e2e for dockerhub webhook

Signed-off-by: chwetion <chwetion@foxmail.com>

Co-authored-by: chwetion <chwetion@foxmail.com>
2022-01-12 11:37:06 +08:00
Zheng Xi Zhou
f41e0a3bb5 Fix: change vela def gen-doc to vela def doc-gen (#3078)
* Fix: change `vela def gen-doc` to `vela def doc-gen`

Address the comments to change the command line name

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix CI

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2022-01-12 11:35:41 +08:00
Jianbo Sun
19a542ff11 Feat: support vela up from remote url file (#3075)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-01-11 17:28:45 +08:00
wyike
d64c78db47 Feat: addon enable support local dir for install offline (#3066)
* local reader

Signed-off-by: wangyike <wangyike_wyk@163.com>

* fix lint

Signed-off-by: wangyike <wangyike_wyk@163.com>

* fix comments and add test

Signed-off-by: wangyike <wangyike_wyk@163.com>
2022-01-11 11:29:10 +08:00
Kingram
ceb95229cd Feat: add Harbor webhook trigger (#3065)
* Feat: add harbor webhook trigger (#3029)

Signed-off-by: kingram <kingram@163.com>

* resolve comments

Signed-off-by: kingram <kingram@163.com>

* fix: add comments

Signed-off-by: kingram <kingram@163.com>
2022-01-10 21:26:43 +08:00
barnettZQG
ece47b5961 Fix: change namespace for the service-endpoints-view velaQL (#3071)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-01-10 21:25:07 +08:00
Basuotian
8be11a7e7e Feat: Add Lark support for notification (#3053) (#3059)
Signed-off-by: Shuai Tian <tians1@xiaopeng.com>

Co-authored-by: Shuai Tian <tians1@xiaopeng.com>
2022-01-10 19:42:06 +08:00
Zheng Xi Zhou
b354d2faa9 Fix: generate Terraform ComponentDefinition by vela cli (#3067)
* Fix: generate Terraform ComponentDefinition by vela cli

Support generate Terraform typed ComponentDefinition by `vela def init`

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-01-10 19:12:32 +08:00
Jianbo Sun
3af323365b Chore: refine CLI help message and docs (#3068)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-01-10 17:45:20 +08:00
Jianbo Sun
6a512c02a6 Chore: add autogen CLI reference doc script (#3063)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-01-10 15:28:04 +08:00
Minglong Song
b30ca0c8a2 Fix: Do not fiter event triggered by resync for application controller (#3064)
Signed-off-by: songminglong <1247768069@qq.com>
2022-01-10 14:48:58 +08:00
Zheng Xi Zhou
1a50dd76b5 Fix: generate docs for Terraform ComponentDefinition (#3051)
* Fix: generate docs for Terraform ComponentDefinition

Generated kubevela.io docs for Terraform typed ComponentDefinition
with `vela def gen-doc xxx` cli.

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* Refactor code

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* add ut

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* add ut

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* refine cloud resource title

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-01-10 14:08:48 +08:00
Zheng Xi Zhou
b17abe0081 Fix: add cue binary requirement in Development doc (#3062)
* Fix: add cue binary requirement in Development doc

If the version of cue binary is less than v0.3.0, like v0.2.0, `make reviewable`
will fail due to issue: "make: *** [fmt] Error 1". As `make reviewable` is a
required step for code contribution, add this prerequiste in the doc.

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* Update contribute/developer-guide.md

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2022-01-10 13:01:46 +08:00
Jianbo Sun
12a106fcfe Fix: migrate test from crd v1beta1 to v1 (#3061)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-01-10 10:25:35 +08:00
barnettZQG
53d3ff6915 Fix: security alerts (#3058)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-01-07 16:27:23 +08:00
barnettZQG
d4762e09cd Feat: support query endpoints in status command and speed up CLI response (#3052)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-01-07 15:49:27 +08:00
Tianxin Dong
578aae6482 Fix: fix component definition status message (#3054)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-01-06 23:12:29 +08:00
Zheng Xi Zhou
96485ea0db Fix: when a provider is set in ComponentDefinition, it should look for the provider (#3047)
* Fix: when a provider is set in ComponentDefinition, it should look for the provider

Fixed the issue "The error message is not correct when AWS provider is not available"

Fix #3046

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-01-06 19:02:03 +08:00
Tianxin Dong
251c440453 Feat: add ACR webhook trigger (#3044)
* Feat: add ACR webhook trigger

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* resolve comments

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* change to interface

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix payload types

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-01-06 17:31:02 +08:00
wyike
770894412a Chore: deprecate appDeployment related logic (#3050)
* deperecated appDeployment

Signed-off-by: wangyike <wangyike_wyk@163.com>

* delete more code

Signed-off-by: wangyike <wangyike_wyk@163.com>
2022-01-06 16:24:09 +08:00
Tianxin Dong
4d6c0eb9d5 Fix: reset step status to stopped if the workflow is terminated (#3049)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2022-01-06 15:15:28 +08:00
wyike
53081d043b Chore: deprecate and delete approllout related code (#3040)
* Fex: delete useles approllout related code

Signed-off-by: wangyike <wangyike_wyk@163.com>

fix failed test

Signed-off-by: wangyike <wangyike_wyk@163.com>

Fix: failed e2e test

Signed-off-by: wangyike <wangyike_wyk@163.com>

fix-test

Signed-off-by: wangyike <wangyike_wyk@163.com>

fix test

Signed-off-by: wangyike <wangyike_wyk@163.com>

fix e2e-test

Signed-off-by: wangyike <wangyike_wyk@163.com>

fix e2e rollout test

Signed-off-by: wangyike <wangyike_wyk@163.com>

* delete useless test code

Signed-off-by: wangyike <wangyike_wyk@163.com>

* fix failed unit-test

Signed-off-by: wangyike <wangyike_wyk@163.com>
2022-01-06 14:33:11 +08:00
Jianbo Sun
8495465087 Refactor: refine cli commands && align kubectl-vela with vela && use getnamespaceAndEnv for all (#3048)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-01-06 13:29:02 +08:00
qiaozp
5f31b9aad0 Feat: add test for registry name in addon response (#2858)
* add test for registry name when list addon

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* revert

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* fix

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* fix test

Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2022-01-06 11:48:34 +08:00
barnettZQG
9f2e43756e Feat: support query service endpoints by velaql (#3036)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2022-01-06 00:35:46 +08:00
Zheng Xi Zhou
8033279751 Fix: Generate doc for Terraform typed ComponentDefinition (#3041)
* Fix: Generate doc for Terraform typed ComponentDefinition

When the configuration of a Terraform Typed ComponentDefinition is in
remote Git, generate the properties for it. And generated outputs for
all Terraform ComponentDefinition

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-01-05 19:45:30 +08:00
chwetion
070b313897 Feat: support application trigger deletion (#3037)
* support application trigger deletion

Signed-off-by: chwetion <chwetion@foxmail.com>

* add unit test for deleting application trigger

Signed-off-by: chwetion <chwetion@foxmail.com>

Co-authored-by: chwetion <chwetion@foxmail.com>
2022-01-05 14:25:24 +08:00
wyike
c170cecd34 fix addon panic bug (#3026)
Signed-off-by: wangyike <wangyike_wyk@163.com>

Fix lint

Signed-off-by: wangyike <wangyike_wyk@163.com>
2022-01-05 13:40:51 +08:00
Somefive
acac0554f3 Fix: filter managedfields update events (#3043)
Signed-off-by: Yin Da <yd219913@alibaba-inc.com>
2022-01-05 13:30:58 +08:00
wyike
1bceea29be Fix: helm addon demo issues (#3033)
* helm-port-forward

Signed-off-by: wangyike <wangyike_wyk@163.com>

* fix several issues

Signed-off-by: wangyike <wangyike_wyk@163.com>

* Fix comments

Signed-off-by: wangyike <wangyike_wyk@163.com>
2022-01-04 15:57:57 +08:00
Jianbo Sun
3066cde46b Fix: fix vela show --web that can not show elems (#3039)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-01-04 15:57:24 +08:00
Jianbo Sun
15be6bc388 Fix: check error when client not created (#3038)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2022-01-04 14:52:35 +08:00
qiaozp
ac6b125b7f Fix: error case is not tested when generate api schema (#3035)
Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2022-01-04 11:14:57 +08:00
Zheng Xi Zhou
24c00fc99b Fix: don't skip health check for observability in single cluster (#3031)
* Fix: don't skip health check for observability in single cluster

When there is no clusters, users use cli to enable observability,
we use workflow `apply-application-in-parallel` to enable the addon.
This workflow will skip health check and the addon won't become ready.

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* Fix CI issue

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2022-01-04 11:13:09 +08:00
barnettZQG
f468814371 Feat: add uischema manage command (#3021)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2021-12-30 14:38:00 +08:00
barnettZQG
a1b1d4a6f8 Fix: trigger webbook bug (#3024)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2021-12-30 14:37:40 +08:00
Tianxin Dong
82453b45f5 Fix: fix webhook definition (#3022)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2021-12-30 10:11:19 +08:00
Tianxin Dong
72a00b57e6 Feat: add webhook token in application (#2970)
* Feat: add webhook token in application

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* resolve comments

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Fix: change update cm to commit context

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* refactor the code

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix json merge

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* add create and update time

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2021-12-30 10:10:34 +08:00
Jamie
ff4b10f0ee Fix: op.#Task couldn't work, debug task.cue and fix bugs (#3005)
Signed-off-by: yunjiazhong <yunjiazhong@tencent.com>

Co-authored-by: yunjiazhong <yunjiazhong@tencent.com>
2021-12-29 19:26:27 +08:00
Somefive
746eb0dbe4 Feat: support logs for velaql (#3011)
* Feat: support logs for velaql

Signed-off-by: Yin Da <yd219913@alibaba-inc.com>

* Feat: extend parameter

Signed-off-by: Yin Da <yd219913@alibaba-inc.com>
2021-12-28 20:49:56 +08:00
Somefive
a33d1e488a Feat: gc process ignore cluster not exists (#3007)
* Feat: gc process ignore cluster not exists

Signed-off-by: Yin Da <yd219913@alibaba-inc.com>

* Feat: gc process ignore cluster not exists

Signed-off-by: Yin Da <yd219913@alibaba-inc.com>
2021-12-28 13:12:23 +08:00
Somefive
0d6173c1ca Fix: pending deprecated test (#3009)
Signed-off-by: Yin Da <yd219913@alibaba-inc.com>
2021-12-28 13:12:09 +08:00
barnettZQG
00a80b9ecb Feat: add request logging for the apiserver (#3012)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2021-12-28 11:41:53 +08:00
barnettZQG
8284581e0c Feat: set GOPROXY build arg (#3004)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2021-12-28 10:26:07 +08:00
Tianxin Dong
8a5759949a Fix: fix notfication properties for schema (#3006) 2021-12-27 20:00:26 +08:00
Zheng Xi Zhou
820db96eae Fix: change Grafana service type and remove domain parameter (#2996)
* Fix: change Grafana service type and remove domain parameter

Use Grafana service's external IP to visit the dashboard and
remove the prameter domain

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* address CI issues

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix api issue

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix ci

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix ci

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2021-12-26 20:38:19 +08:00
barnettZQG
4d69027300 Feat: check target where create and update env (#3003)
* Feat: check target where create and update env

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: list applications by env

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2021-12-25 14:20:36 +08:00
wyike
5210800cac Fix: add registryName into addon list (#2993)
* Fix: add registryName into addon list

Signed-off-by: wangyike <wangyike_wyk@163.com>

* fix congig map

Signed-off-by: wangyike <wangyike_wyk@163.com>

* fix several comments

Signed-off-by: wangyike <wangyike_wyk@163.com>

* small fix

Signed-off-by: wangyike <wangyike_wyk@163.com>
2021-12-25 12:37:23 +08:00
wyike
66881c13d3 Fix: more app info in addon status (#3000)
Signed-off-by: wangyike <wangyike_wyk@163.com>
2021-12-25 11:01:59 +08:00
Jianbo Sun
5648c56cf5 Refactor: align velaux env and CLI env, they both use K8s namespace as (#2975)
* Refactor: use createOrUpdateNamespace as a common util function

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Feat: add ENV webservice handelr

* Fix: fix Env usecase logic

* Feat: Add Delete Env API

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Fix: filter empty addon data

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Feat: split makefiels and make it clear

* Feat: add k8s utils test

* Feat: Add env update interface

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Feat: change env implementation

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: minor fix

* Revert "Fix: minor fix"

This reverts commit 9cafefa65a.

* Fix: use appusecase as parameter

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Refactor: align CLI vela env with new env design

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Fix: minor fix

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Feat: add page index and alias of env

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Fix: fix tests and licence header

* Fix: fix makefile and add default target

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Fix: update build swagger.json

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Fix: change update env api

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: list env with alias

* Feat: add log to env delete

* Fix: can not get app status

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: support update workflow and refactor code

* Fix: lint

* Fix: remove swagger check

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Fix: fix cli vela delete

* Fix: update test

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Fix: update test

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* Fix: app deploy unit test case

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: SortOrderDescending is not effective

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: e2e test case

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Feat: support default project/target/env

* Fix: make test and add swagger

* Fix: use separated datasource for unit test

* Fix: app rollback bug

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: fix e2e test

* Fix: kubeapi driver sort bug

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: e2e test

* Fix: api e2e test

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: e2e test fix

* Fix: try fix e2e test

* Fix: api e2e test

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

Co-authored-by: barnettZQG <barnett.zqg@gmail.com>
2021-12-25 10:36:54 +08:00
Min Kim
27252f32de idempotent conditional apiservice deletion (#2997)
Signed-off-by: yue9944882 <291271447@qq.com>
2021-12-24 18:36:21 +08:00
Somefive
775faee96f Chore: add welcome logo in helm install notes (#2994)
Signed-off-by: Yin Da <yd219913@alibaba-inc.com>
2021-12-24 16:15:28 +08:00
qiaozp
e818921a87 Fix: return reasonable error make multi-registry work (#2995)
Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2021-12-24 16:06:07 +08:00
wyike
551992e8f2 fix panic bug of addon enable (#2985)
Signed-off-by: wangyike <wangyike_wyk@163.com>
2021-12-24 11:12:26 +08:00
wyike
e519c6142a Chore: delete useless test (#2984)
* delete useless test

Signed-off-by: wangyike <wangyike_wyk@163.com>

* delete healthscope related test

Signed-off-by: wangyike <wangyike_wyk@163.com>

* small fix

Signed-off-by: wangyike <wangyike_wyk@163.com>

* remove useless report

Signed-off-by: wangyike <wangyike_wyk@163.com>
2021-12-23 18:13:00 +08:00
wyike
3198693ad7 Fix: cli addon registry style small fix (#2980)
* small fix

Signed-off-by: wangyike <wangyike_wyk@163.com>

* fix comments

Signed-off-by: wangyike <wangyike_wyk@163.com>
2021-12-23 14:37:22 +08:00
Tianxin Dong
88aa6c0e83 Fix: change update cm to commit context (#2979)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2021-12-23 11:45:56 +08:00
Zheng Xi Zhou
8b82a79d1d Fix: vela port-forward supports Addon Observability (#2977)
* Fix: vela port-forward supports Addon Observability

Support port forwarding service of Addon Observability in
multiple clusters

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* fix CI issues

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2021-12-22 21:08:00 +08:00
wyike
14a57fc656 vela cli support oss path and cli upgrade an addon (#2976)
Signed-off-by: wangyike <wangyike_wyk@163.com>
2021-12-22 19:31:20 +08:00
Zheng Xi Zhou
d7ee46134d Fix: lowercase the key name in API response (#2978) 2021-12-22 18:14:34 +08:00
Jian.Li
6e5e26c19d fix message invalid (#2968)
Signed-off-by: Jian.Li <lj176172@alibaba-inc.com>
2021-12-22 12:47:27 +08:00
Zheng Xi Zhou
8750fc8fab Fix: implement addons/observability/status API (#2966)
* Fix: implement addons/observability/status API

Return all domains and the IPs from all clusters. And
provider the way to visit the console of observability

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* add unit tests

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2021-12-22 10:54:46 +08:00
qiaozp
7ed293e27e Fix: list addon will always return non-nil err (#2967)
Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2021-12-22 09:28:10 +08:00
Somefive
36ad77493c Fix: resource policy test flaky (#2969)
Signed-off-by: Yin Da <yd219913@alibaba-inc.com>
2021-12-22 09:27:21 +08:00
qiaozp
9317bb1cab Refactor: addon cache mechanism and code architecture (#2956)
* Refactor: fix addon cache and code

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>

* basic trim

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* Fix list OSS bucket addon's meta

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* rename listAddonMeta func

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* fix enable

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* rename and trim cache func call

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* remove same source code, use Registry to implement Source interface. Keep the compatibility of DeployTo fields.

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* complete github reader

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* fix read from github, fix test

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* reviewable

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* header

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* rename function, restore test

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* try CI

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* sort out functions name. add detail test

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* fix test

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* fix test

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* filter directory without metadata.yaml in oss

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* add GitHub reader unit test

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* clean up

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* reviewable

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* header

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* add cache arg

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* fix test

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* change field name

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* build swagger

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* some json tag, revert cache logic

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

Co-authored-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2021-12-21 09:31:37 +08:00
barnettZQG
2543b7b510 Fix: can not find target name in pod list (#2936)
* Fix: can not find target name in pod list

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: set create time for init trait

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2021-12-20 18:51:21 +08:00
qiaozp
7ef8cea7ce Chore: remove addons stored in configmap (#2951)
Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2021-12-20 17:21:03 +08:00
wyike
ae06ddacac Feat: addon compability code for 1.1 (#2961)
Signed-off-by: wangyike <wangyike_wyk@163.com>
2021-12-20 14:34:45 +08:00
Somefive
db189f7527 Fix: optimize resourcetracker upgrade (#2959)
Signed-off-by: Yin Da <yd219913@alibaba-inc.com>
2021-12-20 13:05:53 +08:00
Tianxin Dong
9599e2da9d Docs: update some outdated content in workflow doc (#2962)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2021-12-20 11:35:22 +08:00
Tianxin Dong
6c4b7699b9 Fix: nit fix for workflow (#2957)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2021-12-20 11:00:07 +08:00
Tianxin Dong
add5d40bfc Feat: add init secret demo (#2955)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2021-12-18 14:31:18 +08:00
Somefive
2f7b20d8b8 Fix: amend fix for log sanitize (#2953)
Signed-off-by: Yin Da <yd219913@alibaba-inc.com>
2021-12-18 10:16:36 +08:00
Tianxin Dong
b85be11324 Feat: add workflow stability mechanism doc (#2960)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2021-12-18 10:11:38 +08:00
Zheng Xi Zhou
d11d171be8 Fix: enable Observability in runtime clusters (#2886)
* Fix: enable Observability in runtime clusters

Enabled add-on observability in runtime clusters. In each cluster, a sub-domain
will be allocated to the cluste

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>


* Fix:add workflow step definition and ut

Added a new workflow step definition `apply-application-in-parallel`,
and added more unit tests
2021-12-17 23:04:54 +08:00
Somefive
cb0e88d590 Fix: nil pointer aliyun sdk (#2954)
Signed-off-by: Yin Da <yd219913@alibaba-inc.com>
2021-12-17 15:15:23 +08:00
Tianxin Dong
f0d95c566f Fix: fix notification definition to show better (#2952)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2021-12-17 01:09:56 +08:00
Somefive
0a2a41046c Fix: ack dashboard url (#2932)
Signed-off-by: Yin Da <yd219913@alibaba-inc.com>
2021-12-16 21:25:43 +08:00
yangsoon
b57db36dd3 Fix: velaql compatible with v1.2.0-beta version (#2946)
Signed-off-by: yangsoon <yangsoonlx@gmail.com>
2021-12-16 21:15:07 +08:00
Tianxin Dong
f5e04a5575 Fix: fix apiserver snake case (#2944)
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2021-12-16 21:14:25 +08:00
Somefive
4e91e3ab8d Fix: workflow step definition for ui (#2948)
Signed-off-by: Yin Da <yd219913@alibaba-inc.com>
2021-12-16 21:10:09 +08:00
Somefive
478d134778 Feat: upgrade cluster-gateway (#2941)
Signed-off-by: Yin Da <yd219913@alibaba-inc.com>
2021-12-16 21:06:02 +08:00
Somefive
5f2085b470 Feat: support parallel apply in deploy2env (#2938)
Signed-off-by: Yin Da <yd219913@alibaba-inc.com>
2021-12-16 21:05:23 +08:00
Somefive
416fc45999 Fix: security alert (#2945)
Signed-off-by: Yin Da <yd219913@alibaba-inc.com>
2021-12-16 21:03:54 +08:00
Jian.Li
133a89be3f Fix: deprecate CRD discovery for CUE import in Definition to prevent memory leak and OOM crash (#2925)
* Pause test case

Signed-off-by: Jian.Li <lj176172@alibaba-inc.com>

* fix lint

Signed-off-by: Jian.Li <lj176172@alibaba-inc.com>

* diable discover the open api of the CRD

Signed-off-by: Jian.Li <lj176172@alibaba-inc.com>

* fix definition test cases

Signed-off-by: Jian.Li <lj176172@alibaba-inc.com>
2021-12-16 17:53:15 +08:00
yangsoon
3b1f097807 Fix: change catlog helm repo path to https://charts.kubevela.net/example (#2942)
Signed-off-by: yangsoon <yangsoonlx@gmail.com>
2021-12-16 15:17:00 +08:00
wyike
e49dec5a3a Feat(cli): app status more info (#2937)
* Feat(cli): app status more info

Signed-off-by: wangyike <wangyike_wyk@163.com>

* more info

Signed-off-by: wangyike <wangyike_wyk@163.com>

* fix: delete invisible check

Signed-off-by: wangyike <wangyike_wyk@163.com>
2021-12-16 11:12:06 +08:00
Somefive
f15d748251 Feat: add cluster alias to dt (#2929)
Signed-off-by: Yin Da <yd219913@alibaba-inc.com>
2021-12-15 16:33:45 +08:00
barnettZQG
e17f6b931a Feat: support specified existing namespace while creating a project (#2931)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2021-12-15 14:42:18 +08:00
Somefive
a3bf61fa4f Feat: set multicluster enabled by default (#2930)
Signed-off-by: Yin Da <yd219913@alibaba-inc.com>
2021-12-15 12:11:28 +08:00
Tianxin Dong
655c2615e1 Feat: add workflow reconciling backoff time and failed limit times (#2881)
* Feat: add workflow failed after retries

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* Feat: add workflow reconcile backoff time

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix lint

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* make reviewable

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* resolve some comments

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* add tests

* fix rebase

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix test

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix status

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix requeue time interval

* resolve comments

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* change time to pointer

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix pointer test

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix test

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* change time to cm

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* resolve comments and add e2e test

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2021-12-15 11:33:33 +08:00
Somefive
4dc213469a Feat: add compatibility code for new rt (#2920)
Signed-off-by: Yin Da <yd219913@alibaba-inc.com>
2021-12-14 21:27:47 +08:00
yangsoon
03d79db919 Fix: fix sync-api CI (#2923)
Signed-off-by: yangsoon <yangsoonlx@gmail.com>
2021-12-14 17:25:24 +08:00
qiaozp
0fc65eb787 Feat: add mock server (#2911)
* add mock server

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* use mock server

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* reviewable

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* reviewable

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* fix test

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* complate terraform-alibaba addon

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* move to test dir

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* fix test

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* complete terraform

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* fix test

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* add back oss

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* fix test

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* remove useless readme

Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2021-12-14 14:52:10 +08:00
yangsoon
6d536a84d7 Feat: refactor velaql provider with new ResourceTracker architecture (#2915)
* Feat: refactor velaql with new ResourceTracker architecture

Signed-off-by: yangsoon <yangsoonlx@gmail.com>

* Feat: concurrently request the pod created by helm

Signed-off-by: yangsoon <yangsoonlx@gmail.com>
2021-12-14 13:09:40 +08:00
wyike
f5f5ff514f Feat: cli manage addon registry and apiserver addon status return app status info (#2910)
* Fix: cli add addon registry

add more detail info for addon workflow info

Signed-off-by: wangyike <wangyike_wyk@163.com>

* fix: set app status in addon status directly

Signed-off-by: wangyike <wangyike_wyk@163.com>

* add e2e test

Signed-off-by: wangyike <wangyike_wyk@163.com>
2021-12-13 19:47:32 +08:00
qiaozp
a67b7e90d0 Feat: add path argument to addon oss source (#2907)
* add path

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* pending test

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* reviewable

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* reviewable

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* license

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* keep compatible

Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2021-12-13 19:43:15 +08:00
Somefive
a89bb69a62 Fix: add design docs for ResourceTracker (#2909)
* Fix: enhance rt logic and add docs

Signed-off-by: Yin Da <yd219913@alibaba-inc.com>

* Fix: test conflict

Signed-off-by: Yin Da <yd219913@alibaba-inc.com>
2021-12-13 19:41:42 +08:00
Min Kim
c5c664f316 pin ocm images version to v0.5.0 (#2900)
Signed-off-by: yue9944882 <291271447@qq.com>
2021-12-13 17:57:45 +08:00
qiaozp
53006b4137 Fix: move addon api to pkg/addon (#2905)
* move addon api to pkg/addon

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* reviewable

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* license

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* reviewable

Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2021-12-13 17:47:53 +08:00
barnettZQG
f47ae0e498 Feat: support automatically creating scaler trait for webservice component (#2908)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2021-12-10 15:04:31 +08:00
Somefive
b622cbdb7f Feat: ResourceTracker new architecture (#2849)
* Feat: new rt

Signed-off-by: Yin Da <yd219913@alibaba-inc.com>

* Fix: add publish version

Signed-off-by: Yin Da <yd219913@alibaba-inc.com>
2021-12-10 15:00:03 +08:00
qiaozp
94f32a317d Feat: support addon definition in cue format (#2896)
* move def func to pkg

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* split def schema render

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* render CUE definition

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* add test

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* add test

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* fix test

Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2021-12-09 20:31:19 +08:00
Min Kim
b483840987 honor existing cluster-gateway installation if exists (#2904)
Signed-off-by: yue9944882 <291271447@qq.com>
2021-12-09 15:59:16 +08:00
Jian.Li
3e81fdf008 remove InsecureSkipVerify (#2903)
Signed-off-by: Jian.Li <lj176172@alibaba-inc.com>
2021-12-09 09:20:49 +08:00
barnettZQG
ad4b44696a Feat: add the project api (#2899)
* Feat: add the project api

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: fix e2e test bug

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2021-12-08 19:08:35 +08:00
barnettZQG
1563c582bc Feat: support additional properties parameter (#2880)
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2021-12-08 17:46:45 +08:00
Jian.Li
3f2e76c75a Feat: HTTP Provider requires adding certificate chain from secret (#2771)
* http support load tls certs

* fix: TLS MinVersion too low
2021-12-08 11:39:04 +08:00
wyike
f7ebbf4fa0 Fix: create vela namespace (#2893)
Signed-off-by: wangyike <wangyike_wyk@163.com>
2021-12-08 09:12:37 +08:00
Somefive
330c3e269c Fix: kubeconfig tmp file security (#2894)
Signed-off-by: Yin Da <yd219913@alibaba-inc.com>
2021-12-08 09:12:07 +08:00
Snyk bot
41e6a895a1 fix: hack/website/Dockerfile to reduce vulnerabilities (#2857)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-DEBIAN9-CURL-1585151
- https://snyk.io/vuln/SNYK-DEBIAN9-GLIBC-356851
- https://snyk.io/vuln/SNYK-DEBIAN9-GLIBC-356851
- https://snyk.io/vuln/SNYK-DEBIAN9-GLIBC-356851
- https://snyk.io/vuln/SNYK-DEBIAN9-GLIBC-356851

Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2021-12-07 18:07:19 +08:00
Jianbo Sun
e8f2b79721 Fix: use specific cli release download folder (#2889)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2021-12-07 17:53:04 +08:00
qiaozp
2947da2611 Fix: OSS read data race (#2875)
* Fix: read oss addon prefix bug

This bug is about list OSS bucket by prefix which will cause confusion between `terraform` and `terraform-alibaba`

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* add test

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* fix data race

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* fix channel block

add test

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* reviewable

Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2021-12-07 16:17:11 +08:00
Tianxin Dong
4b07f1d000 Feat: support generate definition schema from terraform remote (#2860) 2021-12-07 15:50:04 +08:00
wyike
99757814ab Feat: algin addon cli and apiserver (#2867)
Feat: cli aligin with apiserver

Fix comments

Signed-off-by: wangyike <wangyike_wyk@163.com>
2021-12-07 15:11:52 +08:00
Jianbo Sun
ecd7f62f89 Chore: add more frequency on CI image clean job && delete rollout-test image (#2883)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2021-12-06 16:37:34 +08:00
qiaozp
a62724fbd7 Fix: addon timeout is not acturally tracked (#2863)
* Fix: addon timeout is not acturally tracked,  better addon enable fail message

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* add namespace

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* change wording

Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2021-12-06 12:33:52 +08:00
Tianxin Dong
33ffc00c2e Fix: fix webservice and worker def (#2865) 2021-12-06 11:21:41 +08:00
Zheng Xi Zhou
bf03c82bc7 Fix: support displaying logs for Terraform typed applications (#2879)
Refined the logic to display logs for Terraform typed applications,
and upated the namespace of the pod running Terraform jobs

Fix https://github.com/oam-dev/kubevela/issues/2670

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2021-12-03 18:31:30 +08:00
yangsoon
a528431d63 Feat: add trait service-account (#2878)
Signed-off-by: yangsoon <songyang.song@alibaba-inc.com>

Co-authored-by: yangsoon <songyang.song@alibaba-inc.com>
2021-12-03 18:24:50 +08:00
Jianbo Sun
fb5716cc13 Feat: add vela apiserver release into github workflow (#2877)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2021-12-03 17:01:50 +08:00
Min Kim
589480af62 idempotent cluster join: filter out the clusters not yet accepted (#2859)
Signed-off-by: yue9944882 <291271447@qq.com>
2021-12-03 14:17:38 +08:00
Jianbo Sun
b8640222c8 Fix: mark test chart image in a fixed tag to avoid changed by release action (#2873)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2021-12-03 13:05:28 +08:00
Tianxin Dong
56f300846c Fix: fix sync from status version instead of anno (#2870)
* Fix: fix workflow sort

* fix sync from status

* fix lint

* fix apply

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix lint

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>

* fix ut

Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2021-12-03 11:22:55 +08:00
qiaozp
95c2b8ce04 Fix: query addon status api 500 because of secret (#2866)
* Fix: query addon status api 500 because of secret

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* Fix: enable addon failed because the file name of the cue template is used as the component name

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* Fix: fix several oss read problem

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* fix lint

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* fix

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* use oss test endpoint

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* fix ut

Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2021-12-03 10:59:46 +08:00
Tianxin Dong
9b7286d6f5 Fix: fix workflow apserver sort and rollback status (#2862)
* Fix: fix workflow apiserver sort and rollback status

* fix ut
2021-12-02 20:04:53 +08:00
barnettZQG
27e1dd4a1b Fix: cloud resource type applications could not be identified (#2856)
* Fix: cloud resource type applications could not be identified

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>

* Fix: the cloud app properties can not set empty region value

Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
2021-12-02 17:11:50 +08:00
Zheng Xi Zhou
7d341c4bd3 Fix: pass on properties of Terraform typed application to Configuration (#2847)
* Fix: pass on properties of Terraform typed application to Configuration

Pass on properties like `writeConnectionSecretRef`, `Region` and `providerRef`
to Configuration.

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>

* revert definitions

Signed-off-by: Zheng Xi Zhou <zzxwill@gmail.com>
2021-12-02 15:45:50 +08:00
Chwetion
59b458404e Feat: add deleting phase for apiserver application status model (#2854)
Signed-off-by: chwetion <chwetion@foxmail.com>

Co-authored-by: chwetion <chwetion@foxmail.com>
2021-12-02 10:16:27 +08:00
qiaozp
a6ef0644ff Feat: oss suppurt for addon (#2848)
* Add OSS source support for addon

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* add unit test for pkg/addon

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* fix lint

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* add license

Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2021-12-01 19:15:48 +08:00
Min Kim
d56a1e534b alternatively using the original endpoint from the hub kubeconfig as registry endpoint (#2751)
Signed-off-by: yue9944882 <291271447@qq.com>

upgrade cluster-register to v1.0.2

Signed-off-by: yue9944882 <291271447@qq.com>

improve logging

Signed-off-by: yue9944882 <291271447@qq.com>
2021-12-01 14:47:26 +08:00
Tianxin Dong
374c3cd3e0 Fix: reset record status when a new one is created (#2846)
* Fix: reset record status when a new one is created

* skip the new created one
2021-12-01 10:52:07 +08:00
wyike
163415479b Feat: list enabled addon from cluster interface and update addon (#2832)
make reviewable

lint

Feat: interface for update addon

nit import

fix comments

fix status args return

Signed-off-by: wangyike <wangyike_wyk@163.com>
2021-12-01 10:27:26 +08:00
barnettZQG
4294cc8a98 Feat: automatically populate the provider and region configuration for cloud app (#2841)
* Feat: automatically populate the provider and region configuration for cloud app.

* Fix: fix e2e test bug

* Fix: component name and type inconsistency

* Fix: fix unit test bug

* Fix: fix unit test bug

Co-authored-by: barnettZQG <yiyun.pro>
2021-12-01 10:26:33 +08:00
Zheng Xi Zhou
5630c02d7f Fix: add more fields for Terraform types definitions in api schema (#2836)
* Fix: add more fields for Terraform types definitions in api schema

Added `writeConnectionStringSecrecto`, `region` and `deleteResoruce`
fields for Terraform types definitions in OpenAPI schema

* fix ci issue

* fix header
2021-12-01 10:03:08 +08:00
Tianxin Dong
8dad1eadb4 Feat: add alias in list record api (#2833) 2021-11-30 19:04:42 +08:00
Zheng Xi Zhou
c588f85438 Fix: sync status of Terraform typed components to application (#2844)
Synchronized the status of an Terraform typed components to .status.
services of the application

Signed-off-by: zzxwill <zzxwill@gmail.com>
2021-11-30 17:49:59 +08:00
朱晓兵
13c0b08081 Fix: update envBinding related workflow bug (#2831)
* Fix: fix update envBinding related workflow bug

* Fix: support cloudresource step

* Fix: add unit test

* Fix: add unit test

* Fix: add unit test

* unit test

Co-authored-by: zhuxiaobing <zhuxiaobing@lixiang.com>
2021-11-30 17:24:29 +08:00
Tianxin Dong
52ac570faa Feat: add filter in list definitions (#2835)
* Feat: add filter in list definitions

* add workload type
2021-11-30 16:53:01 +08:00
Jian.Li
ec105cbb02 Fix: application conditions confusion. (#2834)
* fix condition confusion

* fix test cases
2021-11-30 16:43:27 +08:00
Wei (段少)
f8e1ddc52c Add up CII Best Practices badge (#2843) 2021-11-30 15:13:56 +08:00
barnettZQG
2abd98301f Feat: remove apiserver component from the chart (#2838)
Co-authored-by: barnettZQG <yiyun.pro>
2021-11-30 12:42:18 +08:00
yangsoon
13b07674f1 Fix: fix flaky e2e-test of apiserver (#2840)
Co-authored-by: yangsoon <songyang.song@alibaba-inc.com>
2021-11-30 10:37:52 +08:00
Somefive
f9ecc02417 Feat: rework rt (#2797) 2021-11-29 16:14:30 +08:00
Tianxin Dong
d1f56743cc Feat: add core definitions (#2664)
* Feat: add components and storage api-oriented defs

* add some examples

* change the dir

* resolve comments

* make reviewable

* fix example

* add labels and annotations in component

* add config map ref key in env

* add more traits

* add wfstep defs and rename

* fmt the cue

* re-struct all the definitions

* revert deprecated defs and add webhook def

* delete useless network trait

* fix generated tab

* fix indent

* fix webservice

* add labels

* comment webservice and worker's health check

* fix retainkeys

* fix webservice and worker's health check

* add suspend def which will be replaced by internal def

* fix cli and add labels

* fix script

* add ignore

* fix healthscope example
2021-11-29 15:02:16 +08:00
wyike
6184b6e0e6 Feat: install helm addon schema (#2815)
Fix: fix bug

Fix: rebase bug

fix rebase -i master

rename func
2021-11-29 13:24:52 +08:00
Zheng Xi Zhou
ac2169e2fa Fix: upgrade terraform controller to v0.2.10 (#2827)
- Clean RBAC
- Generate Job/Pod/ConfigMap/Secret in the namespace of a Configuration
- Fix: The secret generated by Terraform won't regenerate after it's manually deleted
- Fix status ProvisioningAndChecking
- The Kubernetes backend should keep consistent
- Override Region of a provider in Configuration
- Set region to spec.region
2021-11-29 10:38:27 +08:00
barnettZQG
96a9fb7d9e Feat: support auto creating workflow step for cloud app (#2826)
* Feat: support auto creating workflow step for cloud app

* Fix: fix unit test bug

* Fix: fix component cant not find bug

Co-authored-by: barnettZQG <yiyun.pro>
2021-11-29 10:20:15 +08:00
Zheng Xi Zhou
92335eca17 Fix: support exposing cloud resource identifier and console url (#2825)
* Fix: support exposing cloud resource identifier and console url

To help users quickly navigate to the instance in the web console, exposing
necessary information in ComponentDefinition and convert them to Configuration

* fix ci

* Check whether wl.FullTemplate.ComponentDefinition is nil before getting annotations
2021-11-28 17:21:12 +08:00
yangsoon
23bceb9f9c Fix: velaql miss query the resources created by the old application version (#2824)
Co-authored-by: yangsoon <songyang.song@alibaba-inc.com>
2021-11-27 13:57:48 +08:00
qiaozp
b05deeca55 Feat: add addon invisible field (#2820)
* Feat: add addon invisible field

* reviewable
2021-11-27 13:06:45 +08:00
Zheng Xi Zhou
7bdf4c176b Fix: install Terraform and apply the support for a provider in one jump (#2778)
* Fix: install Terraform and apply the support for a provider in one jump

- Fix issue: addon name should not include forward-slash "/" cloud-resource fix addon name should not include forward-slash "/" #2588
- Install terraform and the provider in one jump. Instead of installing terraform
and terraform-xxx in two steps
2021-11-26 23:01:11 +08:00
Tianxin Dong
334ef864da Feat: add alias in workflow step status (#2821)
* Feat: add alias in workflow step status

* fix lint

* add revision
2021-11-26 20:35:04 +08:00
Somefive
f5fc822a3e Fix legacy resourcetracker not garbage collect while previousRT is empty or equals currentRT (#2817) 2021-11-26 17:48:17 +08:00
Somefive
dd84700657 Fix: health check appRev label bug (#2816)
* Fix: healthscope failed since appRevision is not set && rollout controller amend appRevision to workload since compRev does not have this one

* Fix: test
2021-11-26 17:47:43 +08:00
Somefive
782025507c Fix: health check do not check resource in correct namespace while ns is override by envbinding (#2818) 2021-11-26 16:04:44 +08:00
Tianxin Dong
bab241e969 Feat: add more logs in workflow sync (#2806) 2021-11-26 15:34:25 +08:00
Jianbo Sun
27c4dd1bc5 Fix: don't invoke docker command if not exist (#2813)
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2021-11-26 13:54:44 +08:00
Zheng Xi Zhou
41f384e36b Fix: addon name should not add prefix resources (#2808)
* Fix: addon name should not add prefix `resources`

- Adding prefix `resources will hit issues as:
'unable to parse requirement: invalid label value:
"resources-prometheus-server-register-grafana-datasource-5576f7f6b4":
      at key: "controller.oam.dev/component": must be no more than 63 characters'
- This won't avoid the name confliction with other components

* address comments
2021-11-25 21:01:56 +08:00
qiaozp
2be261e3f7 Feat: optimize addon enable experience (#2677)
* Feat: better addon enable experience

* better

* Update references/cli/addon.go

typo

Co-authored-by: yangsoon <yangsoonlx@gmail.com>

Co-authored-by: yangsoon <yangsoonlx@gmail.com>
2021-11-25 14:08:20 +08:00
qiaozp
b279df0451 Fix: add lock to avoid addon concurrency read error (#2803)
* make read func table driven

* add mutex

* fix
2021-11-25 11:50:29 +08:00
Zheng Xi Zhou
bbb1c1767e Fix: remove .cue suffix from the component name of observability (#2796)
If the component name has a suffix `.cue`, it will hit issue of not
match a DNS name
2021-11-25 11:06:08 +08:00
Zheng Xi Zhou
40f100ec27 Fix: support naming a terraform provider (#2794)
* Fix: support naming a terraform provider

Support set the name for a terraform provider.

Fix #2595

* Style: format

Co-authored-by: Yin Da <yd219913@alibaba-inc.com>
2021-11-25 10:32:30 +08:00
Tianxin Dong
6f90155ccd Feat: add workflow rollback cli (#2795)
* Feat: add workflow rollback cli

* fix ci
2021-11-24 21:34:44 +08:00
Zheng Xi Zhou
216a95a2dd Fix: the way to renderCUETemplate for terraform provider is wrong (#2798)
Fixed the probelm of renderring cue template for terraform provider
after #2788
2021-11-24 21:34:06 +08:00
Somefive
d1f70def0e Fix: healthscope support envbinding (namespace) (#2783)
* Fix: healthscope support envbinding (namespace)

* Fix: ensure healthscope not patch status when application workflow is still running
2021-11-24 21:26:06 +08:00
yangsoon
65f8614fd8 Feat: vela delete add wait and force option (#2747) 2021-11-24 21:00:03 +08:00
wyike
66e8398ab8 Fix: add back missed commit and add tests (#2781)
* Fix: missed commit

Test: add test

* Fix: add e2e test addon rely on core feature

fix test

Fix: e2e-test

* Fix: create vela-system namespace when cluster join

fix

* Fix: fix comments add args in command
2021-11-24 20:59:08 +08:00
Tianxin Dong
f1eef83809 Feat: add workflow name for frontend (#2787) 2021-11-24 20:18:27 +08:00
barnettZQG
99d473df2a Feat: translate the object type to Group (#2786)
* Feat:  translate the object type to Group

* Fix: fix unit test bug

* Fix: fix workflow do not delete after delete env bug

Co-authored-by: barnettZQG <yiyun.pro>
2021-11-24 20:17:40 +08:00
Jian.Li
da251f1cb6 Fix: lookupByScript don't support import (#2788)
* fix lookupByScript

* fix lint
2021-11-24 19:57:54 +08:00
Zheng Xi Zhou
14770dff0d Fix: arguments map[string]string doesn't support observability's args (#2790)
* Fix: arguments map[string]string doesn't support observability's args

As there are bool typed arguments, the current arguments type doesn't
support.
2021-11-24 19:52:59 +08:00
Zheng Xi Zhou
4b72954c86 Fix: addon with arguments could not be installed (#2789)
With the fix #2766 to install addon without arguments, fix the issue of
installing addons with arguments.
2021-11-24 19:52:13 +08:00
yangsoon
3d2fcacb5a Feat: built in gc policy to application (#2575) 2021-11-24 15:38:13 +08:00
Zheng Xi Zhou
e5a86ef537 Fix: the first addon should not be example (#2793)
As addon example has been removed, the first addon on should not
be `example`
2021-11-24 13:44:55 +08:00
yangsoon
ec5e2b4660 Fix: clean up the view api (#2779) 2021-11-24 11:09:50 +08:00
barnettZQG
8c276e226b Fix: fix update component and list workflow bug (#2782)
* Fix: fix update component and list workflow bug (#2763)

* Fix: fix update component and list workflow bug

* Fix: change e2e test case

* Fix: change e2e case

Co-authored-by: barnettZQG <yiyun.pro>

* Fix: fix sync controller revision (#2772)

Co-authored-by: Tianxin Dong <dongtianxin.tx@alibaba-inc.com>
Co-authored-by: barnettZQG <yiyun.pro>
2021-11-23 19:30:54 +08:00
Jianbo Sun
8bcffb92bf Merge pull request #2769 from oam-dev/merge
Feat: Merge APIServer Into Master
2021-11-23 10:08:01 +08:00
Zheng Xi Zhou
2e417641cd Revert "Fix: install Terraform and apply the support for a provider in a jump (#2718)" (#2773)
This reverts commit 3bf365322b.
2021-11-22 11:48:49 -05:00
Zheng Xi Zhou
3bf365322b Fix: install Terraform and apply the support for a provider in a jump (#2718) 2021-11-23 00:08:37 +08:00
yangsoon
6dff9ab679 Fix: fix compatibility test 2021-11-22 23:21:17 +08:00
Yin Da
395b594b84 Fix: fix package test 2021-11-22 22:02:49 +08:00
yangsoon
cee66fd03f Fix: remove useless test 2021-11-22 21:46:49 +08:00
Hongchao Deng
5c46aa2f7f fix header 2021-11-22 19:07:13 +08:00
Hongchao Deng
cf4aaf51c8 fix imports 2021-11-22 18:47:47 +08:00
Hongchao Deng
5e9d51997f fix err check 2021-11-22 18:26:26 +08:00
Hongchao Deng
367ed23eea fix gofmt 2021-11-22 18:22:55 +08:00
Yin Da
4f2bf29a65 Fix: upgrade aliyun provider for terraform controller 2021-11-22 17:58:04 +08:00
qiaozp
eece41c03c fix import (#2770)
Co-authored-by: Hongchao Deng <hongchaodeng1@gmail.com>
2021-11-22 17:49:26 +08:00
Hongchao Deng
8699346401 Merge branch 'apiserver' into merge 2021-11-22 17:27:40 +08:00
Hongchao Deng
e5aba94cd1 Merge branch 'apiserver' into merge 2021-11-22 17:25:50 +08:00
qiaozp
2b8a89d9fa Fix: get addon omit uiSchema (#2768) 2021-11-22 17:13:05 +08:00
qiaozp
58293dcf20 Feat: check addon dependencies when enable (#2741) 2021-11-22 17:12:55 +08:00
Zheng Xi Zhou
5b7b7138e2 Fix: enable addon without arguments (#2766)
If an addon like `fluxcd` doesn't need arguments to be enabled, we
should not parse the arugments
2021-11-22 16:30:11 +08:00
Tianxin Dong
47a565d00d Fix: controllerrevision can not be updated (#2764) 2021-11-22 10:58:23 +08:00
Jianbo Sun
a67bd24967 Feat: support user defined image registry (#2623)
* Feat: support user defined image registry

* Feat: add test app image repo into values
2021-11-22 10:56:36 +08:00
wyike
4ad27e9bcd Fix: (#2761)
1. load component in arrary, so apply them in order addon's needNamespace will be apply firstly
2. apply application  in controle plane will be first workflowStep
3. bigger application reconcile timeout context get avoid of time out
2021-11-21 21:03:41 +08:00
qiaozp
1ea26865aa Fix: lint apiserver code, fix panic (#2755)
* lint code

* fix error judge
try

* fix multicluster enable panic

* add err log

* fix can not get parameter

* debug

* try ci

* debug

* debug

* debug

* debugo

Co-authored-by: barnettZQG <576501057@qq.com>
2021-11-21 18:09:19 +08:00
朱晓兵
51b6e8b459 Fix: fix envbinding related workflow logic,add unit test (#2758)
* Fix: fix envbinding related workflow logic,add unit test

* Fix: bcode field

* Update envbinding.go

Co-authored-by: zhuxiaobing <zhuxiaobing@lixiang.com>
Co-authored-by: barnettZQG <576501057@qq.com>
2021-11-21 17:27:35 +08:00
barnettZQG
4799cbf6cc Feat: workflow support update (#2760)
* Feat: workflow support update

* Fix: fix recycle bug

Co-authored-by: barnettZQG <yiyun.pro>
2021-11-21 16:43:10 +08:00
yangsoon
99ffe80eb4 Feat: component-pod-view support filter resource by cluster name and cluster namespace (#2754) 2021-11-21 14:56:01 +08:00
Tianxin Dong
32103f53fc Feat: add list application records api (#2757)
* Feat: add list application records api

* remove workflow checker

* Update envbinding.go

Co-authored-by: barnettZQG <576501057@qq.com>
2021-11-21 10:45:03 +08:00
barnettZQG
8181b4d266 Fix: fix the envbinding can not be deleted bug (#2756)
* Fix: fix the envbinding can not be deleted bug

* Fix: fix target must be interface or implement error

Co-authored-by: barnettZQG <yiyun.pro>
2021-11-21 10:15:15 +08:00
barnettZQG
adcb7bd65e Feat: support update component and query app statistics info (#2746)
* Feat: change swagger config

* Feat: support update component and query app statistics info

* Fix: fix workflow list bug

* Fix: fix test bug

* Fix: fix e2e test bug

* Feat: change workflow api

* Fix: fix app deploy e2e test bug

* Fix: change e2e test

* Fix: fix workflow bug

* Fix: fix deploy bug

* Fix: fix selector bug

* Feat: support recycle env

* Fix: debug e2e

* Fix: fix e2e case bug

Co-authored-by: barnettZQG <yiyun.pro>
2021-11-20 19:50:36 +08:00
Somefive
34aa74ff48 Feat: envbinding support cloud resource deploy and share (#2734)
* Feat: envbinding support cloud resource deploy and bind

* Fix: change bind-cloud-resource to share-cloud-resource
2021-11-20 13:07:27 +08:00
Tianxin Dong
ff405cd62a Feat: add workflow record actions (#2733)
* Feat: add application revision actions

* refactor workflow record and application revision

* generate doc

* fix rebase

* fix rebase

* delete comment

* fix comment

* delete suspend status

* use apply instead of update

* find latest comlete revision if the revision is not specified

* delete name

* fix primary key
2021-11-20 13:05:52 +08:00
qiaozp
54eb662959 Feat: add definitions to addon detail API, fix addon cache, async download files (#2738)
* add definition to addon detail API

* change little

* tmp

* fix cache

* fix import
2021-11-20 12:24:35 +08:00
qiaozp
b38aa1cdf0 Fix: Align -n command argument (#2719)
* add namespace flag

fix

fix test

fix tests

* try test

* try test

* fix tests
2021-11-19 18:00:03 +08:00
wyike
36f5bbc973 Fix: addon spell issue (#2748)
Fix: small issue
2021-11-19 17:57:50 +08:00
Somefive
1a2c964dac Fix: enhance cluster api (#2742) 2021-11-19 15:39:54 +08:00
dependabot[bot]
aa2a0e94bf Chore(deps): Bump github.com/containerd/containerd from 1.4.11 to 1.4.12 (#2744)
Bumps [github.com/containerd/containerd](https://github.com/containerd/containerd) from 1.4.11 to 1.4.12.
- [Release notes](https://github.com/containerd/containerd/releases)
- [Changelog](https://github.com/containerd/containerd/blob/main/RELEASES.md)
- [Commits](https://github.com/containerd/containerd/compare/v1.4.11...v1.4.12)

---
updated-dependencies:
- dependency-name: github.com/containerd/containerd
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-19 11:12:00 +08:00
朱晓兵
ffd25a4cbf Feat: refactor envbinding for adapt policy placement (#2731)
* Feat: refactor envbinding for adapt policy placement

* Fix: refactor envbinding logic

* Fix: fix some bug

* Fix: fix unit test

* Fix: fix unit test

* Fix: fix unit test

* Fix: fix unit test

* Fix: fix unit test ...

* Fix: fix unit test

Co-authored-by: zhuxiaobing <zhuxiaobing@lixiang.com>
2021-11-19 10:37:40 +08:00
Jian.Li
d954bbac00 Fix: applied-resources overflow (#2740)
* fix applied-resources overflow

* add test cases
2021-11-18 20:04:21 +08:00
Hongchao Deng
b6a14e435b Feat: EnableAddon supports runtime cluster (#2739)
* Feat: EnableAddon supports runtime cluster

If use runtime cluster mode, the definitions will be applied to control plane k8s directly, not included in the Application object.

* add owner

* comment
2021-11-18 17:32:14 +08:00
qiaozp
575ecc3136 fix istio (#2691) 2021-11-18 12:50:34 +08:00
qiaozp
bade23cecf Feat: add addon arguments API (#2732)
* temp

* test

* move to status
2021-11-18 12:24:01 +08:00
yangsoon
530f158795 Feat: velaql support query the resources created by helmrelease (#2726)
Co-authored-by: yangsoon <songyang.song@alibaba-inc.com>
2021-11-18 11:53:38 +08:00
Tianxin Dong
2fc0f1cd2b Feat: add app revision list and detail api (#2722)
* Feat: add app revision list and detail api

* add envName and status filter

* make swagger doc

* revert ui-schema
2021-11-17 15:29:36 +08:00
Somefive
ba4a28fa0d Feat: cherry-pick #2720 into apiserver: support list runtime cluster (#2730)
* Feat: support list runtime cluster (#2720)

* Fix: style
2021-11-17 15:12:06 +08:00
wyike
0555623b3e Feat: add triat alias description time (#2727)
* Feat: add triat alias description time

* Fix: remove modle
2021-11-17 13:06:30 +08:00
Somefive
55070033eb Feat: support list runtime cluster (#2720) 2021-11-17 09:45:03 +08:00
lowkeyrd
b3423116bf add alicloud sls resources (#2701) 2021-11-16 22:50:18 +08:00
yangsoon
0673bc9cd5 Fix: fix workflowstep depends-on-app (#2723)
Co-authored-by: yangsoon <songyang.song@alibaba-inc.com>
2021-11-16 22:48:26 +08:00
barnettZQG
1465aba177 Fix: fix build bug (#2724)
* Fix: fix build bug

* Fix: change api spec

Co-authored-by: barnettZQG <yiyun.pro>
2021-11-16 21:31:24 +08:00
qiaozp
061c061867 Feat: add redis definition (#2507) 2021-11-16 20:12:22 +08:00
Zheng Xi Zhou
7a0670113f Fix: allow external cloud resources to be kept when Application is deleted (#2698)
* Fix: allow external cloud resources to be kept when Application is deleted

Provide an option for users whether to keep provisioned cloud resources when Terraform-typed Application is deleted.

Fix #2697

* delete file

* upgrade release version of Terraform controller

* fix ci
2021-11-16 19:33:21 +08:00
Tianxin Dong
c42ea7c948 Feat: add record status sync (#2627)
* Feat: add record status sync

* fix typo

* optimize the code

* fix the port

* fix go mod

* fix rebase
2021-11-16 14:47:13 +08:00
barnettZQG
ba1f8e4793 Feat: change the model to support multiple environments (#2721)
* Feat: change swagger config

* Feat: change the model to support multiple environments.

* Feat: support query targets by namespace

* Fix: fix definition unit test case

Co-authored-by: barnettZQG <yiyun.pro>
2021-11-16 14:45:49 +08:00
qiaozp
15795fbe25 Fix: observability installation (#2676)
* fix observability installation

* fix nil pointer

* fix nil pointer

* remove asset, build in trait
2021-11-16 13:56:39 +08:00
wyike
43aa05673e Feat: manage trait (#2702)
* Feat: manage trait

fix test

* fix test
2021-11-15 21:04:03 +08:00
qiaozp
1c7e0c054d Fix: add detail cache, fix uiSchema (#2716)
* add detail cache, fix uischema

* remove
2021-11-15 17:17:07 +08:00
Zheng Xi Zhou
3df47d74f1 Fix: stop installing golangci-lint each time (#2712)
When golangci-lint doesn't locate in $PATH, it will be installed in
$GOBIN every single time.
2021-11-15 15:02:48 +08:00
qiaozp
27490c4bce Refactor: refactor addon for later reusing code in CLI (#2708)
* refactor addon for later reuse code in CLI

* fix import
2021-11-15 12:16:32 +08:00
朱晓兵
4eb9cc114e Feat: add delivery-target API (#2703)
* Feat: add delivery-target API

* Fix: for unit test

Co-authored-by: zhuxiaobing <zhuxiaobing@lixiang.com>
2021-11-15 10:28:41 +08:00
Tianxin Dong
b3014c2f62 Fix: fix backport script (#2699) 2021-11-12 22:34:12 +08:00
Zheng Xi Zhou
b10e4a05a0 Fix: add Alibaba Cloud ASK (#2700)
Added Serverless Kubernetes (ASK) for Alibaba Cloud
2021-11-12 22:33:40 +08:00
barnettZQG
e1c64540f4 Feat: change api spec (#2695)
* Feat: change api spec

* Feat: change DeployEvent to ApplicationRevision

* Fix: fix test bug

* Fix: fix unit test bug

Co-authored-by: barnettZQG <yiyun.pro>
2021-11-12 17:19:34 +08:00
yangsoon
722ed480e9 Feat: add more views (#2689)
Co-authored-by: yangsoon <songyang.song@alibaba-inc.com>
2021-11-12 14:34:26 +08:00
barnettZQG
3e68f8a83b Feat: change model name (#2688)
* Feat: change mode name

* Fix: fix e2e test bug

Co-authored-by: barnettZQG <yiyun.pro>
2021-11-12 11:58:13 +08:00
Jian.Li
0803b45faf Feat: output log with structured tag & add step duration metrics (#2683)
* debug task

* metrics

* trace context

* add step_duration metrics

* add readme docs
2021-11-12 11:48:41 +08:00
wyike
b0577a979a Fix: fix delete a component from application not delete workload (#2680)
lint

Fix: error test

Fix: fix e2e rollout

Fix comment
2021-11-12 11:45:45 +08:00
Zheng Xi Zhou
4e9e88e4a5 Fix: pushing to ACR won't succeed all the way (#2685)
* Fix: pushing to ACR won't succeed all the way

Use action `docker/login-action` instead of `docker/login-action` to
login in ACR

* poc

* manual login

* manual push

* cat

* format

* echo

* dockerfile

* docker build

* v0.9.9

* domain

* poc

* formal

* buildx

* split acr and dockerhub

* finalizer

* fix

* final
2021-11-12 11:45:24 +08:00
Somefive
cee3630ead Feat: upgrade cluster gateway to support remote debug (#2673) 2021-11-12 11:44:18 +08:00
Somefive
6f641caadc Fix: cluster url (#2675) 2021-11-12 11:43:46 +08:00
Zheng Xi Zhou
53d380ff41 Fix: application status.services doesn't include Terraform typed components (#2643)
* Fix: application status.services doesn't include Terraform typed components

Function aggregateHealthStatus() which is used to retrieve components status, was
abandoned. All unit-tests of it was abandoned too. Fixed it and restore all the unit
tests.
2021-11-11 14:07:46 +08:00
yangsoon
8a3b7b6a05 Feat: add query provider and get view template from configmap (#2619) 2021-11-11 13:40:14 +08:00
lowkeyrd
4291e7c7ba Docs: add vpc and vswitch cloud resource templates of alicloud (#2663)
* add vpc and vswitch cloud resources of alicloud

* modified by make reviewable
2021-11-10 16:49:10 +08:00
qiaozp
49ba77c0d3 Feat: add addon registry update API (#2671)
* add addon registry update API

* add detailed cache, fix cache bug

* use PUT

* add Reads

* use UpdateAddonRegistryRequest
2021-11-10 12:41:29 +08:00
Somefive
fd66e6a228 Fix: revision namespace override (#2550) 2021-11-09 23:36:43 +08:00
Somefive
f3899e38ef Feat: multicluster vela status/exec/port-forward (#2662)
* Fix: vela status from app.status.services

* Feat: refine cli and support terraform logs

* Feat: support remote exec

* Feat: port-forward support multicluster

* Fix: vela status+port-forward test

Co-authored-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2021-11-09 19:08:47 +08:00
Maciej Gwizdała
d945eb35df Feat: Add Terraform Azure Storage Account (#2646)
* Feat: Add Terraform Azure Storage Account

* Fix: Added resource group creation for tests

* Feat: Added EOF for tf azure storage account

Co-authored-by: Maciej Gwizdała <maciej.gwizdala-ext@leica-geosystems.com>
2021-11-09 15:15:28 +08:00
Somefive
7103f8ff52 Feat: merge master into apiserver (#2660)
* Feat(rollout): fill rolloutBatches if empty when scale up/down (#2569)

* Feat: fill rolloutBatches if empty

* Fix: fix unit-test

* Test: add more test

Fix: lint

Fix: fix lint

* Update release.yml (#2537)

* Feat: add registry, merge registry and cap center (#2528)

* Feat: add registry command

* Refactor: comp/trait command combine with registry

* Feat: refactor `vela comp/trait`

* Fix: import

* Fix: fix if type is autodetects.core.oam.dev

* Fix: fix list from url

* Fix: test

* Feat: add test

* Fix: remove dup test

* Fix: test

* Fix: test

* Fix: fix label filter

* Fix: reviewable

* Fix test

* fix personal repo in test

* Fix test

* Fix test

* add some boundary check

* reviewable

* Fix: fix nocalhost trait (#2577)

* fix incorrect addon status (#2576)

* Fix(cli): client-side throttling in vela CLI (#2581)

* fix cli throttling

* fix import

* set to a lower value

* remove addon with no defs (#2574)

* Feat: vela logs support multicluster (#2593)

* Feat: add basic multiple cluster logs

* fix context

* Fix select style

* Fix select style

* remove useless env

* fix naming

* Feat: vela cluster support use ocm to join/list/detach cluster (#2599)

* Feat: add render component and apply component remaining (#2587)

* Feat: add render component and apply component remaining

* fix ut

* fix e2e

* allow import package in custom status cue template (#2585)

Co-authored-by: chwetion <chwetion@foxmail.com>

* Fix: abnormal aux name (#2612)

* Feat: store workflow step def properties in cm (#2592)

* Fix: fix notification def

* Feat: store workflow step def properties in cm

* fix ci

* fix data race

* Fix: change Initializer to Application for addon Observability (#2615)

In this doc, updated the Observability implementation from initializer
to Application. I also store definitions as it's not well stored in
vela-templates/addons/observability

* Fix: fix backport param (#2611)

* Fix: add owner reference in workflow context cm (#2573)

* Fix: add owner reference in workflow context cm

* fix ci

* delete useless test case

* Fix: op.delete bugs (#2622)

* Fix: op.delete some bugs

* Fix: app status update error

Fix: make reviewable

* Fix: show reconcile error log (#2626)

* Feat: add reconcile timeout configuration for vela-core (#2630)

* Fix: patch status retry while conflict happens (#2629)

* Fix: allow definition schema cm can be same name in different definition type (#2618)

* Fix: fix definition schema cm name

* fix ut

* fix ut

* fix show

* add switch default case

* Feat: remove envbinding policy into workflow (#2556)

Fix: add more test

* Feat: add vela prob to test cluster (#2635)

* Fix: upgrade stern lib to avoid panic for vela logs (#2650)

* Fix: filter loggable workload in vela logs (#2651)

* Fix: filter loggable workload in vela logs

* reviewable

* Feat: add vela exec for multi cluster (#2299)

fix

support vela exec

* Fix: health check will check for multiclusters (#2645)

* Fix: minor fix for vela cli printing (#2655)

* Fix: minor fix for vela cli printing

* add dockerfile go mod cache

* Feat: support apiserver-related multicluster features (#2625)

* Feat: remove envbinding policy into workflow

Feat: add support for env change (env gc)

Fix: fix rollout timeout setting bug

* Feat: support disable trait and env without workflow

* Fix: add hint for replaced value

Co-authored-by: wyike <wangyike_wyk@163.com>
Co-authored-by: basefas <basefas@hotmail.com>
Co-authored-by: qiaozp <47812250+chivalryq@users.noreply.github.com>
Co-authored-by: Tianxin Dong <dongtianxin.tx@alibaba-inc.com>
Co-authored-by: yangsoon <yangsoonlx@gmail.com>
Co-authored-by: Chwetion <137953601@qq.com>
Co-authored-by: chwetion <chwetion@foxmail.com>
Co-authored-by: Jian.Li <74582607+leejanee@users.noreply.github.com>
Co-authored-by: Zheng Xi Zhou <zzxwill@gmail.com>
Co-authored-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2021-11-09 13:06:55 +08:00
Hongchao Deng
3505c379d2 Fix: cache IsExpired() (#2669) 2021-11-09 12:39:36 +08:00
wyike
629cc67c6a Fix: load component can set parameter (#2661)
Fix: fix fmt
2021-11-09 10:51:10 +08:00
Zheng Xi Zhou
84315ff0e6 Fix: push docker images to Alibaba Cloud ACR (#2601)
* Fix: push docker images to Alibaba Cloud ACR

Added Github action to push docker images to Alibaba Cloud ACR

* Fix: change acr domain
2021-11-09 10:46:06 +08:00
barnettZQG
738b416ec2 Fix: fix can not create first app env plan bug (#2665)
* Fix: fix can not create first app env plan bug

* Fix: fix test bug

Co-authored-by: barnettZQG <yiyun.pro>
2021-11-09 09:47:41 +08:00
qiaozp
39e8bc0b98 add addon parameter openAPI schema (#2666) 2021-11-08 10:13:04 -05:00
Somefive
64ab932c6d Feat: support apiserver-related multicluster features (#2625)
* Feat: remove envbinding policy into workflow

Feat: add support for env change (env gc)

Fix: fix rollout timeout setting bug

* Feat: support disable trait and env without workflow

* Fix: add hint for replaced value
2021-11-08 10:11:50 -05:00
Hongchao Deng
976da6f35a Feat: add local cache of addons to avoid Github limit (#2558)
* Feat: add local cache of addons to avoid Github limit

comment

* comment
2021-11-08 20:04:08 +08:00
qiaozp
b98cec127e add addon template reading (#2648)
render definition into application

new format

fix cue render

fix one bad registry make all addon unusable
2021-11-08 16:34:03 +08:00
barnettZQG
eb258fae66 Feat: support ui schema (#2647)
* Docs: change swagger api config

* Docs: change swagger api config

* Docs: change swagger api config

* Feat: support ui schema

* Fix: distinguish between structs and arrays

* Feat: support build swagger config

* Feat: support update ui schema

Co-authored-by: barnettZQG <yiyun.pro>
2021-11-08 14:13:22 +08:00
Jianbo Sun
fede2235a9 Fix: minor fix for vela cli printing (#2655)
* Fix: minor fix for vela cli printing

* add dockerfile go mod cache
2021-11-07 17:25:52 +08:00
Jianbo Sun
4ca68f2030 Fix: health check will check for multiclusters (#2645) 2021-11-07 11:50:27 +08:00
Jianbo Sun
e5745bb3f3 Feat: add vela exec for multi cluster (#2299)
fix

support vela exec
2021-11-07 08:54:48 +08:00
qiaozp
3e9b702328 Fix: filter loggable workload in vela logs (#2651)
* Fix: filter loggable workload in vela logs

* reviewable
2021-11-06 17:31:50 +08:00
Jianbo Sun
f7dc9934b1 Fix: upgrade stern lib to avoid panic for vela logs (#2650) 2021-11-06 17:23:37 +08:00
Jianbo Sun
c448ba0956 Feat: add vela prob to test cluster (#2635) 2021-11-06 11:28:11 +08:00
Tianxin Dong
5590c3d7b5 Fix: fix apiserver definition schema struct (#2644)
* Fix: fix apiserver definition schema struct

* use open api schema
2021-11-05 21:54:31 +08:00
Hongchao Deng
c821f2a929 Feat: rewrite Addon API to support new format (#2605)
* Feat: rewrite Addon API to support new format

fix test

fix

fix

add registry query parameter

skip enable test

add Definition meta

fix

fix ext

add cue rendering

return component name

update swagger.json

refactor addon cue/yaml tmpl to addonElementFile

apply app in enable

fix cue parse

comment

swagger

enable test

update

fix bug

fix cue render

fix apply fail, decode object

fix disable addon, todo: fix status api

* avoid to render a whole addon when check status

* fix

* fix

* add label

* remove todo

* fluxcd

* fix args

* add all path to addon component name

* reorder test

* add addon application prefix

* add

* add ns when test

* fix

Co-authored-by: qiaozp <chivalry.pp@gmail.com>
2021-11-05 17:39:31 +08:00
Somefive
bf3a1cddf9 Feat: remove envbinding policy into workflow (#2556)
Fix: add more test
2021-11-05 17:29:05 +08:00
Tianxin Dong
50cfe0c68f Fix: allow definition schema cm can be same name in different definition type (#2618)
* Fix: fix definition schema cm name

* fix ut

* fix ut

* fix show

* add switch default case
2021-11-05 16:07:04 +08:00
Somefive
9e73f5dee6 Fix: patch status retry while conflict happens (#2629) 2021-11-05 15:21:28 +08:00
barnettZQG
df5bc2727e Feat: supports setting environment differences for application plan (#2624)
* Feat: supports setting environment differences for application plan

* Feat: update swagger config

* Feat: CRUD of application env binding plan

* Style: change code style

Co-authored-by: barnettZQG <yiyun.pro>
2021-11-05 10:42:18 +08:00
Tianxin Dong
cd686fbb24 Fix: fix definition schema struct (#2632)
* Fix: fix definition schema struct

* add more fields
2021-11-05 10:32:54 +08:00
Somefive
d2672cea48 Feat: add reconcile timeout configuration for vela-core (#2630) 2021-11-04 20:48:06 +08:00
Jianbo Sun
d8007d823d Fix: show reconcile error log (#2626) 2021-11-04 19:01:22 +08:00
wyike
f5b06f855a Fix: op.delete bugs (#2622)
* Fix: op.delete some bugs

* Fix: app status update error

Fix: make reviewable
2021-11-04 16:40:02 +08:00
Somefive
2337c82c3d Feat: add create ack api (#2596) 2021-11-04 16:39:32 +08:00
Tianxin Dong
e8969e4d17 Feat: add definition API (#2602)
* Feat: add definition API

* fix struct

* fix e2e

* optimize the code

* fix return

* fix const
2021-11-04 16:38:34 +08:00
Tianxin Dong
844479c7b5 Fix: add owner reference in workflow context cm (#2573)
* Fix: add owner reference in workflow context cm

* fix ci

* delete useless test case
2021-11-04 14:19:35 +08:00
Tianxin Dong
1438247aaf Fix: fix backport param (#2611) 2021-11-04 12:51:26 +08:00
Zheng Xi Zhou
356c6240bf Fix: change Initializer to Application for addon Observability (#2615)
In this doc, updated the Observability implementation from initializer
to Application. I also store definitions as it's not well stored in
vela-templates/addons/observability
2021-11-03 17:29:48 +08:00
barnettZQG
8e874bc3a9 Feat: change application to applicationplan (#2616)
* Feat: change application to applicationplan

* Feat: update swagger config

* Feat: change api spec

* Fix : fix e2e test case

Co-authored-by: barnettZQG <yiyun.pro>
2021-11-03 17:25:37 +08:00
Tianxin Dong
117b9937f3 Feat: store workflow step def properties in cm (#2592)
* Fix: fix notification def

* Feat: store workflow step def properties in cm

* fix ci

* fix data race
2021-11-03 15:31:12 +08:00
Jian.Li
a5361b2deb Fix: abnormal aux name (#2612) 2021-11-03 15:19:32 +08:00
Chwetion
df3061f4c1 allow import package in custom status cue template (#2585)
Co-authored-by: chwetion <chwetion@foxmail.com>
2021-11-03 12:14:51 +08:00
Tianxin Dong
637ec6273f Feat: add render component and apply component remaining (#2587)
* Feat: add render component and apply component remaining

* fix ut

* fix e2e
2021-11-02 19:22:27 +08:00
yangsoon
7ba10d6864 Feat: vela cluster support use ocm to join/list/detach cluster (#2599) 2021-11-02 17:20:00 +08:00
qiaozp
aa0190c03d Feat: vela logs support multicluster (#2593)
* Feat: add basic multiple cluster logs

* fix context

* Fix select style

* Fix select style

* remove useless env

* fix naming
2021-11-02 14:45:15 +08:00
Hongchao Deng
5f09faeff0 Fix: delete addon registry (#2594)
* Fix: delete addon registry

* add validate Git should not be empty

* fix token could be nil

* GitSource Repo url is a must
2021-11-02 11:30:30 +08:00
Somefive
90e5fd9ed6 Fix: add fixes to cluster api (#2597) 2021-11-02 09:49:52 +08:00
qiaozp
5d9e3437a3 remove addon with no defs (#2574) 2021-11-01 20:58:09 +08:00
barnettZQG
9519d2443a Feat: add alias field and fix some code bug (#2589)
* Feat: add alias field and fix some code bug

* Fix: fix alias check rule bug

* Fix: fix addon e2e test bug

Co-authored-by: barnettZQG <yiyun.pro>
2021-10-31 18:23:55 +08:00
qiaozp
b904f4fc0e Fix(cli): client-side throttling in vela CLI (#2581)
* fix cli throttling

* fix import

* set to a lower value
2021-10-29 15:07:15 +08:00
Tianxin Dong
6666c3a2bb Feat: add workflow record api (#2567)
* Feat: add workflow record api

* resolve comments

* add count function
2021-10-29 10:39:50 +08:00
qiaozp
68af605e75 fix incorrect addon status (#2576) 2021-10-28 20:41:43 +08:00
Tianxin Dong
1dc7647788 Fix: fix nocalhost trait (#2577) 2021-10-28 20:40:41 +08:00
qiaozp
f7e2123707 Feat: add registry, merge registry and cap center (#2528)
* Feat: add registry command

* Refactor: comp/trait command combine with registry

* Feat: refactor `vela comp/trait`

* Fix: import

* Fix: fix if type is autodetects.core.oam.dev

* Fix: fix list from url

* Fix: test

* Feat: add test

* Fix: remove dup test

* Fix: test

* Fix: test

* Fix: fix label filter

* Fix: reviewable

* Fix test

* fix personal repo in test

* Fix test

* Fix test

* add some boundary check

* reviewable
2021-10-28 20:26:08 +08:00
basefas
a8494d1bee Update release.yml (#2537) 2021-10-28 17:54:51 +08:00
wyike
7647ef9662 Feat(rollout): fill rolloutBatches if empty when scale up/down (#2569)
* Feat: fill rolloutBatches if empty

* Fix: fix unit-test

* Test: add more test

Fix: lint

Fix: fix lint
2021-10-28 17:50:28 +08:00
Jianbo Sun
3edb71891b Merge pull request #2572 from Somefive/apiserver_merge_master
Refactor: merge master
2021-10-28 17:30:54 +08:00
Yin Da
0fedad7cd2 Merge branch 'master' into apiserver 2021-10-28 15:19:03 +08:00
yangsoon
edf42074b9 Feat: add velaql webservice (#2532) 2021-10-28 12:05:12 +08:00
Tianxin Dong
828acd95fa Feat: add email support in webhook notification (#2535)
* Feat: add email support in webhook notification

* Fix: change sender and receiver to from and to

* fix the variable name

* fix wait return
2021-10-28 10:59:17 +08:00
Tianxin Dong
7e5dac7c98 Fix: fix backport command (#2557) 2021-10-27 14:18:37 +08:00
Somefive
9563391952 Fix: add local cluster & fix query parameter default value bug (#2561) 2021-10-27 11:37:47 +08:00
Tianxin Dong
b3f60b4b73 Feat: add cluster in read or apply object (#2551) 2021-10-27 10:05:57 +08:00
wyike
f48da214e3 Feat: health scope controller support check trait-managing workload (#2527)
* Feat: health scope controller support trait manage-workload

* Test: add multi-cluster and health policy e2e-test

Fix: e2e-test

lint

Fix: all e2e-test

Fix: modify port back

middle commit

middle pr

Fix: e2e-rollout-test

make reviewable

defet to rollout apply gvk annotation

fix e2e

* Update test/e2e-multicluster-test/multicluster_rollout_test.go

Co-authored-by: Hongchao Deng <hongchaodeng1@gmail.com>

Co-authored-by: Hongchao Deng <hongchaodeng1@gmail.com>
2021-10-26 19:51:53 +08:00
Yu Yicai
4dd18d1fc3 Feat: add nocalhost dev config trait definition (#2545)
* Feat: add nocalhost dev config trait definition

* Feat: add nocalhost dev config trait example

add nocalhost dev config trait example in `docs/examples/nocalhost`

Signed-off-by: yuyicai <yuyicai@hotmail.com>
2021-10-26 19:28:25 +08:00
Hongchao Deng
3ebc94394c Feat: addon service impl (#2515)
* Feat: addon service impl

* get addon from git/configmap

* add ListAddonRegistries

* add GetAddonModel

* add CreateAddonRegistry and bcode/addon.go

* add applyAddonData

* update

* Fix: getAddonFromGit

* Fix: getAddonFromGit, remove trailing .git

* add comment

* add enable/disable/status impl

* add deleteAddonRegistry and check dup addon

* read addon without accessing database

* change to query parameter, add addon detail

* Feat: add addon readme for apiserver

* Make enable/disable/status runnable

* chore: fix bcode

* Fix: refactor parse to util

* Fix: refactor addonutil to pkg

* add addon test for create and delete addon registry

* fix version prefix

* add post func

* add enable/disable test

* add provider aws readme

* done testing

* fix comment and refactor statusAddon

* move enable/disable logic to usecase

* add GITHUB_TOKEN env

* Fix: Add github token support and use it in test

* add license

Co-authored-by: qiaozp <chivalry.pp@gmail.com>
2021-10-26 17:52:34 +08:00
barnettZQG
964a12bb44 Feat: support manage multiple workflows in one application. (#2533)
* Docs: change swagger json

* Feat: support manage multiple workflows in one application.

* Docs: update swagger doc

* Fix: fix code bug

* Update pkg/apiserver/rest/webservice/workflow.go

Co-authored-by: Tianxin Dong <wuwuglu19@gmail.com>

Co-authored-by: barnettZQG <yiyun.pro>
Co-authored-by: Tianxin Dong <wuwuglu19@gmail.com>
2021-10-26 17:50:30 +08:00
Tianxin Dong
605fb58a3c Fix: pass on octokit error to make the check consistent (#2549) 2021-10-26 12:09:14 +08:00
Zheng Xi Zhou
7482388c84 Fix: CVE-2021-42836 (#2548)
CVE-2021-42836
GJSON before 1.9.3 allows a ReDoS (regular expression denial of service) attack.
2021-10-26 12:01:20 +08:00
Zheng Xi Zhou
e9ac4bb62f Fix: add another output CLUSTER_ID for Alibaba Cloud ack (#2543)
To support sub-path of a git repo which stores HCLs, also update the dependency
of Terraform controller
2021-10-24 10:02:39 +08:00
Zheng Xi Zhou
17dbf6de7e Fix: enable to allocate public connection string (#2530)
Also expose the connection string
2021-10-24 10:00:42 +08:00
yuyicai
b2fb9fc618 Fix: #2534 can't exit make when error occurs in curl (#2540)
- use `curl -sS` to show error
- use `set -eo pipefail` to exit `make` when error occurs in `curl`
2021-10-24 09:59:24 +08:00
Zheng Xi Zhou
cf039e27e5 Fix: format canary rollout manifests (#2542)
Formated canaray rollout manifests and changed orders for some traits
of a component to make it clear to see the difference between first-deploy.yaml
and rollout-v2.yaml, between rollout-v2.yaml and rollback.yaml
2021-10-24 09:58:32 +08:00
Jian.Li
dfbe65c9c0 Feat: Commit step-generate data without success (#2539)
* Feat: commit without success

* Feat: add test case
2021-10-23 11:25:50 +08:00
Somefive
accf0138f8 Feat: apiserver cluster api (#2526)
* Fix: multicluster api

* Feat: add apiserver cluster api & fix codecov

* Feat: add pod capacity and resourceused stat

* Feat: add cloud cluster manage

* Test: add test for cloud cluster

* Test: pending cloud resource api

* Style: refactor

* Fix: apiserver e2e test

* Fix: fix application usecase policy bug

* Style: add returns for cluster api

* Feat: add provider detail info & add cache & add rollback protection

* Style: refactor

* Style: add error code
2021-10-23 00:29:43 +08:00
barnettZQG
f0b91ef8d6 Feat: added environment binding capabilities to the application creation API. (#2523)
* Feat: add env binding support in app create api

* Feat: add query component types api

Co-authored-by: barnettZQG <yiyun.pro>
2021-10-23 00:29:43 +08:00
barnettZQG
b85dda35f3 Feat: add namesapce create and list api (#2514)
Co-authored-by: barnettZQG <yiyun.pro>
2021-10-23 00:29:43 +08:00
yangsoon
c7f9cdcbbf Feat: add the oam application api in apiserver (#2492)
* Feat: oam application api in apiserver

* Feat: enable unit-test and e2e-test
2021-10-23 00:29:42 +08:00
barnettZQG
d2dc9a8da7 Feat: application operation API implementation (#2478)
* Feat: application operation API implementation

* Docs: update swagger json

* Docs: update swagger config

* Feat: improve application management API implementation and testing

* Style: change code style

* Style: change some code style

Co-authored-by: barnettZQG <yiyun.pro>
2021-10-23 00:29:42 +08:00
Tianxin Dong
952af10a4b Fix: check pr title instead of commit msg (#2541) 2021-10-23 00:28:59 +08:00
Zheng Xi Zhou
e56a67acf5 Fix: support terraform/provider-aws addon (#2520)
Also added some componentdefinitions for AWS cloud resource
2021-10-22 00:02:35 +08:00
Tianxin Dong
cc292fe666 Feat: add list and delete kube provider (#2531) 2021-10-21 19:50:09 +08:00
Jian.Li
99f1743d25 Not update resource if render hash equal. (#2522)
* Feat: not apply if render hash not change

* Fix: generateRenderHash panic
2021-10-19 20:34:25 +08:00
qiaozp
f62deca440 Feat: add helm type component definition custom status (#2499) 2021-10-19 17:53:54 +08:00
Tianxin Dong
9d33b74278 Fix(cli): use flag instead of env in workflow cli (#2512) 2021-10-19 17:34:30 +08:00
Tianxin Dong
cf055a8331 Docs: update webhook example with url in secret (#2521) 2021-10-19 17:33:52 +08:00
Jian.Li
9fea82fd7b Feat: Record workflow execution state (#2479)
* Feat: workflow status add timestamp

* Feat: add workflow recorder

* Fix: finish state process

* Fix: test cases

* Fix: revert comments history->recorder

* Feat: omitempty execution time

* Fix: workflow_test.go

* Feat: add application test case for record

* Feat: terminate record

* Feat: trigger only by anno

* Feat: remove initializers CRD
2021-10-19 11:43:06 +08:00
Tianxin Dong
dcb677f976 Feat: support secret in webhook notification (#2509) 2021-10-19 10:42:40 +08:00
Zheng Xi Zhou
d1e814e7af Fix: aws/azure Terraform provider are broken (#2513)
Removed built-in aws/azure Terraform providers, and fix azure
mariadb definition issue.

Fix #2475
2021-10-19 10:15:35 +08:00
Tianxin Dong
d82f8e3cc6 Fix: fix the backport label permission to read (#2504) 2021-10-18 11:46:21 +08:00
Tianxin Dong
d8c9105a3a Test: add conversion test (#2497)
* Test: add conversion test

* Fix: make code reviewable
2021-10-18 11:46:01 +08:00
qiaozp
5b7b74c072 Feat: add imagePullPolicy/imagePullSecret to task def (#2503) 2021-10-18 11:13:52 +08:00
yangsoon
efea09db49 Feat: upgrade the image of kube-webhook-certgen (#2495) 2021-10-15 17:38:29 +08:00
Somefive
8336f5ae9c Fix: rework apiserver code coverage (#2489) 2021-10-15 15:37:19 +08:00
Tianxin Dong
e2ce40a551 Feat: add export config and secret def (#2484)
* Feat: add export config and secret def

* Fix: change the def name and optimize the example

* Fix: fix the name in def
2021-10-15 15:25:41 +08:00
Tianxin Dong
13c24e5697 Fix: fix label trigger from startWith to contains (#2496) 2021-10-15 15:24:32 +08:00
Tianxin Dong
17b840f402 Feat: add label backport in github action (#2494) 2021-10-15 13:24:44 +08:00
qiaozp
49bfeee53d Refactor: remove initializer (#2491) 2021-10-15 11:25:26 +08:00
Tianxin Dong
1801471099 Fix: add libgit2 support for gitops (#2477)
* Fix: add libgit2 support for gitops

* Fix: resolve rebase
2021-10-14 20:56:37 +08:00
Kinso
9d1ffd4c4b Fix(application): nil pointer for component properties (#2481)
Co-authored-by: kinsolee <lijingzhao@forchange.tech>
2021-10-14 19:17:50 +08:00
wyike
89eaf502fa Test: add e2e-test for multi-cluster rollout (#2472)
* Test: add e2e-test guarantee multi-cluster rollout

* Fix: install rollout runtime chart

add cluster name in dockerfile

Fix: build image error

enable all test

Fix: add rollout chart

add shebang

fix image repo
2021-10-14 18:27:50 +08:00
Tianxin Dong
56a8b0c002 Feat: add read object step def (#2480) 2021-10-14 18:23:43 +08:00
qiaozp
8c4af1d69c Refactor: addon migrate to application (#2444)
* Refactor: addon migrate to application

* Refactor: change test for addon

* Fix: golint

* Fix: add annotation const

* Refactor: make CLI compatible

* Fix: go-lint
2021-10-14 18:21:49 +08:00
Jianbo Sun
7ef800573a Fix: make nginx class to be default value and allow pvc trait to attach more than once (#2466)
* Fix: make nginx class to be default value

* Fix: allow pvc trait to attach more than once
2021-10-13 17:18:02 +08:00
wyike
4956d0e4e1 Fix: compatibility bug (#2467)
make reivwable
2021-10-13 16:58:41 +08:00
Tianxin Dong
85c887d3e4 Fix: change raw extension to pointer (#2451)
* Fix: change raw extension to pointer

* Test: fix ut
2021-10-13 16:16:53 +08:00
Zheng Xi Zhou
a4a1c39bbb Fix: refine Terraform Azure mariadb ComponentDefinition (#2465)
Added outputs for Azure mariadb and refine the variables
2021-10-13 15:43:52 +08:00
Jianbo Sun
f9ffb9e240 Chore: add example for env patch and fix e2e flaky (#2462) 2021-10-13 15:39:50 +08:00
barnettZQG
c3eaa74ee7 Feat: add BatchAdd function and entity index support (#2454)
Co-authored-by: barnettZQG <yiyun.pro>
2021-10-13 10:01:06 +08:00
Shaw Ho
75ba05f738 Fix: wrong log print format (#2430) 2021-10-12 19:27:11 +08:00
Jian.Li
8935a87c59 Fix: Closure Bug In newValue (#2437)
* Fix: new value bug

* Fix: strategyUnify Bug

* Fix: e2e error
2021-10-12 19:05:03 +08:00
Tianxin Dong
287c895daf Fix: fix unhandled err (#2423)
* Fix: fix unhandled err

refer to https://lift.sonatype.com/result/bhamail/kubevela/01FFT7CSVNCPF6808ZM856V3HN?tab=results

* Test: fix panic err
2021-10-12 14:36:09 +08:00
basefas
96c52ab2fc Chore: add homebrew bump (#2434)
* Chore:  add homebrew bump

* Chore: update token
2021-10-12 12:52:40 +08:00
barnettZQG
0d036e7449 Feat: initialize the Apiserver framework (#2417)
* Feat: add kubeapi and mongodb datastore implementation

* Style: change kubeapi import code style

* Style: change mongodb package import code style

* Style: add some comment

* Style: change databasePrefix to tableNamePrefix

* Chore: install mongodb in unit-test job

* Chore: install mongodb in compatibility-test job

* Feat: add apiserver e2e test case

* Docs: change developer guide doc

* Feat: use common.Scheme

Co-authored-by: barnettZQG <yiyun.pro>
2021-10-12 11:53:24 +08:00
Somefive
2e20f4862f Fix: update ingress class (#2445) 2021-10-11 20:48:39 +08:00
Zheng Xi Zhou
5865a69576 Fix: add Chart icon and url (#2441)
* Fix: add Chart icon and url

Added an icon and url for KubeVela chart

* Fix: remove local logo file and use a web image
2021-10-11 20:27:56 +08:00
wyike
9c76b2f3ac Fix: race condition of cloneset and statefulSet rollout plugin (#2394)
* Fix: clonset and stateful set

* Fix: e2e-test race condition
2021-10-11 15:47:20 +08:00
Somefive
472ed3a146 Feat: add support for envbinding with namespace selector (#2432)
* Feat: add support for envbinding with namespace selector

* Fix: service account kubeconfig e2e-test

* Docs: add comments to explain functions

* Docs: add envbinding example
2021-10-11 14:52:01 +08:00
Tianxin Dong
f06980c5f4 Fix: fix depends on app built-in step (#2429) 2021-10-09 18:48:53 +08:00
barnettZQG
f70133e5e6 Fix: fix apiserver 1.1.3 not available bug (#2425)
* Fix: fix apiserver 1.1.3 not available bug

* Feat: change apiserver image repository

* Fix(helm chart): fix startup args for apiserver

Co-authored-by: barnettZQG <yiyun.pro>
2021-10-09 16:50:02 +08:00
Somefive
bcd7f3e340 Feat: add secure tls for cluster-gateway (#2426) 2021-10-09 15:23:25 +08:00
Tianxin Dong
c049f497fb Feat: add apply raw built in workflow steps (#2420)
* Feat: add apply raw built in workflow steps

* Feat: add apply raw example

* Fix: change the name to apply object

* Fix: example server name
2021-10-09 12:20:32 +08:00
Jianbo Sun
8b98caaa40 Chore(deps): bump github.com/containerd/containerd from 1.4.8 to 1.4.11 (#2419) 2021-10-09 11:10:50 +08:00
Somefive
46e22cc203 Feat: multicluster support ServiceAccountToken (#2356)
* Feat: support serviceaccount in multicluster

* Fix: add compatibility & support sa

* Fix: add multicluster sa test

* Fix: add test for upgrade func

* Style: format
2021-10-08 14:45:04 +08:00
Jianbo Sun
426fe5cc11 Chore: add chaneglog and add backport github action and change the pull request template (#2410) 2021-10-08 13:35:04 +08:00
Somefive
a3f48425be Feat: use #ApplyComponent for EnvBinding (#2382)
* Feat: use #ApplyComponent in EnvBinding

* Fix: application test compRev control by resourcetracker

* Fix: add more detail in error info
2021-10-08 13:11:14 +08:00
qiaozp
a574fc0fbf Refactor(cli): Refactor vela env, deprecate vela config (#2037)
* Refactor(cli): cut env to namespace, use application to save

Signed-off-by: qiaozp <chivalry.pp@gmail.com>

* Fix: test

* Fix: typo
2021-10-08 13:10:47 +08:00
Lei Zhang (Harry)
0396d8d8bf Docs: add CD system README (#2411) 2021-10-08 13:10:22 +08:00
Zheng Xi Zhou
b8894b7a44 Fix: support terraform/provider-azure addon (#2402)
Also added some componentdefinitions for Azure cloud resource
2021-10-08 11:35:52 +08:00
Lei Zhang (Harry)
5767d16169 Docs: use graph to explain vela in README (#2404) 2021-10-02 15:06:58 +08:00
GingoBang
83eec87da6 Refactor: change rollout's json tag (#2314)
* Refactor: set rollout as a pointer reference

see issue #2289 for more details

Closes #2289

* Refactor: set rollout as a pointer reference
see issue #2289 for more details

Closes #2289
2021-10-02 10:19:41 +08:00
Somefive
5704c3b83c Fix: fix multicluster coverage bug (#2401) 2021-10-01 08:25:56 +08:00
Reeta Singh
6647a11c86 Chore: deprecate containerized workload (#2330)
* Feat(trait): annotation and labels trait should also affect the workload object along with pod

* Feat(trait): annotation and labels trait should also affect the workload object along with pod

* Feat(trait): annotation and labels trait should also affect the workload object along with pod

* Feat(trait): annotation and labels trait should also affect the workload object along with pod

* Chore: deprecate containerized workload

* Chore: deprecate containerized workload

* Chore: run make reviewable as per review comment

* Chore: fix import

* Chore: merge with master

* Chore: merge with master

* Chore: remove references for containerized workload

* Chore: fix failiing e2e test

* Chore: fix failing e2e test

* Chore: fix failing e2e test

* Chore: fix failing e2e test

* Chore: fix e2e tests

* Chore: fix e2e tests

* Chore: fix e2e tests

* Chore: fix e2e tests

* Chore: fix e2e tests

* Chore: merge with upstream

Co-authored-by: Reeta Singh <reetas@twitter.com>
2021-09-30 16:06:29 +08:00
Jian.Li
a865c85d05 Fix: Applied Resources Statistics Error (#2398)
* Fix: isSameObjReference

* Fix: healthScope
2021-09-30 14:24:09 +08:00
Tianxin Dong
ab2d2750f2 Fix: revision GC in workflow mode (#2355)
* Fix: revision GC in workflow mode

* Test: add revision cleanup test

* Fix: e2e test
2021-09-30 14:16:16 +08:00
Zheng Xi Zhou
99411a7f01 Fix: make the name of Terraform credential secret same to component name (#2399)
To make the secret name of Terraform credential more clear and avoid the
impact on the feature of #2336
2021-09-30 13:53:49 +08:00
Tianxin Dong
f9b218919a Feat(workflow): add depends on in workflow (#2387)
* Feat: add depens on in charts

* Feat(workflow): add depends on in workflow
2021-09-30 10:30:44 +08:00
Somefive
83b26349c7 Feat: bootstrap multicluster testing (#2368)
* Feat: bootstrap multicluster testing

* Fix: update action step name in .github/workflows/e2e-multicluster-test:yml

Co-authored-by: Jianbo Sun <wonderflow@icloud.com>

* Fix: update setup-core wait condition

* Fix: add apply envbinding app test & upgrade gomega

* Fix: remove end_e2e duplicate script

Co-authored-by: Jianbo Sun <wonderflow@icloud.com>
2021-09-30 10:19:39 +08:00
wyike
2c64d04417 Feat: pass owner to workload if rollout failed (#2397)
delete useless file
2021-09-30 09:52:20 +08:00
Jian.Li
ef653ebeb4 Feat: add inputs test cases and optimize code (#2388)
* Feat: add test case & optimize code

* Fix: e2e test
2021-09-29 15:08:00 +08:00
Zheng Xi Zhou
305403ff8b Support remote git repo for Terraform configuration (#2337)
* Fix: support remote git repo for Terraform configuration

Besides inline HCL Configuration, supprted remote git repo Configuration

* Fix: add unit-tests

* Fix: update all manifests in vela-minimal
2021-09-29 14:58:27 +08:00
wyike
eebcc6c6ae Fix: use aliyun oss istio chart (#2392) 2021-09-29 14:42:50 +08:00
Jianbo Sun
298ce69593 Chore(deps): bump go.mongodb.org/mongo-driver from 1.3.2 to 1.5.1 (#2391)
Co-authored-by: barnettZQG <yiyun.pro>
2021-09-29 13:14:48 +08:00
Tianxin Dong
1e21a01320 Feat: add vela minimal in make manifests (#2389) 2021-09-29 13:09:57 +08:00
Tianxin Dong
042485124a Fix: fix built in workflow steps (#2378) 2021-09-29 10:05:13 +08:00
Hongchao Deng
49a91ca4c5 Feat: add Addon REST API (#2369) 2021-09-28 18:45:32 +08:00
Jianbo Sun
a2ad91f2f5 Fix: try fix CI unit test (#2376) 2021-09-28 18:44:50 +08:00
Tianxin Dong
5364e53e50 Fix: delete deprecated vela dashboard in e2e setup (#2379)
* Fix: delete deprecated vela dashboard in e2e setup

* Fix: fix helm lint in 3.7.0
2021-09-28 17:01:10 +08:00
whichxjy
811c783a00 Feat: support rollout controller for StatefulSet (#1969)
* Feat: support rollout controller for StatefulSet

* Feat: support one statefulset in rollout

* Feat: add tests for StatefulSet rollout controller

* Fix: correct workload-deleting error

* Feat: remove advanced sts
2021-09-28 11:46:30 +08:00
Jian.Li
22bf2e4c3a Feat: inputs support setting value in array (#2358)
* Feat: input support array

* Feat: add test cases

* Feat: add comment
2021-09-28 09:18:07 +08:00
Somefive
ee0a73b5b7 Fix: dockerfile e2e test command lack environment configuration (#2231) 2021-09-27 20:29:58 +08:00
yangsoon
ddb6285b19 Fix(helm chart): fix startup args for apiserver (#2362) 2021-09-27 14:20:58 +08:00
barnettZQG
3a310f0402 Feat: Initialize api for vela dashboard and CLI (#2339)
* Change the web framework to go-restful.
* Some API specifications are defined.
* Some sample code is provided.
2021-09-26 23:09:23 +08:00
barnettZQG
6771c688dd Docs: add a WeChat QR code (#2351)
* Docs: add wechat QR code

* Update README.md

Co-authored-by: Hongchao Deng <hongchaodeng1@gmail.com>

Co-authored-by: barnettZQG <yiyun.pro>
Co-authored-by: Hongchao Deng <hongchaodeng1@gmail.com>
2021-09-26 13:41:20 +08:00
Somefive
61a12b0916 Fix: runc security issue (#2350) 2021-09-24 21:54:12 +08:00
Tianxin Dong
360c19cf2d Feat: add vela minimal chart (#2340)
* Feat: add vela minimal chart

* Feat: add README in minimal chart
2021-09-24 17:02:43 +08:00
wyike
11103b31bb Docs: rollout demo (#2348)
delete useless file
2021-09-24 16:31:39 +08:00
qiaozp
a8adaefc78 Chore: remove e2e-api-test in rollout test to speed up (#2345) 2021-09-24 15:44:59 +08:00
qiaozp
b4c7ed1773 Chore: deprecate 'vela dashboard' apiserver (#2341)
* Chore: deprecate
'vela dashboard' apiserver

* Chore: fix import

* Fix: preparation

* Fix: test
2021-09-24 13:00:07 +08:00
Geir Haugom
2e12ea9bd8 Feat: add revisionHistoryLimit to helm chart (#2343) 2021-09-24 10:42:04 +08:00
Jianbo Sun
0a9518f583 Fix: remove appcontext CRD and controller (#2270) 2021-09-23 15:05:47 +08:00
Tianxin Dong
e6668ac390 Fix: do not override the workload name if its specified (#2336)
* Fix: do not override the workload name if its specified

* Fix: resolve comments
2021-09-23 15:05:25 +08:00
qiaozp
2be5b20c6d Chore(cli): remove useless deploy.yaml (#2335)
* Chore: remove useless deploy.yaml

* Chore: remove useless deploy.yaml
2021-09-23 11:48:14 +08:00
Somefive
4f2ed4f59e Fix: remove ocm addon enable in Makefile (#2327) 2021-09-23 11:38:28 +08:00
Gallardot
2d8c8efe08 Feat: add args for init-contianer and sidecar (#2331) 2021-09-22 15:54:27 +08:00
Somefive
89c697ca87 Fix: fix multicluster template bug (#2333) 2021-09-22 14:56:58 +08:00
Zheng Xi Zhou
4379a46a79 Fix: add comments and adjust helm typed component's spec (#2332)
Co-authored-by: Hongchao Deng <hongchaodeng1@gmail.com>
2021-09-22 10:05:11 +08:00
Zheng Xi Zhou
d933af022c Fix: move charts from github repo to Alibaba Cloud OSS repo (#2324)
* Fix: move charts from github repo to Alibaba Cloud OSS repo

Charts in Github repo is not always avaialable for some users, so
moved them to OSS repo

Co-authored-by: Hongchao Deng <hongchaodeng1@gmail.com>

* Update charts/vela-core/templates/addons/observability-asset.yaml

Co-authored-by: Hongchao Deng <hongchaodeng1@gmail.com>

* Update vela-templates/addons/observability-asset/definitions/trait-import-grafana-dashboard.yaml

Co-authored-by: Hongchao Deng <hongchaodeng1@gmail.com>

* Update vela-templates/addons/auto-gen/observability-asset.yaml

Co-authored-by: Hongchao Deng <hongchaodeng1@gmail.com>

Co-authored-by: Hongchao Deng <hongchaodeng1@gmail.com>
2021-09-20 15:52:52 +08:00
yangsoon
60435e42a5 Fix(addon): don't install fluxcd and terraform by default (#2328) 2021-09-19 09:47:02 +08:00
Somefive
55e746cc7a Fix: fix multicluster values bug (#2326) 2021-09-19 09:26:05 +08:00
Jian.Li
48002641b9 Fix: workflow example (#2323) 2021-09-18 14:40:08 +08:00
Somefive
c1e6ded23d Fix: fix cluster-gateway image tag in chart (#2318) 2021-09-18 00:24:50 +08:00
hughXia
cafb55256f Fix: fix typo (#2317)
Co-authored-by: shengmiao.xia <shengmiao.xia@easystack.cn>
2021-09-17 22:09:29 +08:00
Hongchao Deng
b60c16a4be Fix(rollout): improve rollback experience (#2294) 2021-09-17 19:09:41 +08:00
Somefive
8407c0bf4d Style: rename multi-env to deploy2env (#2309) 2021-09-15 15:03:44 +08:00
yangsoon
76527421d7 Fix(helm chart): change initialDelaySeconds of readinessProbe to 30s (#2308) 2021-09-15 14:29:58 +08:00
wyike
a151d17fde Fix: generate service in canary-traffic trait (#2307)
fix ci

Fix: apply remaing bug

fix ci
2021-09-15 14:25:55 +08:00
Jian.Li
4ff4afde51 Feat: Make applicationComponent can be modified in step (#2304)
* Feat: component properties can be modfiled in step

* Fix: op.#ApplyRemaining
2021-09-15 13:25:22 +08:00
Zheng Xi Zhou
fbac93665d Fix: add application logging dashboard (#2301)
Added a Grafana dashboard for application logging
2021-09-15 13:21:38 +08:00
Tianxin Dong
36c7b9ec5b Fix: imagePullSecrets error from cloneset (#2305)
* Fix: imagePullSecrets error from cloneset

* Fix: generate yaml file

Co-authored-by: withlin <withlin@apache.org>
2021-09-15 13:21:17 +08:00
Hongchao Deng
d0e8418c4a Fix: don't increment count in status (#2306) 2021-09-15 13:20:58 +08:00
Somefive
291f9d139e Fix: fix cli logging (#2298) 2021-09-15 13:18:50 +08:00
wyike
9a766467a3 Fix: generate service in canary-traffic trait (#2300)
fix ci
2021-09-15 11:50:40 +08:00
Zheng Xi Zhou
c9b2c99dbf Revert "Fix: fix alibaba cloud rds module (#2293)" (#2302)
This reverts commit c590853f37.
2021-09-15 11:36:08 +08:00
qiaozp
0a3244f590 Feat: allow user specify alibaba provider addon's region (#2297) 2021-09-14 23:05:28 +08:00
Tianxin Dong
12361c133e Feat: add commit msg in kustomize (#2296) 2021-09-14 22:03:56 +08:00
Zheng Xi Zhou
c590853f37 Fix: fix alibaba cloud rds module (#2293)
Enable users to set `db_instance_storage_type`. This can fix the issue
happended since Sept. 14, 2021.
{"Code":"InvalidNetworkTypeClassicWhenCloudStorage","HostId":
"rds.aliyuncs.com","Message":"The Specified InstanceNetworkType
value Classic is not valid when choose cloud storage type."
2021-09-14 21:57:46 +08:00
Tianxin Dong
17c17fcfc6 Fix: fix apply application (#2288)
* Fix: fix apply application

* Fix: fix apply remaining
2021-09-14 21:49:09 +08:00
Jian.Li
0e8ffd717f Fix: apply-component bug (#2292)
* Fix: apply-component bug

* Feat: uniform apply-component input/output format
2021-09-14 21:37:46 +08:00
Jianbo Sun
8d8447ad94 Fix: filter kubectl apply annotation in vela live-diff (#2290) 2021-09-14 20:36:53 +08:00
Somefive
e8d051a532 Support MultiCluster EnvBinding with cluster-gateway (#2247)
* Feat: init multicluster

* Feat: add secret namespace auto-detect

* Style: format

* Style: split gc codes

* Feat: add cluster cli

* Fix: rebase workflow on master

* Feat: add component selector for env binding

* Fix: selector & patch conflict

* Feat: add local cluster support & fix unit test

* Fix: fix omitempty bug

* Feat(health-scope): support multi-cluster's healthcheck

* Fix: resourcetracker gc bug & rename

* Feat: add multicluster to op.Read

Co-authored-by: yangsoon <songyang.song@alibaba-inc.com>
2021-09-14 20:35:10 +08:00
qiaozp
c1ebe9db24 Feat: alibaba provider addon (#2243)
bump up terraform version

Signed-off-by: qiaozp <chivalry.pp@gmail.com>
2021-09-14 19:35:21 +08:00
wyike
3d29df3a52 Fix: fix in middler of test (#2275)
add test

delete uesless

add comments

fix small issue

fix error

add charts back
2021-09-14 18:05:21 +08:00
yangsoon
324bbe5e57 Fix(helm): enable apiserver by default (#2249)
Co-authored-by: yangsoon <songyang.song@alibaba-inc.com>
2021-09-14 14:15:47 +08:00
Tianxin Dong
8e172091f6 Test: fix resource tracker e2e (#2281) 2021-09-14 10:26:57 +08:00
Tianxin Dong
e73655a8b2 Refactor: change field exportKey to valueFrom (#2284) 2021-09-14 10:23:39 +08:00
Hongchao Deng
ce70f9f57f Fix: add exponential backoff wait time for workflow reconciling (#2279) 2021-09-13 22:34:25 +08:00
Hongchao Deng
215c4e0752 Fix: patch any key using retainKeys strategy (#2280) 2021-09-13 20:19:16 +08:00
wyike
d93d8626c0 Feat: istio addon and use case demo (#2276)
fix all error and finish readme

small change

fix CI check

add canary trait back
2021-09-13 20:10:32 +08:00
Jian.Li
b66f2995a5 Fix: Bugs (as follows) (#2278)
* Fix: suspend step id

* Feat: add test cases

* Fix: reslove conflict

* Fix: reduce reconclie duration for test
2021-09-13 20:03:49 +08:00
Jianbo Sun
cad21c5138 Fix: refactor workflow and fix some e2e tests (#2272)
* Fix: add e2e plugin test back

* Fix: e2e rollout test and try change port to 37081

* Fix: add rollout plan test back

* Refactor: change the workflow state machine and add workflow succeed state

* Refactor: refine definition controller and fix e2e of app revision

* Refactor: unlock all the normal cases

* Fix: add helm schematic logic back into workflow
2021-09-13 14:17:12 +08:00
Tianxin Dong
af01349f28 Test: fix rollout e2e test (#2277) 2021-09-13 11:13:03 +08:00
Jian.Li
445db3b276 Fix: E2E Test (#2274)
* Fix: value.lookUpByScript bug

* Fix: apply-component patch trait resource
2021-09-12 22:45:14 +08:00
Yuhui Liu
7ed34b675d Feat: add more options for leader election configuration to avoid pressure on kube-apiserver (#2271) 2021-09-12 18:30:59 +08:00
Jianbo Sun
537f19f06b Fix: remove podspecworkload controller and CRD (#2269) 2021-09-12 10:17:09 +08:00
Jian.Li
6cbdbe84b2 Refactor application code to make it run as Dag workflow (#2236)
* Refactor: remove use of AppConfig in AppRevision

* Refactor: remove insert secret and configmap

* Feat(workflow): upgrade

* Fix(conflict): workflow cherry

* Feat(workflow): support DAG mode

* Feat(workflow): prepare steps in step

* Feat(tools): random string

* Fix(rand): gosec weak random

* Fix(ci): test passing

* Feat(workflow): generate steps

* Fix: fix rebase from master

* Fix: fix workflow ut

* Feat(test): add test cases

* Fix: fix lint and rebase from master

* Refactor: application code

* Fix: fix ci lint

* Fix: make code reviewable

* Fix: workflow_test.go

* Feat: collect services

* Fix(ci): unit tests

* Feat: make one

* Test: application with input/output and workflow

* Fix: trace test

* Fix: update step index falied

* Feat: refactor op.#Load

* Fix: delete dead code

* Refactor: op.xxx

* Fix: patch component

* Test: add generator test

* Fix: add license

* Fix: pending e2e plugin test

* Fix: disable test/e2e-test

* Fix: patch by script

Co-authored-by: 天元 <jianbo.sjb@alibaba-inc.com>
Co-authored-by: FogDong <dongtianxin.tx@alibaba-inc.com>
2021-09-12 10:12:46 +08:00
Zheng Xi Zhou
2ba7480a41 Fix: add ComponentDefinition alibaba-eip (#2268)
Added another ComponentDefinition alibaba-eip, which will be applied
with vela-core installation
2021-09-11 18:46:00 +08:00
Zheng Xi Zhou
7d827182e6 Fix: fix the output DB_PASSWORD for rds definition (#2267)
Fixed the output `DB_PASSWORD` for ComponentDefinition alibaba-rds
2021-09-11 18:02:57 +08:00
wyike
da5b32f1a8 Fix: delete useless rollouttrait (#2264) 2021-09-10 22:43:40 +08:00
wyike
8b1ce6937f Fix: remove matchlabels in webservice template (#2255) 2021-09-10 12:44:38 +08:00
Jianbo Sun
a79c96fa46 Fix: pending the flaky rollout test (#2253) 2021-09-09 21:06:03 +08:00
Tianxin Dong
faa445255d Feat: add image auto update for gitops (#2251) 2021-09-09 19:53:01 +08:00
Jianbo Sun
f270c5901b Chore: add backup for code owners (#2252) 2021-09-09 17:56:47 +08:00
Zheng Xi Zhou
19bcfdd8df Fix: bump version of Terraform Controller (#2250)
Bumped the version of Terraform controller to change the filed of
Configuration's status.

Related issue: https://github.com/oam-dev/terraform-controller/pull/104
2021-09-09 17:19:57 +08:00
majian
e0eded58e5 Feat: support code-generator and sync to kubevela-core-api (#2174) 2021-09-09 09:28:31 +08:00
A Ismaili
873a19e9e0 Fix: Updated broken Getting Started links (#2248) 2021-09-08 18:13:27 +08:00
Reeta Singh
579f7427fa Feat: vela show annotations display undefined should be refined (#2244)
* Feat(trait): annotation and labels trait should also affect the workload object along with pod

* Feat(trait): annotation and labels trait should also affect the workload object along with pod

* Feat(trait): annotation and labels trait should also affect the workload object along with pod

* Feat(trait): annotation and labels trait should also affect the workload object along with pod

* Feat: vela show annotations display undefined should be refined

Co-authored-by: Reeta Singh <reetas@twitter.com>
2021-09-08 15:02:50 +08:00
Jianbo Sun
65402bd926 Fix: remove some unused flaky tests (#2242) 2021-09-08 09:30:04 +08:00
wyike
ae724b2a9a Docs: canary rollout demo (rollout part only) (#2177)
Feat: component definition support context.revision
2021-09-07 17:08:56 +08:00
Zheng Xi Zhou
5730d08396 Fix: lower title level to make definition docs generation adapt to kubevela.io (#2240)
Lower two levels of the title of workloads/traits docs to adapt to
Kubevela.io
2021-09-07 16:03:33 +08:00
qiaozp
c451d74cfd Fix: kustomize json patch trait definition (#2239) 2021-09-07 11:30:41 +08:00
Yue Wang
4ed40bebe3 Feat(app): show health status from HealthScope in application status (#2228)
Signed-off-by: Yue Wang <seiwy2010@gmail.com>

Co-authored-by: roywang <royyuewang@tencent.com>
2021-09-07 11:27:29 +08:00
Reeta Singh
e29f22a7b3 Feat(trait): annotation and labels trait should also affect the workload object along with pod (#2237)
* Feat(trait): annotation and labels trait should also affect the workload object along with pod

* Feat(trait): annotation and labels trait should also affect the workload object along with pod

* Feat(trait): annotation and labels trait should also affect the workload object along with pod

* Feat(trait): annotation and labels trait should also affect the workload object along with pod

Co-authored-by: Reeta Singh <reetas@twitter.com>
2021-09-07 10:57:32 +08:00
Eng Zer Jun
426aa7af34 Refactor: move from io/ioutil to io and os package (#2234)
The io/ioutil package has been deprecated as of Go 1.16, see
https://golang.org/doc/go1.16#ioutil. This commit replaces the existing
io/ioutil functions with their new definitions in io and os packages.

Signed-off-by: Eng Zer Jun <zerjun@beatchain.co>
2021-09-06 18:33:42 +08:00
yangsoon
f8ac24db27 Feat(workflow): add status check for workflow mutil-env (#2229) 2021-09-06 14:48:34 +08:00
yangsoon
493e255d78 Fix: align the envbind-app name with the original application name (#2232) 2021-09-05 14:45:44 +08:00
Somefive
32b6502e74 Feat: add pressure-test parameter optimize (#2230) 2021-09-03 17:29:54 +08:00
yangsoon
02f79a5cd9 Fix(addons): remove kruise addon (#2226) 2021-09-03 11:44:52 +08:00
Zheng Xi Zhou
ecef32a7f3 Fix: add flag --label to filer components and traits (#2217)
Added flag `--flag` to filter when executing `vela componnets` and
`vela traits`

Fix https://github.com/oam-dev/kubevela.io/pull/222#discussion_r699214816
2021-09-02 20:51:34 +08:00
yangsoon
e59374bb7d Feat(apiserver): add apiserver service to helm chart (#2225) 2021-09-02 17:16:09 +08:00
yangsoon
cec16cc1a4 Fix(webhook): only check the uniqueness of component names under the same namespace (#2222) 2021-09-02 14:09:45 +08:00
Jian.Li
1776859631 Feat(workflow): Add op.#Task action (#2220)
* Feat(workflow): tekton task

* Feat(tools): random string

* Fix(example): defintion fmt

* Fix(rand): gosec weak random
2021-09-02 13:40:10 +08:00
wyike
f5c2c85381 Fix(addon): rename clonset-service to clonse (#2219)
fix test
2021-09-02 12:05:51 +08:00
Jian.Li
7a42c743d7 Feat(workflow): outputs support script notation (#2218)
* Feat(workflow): output support script notation

* Feat(cue): add test case
2021-09-01 19:19:01 +08:00
yangsoon
d4277f644e Fix(app): When only the policy is specified, the resources in the app need to be rendered and created (#2197)
* Fix(app): apply app when policy is specified

* Fix(policy): update env-binding policy

* Test(policy): add test
2021-09-01 17:27:47 +08:00
Yue Wang
f130d1d922 Fix(upgrade): upgrade controller-tools from 0.2 to 0.6.2 (#2215)
Signed-off-by: Yue Wang <seiwy2010@gmail.com>

Co-authored-by: roywang <royyuewang@tencent.com>
2021-09-01 15:08:24 +08:00
Jian.Li
1a6d2be6d0 Feat(workflow): input.ParameterKey described like paths notation (#2214)
* Feat(workflow): input.ParameterKey path notation

* Feat(workflow): add test case

* Fix(lint): format code
2021-09-01 11:34:16 +08:00
Tianxin Dong
2d1edbb16d Feat(workflow): add apply application workflow step definition (#2186) 2021-08-31 20:21:29 +08:00
Tianxin Dong
7a139b554f Feat(workflow): support dingding and slack in webhook notification (#2213) 2021-08-31 20:20:26 +08:00
Yue Wang
6bf4a2c1f7 Feat(healthscope): add health-scope-binding policy and e2e test for health scope (#2205)
Signed-off-by: roywang <seiwy2010@gmail.com>

Co-authored-by: roywang <royyuewang@tencent.com>
2021-08-31 15:59:17 +08:00
Jianbo Sun
9f6812414d Fix: modify service-binding with more accurate type (#2209) 2021-08-31 13:47:16 +08:00
Hongchao Deng
7310cc1363 Docs: update environment design (#2199) 2021-08-31 13:43:00 +08:00
Penthaa Patel
161bab7d62 Refactor(#2185): remove unused config options in Makefile (#2200)
Fixes issue #2185
2021-08-31 10:06:21 +08:00
Jianbo Sun
332fd4753e Fix: update help message of ingress trait (#2198) 2021-08-31 08:40:19 +08:00
Zheng Xi Zhou
4e010d7bae Fix: support more Terraform variable types (#2194)
Including null, list(...), map(...) Terraform types
2021-08-30 20:16:24 +08:00
Jianbo Sun
1ce8722e25 Feat: add more registry traits as internal ones (#2184) 2021-08-30 19:47:54 +08:00
arcosx
cd153e8ce5 Fix: error doc link (#2195) 2021-08-30 19:29:13 +08:00
Somefive
2cea51e5e9 Feat: add pprof (#2192) 2021-08-30 17:19:46 +08:00
yangsoon
75a972516d Feat(workflow): add depends-on workflow step definition (#2190) 2021-08-30 17:19:32 +08:00
Somefive
25bc43ae39 Fix: add patchkey to volumes (#2191) 2021-08-30 15:54:43 +08:00
Zheng Xi Zhou
068e9d97c4 Fix: move Terraform defintions charts/vela-core/templates/definitions (#2176)
Make all Terraform definitions to install when vela-core is installing
2021-08-30 14:49:57 +08:00
Jianbo Sun
e9981b6e20 Feat: add vela live-diff , dry-run, cue-packages into vela commands (#2182) 2021-08-30 12:01:24 +08:00
Jianbo Sun
0781937100 Fix: align all CUE template keyword to use parameter (#2181) 2021-08-30 11:43:20 +08:00
Tianxin Dong
75eab7bdde Docs: remove the commit convention doc (#2187) 2021-08-30 11:41:01 +08:00
yangsoon
d24e282e67 Feat(envbinding): add resourceTracker for envBinding (#2179)
* Feat(envbinding): add resourceTracker for envBinding

* Test: add test for envbinding
2021-08-29 13:29:30 +08:00
qiaozp
0c7048b2a0 Feat(addon): add default enable addon (#2172) 2021-08-29 11:24:40 +08:00
Yue Wang
9780ce3bef Feat(cue): support access components artifacts in cue template context (#2161)
Signed-off-by: roywang <seiwy2010@gmail.com>

Co-authored-by: roywang <royyuewang@tencent.com>
2021-08-29 09:11:10 +08:00
Jianbo Sun
cb790bfc13 initilize KubeVela codeowner file (#2178)
* Chore(maintainer): initilize KubeVela codeowner file

* Update .github/CODEOWNERS

Co-authored-by: Zheng Xi Zhou <zzxwill@gmail.com>

* Update .github/CODEOWNERS

Co-authored-by: Zheng Xi Zhou <zzxwill@gmail.com>

* Update .github/CODEOWNERS

Co-authored-by: Zheng Xi Zhou <zzxwill@gmail.com>

Co-authored-by: Zheng Xi Zhou <zzxwill@gmail.com>
2021-08-28 08:26:41 +08:00
yangsoon
73be37b73b Fix(envbinding): fix the way that envbinding stores resources after configuration (#2175)
* Refactor: replace #op.ApplyEnvBindComponnet with #op.ApplyEnvBindApp

* Fix: fix patch strategy for envbinding
2021-08-27 21:38:57 +08:00
Reeta Singh
950411dbe8 Trait: Add TraitDefinition for PVC (#2158)
* Feat(trait): add trait definition for persistent volume claim

* Feat(trait): add trait definition for persistent volume claim
2021-08-27 18:45:22 +08:00
Zheng Xi Zhou
5fcc2ad9f7 Fix: fix EOF event when describing an application (#2134)
Fixed the issue: When component properties don't meet the parameter
of the ComponentDefinition, it will hit 'EOF' event

Co-authored-by: Jian.Li <74582607+leejanee@users.noreply.github.com>

Fix #2132
2021-08-27 18:45:05 +08:00
wyike
cc8a1d3bde Feat: modify apply component cue action to support skipWorkload trait (#2167)
fix lint

fix comments
2021-08-27 13:12:00 +08:00
Zheng Xi Zhou
1f6d4d2345 Fix: add fluxcd dashbaords (#2130)
Added two fluxcd dashboards and also install its dependencies

just keep the ready Dashboard
2021-08-26 20:31:49 +08:00
wyike
6719e8af3a Feat: add health check status (#2166)
check len(status.contitions) not empty
2021-08-26 20:05:01 +08:00
yangsoon
5d17fb3a7f Refactor: change the ownerReference of configMap which store the parameter for each revision to definitionRevision (#2164)
* Refactor: change the ownerReference of cm store the parameter for each revision to defRevision

* Feat: check whether its needed before status update
2021-08-26 19:56:46 +08:00
Zheng Xi Zhou
08f1ff99cf Fix: traitdefinition controller reconcile in a infinite loop (#2157)
Check whether its needed before status update, add log before
each reconcile returns, and also correct Klog.InfoS to klog.ErrorS
when trying to log err information

Fix #2153
2021-08-25 21:35:33 +08:00
Shaowen Chen
44262f03de Docs: fix typo about workflow rollout (#2163)
Signed-off-by: shaowenchen <mail@chenshaowen.com>
2021-08-25 19:32:56 +08:00
Tianxin Dong
2145afe4e1 Feat(ci): add commit lint ci (#2160) 2021-08-25 17:00:50 +08:00
Tianxin Dong
60cd8ef7de Feat(workflow): add workflow CRD (#2098) 2021-08-25 09:55:12 +08:00
Tianxin Dong
8fb64fcb19 Fix(dryrun): add default name and namespace in dry run (#2150) 2021-08-24 17:54:55 +08:00
Tianxin Dong
8fc192bfac Feat(definition): add built-in dingtalk workflow step definition (#2152) 2021-08-23 19:07:07 +08:00
Young-Zen
c4380dbe06 fix helm test failed (#2149)
Co-authored-by: yanghaojia <yanghaojia@coding.net>
2021-08-23 16:48:37 +08:00
wyike
01f7357525 change IncreaseFirst to DecreaseFirst (#2142)
don't merge, only for test

request cpu to 0

revert
2021-08-23 16:24:51 +08:00
Jian.Li
9311c22c16 Feat(workflow): support to send dingDing message (#2141)
* Feat(workflow): send dingding message

* Bug(e2e): upgrade golang version
2021-08-21 07:18:04 +08:00
Tianxin Dong
7254bb67a3 Feat(vela): add vela workflow terminate and restart command (#2131)
* Feat(vela): add vela workflow terminate and restart command

* Fix(restart): fix restart command
2021-08-20 20:45:09 +08:00
wangyuan249
8a334d7e82 Feat: add get and delete method for app and test (#2127) 2021-08-20 20:41:19 +08:00
qiaozp
af04ca37a5 Feat(addon): Add source and patch to kustomize definition (#2138)
* add more source to kustomize

* add patch to kustomize

* fix

* add patch trait

* remove param
2021-08-20 20:40:15 +08:00
Tianxin Dong
37bd10d762 Feat(contributing): add commit message convention (#2140) 2021-08-20 16:08:08 +08:00
Yue Wang
324fc1ac7c add CUE-based health check in HealthScope controller (#1956)
add e2e test

Signed-off-by: Yue Wang <seiwy2010@gmail.com>
2021-08-20 15:55:47 +08:00
yangsoon
850fc704a1 add new parameter type for internal trait expose (#2122)
* expand internal trait expose

* fix(demo) fix resource in workflow-with-ocm

Co-authored-by: yangsoon <songyang.song@alibaba-inc.com>
2021-08-20 15:50:22 +08:00
wyike
4941a3e9c2 fix external revision bug (#2126)
* fix external revision bug

* add test

* try to fix flaky-test
2021-08-20 15:43:50 +08:00
Tianxin Dong
bd91cf762d Fix(workflow): set the namespace to app's ns if it's not specified (#2133)
* Fix(workflow): set the namespace to app's ns if it's not specified

* fix dryrun test
2021-08-20 13:43:04 +08:00
qiaozp
0906d1b602 fix cloneset (#2129) 2021-08-20 10:55:59 +08:00
yangsoon
fa283ee695 fix(cli) fix bug when vela show componetdefinition's workload type is AutoDetectWorkloadDefinition (#2125) 2021-08-19 23:44:31 +08:00
Hongchao Deng
bec6c89389 examples: fix typo (#2128)
* examples: fix typo

* update yaml
2021-08-19 21:19:53 +08:00
Jian.Li
96a8b24a64 Make the WorkflowStepDefinition to be Universal (#2124)
* support script

* add comment
2021-08-19 19:15:41 +08:00
wyike
0c0b9d0774 rollout OCM demo and defer rollout pass owner to handleSucceed (#2121)
* finish test

fix demo

finish test

finish docs

fix rollout template

add more test

add comment

* impove test coverage and wrap error

fix checkdiff

add more time
2021-08-19 15:33:40 +08:00
Jianbo Sun
f033768dd2 fix(CI): use buildkit as docker build engine to avoid 401 unauthorized error (#2120) 2021-08-18 22:36:02 +08:00
qiaozp
65217c0a44 helm add bucket support (#2104)
* helm add bucket support

* fix def

* add bucket support ,support ak/sk

* typo

* bucket -> oss

* bucket -> oss

* repoUrl -> url

* rfc helm param

* rfc helm param

* fix helm type usage

* fix test
2021-08-18 20:10:42 +08:00
Tianxin Dong
8ac5d2276e Fix(workflow): set workload name in configmap if the name is not specified (#2119)
* Fix(workflow): set workload name in configmap if the name is not specified

* fix ut
2021-08-18 20:04:34 +08:00
Concurrensee
9b7c4562ca modified openkruise version to v0.9.0 (#2076)
Co-authored-by: 314785 <wuyida.wuyida@alibaba-inc.com>
2021-08-18 17:37:52 +08:00
Tianxin Dong
a6753737b3 Feat(vela): add vela workflow resume command and ut (#2114)
* Feat(vela): add vela workflow resume command and ut

* fix ut
2021-08-18 17:04:21 +08:00
Jianbo Sun
8e4a0c8306 try fix github action push to image hub (#2115) 2021-08-18 14:35:43 +08:00
Tianxin Dong
601510e43c feat(def): add built-in workflow definitions (#2094)
* use_vela_bin

* Update gen_definitions.sh

add version print

* Update gen_definitions.sh

* Update gen_definitions.sh

* update crossplatform build check

* test

* feat(def): add built-in workflow definitions

* delete pod disruptive in workflow step def

* make cue files reviewable

* fix workflow step definition

* fix ci

* add clean up step

* add build clean up

Co-authored-by: Yin Da <yd219913@alibaba-inc.com>
Co-authored-by: Somefive <Somefive@foxmail.com>
2021-08-18 13:22:57 +08:00
Tianxin Dong
2854c4204c Feat(vela): add vela workflow suspend command (#2108)
* Feat(vela): add vela workflow suspend command

* Feat(vela): add vela workflow suspend ut
2021-08-18 11:37:46 +08:00
Zheng Xi Zhou
09c85191ba Replace gcr.io image in chart kube-metrics-server (#2113)
As it's difficult to pull gcr.io iamge, so replace the image
k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.1.0 to the one
hosted in dockerhub.io
2021-08-18 09:11:38 +08:00
Zheng Xi Zhou
b11d0c69d6 Fix the issue to set the latest nighty build chart name (#2109)
This is a patch for https://github.com/oam-dev/kubevela/pull/2103
2021-08-17 20:40:41 +08:00
Jianbo Sun
cc4b55983f update kubevela helm chart repo (#2110) 2021-08-17 18:56:49 +08:00
Zheng Xi Zhou
a9ab04dfe3 Store OSS bucket and endpoint to Github Action secret (#2111)
Storing OSS bucket and endpoint to Github Action secret will help
a developer to test the function without needing to changing code,
revert code. Instead, he/she just need to configure the secret contect
2021-08-17 18:54:14 +08:00
Zheng Xi Zhou
3ccaf04354 Refine the lastest chart name build on master branch (#2103)
Rename the latest master chart name to x.y.z-nighty-build
2021-08-17 15:13:59 +08:00
qiaozp
050afca7a6 Add obsevability addon (#2091)
* Support Obsevability

- Support displaying and filter logs
- Support metrics and traces

* register datasource

* install prometheus

* install prometheus and register datasource

* Also install and register Prometheus

* remove unneeded file

* register datasource with clusterip

* register prometheus

* Support importing Grafana Dashboard

Added a trait to import Grafana Dashboard on component Grafana

* tmp

* 1. make observability as addon
2. make it more esay to gen addon

* use [[]] as gen addon delim

* url->urls

* add 2 url

* fix template

* fix args

* remove doc

* move url,fix test

* last modify!

* change arg name to grafana-domain

Co-authored-by: zzxwill <zzxwill@gmail.com>
2021-08-17 14:46:07 +08:00
yangsoon
a599a6a88b add more test for envbinding (#2100)
* add test

* fix example
2021-08-17 11:30:52 +08:00
wyike
b6a2ab804e add batch partition (#2097) 2021-08-16 20:30:56 +08:00
Jianbo Sun
309e71a60f add create or update app apiserver (#2087)
* add create or update app

* add apiserver test
2021-08-16 20:28:03 +08:00
yangsoon
d3f264273f enhance envbinding: support apply resources to cluster (#2093)
* enbinding support apply resources directly

* adjust the directory struct

* set placement as an optional field

* support namespace selector
2021-08-16 19:08:18 +08:00
Zhizhen He
1e294b3164 chore: replace github.com/ghodss/yaml with sigs.k8s.io/yaml (#2089) 2021-08-15 10:53:05 +08:00
Somefive
51669f0e41 enable vela def to use import decl (#2084)
* enable vela def to use import decl

* fix def_test

* add comment

* add more test
2021-08-13 18:44:01 +08:00
wangyuan249
11524bf591 update cert image (#2083) 2021-08-13 08:23:48 +08:00
wyike
682385dea9 runtime rollout chart (#2075)
* first commit

WIP

finish all tests

finish github  workflow

only for test

only for test

revert test code

minimize rbac

neats imports

fix tests

* reorg

small change

* rename
2021-08-12 21:33:00 +08:00
Concurrensee
63341e8f6e imagePullJob added with demo (#2069)
Co-authored-by: 314785 <wuyida.wuyida@alibaba-inc.com>
2021-08-12 19:12:53 +08:00
Somefive
d7a31c4cb3 fix configmap patchkey bug (#2080) 2021-08-12 19:10:51 +08:00
Hongchao Deng
223bcd3770 remove k8sutil 2021-08-12 11:13:41 +08:00
wangyuan249
f2868305ff fix ci 2021-08-12 11:13:41 +08:00
wangyuan249
9e2f406ee0 fix ci and refactor common util 2021-08-12 11:13:41 +08:00
Hongchao Deng
3c5fae12b3 fix ci 2021-08-12 11:13:41 +08:00
Hongchao Deng
201c3c466d add test for catalog service 2021-08-12 11:13:41 +08:00
Hongchao Deng
638957a333 leave only catalog code 2021-08-12 11:13:41 +08:00
Hongchao Deng
9620fbbfca add helm chart 2021-08-12 11:13:41 +08:00
Hongchao Deng
bf93bf5004 add apiserver to Dockerfile 2021-08-12 11:13:41 +08:00
wangyuan249
fa57fcf66e Merge velacp to apiserver branch in oam repo (#2039)
* move velacp into vela core as apiserver

* fix lint

* add license

* fix err lint

* fix err

* rm vela install service

* add makefile
2021-08-12 11:13:41 +08:00
yangsoon
8d298ecfdd clean docker image every hour (#2070) 2021-08-11 20:29:20 +08:00
tux
d7c179b91d fix workflow example (#2064) 2021-08-11 16:30:16 +08:00
Tianxin Dong
63cfc2b68a Fix(example): fix workflow example (#2060) 2021-08-11 14:00:30 +08:00
Somefive
873c8299d8 fix definition controller log error cause by openapi schema generation error (#2063)
* fix definition controller log error cause by openapi schema generation failed

* fix definition controller log error cause by openapi schema generation failed

* add test
2021-08-11 13:59:46 +08:00
qiaozp
356db2dc97 Add add-on input go-template implementation (#2049)
* add addon parameter template implementation

* add test

* fix test

* fix helm version parameter
2021-08-11 11:49:44 +08:00
yangsoon
abbec2c36b definitions support specify the revision name (#2044)
* support named defRev

* add test
2021-08-10 20:03:45 +08:00
tux
120e6fcc5c fix metadata.name to lower case (#2059) 2021-08-10 20:03:04 +08:00
Somefive
072e6b0aa7 fix def init bug (#2056) 2021-08-10 12:48:32 +08:00
qiaozp
ea64b1db3b Add cloneset as kruise addon's componentDefinition (#2050)
* add cloneset as kruise addon's componentDefinition

* add SAE demo field

* trim field

* make reviewable
2021-08-10 10:21:49 +08:00
Tianxin Dong
a874aa3f71 Chore(docs): fix typos in design docs (#2053) 2021-08-09 19:59:38 +08:00
Jian.Li
e12a9303eb Li-Auto-Inc (#2042) 2021-08-09 10:27:18 +08:00
LeoLiuYan
a715564147 Feat allow users to specify component revision name (#1929)
* Feat allow users to specify component revision name

* Add unit tests

Signed-off-by: LeoLiuYan <929908264@qq.com>

* Add ExternalRevision field to ComponentManifest

* Add handleComponentRevisionNameUnspecified func

* Add unit tests for webhook

Signed-off-by: LeoLiuYan <929908264@qq.com>

* Add more unit tests

* Feat allow users to specify component revision name

* Add unit tests

Signed-off-by: LeoLiuYan <929908264@qq.com>

* Add ExternalRevision field to ComponentManifest

* Add handleComponentRevisionNameUnspecified func

* Add unit tests for webhook

Signed-off-by: LeoLiuYan <929908264@qq.com>

* Add more unit tests

* Try to fix webhook unit tests

* fix race (#2040)

* fix test bug

* More unit tst

* More unit test and trigger ci

Co-authored-by: yangsoon <yangsoonlx@gmail.com>
Co-authored-by: Yin Da <yd219913@alibaba-inc.com>
2021-08-08 12:11:24 +08:00
Jian.Li
94dab9f2a5 workflow support http provider (#2029)
* provider http

* method

* add license header

* test cases

* test cases

* test cases

* test cases

* generate

* lint

* upgrade apply component

* cover

* test install
2021-08-06 19:26:50 +08:00
Somefive
97d2715b87 update klog surpress (#2038) 2021-08-06 19:09:21 +08:00
Somefive
6168537f56 add vela-def design documents (#2041) 2021-08-06 17:55:06 +08:00
yangsoon
d5abd6fd77 fix race (#2040) 2021-08-06 17:13:12 +08:00
Somefive
ee0282af18 [Vela CLI] Vela def enhancement & replace mergedef.sh (#2031)
* draft vela def enhancement

* add format and amend test

* fix generation bugs

* force CI

* work around lifecycle definition in avoid of vela show --web crash

* fix data race in envbinding
2021-08-06 17:10:52 +08:00
Zheng Xi Zhou
116e78e66a Add more properties for trait helm (#2033)
* Add more properties for trait helm

Added `version`, `targetNamespace` and `value` for trait helm

co-authored-by:  qiaozp <47812250+chivalryq@users.noreply.github.com>

* fix make check-diff issue

Co-authored-by: qiaozp <47812250+chivalryq@users.noreply.github.com>
2021-08-06 16:20:37 +08:00
Gesa Stupperich
2ee3256b20 Store component parameters in context (#2030) 2021-08-06 10:48:00 +08:00
yangsoon
0eed21987a add more test for envbinding (#2032) 2021-08-06 10:46:31 +08:00
wyike
3f326f06e4 application skip gc resource and rollout set workload ownerReference (#2024)
* finish main logic and test

* fix import order

* rollout isn't created by applciation

* fix comments

* fix compatility test

* mock error test
2021-08-05 17:15:57 +08:00
wangyuan249
db0b7b6ea3 add userlist (#2025) 2021-08-05 14:42:48 +08:00
Tianxin Dong
c6c03d823b Fix(volume): seperate volume to trait (#2027) 2021-08-05 11:06:13 +08:00
Hongchao Deng
566cd8cbc8 design: add scenarios of ML Platform Building 2021-08-05 10:28:28 +08:00
yangsoon
1a7db89fbd add ocm demo (#1992) 2021-08-04 20:23:56 +08:00
yangsoon
0752244d0b enable policy (#2011) 2021-08-04 18:58:57 +08:00
Jian.Li
5f1d07bfc6 Order Steps by Field Tag (#2022)
* sort by tag

* add test cases for order tag

* parse comments

* fix atrr conflict

* fix bug
2021-08-04 16:30:11 +08:00
junqi.zhai
6405603970 ApplicationContext status patch nothing (#2019)
* applicationcontext_controller.go status deepcopy

* put a space between `//` and comment text

Co-authored-by: 69055 <fuwangZJQ1991>
2021-08-04 15:15:37 +08:00
wyike
13fc4e2b25 rollout controller find sourceRevision (#1989)
* rollout controller use last target as source and add whole process e2e-test

* modify makefile use regex include all rollout related test

* add example

* fix golint

* more wait time

* pending pod may let rollout stock in rollingBatches

* fix docs and tests comments

modify docs example

modify cue and yaml

* less pod in test avoid pod pending
2021-08-03 20:27:11 +08:00
Tianxin Dong
478eb69b31 Fix(lint): fix lint and typo in oam testutil (#2017) 2021-08-03 20:01:43 +08:00
Somefive
2aa31a9f2b [Vela CLI Tool] Add vela def (#1949)
* add vela edit

* vela def group commands

* 1. change scheme of definition cue
2. add vela def tests
3. reformat

* fix render template bugs

* add definition examples (migrated from serverless iac)

* retrigger github ci

Co-authored-by: Yin Da <yinda@B-2943Q05P-1738.local>
2021-08-03 18:00:49 +08:00
Jianbo Sun
e3edde44af disable metrics server port in tests and add log for rollout (#2012) 2021-08-03 14:53:38 +08:00
Shaowen Chen
af1e9dc195 bugfix: workload namespace is empty while sync appdeployment (#2009)
Signed-off-by: shaowenchen <mail@chenshaowen.com>
2021-08-03 13:23:38 +08:00
Jianbo Sun
5ddeabb6af fix resource tracker ownerRef override (#2002) 2021-08-03 12:47:59 +08:00
Jianbo Sun
aa87d3da24 upgrade K8s dependency lib to v0.21 (#1985)
* upgrade K8s dependency to v0.21

* update CRD for new version of controller-runtime

* fix ci component revision create must fill Raw in runtime.RawExtension

* try fix test

* start control plane timeout set to 1min and fix tests

* add timeout for env test start and stop

* longer timeout time for BeforeSuit function

* upgrade kubebuilder and k8s cluster version to match with v1.21.2 in github action

* fix test

* fix resource tracker ownerRef override

* update developer guides
2021-08-03 11:30:02 +08:00
Somefive
7a1f95773d Add timeout context for controllers (#1990) 2021-08-02 19:31:00 +08:00
Shaw Ho
d9cd048d79 Fix addRevisionLabel to selector (#1983)
Signed-off-by: Xiaoxi He <tossmilestone@gmail.com>
2021-08-02 16:36:54 +08:00
Somefive
2c2fe4dc66 Bump github.com/containerd/containerd from 1.3.2 to 1.4.8 (#2001)
* Bump github.com/containerd/containerd from 1.3.2 to 1.4.8

Bumps [github.com/containerd/containerd](https://github.com/containerd/containerd) from 1.3.2 to 1.4.8.
- [Release notes](https://github.com/containerd/containerd/releases)
- [Changelog](https://github.com/containerd/containerd/blob/main/RELEASES.md)
- [Commits](https://github.com/containerd/containerd/compare/v1.3.2...v1.4.8)

---
updated-dependencies:
- dependency-name: github.com/containerd/containerd
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* adapt to new containerd version

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yin Da <yd219913@alibaba-inc.com>
2021-08-02 13:05:29 +08:00
yangsoon
66644de597 fix func fixOpenAPISchema (#2003) 2021-08-02 13:04:46 +08:00
Yue Wang
b4ebdac5bb quick fix tests (#1999)
Signed-off-by: Yue Wang <seiwy2010@gmail.com>
2021-08-02 10:29:31 +08:00
Jian.Li
9d6aaa6044 Workflow Support op.# ApplyComponent and op.#ApplyRemaining (#1993)
* add cap

* workflow

* add docs

* upgrade op.#ApplyComponent

* lint

* bytes to string
2021-07-31 07:14:00 +08:00
Jianbo Sun
b88ac35779 don't filter not found error in load template to avoid panic (#1994)
* should return error if type not found to avoid panic

* don't filter not found error in load template to avoid panic
2021-07-31 07:11:07 +08:00
Jianbo Sun
0a16175523 fix rollout test (#1996) 2021-07-31 00:12:41 +08:00
Jian.Li
53855019d0 fix workflow bug (#1986)
* fix bug

* add test case
2021-07-30 19:40:25 +08:00
Somefive
4eb8f1a0ee suppress dirty logs during import libraries (#1991)
Co-authored-by: Yin Da <yd219913@alibaba-inc.com>
2021-07-30 18:39:34 +08:00
yangsoon
7161959aca add EnvBinding Controller for Multi cluster deploy and Configuration Management (#1968)
* patch env configuration

* add e2e-test
2021-07-30 10:02:51 +08:00
Jian.Li
4481e7637d Optimize Workflow (#1978)
* open op.#Steps

* export

* fmt code

* fix bug & upgrade workflow doc

* fmt

* upgrade test coverage

* upgrade test coverage
2021-07-29 11:35:22 +08:00
wyike
2b1946ee7b already exist is fine (#1979) 2021-07-29 11:16:40 +08:00
wyike
a8c4d5f01e add filter func and related tests (#1976)
trigger CI
2021-07-28 18:50:13 +08:00
qiaozp
de1b84724c add namespace initializer for fluxcd (#1977) 2021-07-28 18:46:06 +08:00
Jianbo Sun
e71d71c6b7 use corev1.ObjectReference insteadof crossplane-runtime TypedReference (#1974)
* refactor crossplane-runtime TypedReference to ObjectReference and make condtion locally

* fix test
2021-07-28 13:59:13 +08:00
Jian.Li
e7041f913f open op.#Steps (#1975) 2021-07-28 13:58:33 +08:00
wyike
3199fd7577 support context.componentRevName in cue template of traitDefinition (#1973)
* add logic and test for component context replace

* add more test

* add comments

* fix comments

* rename context revision name

* add bad revision name test
2021-07-28 10:28:02 +08:00
Jian.Li
a736b1f7b0 Workflow Support Resource GC (#1970)
* gc

* add test cases

* test case
2021-07-27 19:22:05 +08:00
dependabot[bot]
804024599b Bump github.com/gin-gonic/gin from 1.6.3 to 1.7.0 (#1971)
Bumps [github.com/gin-gonic/gin](https://github.com/gin-gonic/gin) from 1.6.3 to 1.7.0.
- [Release notes](https://github.com/gin-gonic/gin/releases)
- [Changelog](https://github.com/gin-gonic/gin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gin-gonic/gin/compare/v1.6.3...v1.7.0)

---
updated-dependencies:
- dependency-name: github.com/gin-gonic/gin
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-27 15:09:45 +08:00
Yue Wang
c0144865d2 fix app finalizer bug (#1962)
Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-07-26 14:20:22 +08:00
wyike
5d6ce83174 mechanism let application skip apply the workload (#1963)
* add manageby trait option

* add comments

* fix comments

* fix dryrun test

* add checkfunc in assemble phase

fix lint
2021-07-25 10:18:33 +08:00
chival
6b804acbf5 Fix Initializer bugs & Enhance addon command (#1955)
* enhance `addon enable` command

* fix: initializer requeue twice
fix: initializer won't update status while checking dependency

* not delete ns while disable addon

* add init delete webhook and test

* use poll func

* fix get init logic

* fix get init logic

* fix CI

* fix CI

* unfocus

* check diff

* CI
2021-07-25 10:16:43 +08:00
Zheng Xi Zhou
e62d5d23e7 Update Terraform typed Componentdefinition (#1938)
As Terraform alicloud provider has upgrade to 1.26.0, some
HCL synatx have to been updated
2021-07-23 14:48:32 +08:00
Jian.Li
9d7d2eb262 docs (#1961) 2021-07-23 11:21:48 +08:00
c508cd45c6 allow create application with empty components (#1936) 2021-07-22 19:47:34 +08:00
Hongchao Deng
ed0039e1ee [Feature] CUE Based Workflow Step (#1935)
* Workflow WIP (#1934)

* interface

* add model value

* walk fields

* provider

* stdlin

* tasks

* add stdlib

* Adjust TaskGenerator

* Unified configmap format

* development completed

* fix import cycle

* demo passing

* upgrade action

* add value test cases

* format

* apis

* add context test cases

* fmt

* fmt

* add context to taskGenerator (#1942)

* fix configmap test

* add workflow integration test

* upgrade code

* initial workflow commit

* interface

* add model value

* walk fields

* provider

* stdlin

* tasks

* add stdlib

* Adjust TaskGenerator

* Unified configmap format

* development completed

* fix import cycle

* demo passing

* upgrade action

* add value test cases

* format

* apis

* add context test cases

* fmt

* fmt

* add context to taskGenerator (#1942)

* fix configmap test

* add workflow integration test

* lint code

* improve pkg[value、context] testing coverage

* Improve testing coverage(#1957)

* add license

* add test cases

Co-authored-by: Jian.Li <74582607+leejanee@users.noreply.github.com>
Co-authored-by: Jian.Li <lj176172@alibaba-inc.com>
2021-07-22 18:53:30 +08:00
chival
0b46895211 support helm repo secret (#1943) 2021-07-21 14:52:43 +08:00
yangsoon
5e064219e7 Enhance Initializer: export the phase of Initializer and help install build-in Initializer (#1932)
* add phase for initilaizer

* help install build-in initializer

* add test
2021-07-20 20:40:01 +08:00
wyike
ff6fcd9f10 support component revision based rollout (#1919)
* WIP almost finish main logic

WIP make reviewable

finish manual test

fix rollout plan related test

WIP refactro some logic

WIP finish e2e-test

* fix failed e2e-test

* fix failed interagtion test

* move rollout to trait packege

* modify e2e-test testdata change apiVersion

* add v1alpha1 to scheme in test

* more wait time

* fix comment

* split rollout test

fix makefile

* rename test name

delete equal quata

try to fix

fix

* add more test
2021-07-20 16:53:39 +08:00
Yue Wang
10073df98a fix legacy resource tracker issue (#1931)
Signed-off-by: Yue Wang <seiwy2010@gmail.com>
2021-07-20 14:07:08 +08:00
wangyuan249
d77969b52e Help developer install build-in necessary definitions. (#1907)
* fix

* add install def shell

* change to make command

* fix shell

* fix bak
2021-07-20 14:05:39 +08:00
chival
21cde39c50 Add helm release component definition as part of fluxcd Intializer (#1928)
* 1. change all init namespace to vela-system(make sure depend ref)
2. move componentDef into init
3. remove ns object in auto-gen file
4. remove componentDef from autogen file(already in init)

validate helm chart as componentDef

temp

* rfc: keda/prometheus/terraform-controller using helm-release comp

* fix name style

* rename

* check diff
2021-07-19 17:04:15 +08:00
yangsoon
40a09e5468 skip pkg discover when workload type is autodetect (#1930) 2021-07-19 13:14:23 +08:00
yangsoon
644cafe0a1 fix bug: application can not create component which contains namespace resource (#1920)
* align initializer's namespace to vela-system

* fix makefile

* fix terraform namespace

* add test
2021-07-15 19:53:41 +08:00
Hongchao Deng
ead859b717 design: update workflow implementation details (#1917) 2021-07-14 18:08:56 +08:00
Jian.Li
fcecd0cc8d patchKey support x.y (#1916) 2021-07-14 17:03:50 +08:00
chival
e91deaa4cc Add Prometheus/KEDA as addon (#1915)
* add keda addon

* add promethus addon

* rebase

* add generate namespace.
add prometheus as addon
add keda as addon

* rebase
2021-07-14 16:48:11 +08:00
whichxjy
40171f08bb Support scale controller for StatefulSet (#1901) 2021-07-14 15:45:07 +08:00
chival
07ebca4376 Add open-kruise as addon (#1910)
* verify git repo as source

* Add open-kruise as addon
2021-07-14 15:44:14 +08:00
chival
38cf4c8195 Add terraform controller as built-in addon (#1905)
* add terraform controller as addon

* change addon name to terraform

* fix init controller depends logic

* rebase

* fix CI

* unfocus
2021-07-14 14:38:32 +08:00
wangyuan249
7d711c2f39 self-assign (#1911) 2021-07-13 21:02:55 +08:00
whichxjy
1d76964ca0 Fix the way to ignore errors in shell script (#1902) 2021-07-13 17:15:31 +08:00
yangsoon
af50f32826 add ocm-hub (#1906) 2021-07-13 16:58:46 +08:00
Jian.Li
e972535e49 upgrade workflow design (#1900)
* upgrade workflow design

* Revert "upgrade workflow design"

This reverts commit 95937c94dd.

* revert & upgrade Diagram
2021-07-13 16:55:17 +08:00
chival
87576cc67e Implement addon mechanism (#1867)
* - add: list/enable/disable an addon.

- add: test addon

- add: full flux addon

- fix: flaky test

* try again

* 1. add readme
2. gen demo file

* fix ci

* change name

* try again
2021-07-13 13:03:25 +08:00
Lei Zhang (Harry)
d7950063c3 Align with doc (#1899) 2021-07-12 17:21:14 +08:00
LeoLiuYan
5b6f248152 Feat: no need create appRevision if it already presents in histories (#1896)
* Feat no need create appRevision if it already presents

Signed-off-by: LeoLiuYan <929908264@qq.com>

* Remove some logic

* Fix golint

* Feat add unit test and fix e2e

* Fix unit-test

Signed-off-by: LeoLiuYan <929908264@qq.com>
2021-07-08 23:03:29 +08:00
Chwetion
3016fd1e91 add add observedGeneration field in status of Application to perceive the version difference between status and spec (#1878)
Co-authored-by: chwetion <chwetion@foxmail.com>
2021-07-08 22:31:45 +08:00
wyike
9a3c63a843 override initial replicas of workload in first scale operation (#1891)
* clean up some logic

rebase and reorder phase

add log and modify e2e-test

fix reviwable

fix comment

* fix condition relate comments

finish test func

fix formate error
2021-07-08 19:45:18 +08:00
Hongchao Deng
9e1189c4df Add back workflow design diagram and update doc (#1894)
* update workflow design

* add back diagram

* separate folder

* rebase
2021-07-08 16:42:01 +08:00
Jianbo Sun
e72f5b8d2a fix error links (#1893) 2021-07-08 16:07:21 +08:00
yangsoon
0611c0a79a fix bug: failed to aggregate status if application use a kube/helm type component (#1866)
* fix aggregate status

* add test
2021-07-08 15:16:55 +08:00
LeoLiuYan
3c05232de8 Feat change appHandler scope to package (#1892)
Signed-off-by: LeoLiuYan <929908264@qq.com>
2021-07-08 14:30:52 +08:00
yangsoon
572f7b47bd add image pull policy and pull secrets for worker and webservice (#1887)
* add image pull policy and pull secrets

* fix test
2021-07-08 13:08:54 +08:00
Lei Zhang (Harry)
3d464b6461 Update with workflow inforamtion (#1890) 2021-07-08 10:22:26 +08:00
wyike
14a2f8a7bd dont't template source in rollout and rollout first component (#1888)
* fix rollout and only rollout the first component

* determine rollout component before render

* let other resources apply when target worklaod not ready

* immutable resource only update ownerRef

* add annotation

* fix unit test

add handle sourceWorkload

add anotation

add comment

add more e2e-test

Co-authored-by: 天元 <jianbo.sjb@alibaba-inc.com>
2021-07-06 23:45:52 +08:00
chival
d489cc4b37 fix-logo (#1883) 2021-07-06 20:39:50 +08:00
wangyuan249
cd1fdc8ade Bot add assign ability (#1876)
* add vela robot for issue triage

* fix url for document redirect

* assign description
2021-07-06 20:31:19 +08:00
chival
016becf2be add more test error info (#1886)
fix kustomize registry yaml, fix testdata yaml
2021-07-06 18:58:29 +08:00
Yue Wang
fba53cfbf3 handle ending reconcile with conditions (#1859)
Signed-off-by: roywang <seiwy2010@gmail.com>
2021-07-06 13:54:23 +08:00
Jianbo Sun
4930c2c71f add ingress trait for the new ingress API (#1882) 2021-07-06 13:54:00 +08:00
Jianbo Sun
700b1aa951 remove docs and refer to kubevela.io for docs (#1877)
* remove docs and refer to kubevela.io for docs

* update contirbute docs

* remove unneed github action workflow
2021-07-05 23:36:09 +08:00
Hongchao Deng
fb1eb51e92 Merge pull request #1875 from hongchaodeng/wf-design
workflow design update: CUE based workflow task
2021-07-05 14:56:19 +08:00
Hongchao Deng
071476a04f workflow design update: CUE based workflow task 2021-07-05 14:44:16 +08:00
yangsoon
01ed9a647c TraitDefinition support use insertSecretTo in template to consumer cloud resource (#1849)
* traitdef support insertSecretTo

* add test
2021-07-04 21:40:43 +08:00
Yue Wang
9adf269869 support helm repo secret (#1872)
Signed-off-by: roywang <seiwy2010@gmail.com>
2021-07-04 21:39:48 +08:00
Hongchao Deng
227052f51e Merge pull request #1870 from wonderflow/workflow
improve workflow docs and update API for flexible
2021-07-02 07:45:36 -07:00
天元
facd56fd4f improve workflow docs and update workflow API 2021-07-02 18:06:37 +08:00
yangsoon
c53cebef0a add Fluxcd addon (#1863)
* add fluxcd addon

* fix apiserver
2021-07-02 17:34:02 +08:00
wyike
6d446e13f6 add revision listmit (#1871) 2021-07-02 16:05:00 +08:00
wangyuan249
fc5043c543 add vela robot for issue triage (#1840) 2021-07-02 15:14:51 +08:00
Jianbo Sun
bd41d49311 allow component to defer insert secret and config (#1869) 2021-07-02 15:09:45 +08:00
wyike
4eb33e9239 split out oam-spec v0.2 charts (#1842)
* WIP disable oam related controller and webhok

change velue

fix spell error

change namespace

add e2e for oam-runtime

fix charts hack

fix e2e definition namespace

fix diasble contains list

fix e2e-test

* disable components handler

* fix flaky ac test

add every definition in oam-runtime-system namespace

* upload ac e2e-test

replace files

fix upload reports

* more wait time
2021-07-01 16:32:01 +08:00
Jianbo Sun
75bbd63f9e delete vela restful API (#1864) 2021-07-01 10:16:01 +08:00
whichxjy
be0563a8ea Add deploymentController struct (#1845)
* Init deployment controller

* Support deployment-claiming

* Nitpicking

* Support deployment-scaling

* Support deployment-releasing

* Handle scale errors

* Fix lint

* Log target size

* Fix texts
2021-06-30 21:11:11 +08:00
wyike
9c70edeb77 delet rollout (#1856) 2021-06-30 17:45:32 +08:00
yangsoon
aec9913557 fix invalid metadata.labels error when specify the version of the trait in the app (#1855)
* fix trait name

* add test
2021-06-29 15:53:57 +08:00
chival
22d014d91a Align vela cli and kubectl vela client tools (#1827)
* allow vela CLI to specify NS

* vela up support application yaml

* fix

* add default cap center to vela CLI

* add alias for `vela components`(`vela comp`,or `vela component`) and `vela traits`(`vela trait`)

* fix cap ls STATUS fields are always "uninstalled"

* fix vela up process

* Revert "allow vela CLI to specify NS"

This reverts commit 33f27362

will refactor to use Initializer

* add --discover for vela CLI

* * rfc capcenter to reuse registry type
* change default cap center to oss

* judge if application file in advance

* fix CI

* try CI

* fix error check
2021-06-29 15:52:43 +08:00
chival
2b4d12fbdd Machanism for filter annotation&label passed from Application to workload and trait (#1843)
* Add two filter

* only filter in app->ac and ac->other

* move filter logic to assemble phase

* simplify, add indication

* simplify trim

* add unit test

* clean up testdata
2021-06-28 15:12:03 +08:00
veraicon
b2adf5b472 Create a guide of test level maintainance (#1852)
* Create testcode-guidance.md

* Update contribute/testcode-guidance.md

* Update testcode-guidance.md

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-06-28 15:07:16 +08:00
Anycodes
88933d07d6 Update README.md (#1850) 2021-06-28 13:52:38 +08:00
yangsoon
e176fcfc56 Add the basic ability to initialize a single-cluster environment for the initializer (#1829)
* init Initializer

* update spec

* add status check

* add e2e-test

* fix Initializer version
2021-06-25 18:54:26 +08:00
wyike
93234e8290 fix flaky test (#1841) 2021-06-25 10:32:47 +08:00
Chwetion
b582ccc060 add application component name duplication check in webhook (#1811)
* add application component name duplication check in webhook

* Helm test will not clean up the test data, and the application test of the component with the same name created failed during e2e.

* fix the problems encountered during the test:

* ignore the parsing failure caused by the existing application without definition when checking;

* after the addition is successful, the resources left by the helm test are automatically cleaned up;

Co-authored-by: chwetion <chwetion@foxmail.com>
2021-06-24 16:47:17 +08:00
Yue Wang
5a778b4732 add API v1beta1.ComponentManifest (#1814)
rfc appfile pkg: remove appConfig&component

fix unit test

rfc vela cli dryrun & livediff

fix unit test & e2e test

rfc app controller: remove appConfig&component

fix unit test & e2e test

fix rollout and webhook

fix use AppRevision as others' owner

move ComponentManifest to oam.types

add a util to make conversion between AppConfig and ComponentManifest

complete Component revision mechanism in app controller

add test for component revision

rename

fix unit tests

add clean up for component revision

fix unit test

Signed-off-by: roywang <seiwy2010@gmail.com>
2021-06-24 15:06:58 +08:00
Scaat Feng
8bc63a431f Fix incorrect pod disruptive annotation traits (#1838)
* [FIX]incorrect pod-disruptive defalut configuration in label of traits

* [FIX]incorrect pod-disruptive defalut configuration in annotation of traits

* [FIX]incorrect pod-disruptive defalut configuration in annotation of traits
2021-06-23 19:17:12 +08:00
Scaat Feng
4b120546f0 [FIX]incorrect pod-disruptive defalut configuration in sidecar of traits (#1839) 2021-06-23 18:02:05 +08:00
Scaat Feng
94bc87d03e [FIX]incorrect pod-disruptive defalut configuration in label of traits (#1837) 2021-06-23 18:01:37 +08:00
whichxjy
20ceca4c99 Rename deployment-rollout-controller constructor (#1800)
* Rename deployment-rollout-controller constructor

* Polish test descriptions
2021-06-23 14:03:40 +08:00
Lei Zhang (Harry)
e07c95fa26 Update arch pic (#1828) 2021-06-22 17:38:36 +08:00
Hongchao Deng
c1b5203009 Merge pull request #1824 from wonderflow/prt
add PULL_REQUEST_TEMPLATE.md
2021-06-21 23:11:44 -07:00
wyike
4040c8e67c fix rt flaky test (#1825) 2021-06-22 12:13:35 +08:00
Zheng Xi Zhou
d2a2a9ac07 Bump k8s.io/client-go to v0.18.12 (#1826)
Due to the vulnerability of CVE-2019-11250, bumping version of
client-go to fix it.
2021-06-22 10:59:25 +08:00
天元
5cb5491bc8 add PULL_REQUEST_TEMPLATE.md 2021-06-21 17:12:22 +08:00
chival
f94cf51543 fix some yaml in registry and link to file (#1823)
* fix some yaml in registry and link to file

* try e2e
2021-06-21 14:53:41 +08:00
yangsoon
61d7aff01c fix release website (#1819) 2021-06-19 14:01:01 +08:00
yangsoon
e217e9e0df add autoGenWorkloadDefinition option (#1804)
add autoGenWorkloadDefinition option to choose whether to create workloaddef via webhook
2021-06-18 23:40:12 +08:00
Hongchao Deng
5b332c24d8 add initializer design (#1794)
* add environment design

* update

* update

* update

* add environment impl plan

* rename env -> initializer

* add finalizer logic

* update
2021-06-18 19:11:07 +08:00
wyike
b752511e74 skip finalizer validation (#1815)
add some time to check cloneset replicas

fix flaky test
2021-06-18 14:36:40 +08:00
wyike
70eeec4c89 support restart scale operation by modify targetSize of AppRollout (#1812)
* WIP first commit

fix

* more wait time

* fix flaky test
2021-06-17 22:30:07 +08:00
wyike
d7e1d90585 add specify for rollout and add scale demo (#1813)
fix-formate

fix small issue

small fix

samll fix

small fix
2021-06-17 16:14:44 +08:00
cuiyeshuai
003ab91f51 fix several typos (#1808) 2021-06-16 21:02:37 +08:00
Jianbo Sun
046376aa1a refine our contributing guides (#1807)
* refine our contribute guides

* Update CONTRIBUTING.md

Co-authored-by: Hongchao Deng <hongchaodeng1@gmail.com>

Co-authored-by: Hongchao Deng <hongchaodeng1@gmail.com>
2021-06-16 20:56:19 +08:00
wyike
649e0376cc fix status completed bug (#1802)
refactor to helper and add unit-test

neat imports
2021-06-16 17:24:18 +08:00
Mason Kwok
ed4844d518 remove implementation of vela install (#1798) 2021-06-16 10:03:20 +08:00
wyike
8970c95875 fix missed logic (#1799) 2021-06-15 18:52:37 +08:00
wyike
72bdb04f94 fix deployment example (#1797) 2021-06-15 16:27:39 +08:00
Hongchao Deng
e5c8f259f3 app controller: reconcile workflow and create res configmap (#1788) 2021-06-15 13:40:12 +08:00
Kinso
e494516593 fix(openapi): only parse the parameter field (#1790)
Co-authored-by: kinsolee <lijingzhao@forchange.tech>
2021-06-15 13:36:23 +08:00
whichxjy
9972911510 Fix a typo (#1793) 2021-06-15 11:44:47 +08:00
Yue Wang
fbb0cddb30 fix flaky e2e test (#1791)
Signed-off-by: Yue Wang <seiwy2010@gmail.com>
2021-06-13 15:20:01 +08:00
Yue Wang
889e38e984 remove appContext from app/appRollout controller (#1774)
* refine  assemble and dispatch

Signed-off-by: roy wang <seiwy2010@gmail.com>

* remove app context in app controller

modify clean up app revision

remove old resource tracker related logic

fix unit tests

Signed-off-by: roy wang <seiwy2010@gmail.com>

* fix e2e-test

- get rid of appCtx in test cases
- fix test cases according other logic changes in app controller

remove whole appcontext_test.go file

disable rollout related e2e test provisionally

disable resource tracker related e2e test provisionally

Signed-off-by: roy wang <seiwy2010@gmail.com>

* add finalizer logic for app controller

Signed-off-by: roywang <seiwy2010@gmail.com>

* add new apply option MustBeControllableByAny

make dispatch idempotent

Signed-off-by: roywang <seiwy2010@gmail.com>

* refactor rollout

* fix rollout finalize succeed

Signed-off-by: roywang <seiwy2010@gmail.com>

* add update trait and gc test

fix lint

* fix flaky e2e test

Signed-off-by: roywang <seiwy2010@gmail.com>

* fix comment

* fix comments and add sourceRevision dispatch

delete useless

Signed-off-by: Yue Wang <seiwy2010@gmail.com>

* fix app finalizer backward compatible

Signed-off-by: roywang <seiwy2010@gmail.com>

* fix backward compatability for deprecation of appContext

add unit test for apply option

add e2e test

Signed-off-by: Yue Wang <seiwy2010@gmail.com>

* fix app controller unit test

Signed-off-by: Yue Wang <seiwy2010@gmail.com>

* refine app controller apply logic

Signed-off-by: Yue Wang <seiwy2010@gmail.com>

* fix e2e test of resource tracker

fix e2e test of rollout plan

fix flaky e2e tests

Signed-off-by: Yue Wang <seiwy2010@gmail.com>

* refine comments and remove useless codes

Signed-off-by: Yue Wang <seiwy2010@gmail.com>

* disable appCtx controller

add Component handler into app controller

Signed-off-by: Yue Wang <seiwy2010@gmail.com>

Co-authored-by: wangyike <wangyike.wyk@alibaba-inc.com>
2021-06-12 14:46:32 +08:00
Zheng Xi Zhou
9de6aea5ab Split workflow to enable re-run single jobs (#1782)
* Split workflow to enable re-run single jobs

Fix #1781

* rename workflow name
2021-06-10 15:27:20 +08:00
wangyuan249
f4cbe1b98b Add ignore feature for cue parameter (#1756)
* add ignore feature for cue parameter

* add test

* fix diff

* fix test

* fix test 2

* fix interact init
2021-06-10 10:29:35 +08:00
yangsoon
2c9cf94817 add options (#1775)
1. add ConcurrentReconciles for setting the concurrent reconcile number of the controller
2. add DependCheckWait for setting the time to wait for ApplicationConfiguration's dependent-resource ready
2021-06-08 10:38:30 +08:00
Jianbo Sun
54a828863b remove restful API docs from website (#1771) 2021-06-07 19:25:26 +08:00
Kinso
f4f72708a5 fix(log): debug level flag (#1768)
Co-authored-by: kinsolee <lijingzhao@forchange.tech>
2021-06-07 15:22:42 +08:00
yangsoon
b224230b9c Add Logging Convention in CONTRIBUTING.md (#1762)
* add logging convention in contributing

* fix log
2021-06-07 12:02:54 +08:00
yangsoon
b6a6982a57 add test (#1761) 2021-06-04 19:05:59 +08:00
yangsoon
570eaf6077 improve log system in appconfig (#1758) 2021-06-04 17:40:02 +08:00
Yue Wang
5a6feb3a19 don't use appRevision as resource tracker's owner (#1759)
Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-06-04 14:46:10 +08:00
chival
d42e0e3162 Add more optional paramters to built-in component (#1748)
* add probe to worker and webservice, add memory limit to webservice

* add interacitve answer

* make generate

* move Probe def outside the parameter.

* make all PodSpec alternative param done

* add doc, gen yaml

* fix docs
2021-06-03 19:13:43 +08:00
Yue Wang
72ba2162e9 implement dispatch pkg (#1741)
add unit test

add log

Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-06-03 19:01:49 +08:00
Yue Wang
c7e46e49ca fix flaxy e2e-test (#1752)
Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-06-03 15:31:18 +08:00
Scaat Feng
aafd4fdd2f [IMP]easy for users to copy command (#1661)
Co-authored-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
2021-06-03 15:30:50 +08:00
Hongchao Deng
c463b147a1 add PolicyDefinition and WorkflowStepDefinition controller (#1751) 2021-06-03 13:21:32 +08:00
yangsoon
447ab4a35a Improve the logging system (#1735)
* change to klog/v2

* add logfilepath opt in helm chart

* replace klog.InfoF with klog.InfoS and improve messages

Remove string formatting from log message, improve messages in klog.InfoS and use lowerCamelCase to fmt Name arguments in klog.InfoS

* fix klog.Error

for expected errors (errors that can happen during routine operations) use klog.InfoS and pass error in err key instead.

* use klog.KObj and klog.KRef for Kubernetes objects

ensure that kubernetes objects references are consistent within the codebase

* enable set logdebug level

* add log-file-max-size
2021-06-03 12:07:30 +08:00
Zheng Xi Zhou
8dcbb61cb8 Generate OpenAPI JSON schema for Terraform Component (#1738)
Fix #1736
2021-06-03 11:23:20 +08:00
Hongchao Deng
75d35ecdf8 Merge pull request #1750 from hongchaodeng/workflow
add workflow package
2021-06-02 09:52:07 -07:00
Hongchao Deng
fd13fb4441 add const CondStatusTrue 2021-06-02 08:58:59 -07:00
Zheng Xi Zhou
dd682919a8 Fix wrong cue directory (#1749)
Fixed the wrong directory of cue files when formating
2021-06-02 22:37:39 +08:00
Hongchao Deng
b93460cbb4 add workflow package 2021-06-02 07:34:54 -07:00
chival
f4feb1af9c Add oss registry support (#1715)
* Add oss registry support

* fix test

* refactor and clean up URL parse logic

* add:design docs

* change default registry to oss
2021-06-02 18:32:54 +08:00
Lian Bai
6dab3fb985 fix the fmt command of the makefile (#1745) 2021-06-02 18:31:44 +08:00
wangyuan249
fb23e0ebd2 fix show annotations (#1711)
* fix show annotations

* only fix map value
2021-06-02 17:27:28 +08:00
Jian.Li
4f47bec238 refactor cue related packages in vela (#1734)
* refactor-cue

* import group

* readme

* fmt
2021-06-02 15:37:06 +08:00
chival
8c864f33b9 organize registry directory (#1733)
* organize registry directory

* fix cue not found

* install cue

* move definitions to and to-be-generated cue&yaml to root directory

* fix publish registry dir

* fix duplication of cue install

* try again

* try again
2021-06-02 13:34:01 +08:00
Yue Wang
21fe5fab9e realted to refactor application (#1712)
implement app/assemble pkg

add unit test

add log

Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-06-01 16:34:25 +08:00
yangsoon
931ca3ea3e fix bug: When the Component contains multiple traits of the same type, the status of the trait in the Application is reported incorrectly (#1731)
* fix status

* add test

* fix webhook

* add paramter context for customStatus
2021-05-31 18:44:15 +08:00
Hongchao Deng
fa8b3ef763 refactor appfile pkg for adding workflow (#1732) 2021-05-30 22:57:03 +08:00
Hongchao Deng
4c7c954357 Merge pull request #1723 from hongchaodeng/wf2
update APIs and docs for workflow design
2021-05-29 05:44:24 -07:00
chival
a52367eced arrange docs for kubectl plugin,fix #1721 (#1729)
* arrange docs for kubectl plugin,fix #1721

* remove redundant install doc
2021-05-29 16:40:28 +08:00
Emanuel Russo
fd9e99f19f Fix Documentation for Terraform Controller (#1724)
* Update terraform.md

Update Documentation. Fix Terraform controller version to avoid mistake.

* Update terraform.md

Change version to the latest one.

* Update terraform.md

Rollback modification on example.
2021-05-29 11:52:39 +08:00
Hongchao Deng
9a10e967ee update APIs and docs for workflow design 2021-05-28 20:44:50 -04:00
Zheng Xi Zhou
181bcda66a Sync definitions to oss bucket, which acts as a capability center (#1720)
* Sync definitions to oss bucket, which acts as a capability center

Fix #1702

* address comments
2021-05-28 15:51:48 +08:00
wangyuan249
0753734372 vela show support show the parameters of KUBE model ComponentDefinition (#1693)
* vela show support show the paramters of KUBE model ComponentDefinition

* fix

* fix

fix

* enchance test case and add function in show -web

fmt and vet

fix

fix522

* add resolve for kubedef type trait in  reconcil process

* fix StoreOpenAPISchema args para and ret para

* fix GetCapabilityObject uncover
2021-05-26 21:16:40 +08:00
沧海
8380e66b1e add chart debug value (#1714)
* add chart debug value

* add chart debug value
2021-05-26 19:25:21 +08:00
chival
de9b06e716 optimize goimports (#1716) 2021-05-26 18:41:50 +08:00
Jianbo Sun
abfb2ae6ef fix roadmap docs (#1710) 2021-05-26 15:07:55 +08:00
chival
0c7706d442 show&install caps in default center (#1621)
* add:show & install caps in default center and docs

other things:
* fix #1601 (.md) error
* adjust clean-md.py
* refactor capability install part to reuse code

* fix typo/bug, make get retrieve single file

* try again

* add:registry interface

* add local registry

* modify e2e test

* add copyright

* add unittest, fix docs

* add copyright

* fix e2e test

* clean up testdata

* clean up usage of fmt, rename

* fix docs, rename func

* fix docs
2021-05-25 17:22:02 +08:00
白联
30662d632b Support patch data-pass object in CUE (#1704)
* Support patch data-pass object in CUE

* Add some unit tests
2021-05-25 11:20:09 +08:00
Jianbo Sun
cd93196aef update roadmap for 2021-6 and 2021-9 (#1707)
* update roadmap for 2021-6 and 2021-9

* update roadmap and minor changes
2021-05-25 10:22:12 +08:00
yangsoon
fed40a1060 fix webhook: set a default workload.type for componentdefinition which doesn't refer to a workload (#1686)
* fix webhook

* fix controller

* fix error message
2021-05-24 23:32:02 +08:00
wyike
76744ad26e fix cloneset rollout docs (#1660) 2021-05-24 17:23:02 +08:00
Jianbo Sun
c93db6494a use custom domain for vela charts (#1701) 2021-05-24 16:30:09 +08:00
Zheng Xi Zhou
27c1eda2a6 Add service-binding trait to chart (#1692)
* Add service-binding trait to chart

Also add docs for the trait.

* Update charts/vela-core/templates/defwithtemplate/service-binding.yaml

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>

* address comments

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-05-24 00:41:21 +08:00
yangsoon
59a8765aa1 refactor the way of get OpenAPISchema in trait/component definition controller (#1691)
* refactor trait/componet definition controller

* fix test
2021-05-23 14:16:06 +08:00
yangsoon
845ce1bbf4 fix clean-md (#1700) 2021-05-23 14:08:41 +08:00
Yue Wang
ef1cd50a1a fix flaky e2e test (#1698)
Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-05-22 16:03:22 +08:00
Jianbo Sun
b124873fd7 fix docs link (#1695) 2021-05-20 19:52:31 +08:00
Yue Wang
0556f03f28 fix traitDef appliesToWorkloads (#1667)
update docs

Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-05-20 19:06:38 +08:00
yangsoon
7929f9fe09 fix store openapi (#1689) 2021-05-19 20:08:51 +08:00
Lei Zhang (Harry)
f73236a617 Minor fix on wording (#1687) 2021-05-19 20:06:59 +08:00
wangyuan249
98a31f68ae Add new label for configmap which store the parameter json schema of the Definition (#1652)
* fix

* add description for newlabel

fix

* fix description
2021-05-18 21:10:47 +08:00
chival
aa720f3c67 Add expose (#1678)
* add expose.cue

* add expose.yaml

* add usage comment

* gen yaml

* fix issue

Co-authored-by: qiaozp <qiaozp@B-MAA4ML7H-2021.local>
2021-05-18 18:45:25 +08:00
yangsoon
512a87466e update docker image (#1677) 2021-05-18 17:23:46 +08:00
名白
cc8bf15962 add kubebuilder prerequisites in contributing.md (#1675)
Co-authored-by: liushengjie9506 <liushengjie9506@ipalfish.com>
2021-05-18 15:45:27 +08:00
yangsoon
d3fcbf4d45 fix bug: remove unneeded workload definitions (#1656)
* fix controller

* fix test
2021-05-17 22:47:57 +08:00
yangsoon
8f67454396 Explain vela next (#1671)
* Explain vela next

* fix def

Co-authored-by: Lei Zhang <resouer@gmail.com>
2021-05-17 22:42:29 +08:00
yangsoon
2fa02bc1c0 Preview and Build website in docker container (#1668)
* start/build docs in docker

* restore old fashion

* fix release ci
2021-05-17 19:09:37 +08:00
Hongchao Deng
e63ec032b2 Merge pull request #1624 from hongchaodeng/api
api: add policy and workflow
2021-05-16 20:52:34 -07:00
Hongchao Deng
ef021c5d2d api: add policy and workflow 2021-05-16 23:07:05 -04:00
yangsoon
a11ae2f95d Add Dynamic Admission Control for ComponentDefinition (#1648)
* add webhook

* add test

* fix package discover
2021-05-15 11:43:33 +08:00
Hongchao Deng
87ff9c9f84 design: Application-Level Policies and Customized Control-Logic Workflow (#1642)
* design: Application-Level Policies and Customized Control-Logic Workflow

* update

* use condition
2021-05-15 11:35:43 +08:00
Yue Wang
d2f471df3f make ResourceTracker to own cluster-scope resource (#1634)
add e2e tests and unit tests

Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-05-15 11:34:33 +08:00
Yue Wang
80b2c3713b fix staticcheck lint (#1657)
make CI work consistently with Makefile/staticcheck

Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-05-14 18:49:07 +08:00
Scaat Feng
37d9adbc6c [IMP]easy for users to copy (#1655) 2021-05-14 14:51:31 +08:00
Zheng Xi Zhou
b4ae473dae Fix Terraform application status issue (#1611)
* Fix Terraform application status issue

Fix #1599

* add unit tests

* fix import issue
2021-05-13 21:46:45 +08:00
yangsoon
4ef8cb3f12 fix bug: Use stricter syntax check for CUE (#1643)
* fix cue render

* fix e2e-api-test

* add test
2021-05-13 21:44:08 +08:00
Lei Zhang (Harry)
138676315f Update introduction (#1651) 2021-05-13 21:43:18 +08:00
Lei Zhang (Harry)
9772907d66 update the revision doc (#1650) 2021-05-13 10:25:09 +08:00
Jianbo Sun
884648a010 Create SECURITY.md (#1649) 2021-05-13 10:03:26 +08:00
Wei (段少)
eefc8c13ce Add Security Reporting (#1647)
* Add Security Reporting

* Update README.md

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-05-12 21:38:39 +08:00
wyike
0a4c20c999 fix empty rolloutBatch will panic whole controller bug (#1646)
* add webhook for app and avoid controller panic

neat imports

* add test for rollout verify
2021-05-12 19:00:55 +08:00
Jian.Li
58b3fffa36 Implement retainKeys patchStrategy in CUE based patch trait (#1627)
* strategyPatch retainKeys

* merge rewrite

* rewrite strategyPatch

* Improve test coverage

* upgrade docs

* Update docs/en/platform-engineers/cue/patch-trait.md

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-05-12 15:28:36 +08:00
yangsoon
c4cb69120e fix docs (#1636) 2021-05-12 13:43:15 +08:00
wangyuan249
ba8c6c020a upgrade Go version to 1.16 latest (#1577)
* bump go version to 1.16

* fix gox

* fix

* fix

* del sleep

* del

* gosum fix conflict 0511

* rm stop fix

Co-authored-by: Hongchao Deng <hongchaodeng1@gmail.com>
2021-05-11 21:27:33 +08:00
wyike
83c9c17cc7 fix application rollout annotation false issue (#1633)
* fix annotation false issue

neat imports

* rewrite judge logic

* add webhook

* add webhook verify annotation

* fix test

fix bug

* modify error message
2021-05-11 19:12:25 +08:00
chival
2a5573015e update cap center example (#1630) 2021-05-10 18:51:54 +08:00
wyike
4b897baae8 add app embed rollout pause test (#1626)
* add pause test

* verify update plan shouldn't generate new revision

fix error test
2021-05-10 18:49:26 +08:00
Zheng Xi Zhou
f137a9adf3 Update samples for "vela show xxx --web" (#1616)
* Update samples for "vela show xxx --web"

Also stop generating components/traits docs under
docs/en/end-user and remove the command from Makefile

Fix #1602

* fix doc build issue

* Update references/plugins/references.go

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>

* Enhance --web feature for "vela show"

- Find the capability in "vela-system" if notfound in the current ns
- Don't depend on local capabilities

* add ut for GetCapabilityByName in references/plugins/cluster.go

* add ut for GetNamespacedCapabilitiesFromCluster in references/plugins/cluster.go

* add ut for GenerateTerraformCapabilityProperties in references/plugins/references.go

* fix import issue

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-05-09 08:50:31 +08:00
wyike
d90e78af97 fix error test and add middle state test (#1622) 2021-05-08 21:00:50 +08:00
yangsoon
1866753769 Enable Dynamic Admission Control for Application (#1619)
* add webhook

* fix test

* fix validating_handler
2021-05-08 21:00:33 +08:00
yangsoon
1660930ed3 applicaiton supports specifying different versions of Definition (#1597)
* app support specify the version of definition

* add e2e-test

* add docs

* add helm related test

* fix doc

* add more test

* fix docs
2021-05-07 17:52:44 +08:00
Zheng Xi Zhou
5cc92e5420 Rename file name for trait "cpusclaer" and "scaler" (#1617)
As the file name (.cue/.yaml) of trait "cpusclaer" and "scaler"
are "cpuhpa" and "manaualscale" respectively, renmae them in
order to avoid confustions
2021-05-07 17:33:37 +08:00
woshicai
18bf1189a3 check yarn docusaurus (#1604)
Co-authored-by: kubevela-bot <kubevela.bot@aliyun.com>
2021-05-07 14:24:29 +08:00
Zheng Xi Zhou
c9d21e6707 Renaming the name of function "SyncDefinitionToLocal" (#1607)
As we don't need to sync the defintiion .yaml and .cue to local and
then extract it, besides, there is a simliar function "SyncDefinitionsToLocal"
just besides it, rename function "SyncDefinitionToLocal" in order
not to cause confustions
2021-05-07 10:40:42 +08:00
yangsoon
1f73020c4d fix ci (#1610) 2021-05-07 10:39:30 +08:00
chival
1e08b3a037 update cap center example (#1612) 2021-05-06 22:49:59 +08:00
Zheng Xi Zhou
5d22e868eb Fix unstability of ApplicationContext UT (#1609)
* Fix unstablity of ApplicationContext UT

* fix import order

* fix compatibility issue
2021-05-06 22:48:19 +08:00
Lei Zhang (Harry)
ee69d761f9 Merge pull request #1601 from resouer/doc
Fix docs
2021-05-04 12:00:29 -07:00
Lei Zhang
2ca7ce5c8b Fix docs 2021-05-04 11:28:11 -07:00
Zheng Xi Zhou
675b0e24db Refine Terraform doc (#1590)
Added applying Terraform Provider introduction, and removed `.md`
to make it work in official site
2021-04-30 19:33:55 +08:00
wyike
7ed1c66578 fix appRollout docs small issue (#1592)
* fix docs targetSize

* add comment

* delete comment
2021-04-30 19:33:30 +08:00
Jianbo Sun
5079659404 fix sync website shell (#1591) 2021-04-30 18:23:17 +08:00
Zheng Xi Zhou
b3302b318c Support server-side Terraform as cloud resource provider (#1519)
* Support server-side Terraform as cloud resource provider

Provide another schematic `Terraform` to provision cloud
resource.

Fix #698

* make namespace optional
add unit-tests

* support vela show to generate componentdefinition usage

* add unit-tests

* tidy go mod

* clean go mod and updated go sum

* Remove `variable` from `properties` of Terraform compoent

* don't literally set component catagory

* refine error message when a capability could not be found

* fix ut

* Code refactor and add unittests

* fix ci issues

* Update references/plugins/references.go

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>

* add test cases

* fix ci issue

* revert lowercase of "Properties"

* fix ci issue

* add ut for appfile

* fix e2e issue

* add docs

* fix official site build

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-04-30 16:28:00 +08:00
wangyuan249
e1dfe40794 Resolve the problem : When updating the kubevela.io website , the version field in config file do not match. (#1587)
* fix webversion

* fix webversion

Co-authored-by: kubevela-bot <kubevela.bot@aliyun.com>
2021-04-30 16:13:59 +08:00
Zheng Xi Zhou
0571ae3a54 Add unittests for ApplicationContext (#1586)
* Add unittests for ApplicationContext

* fix compatibility-test issue
2021-04-30 15:32:05 +08:00
wyike
29744a6f18 [Feature] embed rollout in an application (#1568)
* WIP refactor rollout reconcile

add construct func for reconcile

refactor application  event

WIP fix failed test

fix event reason

delete useless yaml

fix samll issue

add more test

fix more test

add e2e test and extract rollout plan from appRevision

extract inline appRollout status from appStatus

* fix-plugin-test

* debug e2e

* fix comments and rename app-embed-test

* delete empty line

* fix docs

* update rollout docs

fix appRollout docs

* update docs and delete useless debug info

* fix deployment plugin bug and algin with rollout related workload to deployment

* fix docs comment

* rename package crossplane-runtime v1alpha2

* copy from https://github.com/wangyikewxgm/kubevela/pull/1

* fix some comments issue and add todo

* fix error test
2021-04-30 15:17:43 +08:00
Jianbo Sun
fbd4565115 use accelerate domain for global users (#1585) 2021-04-29 21:10:22 -07:00
yangsoon
3543cb9b23 fix controller: fix controller cannot start due to the format error of the third-party CRD (#1584)
* fix controller

* add cue parse error
2021-04-29 20:09:27 +08:00
chival
1d731b808a add pr code coverage requirement: (#1583)
* relative cov >= 70%
* total cov drop <=1%
2021-04-29 11:58:14 +08:00
guoxudong
bba6e056a5 Add krew auto release and docs (#1582)
* add krew auto release and docs

* fix
2021-04-29 11:16:05 +08:00
Zheng Xi Zhou
7787fe8e6a Fix "nil pointer" issue in UT (#1579)
When "metav1.Time" type "DeletionTimestamp" variable is nil, it cloud
not be printed while "fmt.Printf("%+v")"

Fix #1578
2021-04-28 19:25:23 +08:00
chival
6a956f9343 calculate e2e-test into coverage (#1553) 2021-04-28 15:29:08 +08:00
白联
b76a3f3f42 Check whether parameter.cmd is nill for sidecar trait (#1575) 2021-04-28 14:48:25 +08:00
yangsoon
fd44069a21 fix unit-tests (#1569) 2021-04-27 14:02:10 +08:00
wyike
cd8f31c4d8 delete duplate key in webhook yaml (#1571) 2021-04-27 12:12:37 +08:00
wyike
f625877eb1 fix componentDefinition ignore error bug (#1567) 2021-04-26 19:20:04 +08:00
Yue Wang
396f244af1 add deployment scale controller (#1557)
add unit test

Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-04-26 10:12:11 +08:00
yangsoon
ed3e8d384a add DefinitionRevison and make Componet/TraitDefinition revisionable && fix legacy CRD (#1531)
* add definitionrevison type

* fix controller

* add test

* fix legacy

* fix unit-tests
2021-04-26 10:07:55 +08:00
wyike
5f34a0c658 delete useless yaml (#1565) 2021-04-25 19:45:38 +08:00
Lei Zhang (Harry)
c40108f413 Update arch (#1561) 2021-04-24 09:15:48 +08:00
yangsoon
63855abed9 fix cli: vela show support list the parameter of ComponentDefinition which use helm charts (#1543)
* vela show support helm

* show helm parameter in web

* add test

* support link jump

* add test
2021-04-23 16:50:44 +08:00
SataQiu
4dd00ac536 docs: remove the command prompt to support fast copy/paste (#1558)
Signed-off-by: SataQiu <1527062125@qq.com>
2021-04-23 11:49:38 +08:00
Lei Zhang (Harry)
55b6ef1846 Update concept doc (#1556) 2021-04-23 10:47:36 +08:00
Lei Zhang (Harry)
737b4dc2e4 Revise readme for better structure (#1554)
* Update pictures

* Revisit readme
2021-04-22 12:11:52 +08:00
wyike
60b8ec3ff2 Set scpoe reference in application status.Service (#1540)
* WIP add new type

* add code and test

* WIP finish docs

* add sidbar for docs
2021-04-22 12:11:04 +08:00
Zheng Xi Zhou
fed2d13d98 Redirect to Discussions if users want to open Question issue (#1550) 2021-04-22 10:59:07 +08:00
Lei Zhang (Harry)
85d6c77fad Update pictures (#1548) 2021-04-22 10:29:12 +08:00
Zheng Xi Zhou
a488a24af4 Enable "vela show" to support namespaced capability (#1521)
* Enable "vela show" to support namespaced capability

Provide option `-namespace`, if not set, the default namespace
is default. If not found, as by default, capabilities are located in
vela-system, it will continue to retrieve the capability in
vela-system directory.

Fix #1520

* add e2e tests

* Address comments: Revert env context back

Get namespace from env, instead of adding option "-namespace"

* fix unittest issue

* Address comments

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>

* fix e2e

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-04-21 19:33:23 +08:00
Lei Zhang (Harry)
00a4e4ca01 Align with doc site (#1545) 2021-04-21 15:49:10 +08:00
SeanLy
ef0888f256 [fix] improve k8s libs compatibility (#1542)
* [fix] improve k8s libs compatibility

* trigger tests
2021-04-21 15:29:49 +08:00
Jianbo Sun
0519c1ea8c add DingTalk group number in Readme (#1541) 2021-04-21 14:45:19 +08:00
Ryan Zhang
467506c498 Finalize deployment rollout (#1539)
* finalize deployment rollout

* refactor workload controllers to base on the same parent
2021-04-21 13:42:49 +08:00
Ryan Zhang
0ac7f02fc9 Continue to add rollout integration test (#1535)
* refine the workload controllers with test

* refine deployment rollout that supports rollback
2021-04-20 11:47:29 -07:00
Zheng Xi Zhou
662a791e71 Change "AWS OSS bucket" to "AWS S3 bucket" (#1538) 2021-04-20 21:31:06 +08:00
Herman Zhu
b726c5291f feat(app) add k8s event for Application (#1463)
add k8s event for Application

fixed #1424

Signed-off-by: zhuhuijun <zhuhuijunzhj@gmail.com>

fix

Signed-off-by: zhuhuijun <zhuhuijunzhj@gmail.com>
2021-04-20 12:05:36 +08:00
Mason Kwok
7377e17f8f remove applicationdeployments.core.oam.dev from the advanced-install.md (#1533) 2021-04-20 11:27:56 +08:00
Yue Wang
1867436174 fix cue tmpl of worker and ingress (#1532)
Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-04-19 16:02:12 +08:00
yangsoon
a3c97ecf31 add action: sync vela api code to the repo(kubevela-core-api) (#1523)
* add action sync-api

* add tag for repo
2021-04-19 13:40:47 +08:00
Jianbo Sun
ee7dac354d update github token (#1526) 2021-04-19 11:54:39 +08:00
Yue Wang
21c631ac26 add docs for volumes (#1524)
Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-04-19 11:36:32 +08:00
yangsoon
90f7d11787 fix image url (#1525) 2021-04-19 11:24:45 +08:00
Hongchao Deng
b1ad5574b8 Merge pull request #1514 from wonderflow/addvideo
add video from DevOps Toolkit
2021-04-17 08:31:28 -07:00
yangsoon
b9a56aeb17 fix url (#1517) 2021-04-16 23:23:45 +08:00
Zheng Xi Zhou
3800a700b0 Add parameters comments for crossplane definitions (#1515)
* Add parameters commetns for crossplane definitions

Added parameter comments for ComponentDefinition alibaba-oss
alibaba-rds and TraitDefinition service-binding

* add the result of vela show
2021-04-16 22:24:50 +08:00
Jianbo Sun
75f081f248 Add More End User Docs (#1511)
* update docs

* update docs

* refine cloud resource docs

* update install guidegst
2021-04-16 21:46:44 +08:00
天元
ba68e33e23 add video from DevOps Toolkit 2021-04-16 21:14:00 +08:00
yangsoon
fb6d505e6e fix kubectl vela -h (#1512) 2021-04-16 20:43:26 +08:00
yangsoon
1a267bc6d1 add end-user/sidecar (#1513) 2021-04-16 20:42:41 +08:00
Zheng Xi Zhou
8643558f6b Add cloud service docs for end-users (#1510)
* Add cloud service docs for end-users

Split cloud service into two section, one for platform engineers,
and the other for end-users

* correct titles

* adjust componentdefinition and traitdefinition order

* address comments
2021-04-16 18:13:54 +08:00
yangsoon
d063cd3b78 rm printcolumn AGE in crd (#1509) 2021-04-16 17:35:08 +08:00
yangsoon
c4fa81b703 add kubectl vela show in docs (#1508) 2021-04-16 17:27:05 +08:00
wyike
ebc8476a31 garbage collection mechanism for AppRevision (#1501)
* WIP refactor gc func

WIP write gc code

WIP update chart,cmd args

add cleanupRevison func into garbageCollection

add more test

finish unit-test

refactor use func implements

Complete e2e test

WIP rewrite some logic

add func test and rewirte context pointing to func

fix cilint

refactor some function

fix typo

fix ci error

change gc logic

after change gc number, fix all test

add check appRevision collection

WIP finish most code

* add rollout batch to fix rollout e2e-tet

* fix component name in rollout

* ignore gc error, just log the error
2021-04-16 16:46:41 +08:00
Zheng Xi Zhou
0333b9e891 Refactor template_test.go to make it readable (#1507)
Some tests are not named which make it difficult to
read test cases and add more
2021-04-16 15:39:05 +08:00
yangsoon
3be63bba91 add end-user/labels.md (#1505) 2021-04-16 13:58:42 +08:00
woshicai
f9f2c3b119 update: try to add workloadDefinitionRef to application status (#1471)
* add workloadDef in application status' services

* Update pkg/controller/core.oam.dev/v1alpha2/application/apply.go

* fix: go fmt

Co-authored-by: charles <charles.cai@sap.com>
Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-04-16 13:21:52 +08:00
xiqiu618
34684650c3 fix appContext update failed error (#1500)
* fix appContext update failed error

* Update pkg/controller/core.oam.dev/v1alpha2/applicationcontext/applicationcontext_controller.go

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>

* gofmt comments

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-04-16 13:05:09 +08:00
Ryan Zhang
e76992df87 randomize port to listen to separate tests (#1497)
* randomize the port

* make all tests sequential
2021-04-16 10:16:20 +08:00
yangsoon
3a68ec77fd fix CI: add action to release kubectl-vela binary file (#1503)
* add kubectl-vela release

* add docs
2021-04-15 22:54:31 +08:00
yangsoon
199e747865 Introduce vela as a kubectl plugin (#1485)
* add kubectl plugin

* add vela show

* add test
2021-04-15 18:25:46 +08:00
Jianbo Sun
c6b65cbd5b fix flaky test (#1498)
* fix flaky test

* fix flaky check apprevision created more than one

* remove unused annottaion
2021-04-15 18:25:17 +08:00
xiqiu618
9fa237721e add app name as label for AppRevision (#1488) 2021-04-15 15:41:53 +08:00
yangsoon
b90fffad43 fix action (#1496) 2021-04-15 10:06:29 +08:00
Lei Zhang (Harry)
1ad6dcc1a7 Modify doc title of keda trait (#1494) 2021-04-15 08:54:27 +08:00
yangsoon
1659528015 fix-resources-url (#1492) 2021-04-14 23:50:07 +08:00
Jianbo Sun
ce20f55382 add an overview for end user guide (#1469)
* add an overview for end user guide

end user guide

* add explore section

* finish scale section

* add expose section

* remove trait already contains as built-in feature

* try fix flaky test
2021-04-14 21:38:04 +08:00
Zheng Xi Zhou
384c5ab6a9 Remove trait-injector from controller options (#1490)
As trait injector isn't used, so removed it.
2021-04-14 18:54:02 +08:00
wyike
a7bfb2fb6f refactor appRevison extract func to utils (#1481)
* refactor appRevison extract func to utils

* add some corener case check

* add more checks
2021-04-14 15:48:23 +08:00
C.YAO
8703950da6 Fix helm install error when disable webhook patch (#1483) 2021-04-14 12:51:16 +08:00
Ryan Zhang
f7cfe6fbae improve cloneset integration test suite (#1482) 2021-04-14 12:29:28 +08:00
Shiwen Cheng
e8ed4d78cf Keep docker binary command due to the issue #416 (#1478) 2021-04-14 11:26:35 +08:00
Gallardot
0c8e22ef4d fix tiny typo (#1480)
Signed-off-by: Gallardot <tttick@163.com>
2021-04-14 10:56:33 +08:00
Lei Zhang (Harry)
e9004d7478 Fix introduction (#1479) 2021-04-14 10:55:31 +08:00
Serhat Şevki Dinçer
282efa2893 Create codeql-analysis.yml (#1470)
* Create codeql-analysis.yml

* rm schedule from codeql

* codeql: master & release branches only on push

* codeql: use release-* pattern

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-04-14 10:54:08 +08:00
yangsoon
580157df6a refactor vela cli (#1475) 2021-04-13 20:13:07 +08:00
yangsoon
6ecb0567f5 change email (#1477) 2021-04-13 20:11:41 +08:00
Yue Wang
dcf79a9b57 fix falky unit test (#1474)
Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-04-13 20:01:47 +08:00
Yue Wang
b411d79ed0 add webhook validation on CUE template outputs name (#1460)
add hooks for process.Context to do validation

add unit test

Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-04-13 19:18:15 +08:00
Lei Zhang (Harry)
d8eb7d687c Add user docs (#1472) 2021-04-13 15:20:39 +08:00
Yue Wang
63b348f4d8 implement cli vela system live-diff (#1419)
move dry-run and live-diff into an independent pkg

WIP add sample and doc

WIP unit test for live-diff

add unit test

Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-04-13 12:29:25 +08:00
Ryan Zhang
2e43a6dc78 make sure we don't create more pods (#1452) 2021-04-12 15:48:20 -07:00
Jianbo Sun
26163aacdc fix flaky test (#1467) 2021-04-12 16:51:06 +08:00
yangsoon
5164efeb4a add context.appRevisionNum (#1466) 2021-04-12 15:36:19 +08:00
wyike
2254777523 ignore error not found when deleting resourceTracker (#1462)
* ingore error not found when delete resourceTracker

* ignore error not found
2021-04-12 10:57:16 +08:00
LeoLiuYan
389722a94e Remove duplicated logic (#1465)
Signed-off-by: LeoLiuYan <929908264@qq.com>
2021-04-12 10:24:34 +08:00
Shiwen Cheng
4b86689d63 Update copyright year (#1464)
* Update copyright year to 2021 for The KubeVela Authors

* Update copyright year to 2021 for other project authors
2021-04-11 21:00:14 +08:00
Shiwen Cheng
2b07ec49d4 [Improvement-1457] Use kind cmd code to load docker image instead of local kind binary (#1458)
* [Improvement-1457] Use kind cmd code to load docker image instead of local kind binary

* [Improvement-1457] Update copyright year and kind repo declaration
2021-04-11 20:59:21 +08:00
Yue Wang
7edfbde2f5 skip applying helm-release if app spec not change (#1461)
Signed-off-by: roywang <seiwy2010@gmail.com>
2021-04-11 15:47:00 +08:00
Yue Wang
bc6a60dde2 add volumes definition in worker/webservice (#1459)
Signed-off-by: roywang <seiwy2010@gmail.com>
2021-04-11 14:18:48 +08:00
Lei Zhang (Harry)
1407fc5125 Update readme for 1.0 (#1453) 2021-04-11 14:11:03 +08:00
Yue Wang
2d6f2083db refactor pkg/appfile (#1447)
Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-04-11 14:10:16 +08:00
yangsoon
c619b7b290 fix bug which Component/TraitDefinition won't work when contains "_|_" in value (#1450) 2021-04-09 21:46:04 +08:00
wyike
bc6000f794 fix flaky appcontext e2e-test (#1449) 2021-04-09 21:42:17 +08:00
yangsoon
2e92a66fa5 fix data race (#1446) 2021-04-09 20:15:02 +08:00
Shiwen Cheng
e5a9be8de9 Improve makefile and dockerfile (#1445)
* Improve makefile and dockerfile

* Add entrypoint.sh to support entrypoint and debugging

* Add docker base image discussion issue #1448 in dockerfile
2021-04-09 20:12:57 +08:00
Jianbo Sun
5d40f121ea add release docs when have tag (#1444) 2021-04-09 16:50:59 +08:00
woshicai
58c3283411 update: run helm lint & test after e2e-setup (#1415)
Co-authored-by: charles <charles.cai@sap.com>
2021-04-09 14:13:59 +08:00
Ryan Zhang
6d65169449 fix webhooks and try to fix e2e (#1441)
* fix webhooks and try to fix e2e

* address comments
2021-04-09 13:27:16 +08:00
yangsoon
9bf6cc2659 update version (#1442) 2021-04-09 12:28:04 +08:00
Lei Zhang (Harry)
ecbb5f56ca Update doc (#1440) 2021-04-09 11:10:03 +08:00
yangsoon
7ede0746c1 add clean-image action (#1436) 2021-04-09 10:17:21 +08:00
Zheng Xi Zhou
e8e45dd7d3 Add unit-tests for ApplicationRollout related packages (#1413)
* Add unit-tests for ApplicationRollout related packages

Part I: pkg/controller/common/rollout

* Add more unittets

* add unit tests for cloneset controller

* fix test issue

* add more unit-tests for cloneset_controller and deployment_controller

* fix rebase issues
2021-04-08 14:08:48 -07:00
yangsoon
08a1dc5a22 Add package discover refresh when component/trait definition are registered (#1402)
* add discover refresh

* add test

* fix store openapi schema

* fix discovermapper
2021-04-08 20:35:21 +08:00
Jianbo Sun
d2a46322c0 Merge pull request #1434 from chengshiwen/add-short-name
Add short name for crds
2021-04-08 20:15:22 +08:00
chengshiwen
7d31d84ec3 Remove redundant and ambiguous short names 2021-04-08 19:49:28 +08:00
chengshiwen
f59341f667 Add short name for crds 2021-04-08 19:49:23 +08:00
Jian.Li
a446aab46b Fix Bug: strategyUnify not work with close call (#1430) 2021-04-08 18:41:04 +08:00
Shiming Zhang
f2de6de6f8 Remove useless code (#1433)
Signed-off-by: Shiming Zhang <wzshiming@foxmail.com>
2021-04-08 18:39:42 +08:00
guoxudong
0f23f6eb09 stop zh-CN docs sync (#1431)
Co-authored-by: guoxudong <guoxudong.dev@gmial.com>
2021-04-08 17:23:45 +08:00
Lei Zhang (Harry)
473164efbd Finalize the message (#1426) 2021-04-08 15:54:40 +08:00
yangsoon
7dec0afc16 vela-cli support use "vela system cue-packages" to list cue-package (#1417)
* support list cue-package

* add test kube package doc

* refine words

* fix workflow

* fix the docs

Co-authored-by: 天元 <jianbo.sjb@alibaba-inc.com>
2021-04-08 15:54:25 +08:00
Jianbo Sun
a44257e153 fix flaky test (#1427) 2021-04-08 14:34:36 +08:00
yangsoon
1261e2678f add podDisruptive to traitdefinition (#1192)
* add podDisruptive to traitdefinition

* fix docs & example

* fix diff and add docs

* use bool type for podDisruptive

Co-authored-by: 天元 <jianbo.sjb@alibaba-inc.com>
2021-04-08 13:39:03 +08:00
Ryan Zhang
325a4cdb0e Add a new cloneset scale controller (#1301)
* add scale implementation

* fine tune the logic and adjust e2e test

* fix tests and fine tune logic

* try to fix flaky verification

* allow zero size step

* fix scale down check
2021-04-07 11:14:46 -07:00
wyike
b33b6fbead garbage collection for cross-namespace workloads and traits in application layer (#1421)
* add logic for gc cross ns resources

WIP regenerate api and charts

rewrite handle resourceTracker logic

WIP add e2e test logic

add more e2e  test

* WIP refactor sevral funs name and add comments for code

* WIP add more corener case e2e test

* add unit test and fix bug

* WIP refactor handleResouceTracker  logic

* refactor func name aglin with others and add comments

* make generate to fix check-diff ci error

* change resourceTracker status as a subresource
2021-04-07 21:34:48 +08:00
Jian.Li
15b1bd2660 Fix the bug that the registered k8s built-in gvk does not exist (#1414)
* fix bug for method exist(gvk)

* check that all built-in k8s resource are registered
2021-04-07 13:06:19 +08:00
yangsoon
8c73ea5d8a fix keda.md (#1420) 2021-04-06 16:07:22 +08:00
Jian.Li
4b25ed4ba1 fix import inner package in the format of third party package path and split test cases (#1412)
* test third party path in cue

* fix typo

* fix pkg mount bug

Co-authored-by: 天元 <jianbo.sjb@alibaba-inc.com>
2021-04-02 13:04:52 +08:00
Jianbo Sun
f47ca0f4da remove no used ingress notes in charts (#1405)
* remove no used ingress notes in charts

* remove helm repo update
2021-04-02 10:58:07 +08:00
Herman Zhu
5b1b054cca refactor(workload) remove all the duplicate fields (#1410)
remove all the duplicate fields in parser above as template contains

fix #1388

Signed-off-by: zhuhuijun <zhuhuijunzhj@gmail.com>
2021-04-02 10:24:27 +08:00
Lei Zhang (Harry)
35376bd396 Reword readme for clearer message (#1408)
Rewording the readme
2021-04-02 09:41:23 +08:00
Lei Zhang (Harry)
06069d3580 Update docs to reflect app delivery idea (#1401) 2021-04-01 15:26:25 +08:00
yangsoon
43057161bf update contributing guide (#1398) 2021-04-01 13:54:56 +08:00
woshicai
50ded65805 Fix: update homebrew before install kubevela client (#1395)
Co-authored-by: charles <charles.cai@sap.com>
2021-04-01 12:45:40 +08:00
Stupig
1444376b0c newline is missing for BaseContextFile (#1396) 2021-04-01 12:07:27 +08:00
yangsoon
04486f89bb fix crd: add additional print column and short Name for CRD (#1377)
* add additional print column

* add shortname

* fix printcolumn & test
2021-04-01 11:51:43 +08:00
Zheng Xi Zhou
d6d19a7c5a Remove outputSecretName in cloud service provisoing and consuming (#1393)
Refer to the reason https://github.com/oam-dev/kubevela/issues/1128#issuecomment-811590631
2021-04-01 11:13:19 +08:00
Jianbo Sun
6b8875012d use shell instead action to sync website && don't sync index.js and config.js (#1386)
* use shell instead action to sync website && don't sync index.js and config.js

* update test website build

* use bash instead sh
2021-04-01 10:06:34 +08:00
joelhy
7ae6a148a0 Fix grammar error: changed "an success story" to "a success story" (#1385) 2021-03-31 23:33:00 +08:00
Jianbo Sun
bbea29c8e5 fix kube-webhook-certgen to patch CRD conversation && remove cert-manager in CI e2e test && remove issuer create from CLI env (#1267)
* remove cert-manager in CI e2e test and remove issuer create from CLI env

* update job patch image(https://github.com/wonderflow/kube-webhook-certgen)
2021-03-31 21:21:28 +08:00
Robin Brämer
6e6c4c76a6 fix docs typo (#1384) 2021-03-31 19:56:36 +08:00
wyike
1bf673c3c1 upgrade webhook configuration to v1 (#1383) 2021-03-31 19:56:09 +08:00
yangsoon
352fe1ba5b remove useless script & update install.mdx (#1382) 2021-03-31 18:40:34 +08:00
Yue Wang
3bdf7a044f fix generate schema for helm values (#1375)
Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-03-31 17:31:54 +08:00
yangsoon
3cb9fa79bf fix index.js (#1380) 2021-03-31 16:01:53 +08:00
wyike
20f6e0ab02 skip check cross ns resource owner, add tests (#1374) 2021-03-31 15:00:16 +08:00
Kinso
438ab96f95 fix: add "system-definition-namespace" flag to container args (#1371)
Co-authored-by: kinsolee <lijingzhao@forchange.tech>
2021-03-31 14:41:07 +08:00
yangsoon
b5bf7a4f62 fix siderbar (#1373) 2021-03-31 14:39:09 +08:00
Lei Zhang (Harry)
d473e41f20 Update readme and doc (#1376) 2021-03-31 14:38:46 +08:00
Jianbo Sun
96c1d0786a the application context should not own application object (#1370)
* the application context should not own application object

* add time for flaky test
2021-03-31 13:55:57 +08:00
yangsoon
f7196e10ca fix upgrade in install.mdx (#1364) 2021-03-30 21:37:48 +08:00
yangsoon
a2997a070d fix vela show (#1366) 2021-03-30 21:36:28 +08:00
Ryan Zhang
0629049e1f add initial finalizer and abandon support (#1362)
* add initial finalizer and abandon support

* fix lint
2021-03-30 02:04:38 -07:00
yangsoon
553b5d19eb add docs readme (#1359) 2021-03-30 16:37:46 +08:00
Jianbo Sun
07c8c23884 minor fix for docs (#1356)
* minor fix for docs

* minor fix for docs

* remove blog
2021-03-30 08:47:20 +08:00
Hongchao Deng
d5d0cd1878 Add AppRevision option in webservice template and refine website doc (#1355) 2021-03-30 07:22:35 +08:00
Hongchao Deng
1d315aa045 Merge pull request #1354 from wonderflow/fixowner
use ApplicationContext as the owner of all the resources if it controlled by Application
2021-03-29 09:56:24 -07:00
天元
74a95133b2 fix log 2021-03-30 00:39:18 +08:00
天元
78ed5cade0 minor fix 2021-03-30 00:24:10 +08:00
天元
72f533e5eb use AppContext as the ownerRef 2021-03-30 00:21:17 +08:00
天元
4918b5cee7 fix test 2021-03-29 23:48:51 +08:00
天元
0d8f656cdb fix some tests 2021-03-29 23:45:29 +08:00
天元
ffe08904f0 add a todo for fix by the ownerRef change 2021-03-29 23:31:52 +08:00
wyike
eb4efc960f add demo for app doc (#1349)
* add demo for app doc

* Update docs/en/application.md

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-03-29 23:25:43 +08:00
天元
4729c8af80 use Application as the owner if it exists 2021-03-29 23:10:59 +08:00
Hongchao Deng
2d95800618 Merge pull request #1352 from wonderflow/hongchaodeng-revlabel
add AppRevision label to cuetemplate
2021-03-29 05:26:52 -07:00
Jian.Li
567fc46642 fix unstable test case for crd package (#1341)
* check crd openapi exist

* space

* fmt

* remove space

* space

* remove space

* space

* test +1

* test +2

* test +3

* rebase master
2021-03-29 20:02:39 +08:00
天元
de798f3c8a add docs about revision and context 2021-03-29 20:01:58 +08:00
天元
b5cbc75734 add FinalizeAppRevision 2021-03-29 19:50:40 +08:00
天元
8ef3a37c50 :evert "add AppRevision label to cuetemplate"
This reverts commit 49f16274c9.
2021-03-29 19:46:56 +08:00
天元
05c0fb8f9a fix test 2021-03-29 19:45:29 +08:00
yangsoon
14caa9cb70 fix docs: change restful-api url refer to static resource (#1346)
* change restful-api refer to static resource

* fix vela-cli install cmd in windows
2021-03-29 18:46:12 +08:00
Zheng Xi Zhou
f58b68205b Add cloud service doc in official site (#1348) 2021-03-29 18:34:33 +08:00
Jianbo Sun
bba5de9a8c update TOC (#1347)
* update TOC

* Update docs/sidebars.js
2021-03-29 18:33:00 +08:00
yangsoon
f762a1279e add docs check (#1340) 2021-03-29 18:28:05 +08:00
天元
26b9db6322 Merge branch 'revlabel' of git://github.com/hongchaodeng/kubevela into hongchaodeng-revlabel 2021-03-29 17:35:36 +08:00
Zheng Xi Zhou
9e40b77b60 Support cloud resource provisiong and consuming (#1264)
* Support cloud resource provisioning and consuming (Crossplane)

Provided a way to store secret for cloud resource generated by
Crossplane and to consume the secret

Refer to #1128

* Separate cloud resource producer and consumer in two applications

* add unit test to check whether application can consume cloud resource secret

* update Cloud Resource doc

* Provisioning and consuming cloud resource in different applications v1 (one cloud resource)

* one component consumes two cloud resources

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-03-29 17:20:33 +08:00
guoxudong
14635b6f2d fix docs build (#1344)
Co-authored-by: guoxudong <guoxudong.dev@gmial.com>
2021-03-29 16:45:40 +08:00
yangsoon
ba78ea7f0e fix link & add upgrade step in installation (#1345) 2021-03-29 16:12:15 +08:00
Hongchao Deng
02976bea67 fix common labels 2021-03-29 01:35:40 -04:00
guoxudong
ce5f345fc4 fix (#1336)
Co-authored-by: guoxudong <guoxudong.dev@gmial.com>
2021-03-29 12:17:56 +08:00
yangsoon
284cd8aa72 fix docs (#1338) 2021-03-29 11:20:37 +08:00
Hongchao Deng
49f16274c9 add AppRevision label to cuetemplate 2021-03-28 22:21:29 -04:00
LeoLiuYan
c4cf704eea Fix revision hash compute (#1335)
Signed-off-by: LeoLiuYan <929908264@qq.com>
2021-03-29 10:02:55 +08:00
Hongchao Deng
66bcb612ef add appdeployment control logic (#1320)
* add appdeployment control logic

* fix check

* fix test

* add test

* comment
2021-03-28 18:18:47 -07:00
yangsoon
ea60117ba5 remove useless files (#1333) 2021-03-29 08:20:46 +08:00
Jianbo Sun
2dfc653ef0 add gitub action to sync docs to website (#1331)
* action for auto docs

* test

* fix

* merge action file

* update

* test

* update

* update

* update

* bump github action

* test

* bump action to 0.2.3

* add ignore file

* revert empty line

Co-authored-by: guoxudong <guoxudong.dev@gmail.com>
2021-03-28 18:29:28 +08:00
Jian.Li
cfabcee181 Import kube package(cue) by GroupVersion (#1309)
* package upgrade

* package import

* Classified by groupversion

* fix test cases

* add test cases

* check diff

* lint code

* fix test

* add pacakge reference

* VersionKind

* package upgrade

package import

Classified by groupversion

fix test cases

add test cases

check diff

lint code

fix test

add pacakge reference

VersionKind

fix ci
2021-03-28 18:08:31 +08:00
yangsoon
aa548ab3d4 fix action (#1332) 2021-03-28 17:18:21 +08:00
yangsoon
52c88ec6c5 Update docs for the format of the new website (#1330)
* update docs

* fix toc

* add zh-CN
2021-03-28 16:37:35 +08:00
yangsoon
c71b5a20b6 fix error links. (#1329) 2021-03-28 14:03:21 +08:00
yangsoon
c4512decf1 fix vela show (#1327) 2021-03-28 10:37:31 +08:00
wyike
4540270813 Support create resources (workloads/traits) in different namespace with application (#1197)
[WIP]create tracker if needed and update components

[WIP] add finalizer code and add logic for ac controller

[WIP] refactor handle  func to app handler

[WIP] support helm cross namespace

[WIP] rewrite application  controller logic

rebase master and solve conflict

WIP add base cross namespace workload and fix some bugs

add more e2e-test and fix some bugs

rebase master and resolve confilict

move resourceTracker to v1beta1

add v1beta1 to test scheme to  fix test

modify e2e test, change v1alpha2 application to v1beta1

delete resourceTracker crossplane catagory

add controller logic test

add unittest for finalizer related func

add more unit test

neet order import

walk around check-diff error

add docs

add some comments in AC controller

as review said modify some issues
2021-03-27 15:19:43 +08:00
Ryan Zhang
95622cafa4 add rollout doc (#1324)
* add rollout doc

* fix doc
2021-03-27 15:10:51 +08:00
Lei Zhang (Harry)
cbc866ccae Rewrite the doc (#1322) 2021-03-27 15:02:23 +08:00
Jianbo Sun
68a0e40db4 propagate AppRevision Into context.AppRevision (#1323)
* refactor: calculate revision first before render AC and Components

* fix flaky e2e case

* add e2e test
2021-03-26 21:12:44 -07:00
yangsoon
6469d538be update docs & fix vela cap uninstall. (#1319) 2021-03-27 10:59:23 +08:00
Yue Wang
aa21bfcb60 fix e2e test of kube schematic (#1321)
* fix kube schematic

Signed-off-by: roywang <seiwy2010@gmail.com>

* fix e2e test

Signed-off-by: roywang <seiwy2010@gmail.com>
2021-03-27 10:15:57 +08:00
Yue Wang
baa8d87e71 implemente kube schematic (#1298)
* implemente kube schematic

generate schema for kube schematic parameters

add e2e test

Signed-off-by: roywang <seiwy2010@gmail.com>

* add unit test

Signed-off-by: roy wang <seiwy2010@gmail.com>

* add doc

Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-03-26 23:02:58 +08:00
Jianbo Sun
1c89435515 fix app upgrade without rollout and rollout plan will create multiple version resources (#1315)
* fix app upgrade without rollout and rollout plan will create multiple version resources

* add and enhance tests

* fix test
2021-03-26 22:20:55 +08:00
Jianbo Sun
8e8ec58b97 merge e2e in one to save time (#1318) 2021-03-26 20:40:19 +08:00
Yue Wang
30baeabadc fix CI (#1317)
Signed-off-by: roywang <seiwy2010@gmail.com>
2021-03-26 19:34:00 +08:00
yangsoon
2c68c0e6d4 fix docs example (#1316) 2021-03-26 19:14:07 +08:00
wyike
0e9a3ceb3b fix unstable appcontext test (#1312) 2021-03-26 15:46:01 +08:00
wyike
74a82e0397 add header-check.sh (#1310)
add ci workflow

update scripts

add missed licence  header for all files
2021-03-26 15:24:19 +08:00
Jianbo Sun
20a31d4554 add cloud resource story doc (#1306) 2021-03-26 11:46:00 +08:00
yangsoon
31af7b780f fix vela components/workloads and vela cap (#1307)
* fix vela repeat get workloads list.

* fix vela cap
2021-03-26 11:23:27 +08:00
Ryan Zhang
0926469541 fix appRollout CRD version (#1303)
* fix appRollout CRD version

* make rollout e2e more robust
2021-03-26 08:23:10 +08:00
Jianbo Sun
94b7cbff21 better docs for build trait and use parameters (#1304) 2021-03-26 07:04:52 +08:00
Lei Zhang (Harry)
ec7eed3e37 Minor fix for docs (#1302) 2021-03-26 04:26:12 +08:00
Lei Zhang (Harry)
db8aee17f0 Merge pull request #1300 from resouer/fix
Fix GitHub readme issue
2021-03-25 11:34:32 -07:00
Lei Zhang
26f0db3d30 Fix GitHub readme issue 2021-03-25 11:18:22 -07:00
Jianbo Sun
d042c0c7ec add extend component definition in KubeVela (#1297)
* update docs

* refactor docs
2021-03-25 23:26:32 +08:00
Yue Wang
06a099f540 fix isControlledByApp in AC controller (#1294)
fix component_version e2e

Signed-off-by: roywang <seiwy2010@gmail.com>
2021-03-25 21:19:07 +08:00
Ryan Zhang
efa5078d81 fix appRevision label getting overridden (#1293)
* fix lable getting overidden

* randomize namespace
2021-03-25 17:28:17 +08:00
Jianbo Sun
b726481e7a update the docs v1alpha2->v1beta1 (#1292)
* fix example

* update the docs v1alpha2->v1beta1

* add more dependency for build runner
2021-03-25 16:44:47 +08:00
Ryan Zhang
c5d81c975a add abandoning state to the rollout (#1290)
* add abandoning state

* fine tunee2e timing and improve logging

* add back one application UT and fine tune timing in e2e and improve test robustness
2021-03-25 14:04:06 +08:00
yangsoon
33dae5e36e convert v1alpha2 to v1beta1 (#1289) 2021-03-25 10:55:54 +08:00
Jianbo Sun
53ae9aaa40 add webhook convert. (#1282)
fix diff

update example and test data version

fix convert function

fix e2e for helm

clean up creationTimestamp in a hack way

fix ci

pending package suit test

fix group version

fix ci

fix ut

rename type to kind

fix example

fix conflicts

Co-authored-by: yangsoon <yangsoonlx@gmail.com>
2021-03-24 17:15:20 -07:00
Ryan Zhang
a4fda31829 Restore rollout after the change to point to appRevision (#1271)
* modify appRollout to reference appRevision

* fine tune rollout e2e tests
2021-03-24 14:09:40 -07:00
yangsoon
e8a8981ef5 delay controller sync time (#1285) 2021-03-24 21:23:49 +08:00
yangsoon
fc55b65aad Compatible with Application containing WorkloadDefinition type helm moudle (#1261)
* add workloaddef ref to helm.

* fix package_suit_test

* show git diff result.
2021-03-24 21:22:29 +08:00
Jianbo Sun
9366c6e0b4 add hpa trait and fix template without params (#1279) 2021-03-24 16:18:58 +08:00
Yue Wang
b6218bf67d re-open e2e-test for helm schematic (#1277)
Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-03-24 15:19:50 +08:00
yangsoon
4b9e933ca5 add v1beta1 types (#1268) 2021-03-24 13:27:29 +08:00
Hongchao Deng
ab7ccb7499 Merge pull request #1272 from hongchaodeng/appd-1
AppDeployment: Add definitions and utilities code
2021-03-23 20:52:02 -07:00
Jianbo Sun
4c392d263a fix ci (#1276) 2021-03-24 11:28:27 +08:00
Hongchao Deng
7fab96d363 fix mod 2021-03-23 23:12:52 -04:00
Jianbo Sun
320651c80d add doc for cue development guide (#1269)
* create toc

* add CUE development-guide

* fix dry-run description

* Update docs/en/cue/development-guide.md

* finish the guide

* fix ci and sidebar

Co-authored-by: yangsoon <yangsoonlx@gmail.com>
2021-03-24 11:08:09 +08:00
Hongchao Deng
c59c760ed5 comment 2021-03-23 22:40:45 -04:00
Hongchao Deng
6e73038f92 fix lint 2021-03-23 22:33:54 -04:00
Hongchao Deng
baff3d77c4 AppDeployment: Add API types, necessary labels, and utilities 2021-03-23 22:33:54 -04:00
guoxudong
94068571c5 fix the website (#1273)
Co-authored-by: guoxudong <guoxudong.dev@gmial.com>
2021-03-24 10:25:39 +08:00
Lei Zhang (Harry)
a96225a12b Merge pull request #1270 from resouer/readme
Add more details in readme
2021-03-23 15:46:21 -07:00
Lei Zhang
086effa141 Add more details in readme 2021-03-23 15:38:54 -07:00
Jianbo Sun
acf497b1c7 make CUE inner kube package as a standalone package && clean code (#1263) 2021-03-23 16:30:49 +08:00
Jianbo Sun
30f30d9c93 update to the website (#1259)
* add more info into readme

* update readme to add more details
2021-03-23 12:04:00 +08:00
Yue Wang
f554523196 generate OpenAPI schema for Helm schematic compDef (#1250)
* get JSON schema for Helm schematic ComponentDefinition

Signed-off-by: roy wang <seiwy2010@gmail.com>

* add e2e test

update doc

add unit tests

Signed-off-by: roywang <seiwy2010@gmail.com>
2021-03-23 00:16:17 +08:00
wyike
dbc4593b23 Add e2e test for App Context (#1240)
* add e2e test for context

add workload check

should not create AC

add test  trait render

update e2e-test logic

add switching context write status back to AppRevision logic

add create and pull apprevision test

quick fix for appContext ownerReference problem

add more tests

fix test

* add boilerplate

* rebase master fix issue

* rebase master and fix test

* fix check  interval time
2021-03-22 01:36:37 -07:00
Ryan Zhang
11bc937f62 temporaily disable rollout e2e test (#1260) 2021-03-22 13:17:31 +08:00
Hongchao Deng
75c123df2f fix metadata missing in AppRevision spec data (#1257)
* fix metadata missing in AppRevision spec data

* fix test
2021-03-22 11:29:25 +08:00
Jianbo Sun
0b72c7ce34 Merge pull request #1258 from Ghostbaby/rollout_status
docs(rollout) add rollout state transition graph
2021-03-22 10:30:35 +08:00
zhuhuijun
a856499c3f docs(rollout) add rollout state transition graph
Signed-off-by: zhuhuijun <zhuhuijunzhj@gmail.com>
2021-03-22 09:41:08 +08:00
Jianbo Sun
395f7d6849 Merge pull request #1256 from unknwon/patch-1
docs: minor fixes on introduction and concepts
2021-03-21 21:44:49 +08:00
ᴜɴᴋɴᴡᴏɴ
98bf8e6b86 Update concepts.md 2021-03-21 21:30:19 +08:00
ᴜɴᴋɴᴡᴏɴ
628f2e1fdb Update introduction.md 2021-03-21 21:09:52 +08:00
Jianbo Sun
eea2fd4c35 Merge pull request #1252 from LeoLiuYan/feat/remove_duplicated_logic
Remove duplicated logic of reset appRollout status
2021-03-21 09:18:26 +08:00
LeoLiuYan
48e8c24ad1 Remove duplicated logic of reset appRollout status
Signed-off-by: LeoLiuYan <929908264@qq.com>
2021-03-20 22:24:36 +08:00
Jianbo Sun
379e143222 Merge pull request #1251 from wonderflow/fix2
remove dashboard and migrate to velacp(fix release pipeline)
2021-03-20 20:11:46 +08:00
天元
d4705380a8 remove dashboard related code 2021-03-20 18:36:51 +08:00
天元
15ffac9a46 migrate dashboard to velacp(https://github.com/oam-dev/velacp/pull/73) 2021-03-20 17:11:33 +08:00
Jianbo Sun
ddcbb9aefd Merge pull request #1249 from wonderflow/fix2
fix generate dashboard source
2021-03-20 16:36:49 +08:00
天元
8666b6b6e9 fix generate dashboard source 2021-03-20 16:05:32 +08:00
Jianbo Sun
fe1c319f06 Merge pull request #1248 from wonderflow/fix2
fix release pipeline
2021-03-20 15:59:14 +08:00
天元
868530316c fix release pipeline 2021-03-20 15:44:06 +08:00
Ryan Zhang
135282834d swap appConfig with appContext (#1245)
* swap appConfig with appContext

* fix e2e test

* fix e2e test

* surpress helm test
2021-03-20 00:02:58 -07:00
Jianbo Sun
d6dc946998 Merge pull request #1247 from resouer/sidebar
Make sidebar even better
2021-03-20 13:08:19 +08:00
Jianbo Sun
f43db50af2 Merge pull request #1246 from wonderflow/docs
more useful vela system dry-run
2021-03-20 13:04:42 +08:00
天元
7931e2a0a5 more useful vela system dry-run 2021-03-20 12:51:00 +08:00
Lei Zhang
3f28a6d917 Make sidebar even better 2021-03-19 21:31:22 -07:00
Jianbo Sun
1c126c5a26 Merge pull request #1244 from wonderflow/docs
clean up docs
2021-03-20 09:14:43 +08:00
天元
0bc7454b79 delete no used project file 2021-03-20 08:56:54 +08:00
天元
f4c20d4459 update faq 2021-03-20 08:50:24 +08:00
天元
63d965d381 update vela cli docs and remove the deleted command docs 2021-03-20 08:45:39 +08:00
天元
d750cf2657 merge config/samples into docs/examples 2021-03-20 08:37:00 +08:00
天元
d253b84161 delete unused configs 2021-03-20 08:34:46 +08:00
天元
c6b477e1ca migrate demos to catalog https://github.com/oam-dev/catalog/pull/91 2021-03-20 08:32:16 +08:00
Jianbo Sun
243fba3b23 Merge pull request #1242 from resouer/doc
Fix message in doc readme
2021-03-20 08:15:06 +08:00
Lei Zhang
485cdff57a Fix message in doc readme 2021-03-19 16:07:13 -07:00
Lei Zhang (Harry)
bd00d2fc51 Merge pull request #1234 from resouer/doc
Fix sidebar and 404
2021-03-19 16:05:47 -07:00
Lei Zhang
d09531b343 Fix sidecar to 2 layers 2021-03-19 16:01:23 -07:00
Jianbo Sun
a3ecf7c510 Merge pull request #1241 from kushthedude/use_debug_flag
feat: add debug-flag for enabling logs in core-run
2021-03-20 06:20:57 +08:00
Jianbo Sun
657baf9f15 init applicationRevision Object as revision of Application (#1210)
* generate appRevision and create AC with the same name

* Update pkg/controller/core.oam.dev/v1alpha2/application/application_controller_test.go

* fix ci

Co-authored-by: Ryan Zhang <yangzhangrice@hotmail.com>
2021-03-19 12:30:31 -07:00
kushthedude
e978e26c25 feat: add debug-flag for enabling logs in core-run
Signed-off-by: kushthedude <kushthedude@gmail.com>
2021-03-19 22:29:29 +05:30
Jianbo Sun
3a2208f0d2 Merge pull request #1238 from mengjiao-liu/fix-dup-string
Fix duplicated string literals
2021-03-19 16:25:29 +08:00
Jianbo Sun
99e8ff648e Merge pull request #1237 from mengjiao-liu/format-code
Code normalization
2021-03-19 16:07:16 +08:00
Jianbo Sun
8e7d8a46e7 Merge pull request #1239 from mengjiao-liu/clean-up-dup-flag
Clean up code duplicate
2021-03-19 16:06:16 +08:00
wyike
4903eb7cb2 refactor ac reconcile so that we can reuse it in new AC (#1236)
* refactor ac reconcile so that it returns the status

* add appContext to reuse appconfig reconcile logic

* fix lint

* update makefile for verbose info

* fix appcontext register error

* fix application configuration finalizer bug

Co-authored-by: Ryan Zhang <yangzhangrice@hotmail.com>
2021-03-19 00:04:01 -07:00
mengjiao.liu
3742b98636 Clean up code duplicate 2021-03-19 15:00:18 +08:00
mengjiao.liu
72cdc3ec74 Fix duplicated string literals 2021-03-19 14:25:29 +08:00
Jian.Li
e4a5b17e90 Support import K8s native API and CRD in definition (#1211)
* vela builtin package

* add test cases

* add gvk test cases

* lint

* testEnv

* lint

* check-diff

* Optimized code

* test case split

* add docs
2021-03-18 22:22:40 -07:00
Jianbo Sun
276d544766 Merge pull request #1226 from oam-dev/fix-rollout
allow state transition to be modified at any state
2021-03-19 12:23:22 +08:00
Jianbo Sun
2084ac6e3d Merge pull request #1230 from mengjiao-liu/normalize-function-name
Fix the function and method names that does not conform to the naming convention
2021-03-19 12:22:59 +08:00
mengjiao.liu
fdefd614cf Code normalization 2021-03-19 10:46:01 +08:00
Lei Zhang
540d826295 Fix sidecar and 404 2021-03-18 17:23:21 -07:00
Lei Zhang (Harry)
ae5b8ff4af Revert "refactor docs into 2 layers" (#1232) 2021-03-18 12:06:12 -07:00
Jianbo Sun
25a2a8a60c Merge pull request #1231 from yangsoon/compatible-workloaddef
Compatible with WorkloadDefinition for Application
2021-03-18 23:42:54 +08:00
yangsoon
f51a07c802 add related test 2021-03-18 21:05:35 +08:00
mengjiao.liu
f4223ebc1a Fix the function and method names that does not conform to the naming convention 2021-03-18 20:09:36 +08:00
yangsoon
7b1037ccad application-controller compatible workloaddef. 2021-03-18 19:36:55 +08:00
Jianbo Sun
cafc8c5e5e Merge pull request #1229 from wonderflow/fixrace
fix data race in component definition test
2021-03-18 19:11:38 +08:00
天元
0161b082b6 fix data race 2021-03-18 17:56:22 +08:00
Jianbo Sun
837d6708e8 Merge pull request #1132 from kinsolee/fix/list-application
fix(api-server): application meta list reads from application crd
2021-03-18 17:39:13 +08:00
Jianbo Sun
ec27850e65 Merge pull request #1228 from captainroy-hy/modify-image-policy
modify image pull policy
2021-03-18 17:37:04 +08:00
roy wang
aaf0a37c4a modify image pull policy
Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-03-18 17:24:49 +09:00
kinsolee
5acc5a9015 fix(api-server): application meta list reads from application crd 2021-03-18 15:57:44 +08:00
Jianbo Sun
857f382c7e Merge pull request #1225 from wonderflow/docs
refactor docs into 2 layers
2021-03-18 15:40:05 +08:00
Ryan Zhang
b0bf9b1d96 allow state transition to be modified at any state 2021-03-18 00:39:02 -07:00
天元
fdeedb31be refactor docs into 2 layers 2021-03-18 15:37:57 +08:00
Jianbo Sun
bdd2916972 Merge pull request #1224 from mason1kwok/add-skip-condition
add skip condition on e2e-rollout CI
2021-03-18 15:22:27 +08:00
mason1kwok
d6cb52d73a add skip condition on e2e-rollout CI 2021-03-18 14:54:37 +08:00
Jianbo Sun
ee649d9592 Merge pull request #1218 from resouer/fix-doc
Revise the doc site with recent features
2021-03-18 14:11:03 +08:00
Sichen Zhao
54339f7c05 add design.md (#1190)
* add design.md

* edit CONTRIBUTING.md: add link for desigin.md

Co-authored-by: Sichen Zhao <sichen.zhao@shopee.com>
2021-03-18 13:34:45 +08:00
Jianbo Sun
d0026839f4 Merge pull request #1201 from yangsoon/add-componentdef
Rename WorkloadDefinition to ComponentDefinion for Application
2021-03-18 13:25:52 +08:00
Lei Zhang
7bddeff93d Revise the doc site with recent features 2021-03-17 21:48:35 -07:00
Jianbo Sun
23a0da27d2 Merge pull request #1217 from oam-dev/revert-1209-testci
Revert "test run e2e on github native action runner"
2021-03-18 12:30:19 +08:00
yangsoon
6a96062464 add related test. 2021-03-18 12:12:09 +08:00
yangsoon
b788401920 fix e2e_test 2021-03-18 12:12:08 +08:00
yangsoon
c678247211 fix unit_test. 2021-03-18 12:12:08 +08:00
yangsoon
3345846f78 add help_test & fix componentdef-controller 2021-03-18 12:12:08 +08:00
yangsoon
c349c94181 fix app_controller & helm related tests. 2021-03-18 12:12:08 +08:00
yangsoon
7328e572e5 replace workloaddef with componentdef in app_controller 2021-03-18 12:12:08 +08:00
Jianbo Sun
019d8719a3 Revert "test run e2e on github native action runner (#1209)"
This reverts commit 86b363c56c.
2021-03-18 12:09:56 +08:00
Jianbo Sun
e335707ab0 Merge pull request #1216 from Ghostbaby/spelling_mistake
fix spelling mistake
2021-03-18 11:57:07 +08:00
Herman Zhu
dc89cfafa4 fix spelling mistake
Signed-off-by: Herman Zhu <zhuhuijunzhj@gmail.com>
2021-03-18 11:16:20 +08:00
Ryan Zhang
7e22c19383 move out rollout e2e (#1205)
* move out rollout e2e

* fix go workflow
2021-03-17 19:13:24 -07:00
Jianbo Sun
5b2b27e6a4 init ApplicationRevision CRD Object as revision of Application (#1214) 2021-03-17 18:34:10 -07:00
Jianbo Sun
86b363c56c test run e2e on github native action runner (#1209)
* test run e2e on github native action runner

* add ginkgo

Co-authored-by: Ryan Zhang <yangzhangrice@hotmail.com>
2021-03-17 17:45:10 -07:00
Yue Wang
b216c0a636 move test/integration (#1212)
Signed-off-by: roywang <seiwy2010@gmail.com>
2021-03-17 17:25:22 -07:00
Ryan Zhang
d4c2b7cb5a Refactor appConfig Controller to make it reusable and rename appDeployment to appRollout (#1208)
* temp

* rename appDeploy and refactor AC controller
2021-03-16 22:46:38 -07:00
Jianbo Sun
be03c788be Merge pull request #1203 from captainroy-hy/fix-unstable-e2e
fix unstable e2e test
2021-03-16 17:41:16 +08:00
roy wang
4c762ebf83 fix unstable e2e test
Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-03-16 17:31:12 +09:00
Jianbo Sun
cbc7a3855e Merge pull request #1202 from wonderflow/upgradeci
upgrade golang ci lint to 1.38.0 and fix lint error
2021-03-16 16:07:19 +08:00
Jianbo Sun
abde9e789d Merge pull request #1047 from captainroy-hy/doc-trait-definition
add doc about definition and template
2021-03-16 16:05:00 +08:00
Jianbo Sun
6145e6edc2 Merge pull request #1204 from wonderflow/skipdupci
configure ci to skip duplicate job
2021-03-16 16:04:18 +08:00
天元
711a4a9d7a configure ci to skip duplicate job 2021-03-16 15:35:13 +08:00
天元
d7dbcfc1cc fix more lint error in deployment controller 2021-03-16 15:09:18 +08:00
天元
1cdcf2ab48 upgrade golang ci lint to 1.38.0 and fix lint error 2021-03-16 15:06:48 +08:00
Jianbo Sun
f589471640 Merge pull request #1183 from ryanzhang-oss/add-failure-rollback
Add deployment controller
2021-03-16 15:03:58 +08:00
Yue Wang
a76f847668 update doc about Helm schematic workload (#1198)
* update doc about Helm schemantic

Signed-off-by: roy wang <seiwy2010@gmail.com>

* update doc

Signed-off-by: roy wang <seiwy2010@gmail.com>

* Update docs/en/helm/known-issues.md

* Update docs/en/helm/known-issues.md

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-03-16 13:39:46 +08:00
roy wang
33df4d9dea add doc about defition and template
Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-03-16 14:30:45 +09:00
Ryan Zhang
14b3a4d6cb refine the user experience by waiting for the AC to be templated 2021-03-15 22:03:23 -07:00
Ryan Zhang
e61cba4add add deployment demo 2021-03-15 20:40:02 -07:00
Ryan Zhang
7bd96bb324 implement deployment controller 2021-03-15 20:40:02 -07:00
Ryan Zhang
c34c5a9a6c finalize controller interface 2021-03-15 20:40:02 -07:00
Ryan Zhang
96d9287525 add deployment rollout demo 2021-03-15 20:39:55 -07:00
boris
6c0141a62d fix: check if namespace exists (#1187)
* fix: check if namespace exists

* Update pkg/utils/env/env.go

* Update pkg/utils/env/env.go

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-03-15 15:58:07 +08:00
Yue Wang
1652b4cf0c init Helm module (#1131)
use settings from App to override Values

add discovery util to get workload created by helm module

add helm typed structs into workloadDef and traitDef

update doc & refine code

add e2e test for helm module application

use oam.dev/catalog as helm repo

Signed-off-by: roywang <seiwy2010@gmail.com>
2021-03-15 00:54:43 -07:00
South China University
dd0979b912 Use ‘Ubuntu’ as default base image instead of 'Distroless' for debug convenience (#1186)
* use ubuntu as default base image

* Apply suggestions from code review

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-03-15 12:24:12 +08:00
yangsoon
60df873b93 Store ComponentDefinition capability schema in configMap (#1180)
* store componentdefinition capability  schema in configMap

* fix componenetdef & traitdef controller test.

* change some componentdefinition field

* fix unit test error

* fix some code bug

* fix some yaml file error.

* fix copyright error
2021-03-15 11:08:46 +08:00
Jianbo Sun
52657ac7ba Merge pull request #1174 from wonderflow/cli
align cli to the application object
2021-03-12 16:42:06 +08:00
Jianbo Sun
99b8e4aba3 add license checker into CI (#1182) 2021-03-12 00:34:51 -08:00
wyike
ccc5826616 Remove 3 standard controller (route autoscaler metrics ) (#1172)
* delete 4 standard controllers related  code

delete related yaml

delete setup controller

add back podspecworkload controller

try to fix e2e

update related docs

fix failed test

fix docs problem

remove useless scheme

up timeout for e2e-test

change doc  structure

* fix go mod
2021-03-12 14:57:59 +08:00
天元
2d7cbf9467 faster vela traits/workloads 2021-03-12 14:02:45 +08:00
Jianbo Sun
cc044b0de5 Merge pull request #1181 from ryanzhang-oss/add-failure-rollback
enable rollout fail revert e2e test
2021-03-12 11:35:18 +08:00
天元
9d5b31be2b remove local files, diretly use Definition/Application in Cluster 2021-03-12 10:59:24 +08:00
Ryan Zhang
b64009c02d rollback after rollout failure 2021-03-11 18:31:41 -08:00
Ryan Zhang
2cebad6ff4 Enable more rollout e2e tests (#1176)
* enable a few CI tests

* fix webhook related test failure
2021-03-11 17:35:22 -08:00
天元
d84ebd3ae9 vela ls will list applications 2021-03-11 17:17:05 +08:00
Ryan Zhang
1048b399fd rename appRollout and add more fine tune tests (#1166)
* rename appRollout and add more fine tune tests

* improve rollout

* do not advance AC if we are not rolling

* fix e2e test bug

* fix the test
2021-03-11 15:56:38 +08:00
wangyike
c47dd8c16b fix dryrun use namespace 2021-03-11 15:47:15 +08:00
天元
bdf239f1ae delete health scope when delete app 2021-03-11 15:34:38 +08:00
Jianbo Sun
66c111be6c add appRevision into context (#1165) 2021-03-10 00:47:17 -08:00
Jianbo Sun
76f7f7e7a5 Merge pull request #1168 from zzxwill/definition-controller-copyright
Add or update copyright for workload/trait definition controllers
2021-03-10 16:11:47 +08:00
Jianbo Sun
7f8e53b29d Merge pull request #1103 from wonderflow/docs
add quick start for application CRD
2021-03-10 15:15:36 +08:00
zzxwill
9afe577087 Add or update copyright for workload/trait definition controllers
Added or updated copyright in newly added files for
orkloaddefinition and traitdefinition controllers and
its dependencies
2021-03-10 14:18:57 +08:00
天元
339889813b add quick start for application CRD
add quick start for application CRD

Update docs/en/quick-start.md

Co-authored-by: Hongchao Deng <hongchaodeng1@gmail.com>

Update docs/en/quick-start.md

Co-authored-by: Hongchao Deng <hongchaodeng1@gmail.com>
2021-03-10 10:57:26 +08:00
Zheng Xi Zhou
c2b6e6efdd Store capability OpenAPI V3 JSON schema in ConfigMap (#1106)
* Store capability OpenAPI V3 JSON schema in ConfigMap

Store the OpenAPI v3 JSON Schema generated from the parameters of
a capability which could be used by api server

To fix #899

address comments
try to fix data race issue

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>

* address comments: generate cue instance from cue json instead of local file

* update ConfigMap data at any time

* add more unit-test

* fix conflicts

* adapt to new spec.schematic.cue.template

* adapt to new spec.schematic.cue.template for controller unittest cases

* fix ci issues

* adapt to namespaced scope definition

* add more testcases on namespaced definitions with and without namespaces

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-03-10 10:44:58 +08:00
yangsoon
f60d6820d9 doc: add demo for webserver workload (#1153)
* add demo for webserver workload

* fix some fmt error
2021-03-09 16:47:07 +08:00
Jianbo Sun
dbc9523728 Merge pull request #1158 from captainroy-hy/rfc-log-1
use klog/v2 as logger in util/apply
2021-03-09 10:34:08 +08:00
roywang
6bf85f6f6e use klog/v2 as logger in util/applicator
Signed-off-by: roywang <seiwy2010@gmail.com>
2021-03-08 21:15:56 +09:00
Jianbo Sun
31b1490359 Merge pull request #1150 from Cweiping/fix/improve_install_doc_command_style
improve install doc command style
2021-03-08 11:17:14 +08:00
Jianbo Sun
8bbf62b8fe Merge pull request #1148 from Cweiping/fix/fix_vela_svc_ls_error
fix vela svc ls error
2021-03-07 16:02:19 +08:00
Weiping Cai
0c1b9eba35 improve install doc command style
Signed-off-by: Weiping Cai <weiping.cai@daocloud.io>
2021-03-06 21:05:55 +08:00
Weiping Cai
f17d3feb06 fix vela svc ls error
Signed-off-by: Weiping Cai <weiping.cai@daocloud.io>
2021-03-06 15:27:52 +08:00
Ryan Zhang
28fce2d7de rename applicationDeployment to appRollout (#1146)
* rename applicationDeployment to appRollout

* Update test/e2e-test/rollout_plan_test.go

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-03-05 14:28:53 -08:00
WYike
994ef23c0c modify controller,webhook,api,chart (#1085)
solve failed test

add compatibility test for old crd

add app ns for cli

modify compatibility test

solve compatibility problem

add testing for  GetDefinition func with cluster scope CRD

generate code for compatibility-test

move testdata generate to makefile

optimize ci pipeline for compatibility-test
2021-03-04 23:14:18 -08:00
Jianbo Sun
784fc0b402 Merge pull request #1143 from yangsoon/workflow
fix #1140 delete image after e2e test
2021-03-05 12:56:12 +08:00
Jianbo Sun
68d5e6cdcc Merge pull request #1142 from ryanzhang-oss/e2e-test
add rollout cloneset based rudimentory e2e test
2021-03-05 12:15:49 +08:00
yangsoon
6c794bda08 fix issue #1140 delete image after e2e test 2021-03-05 12:04:07 +08:00
Ryan Zhang
1976a0fa64 removing the definitions by removing their CRDs 2021-03-04 19:56:54 -08:00
Ryan Zhang
c121d33b2c fix webhook nil pointer 2021-03-04 19:20:02 -08:00
Jianbo Sun
198c836849 cherry-pick(#1136) fix revision enable workload check and prevent GC if replica>0 (#1141)
* fix revision enable workload check and prevent GC if replica>0

* fix ci and vet
2021-03-04 18:52:48 -08:00
Ryan Zhang
6b73436362 add first rollout e2e test 2021-03-04 18:25:30 -08:00
Jianbo Sun
d938b9ee9e Merge pull request #1137 from ryanzhang-oss/fix-rolling
fix rolling with manual annotation and improve the demo a bit
2021-03-04 21:29:04 +08:00
Ryan Zhang
c520a24423 fix rolling with manaul annotation and improve the demo a bit 2021-03-04 00:34:09 -08:00
Ryan Zhang
eac2d37551 add webhook and kruise (#1135) 2021-03-03 23:21:02 -08:00
Jianbo Sun
570cf01949 Merge pull request #1117 from wonderflow/cap
align workload/trait definition schema with v0.2.2 spec
2021-03-04 11:55:08 +08:00
Jianbo Sun
a39c429020 Merge pull request #1133 from zzxwill/broken-link
Fix broken link
2021-03-04 11:11:14 +08:00
Jianbo Sun
003db753aa Merge pull request #1134 from Cweiping/fix/fix/arm_build_error
fix arm64 build failed and block our release pipeline
2021-03-04 11:10:19 +08:00
Weiping Cai
2fb2306117 fix arm64 build failed and block our release pipeline
Signed-off-by: Weiping Cai <weiping.cai@daocloud.io>
2021-03-04 09:59:43 +08:00
Zheng Xi Zhou
e5240932a7 Fix broken link
`E2E test` link in README.md is broken
2021-03-03 22:40:55 +08:00
天元
8c8ca60756 align workload/trait definition schema with v0.2.2 spec 2021-03-02 17:35:58 +08:00
Ryan Zhang
7207819080 fine tune rollout experience with demo (#1119)
* fine tune rollout experience with demo

* fix test
2021-03-02 17:24:12 +08:00
Jianbo Sun
48ee5a1d1c Merge pull request #1115 from wonderflow/cp1109
cherry-pick(1109 and 1114)
2021-03-02 16:35:16 +08:00
Jianbo Sun
84f34e3f01 Merge pull request #1118 from yangsoon/fixdoc
fix:fix doc, error link and format
2021-03-02 13:37:23 +08:00
天元
66177ddd13 update CRD and fix workload not create first time 2021-03-02 10:13:54 +08:00
Jianbo Sun
b4b3a8ab69 parent override child when annotation/labels conflicts && one revision will apply once only in force mode && AC.status CRD updated (#1109)
* when annotation/labels passthrough from parent to child conflicts, the parent will override the child.
e.g. 1) AC will override its component/workload; 2) workload will override child-resource; 3) AC will override its trait

* apply once only force will block workload apply when revision not changed even ac generation updated
2021-03-02 10:13:54 +08:00
yangsoon
488341398a fix:fix doc 2021-03-01 20:25:18 +08:00
Jianbo Sun
a8337921bc Merge pull request #1112 from ryanzhang-oss/rollout-e2e
Rollout e2e demo
2021-03-01 19:25:40 +08:00
Ryan Zhang
abf9270473 manual e2e test example with bug fixes 2021-03-01 01:00:27 -08:00
Holger Protzek
d6f28bfd9e Removed prometheus and certmanager crd's (#1005)
* Removed prometheus and certmanager crd's, use cert-manager helm chart dependency instead

* Fixed unit and 2e2 tests. Added servicemonitors and certmanager crd dependencies for tests as testdata.

* Run `helm dependency update`

* Delete kubevela helm release and namespace if existing

* WIP - Bad hack to add the certmanager crds before installing kubevela with cert-manager as dependency. The cert-manager crds are not available, when kubevela Issuer are installed otherwise.

* WIP Added admission patch for webhook

* WIP Refactored secrets config

* WIP Fixed helm chart

* WIP Disabled metrics cap, due missing prometheus dependency by default

* WIP Added certmanager for e2e tests

* WIP Added certmanager for e2e tests

* WIP cleanup

* Updated docs

* Re-added certificate mount path
2021-02-26 16:46:01 +08:00
Jianbo Sun
abaac1de2b Merge pull request #1108 from ryanzhang-oss/fix-appcontroller-loop
fix application controller loop
2021-02-26 11:21:09 +08:00
Jianbo Sun
e25f7598ca Merge pull request #1107 from captainroy-hy/chp-1099
cherry-pick(#1099) add unit test
2021-02-26 11:03:29 +08:00
Ryan Zhang
d4a47f733f fix application controller loop 2021-02-25 18:59:54 -08:00
roywang
171e20a7d6 add unit test
Signed-off-by: roywang <seiwy2010@gmail.com>
2021-02-26 11:36:37 +09:00
Jianbo Sun
9bf008aa3f Merge pull request #1102 from ryanzhang-oss/appConfig-init
Complete the app rollout implementation
2021-02-25 20:54:35 +08:00
Ryan Zhang
2b24bad2b8 appConfig prepare for workload rollout for the first time and complete the stand alone rollout logic 2021-02-25 00:58:17 -08:00
Jianbo Sun
97eac314de cherry-pick(#1101) fix component custom revison loop infinitely create revision (#1104)
* fix component custom revison loop infinitely create revision

* use accurate compare function for revision to componentName
2021-02-25 00:52:28 -08:00
Jianbo Sun
3270bfc0da Merge pull request #1092 from wonderflow/outputs
output not allowed in traitdefinition, should use outputs
2021-02-24 19:39:01 +08:00
天元
6eeb98870f fix doc and test 2021-02-24 18:59:36 +08:00
Jianbo Sun
4eb290a1d2 Merge pull request #1098 from wonderflow/chp
cherry-pick(#1094) fix apply only once observedGeneration should mark after meet all dependency requirements
2021-02-24 18:54:52 +08:00
天元
580110ed44 fix apply only once observedGeneration should mark after meet all dependency requirements && add log for apply only once 2021-02-24 17:31:31 +08:00
Jianbo Sun
309786338a Merge pull request #1097 from wonderflow/cc
enable CI for release-*
2021-02-23 20:09:47 +08:00
Jianbo Sun
816ea76bd5 Merge pull request #1090 from WangYikewyk/fix-raw-print
fix issue#1057
2021-02-23 19:40:58 +08:00
天元
d7a12ac5fd enable CI for release-* 2021-02-23 19:13:18 +08:00
wangyike
b399f34c71 fix issue#1057 2021-02-23 18:17:18 +08:00
天元
98b059c0ae output not allowed in traitdefinition, should use outputs:<resource>:<full object> 2021-02-23 16:20:30 +08:00
Jianbo Sun
9bb996e9d5 Merge pull request #1091 from ryanzhang-oss/render-workload-name
render the workload and trait name differently
2021-02-23 15:51:35 +08:00
Jian.Li
95cd9bb198 Use "context.outputs" to reference auxiliary objects defined in the definition template (#1087)
* refer outputs

* add docs

* update docs

* rename object
2021-02-22 21:36:57 -08:00
Ryan Zhang
dee442eb3d render the workload and trait name differntly 2021-02-22 21:22:54 -08:00
Jianbo Sun
dd222ac876 refactor cli/dashboard/apiserver to reference folder (#1084)
* refactor cli/dashboard/apiserver to reference folder

* address comments
2021-02-23 13:03:38 +08:00
Jianbo Sun
13a70e6819 Merge pull request #1089 from dylandee/fix-unreachable-error
fix: remove unreachable error judgement
2021-02-22 16:59:59 +08:00
Dylan
6e0b6092a5 fix: remove unreachable error judgement 2021-02-22 16:32:30 +08:00
Jianbo Sun
efb24d5b4c Merge pull request #1088 from dylandee/more-readable-exec-hint
improvement: specify 'vela exec' error hint
2021-02-22 16:11:27 +08:00
Dylan
dc5694bdc4 improvement: specify 'vela exec' error hint 2021-02-22 15:46:30 +08:00
Jianbo Sun
ee93efc154 Merge pull request #1078 from dylandee/reduce-io-operation
improvement: reduce io operation when load appfile
2021-02-22 15:07:39 +08:00
Ryan Zhang
073f3bc0c7 add hashtag and consolidate libs (#1082)
* add hashtag and consolidate libs

* fix CI
2021-02-20 23:10:15 -08:00
just-do1
1c91d46ce3 Fix remove the parameter "--sync" (#1083)
* [#929] Modification to comand vela show WORKLOAD_TYPE or TRAIT

* update the describetion of --web

* [#929] update --web describtion

* update the doc of check-ref-doc.md

* remove --sync parameter
2021-02-20 16:09:10 +08:00
Jianbo Sun
5ad5c2fd69 Merge pull request #1081 from wonderflow/depend
remove go-header package dependency
2021-02-20 15:01:20 +08:00
Jian.Li
8f83e3dd98 Use context.output instead of context.input to refer to the output object defined in the WorkloadDefinition (#1076)
* use output instead of input to reference workload

* const
2021-02-20 13:29:48 +08:00
天元
9444124c3b remove go-header package dependency 2021-02-20 13:22:52 +08:00
Dylan
d7f64725d6 improvement: reduce io operation when load appfile 2021-02-20 11:36:39 +08:00
majian
d54a9bda05 1.Create app impl (#1072)
2.Polling waiting for the app to be deleted
2021-02-20 10:56:01 +08:00
Jianbo Sun
f285490da9 Merge pull request #1075 from kinsolee/master
Fix make core-install error
2021-02-20 10:02:45 +08:00
Lei Zhang (Harry)
6419b8ff57 Merge pull request #1066 from resouer/doc
Fix readme in doc site
2021-02-19 15:07:19 -08:00
Ryan Zhang
d3511415c2 add webhooks to the rollout plan and use AC as App snapshot (#1031)
* add webhooks

* app controller change

* add component revision and appconfig revision and test

* solidify the component revision logic and fix component revisoin bugs

* fix command cli e2e failure

* fix the bug caused by rawExtention

* fix UT test

* retry on component not found

* lint

* revert component revision create order
2021-02-19 12:11:26 -08:00
kinsolee
05bd7a3ab2 fix: remove lagacy command of 'make core-install' 2021-02-19 22:26:33 +08:00
Kinso
9f38b02b1c fix: esbuild runs on mac m1 silicon (#1049)
Co-authored-by: lijingzhao <lijingzhao@forchange.tech>
2021-02-19 10:36:22 +08:00
Jianbo Sun
645312a129 Merge pull request #1067 from zzxwill/init-container-trait
Check whether parameter.command is nill for init-container trait
2021-02-19 10:06:34 +08:00
Jianbo Sun
e48515850d Merge pull request #1058 from vnzongzna/docs-update
Add sync capability section in install doc
2021-02-19 09:58:47 +08:00
majian
df89d247cf 1.set applications as homepage (#1073)
2.path use lowercase
2021-02-19 00:11:46 +08:00
guoxudong
f81e265877 [Dashboard] Add KubeVela Dashboard logo (#1071)
Fix #1043
2021-02-18 17:01:36 +08:00
majian
2aebcf014a 1.Organize the menu (#1068)
2.Add application menu locales
3.Fix create application button style
4.Add FormRender d.ts
2021-02-18 16:03:52 +08:00
guoxudong
6dc70be801 update favicon (#1042)
* update favicon
* fix
2021-02-18 16:01:43 +08:00
zzxwill
936dc4100d Check whether parameter.command is nill for init-container trait
Check whether parameter.command is nill before setting the value of
spec.template.spec.initContainers.command
Fix #1062
2021-02-18 14:58:25 +08:00
Harry Zhang
5c9e396e5c Fix typo in vela appfile doc 2021-02-17 21:55:21 -08:00
Lei Zhang (Harry)
bb7033b1e6 Fix typo in vela appfile doc (#1065) 2021-02-17 19:53:15 -08:00
Lei Zhang (Harry)
9c41d3f212 Merge pull request #1055 from resouer/doc
Move appfile doc to DevExp folder
2021-02-17 19:03:58 -08:00
Harry Zhang
7db9b93e1a Move appfile doc to ref dir 2021-02-17 17:32:49 -08:00
vnzongzna
8554fb1a2d add sync capability section in install doc 2021-02-17 01:13:33 +05:30
Jianbo Sun
aac0df2de6 Merge pull request #1052 from captainroy-hy/scope-block-finalizer
ScopeDefinition not found should not block finalizer
2021-02-11 09:20:54 +08:00
Lei Zhang (Harry)
1f0af863ef Fix quick start and concept based on app crd (#1051) 2021-02-10 13:28:49 -08:00
roy wang
062df46e47 fix ScopeDefinition not found blocking finalizer
Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-02-10 15:50:06 +09:00
Lei Zhang (Harry)
9d47a85f80 Fix link in cap docs (#1050) 2021-02-09 15:51:06 -08:00
Jianbo Sun
1d38d6ea18 Merge pull request #1002 from Cweiping/feature/clairly_vele_help
fix vele help cli
2021-02-09 22:11:27 +08:00
Jianbo Sun
52c243d338 Merge pull request #1046 from resouer/doc
Revise the doc site and app crd doc
2021-02-09 22:07:12 +08:00
Weiping Cai
ce6e92e660 clair vele help cli
Signed-off-by: Weiping Cai <weiping.cai@daocloud.io>
2021-02-09 16:46:33 +08:00
Harry Zhang
101ac18836 Revise the app crd doc 2021-02-08 22:14:47 -08:00
Jianbo Sun
8c7a0ab19f Merge pull request #1045 from captainroy-hy/update-doc
update doc about traitDef definitionRef
2021-02-08 22:39:14 +08:00
WYike
bcb761d5d5 fix "cap show" cannot print keyValue type bug (#1044)
* fix key-value print bug

* fix clint problem

* delete test code

* Update pkg/plugins/references.go

Co-authored-by: Zheng Xi Zhou <zzxwill@gmail.com>

Co-authored-by: Zheng Xi Zhou <zzxwill@gmail.com>
2021-02-08 22:33:44 +08:00
Jianbo Sun
1fdc137f8b Merge pull request #1040 from zzxwill/submit-application-creation-form
[Dashboard] Create application (without trait)
2021-02-08 22:28:38 +08:00
roy wang
67adafce1b update doc about traitDef definitionRef
Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-02-08 20:34:47 +09:00
zzxwill
8a3b8a29a7 don't set empty key into to Appfile 2021-02-08 19:29:29 +08:00
Jianbo Sun
7ee298ba77 Merge pull request #1027 from wonderflow/doc
add more docs about apllication and CUE
2021-02-08 17:48:46 +08:00
Jianbo Sun
be59d70018 Merge pull request #1041 from captainroy-hy/fix-unstable-ut-5
fix unstable unit test
2021-02-08 17:44:10 +08:00
天元
a4da93877d add status loop back doc 2021-02-08 17:30:52 +08:00
天元
87fca7b22a add trait with CUE 2021-02-08 16:47:45 +08:00
zzxwill
d404ae9459 build with npm instead of yarn 2021-02-08 16:18:22 +08:00
天元
fa053a53d0 add workload type with CUE 2021-02-08 16:10:47 +08:00
天元
b8ee8e879f advanced cue grammar 2021-02-08 16:10:47 +08:00
天元
cd6d0a5787 add basic CUE 2021-02-08 16:10:47 +08:00
天元
52e3bacfae add application CRD introduction 2021-02-08 16:10:47 +08:00
zzxwill
a605198863 Creat application (without trait)
Submit application creation form to create an application, currently
only creating workloads is supported.
To partly implement #1039
2021-02-08 16:10:41 +08:00
roy wang
e7396ae9ab fix unstable unit test
Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-02-08 17:01:39 +09:00
Jianbo Sun
da52367897 Merge pull request #1036 from captainroy-hy/fix-unstable-ut
quick fix unstable unit test
2021-02-08 10:04:16 +08:00
Jianbo Sun
6532bc4573 Merge pull request #1013 from hoopoe61/master
sync oam-k8s-runtime data passing enhancement into kubevela
2021-02-08 09:58:12 +08:00
roywang
c908d8e1e7 quick fix unstable unit test
Signed-off-by: roywang <seiwy2010@gmail.com>
2021-02-07 22:35:59 +09:00
WYike
5e9d49e139 fix vela traits not compatible with installed capability (#1033)
* fix issue 1029

* add test case

* fix check diff

Co-authored-by: 王易可 <wangyike@B-V1QHML7L-1909.local>
2021-02-07 19:31:42 +08:00
Zheng Xi Zhou
3ee746ae17 Add latest release tag to be the prefix of latest version of Chart (#1007)
* Add latest release tag to be the prefix of latest version of Chart

Currently the latest chart is vela-core:latest, which could
not be supported by Artifacthub, add latest tag and make the
latest chart version as `vx.y.z-latest`

* calculate the next tag to be the latest master chart version

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-02-07 17:55:34 +08:00
Jianbo Sun
f6d2e76102 Merge pull request #1032 from wangkai1994/fix/cap_error_message
fix cap error message
2021-02-07 17:30:27 +08:00
wangkai1994
58bd00f137 fix cap error message, 2021-02-07 17:09:36 +08:00
zhinong.gt
994c194d0f add data passing mechanism in kubevela 2021-02-07 16:43:13 +08:00
Dylan
abe01d2add fix: update CR's status with retry.RetryOnConflict (#1015) 2021-02-06 23:08:22 -08:00
Jianbo Sun
aabd1e399a Merge pull request #1020 from zzxwill/app-creation-ui
Implement application creation page
2021-02-07 10:27:53 +08:00
Jianbo Sun
12cc22b5c4 Merge pull request #838 from captainroy-hy/force-apply-once-only
implement ApplyOnceOnlyForce
2021-02-06 13:14:23 +08:00
roy wang
47ab481eee implement ApplyOnceOnlyForce
add unit test

Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-02-06 12:58:32 +09:00
Ryan Zhang
b564e0ef26 add more code to complete the rollout plan (#1024) 2021-02-05 12:08:19 -08:00
zzxwill
1119d1b529 fix lint issue 2021-02-05 17:55:16 +08:00
zzxwill
8af08075df Implement application creation page
To fix #680
2021-02-05 17:48:27 +08:00
Jianbo Sun
4b06961e6f Merge pull request #1014 from wonderflow/definition
move template out from extension to spec.template
2021-02-05 15:51:44 +08:00
天元
96a589b098 move template out from extension 2021-02-05 14:45:30 +08:00
Jianbo Sun
258bdd7b76 Merge pull request #1017 from resouer/doc
Update the details of the doc
2021-02-05 13:49:57 +08:00
Jianbo Sun
1f5223267b Merge pull request #1021 from zzxwill/dashboard-build
Revert package management and build tool to npm
2021-02-05 12:21:11 +08:00
Jianbo Sun
c24169e42d Merge pull request #1000 from ryanzhang-oss/rollout-controller
Cloneset rollout
2021-02-05 12:06:22 +08:00
zzxwill
9230e5c181 Revert package management and build tool to npm
As yarn failed to build and start the dashboard most
of time, revert the tool to npm
2021-02-05 11:31:37 +08:00
Ryan Zhang
10bf5739ca fix lint 2021-02-04 17:11:04 -08:00
Ryan Zhang
15020660c9 cloneset controller draft 2021-02-04 17:01:22 -08:00
Harry Zhang
cd971063f8 Update the details of the doc 2021-02-04 14:26:21 -08:00
Jianbo Sun
b6f10bb1fa Merge pull request #975 from leejanee/app-status
display trait status information with customized style
2021-02-04 20:22:19 +08:00
天元
868e0925d4 move health check and status out of extention 2021-02-04 17:56:20 +08:00
Jianbo Sun
f2bd881d27 Merge pull request #1012 from dylandee/fix-redundant-docker-image-push
remove redundant image push operation
2021-02-04 16:37:57 +08:00
Dylan
ea306dac5e remove redundant image push operation 2021-02-04 16:15:43 +08:00
Jianbo Sun
a761e75c01 Merge pull request #994 from zzxwill/fix-openAPIV3Schema-validatation
Fix openAPIV3Schema validation issue
2021-02-04 14:15:45 +08:00
天元
87e52bb349 add demo, test and refine code 2021-02-04 14:14:52 +08:00
Jianbo Sun
dc8358f910 Merge pull request #1008 from resouer/doc
Fix doc detail
2021-02-04 08:46:23 +08:00
Jianbo Sun
26a7e57d6e Merge pull request #1009 from vnzongzna/patch-1
Fix link in APIServer-Catalog Examples
2021-02-04 08:45:27 +08:00
Vaibhav Kaushik
026d5f6446 Minor fix for APIServe-Catalog Doc 2021-02-04 02:26:54 +05:30
Vaibhav Kaushik
26aa3eceae Fix link in APIServer-Catalog Examples 2021-02-04 02:13:25 +05:30
Harry Zhang
966a773195 Fix doc detail 2021-02-03 10:04:43 -08:00
zzxwill
5aea4c4baa Fix openAPIV3Schema validatation issue
Legacy crd charts/vela-core/crds/standard.oam.dev_routes.yaml could not
be applied to old Kubernetes clusters like 1.15.12.
Fix #993
2021-02-03 22:20:39 +08:00
Zheng Xi Zhou
51860cf11a Fix wrong target directory name for artifathub.io (#1004) 2021-02-03 19:51:34 +08:00
Jianbo Sun
90d82c38e9 Merge pull request #1001 from captainroy-hy/sync-cap-bug-fix
fix cannot sync trait without definitionRef
2021-02-03 19:47:27 +08:00
roy wang
2375e019bd fix cannot sync trait without definitionRef
Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-02-03 20:29:11 +09:00
Zheng Xi Zhou
fb15b43914 Fix issue: artifacthub-repo.yml not uploaded to repo (#1003)
* Fix issue: artifacthub-repo.yml not uploaded to repo

* Update .github/workflows/registry.yml

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-02-03 19:03:08 +08:00
天元
829d230427 remove unused client side trait checker 2021-02-03 18:19:51 +08:00
天元
f310665fe0 implement vela status in application CRD controller and refactor the health check code 2021-02-03 18:13:47 +08:00
Kai
dafbbbb606 mark vela install as deprecated (#989)
* mark `vela install` as deprecated

* refactor vela install to helm install

* refactor vela install to helm install

fix

* Update pkg/commands/system.go

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>

* Update pkg/commands/system.go

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>

* Update README.md

* Update CONTRIBUTING.md

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>

* Update _sidebar.md

* Update README.md

* revert

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-02-03 16:14:58 +08:00
Jianbo Sun
2524a3e5fb Merge pull request #943 from captainroy-hy/webhook-no-traitdef
validating webhook for TraitDefinition
2021-02-03 14:50:17 +08:00
Zheng Xi Zhou
dd04402a28 Build KubeVela legacy chart (#983)
* Build KubeVela legacy chart

Also pushed it to oss bucket
fix #528

* remvoe flag `--devel`

* make it explictly to modify values.yaml for legacy chart
2021-02-03 14:27:04 +08:00
roy wang
62611896e1 validating webhook for TraitDefinition
add unit test

fix lint issues

Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-02-03 14:46:24 +09:00
Jianbo Sun
8186b174ba Merge pull request #991 from captainroy-hy/ac-webhook-td
use dummy trait definition in appconfig webhook
2021-02-03 09:58:47 +08:00
Lei Zhang (Harry)
b99a4b619c Merge pull request #960 from resouer/dev
Explain KubeVela
2021-02-02 11:33:30 -08:00
Lei Zhang (Harry)
5ae47074d1 Update docs/en/platform-engineers/overview.md
Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-02-02 10:32:01 -08:00
Lei Zhang (Harry)
5a2305b83e Update docs/en/platform-engineers/overview.md
Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-02-02 10:31:50 -08:00
Lei Zhang (Harry)
78a145fa74 Update docs/en/platform-engineers/overview.md
Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-02-02 10:31:30 -08:00
roywang
02f214b766 use dummy trait definition in appconfig webhook
Signed-off-by: roywang <seiwy2010@gmail.com>
2021-02-02 22:58:16 +09:00
lj176172
dd6810314e status app 2021-02-02 21:23:01 +08:00
Jianbo Sun
2efeec8a8e Merge pull request #990 from 96RadhikaJadhav/fixing-wrong-chart-name
Fixed wrong chart name
2021-02-02 17:41:44 +08:00
96RadhikaJadhav
671c73a070 Fixed wrong chart name 2021-02-02 14:20:11 +05:30
Zheng Xi Zhou
942115a1c3 Set KubeVela as verified publisher of ArtifactHub (#986)
* Set KubeVeal as verified publisher of ArtifactHub

Set KubeVela team as a verified publisher of Artifacthub,
Add README to the repo and add helm badge in github readme

To impleted #977

* Update hack/artifacthub/artifacthub-repo.yml

Co-authored-by: Ryan Zhang <yangzhangrice@hotmail.com>

* Update hack/artifacthub/artifacthub-repo.yml

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>

* add more owners

* add README to chart

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
Co-authored-by: Ryan Zhang <yangzhangrice@hotmail.com>
2021-02-02 15:37:40 +08:00
Holger Protzek
f737379738 Added ingressClass to route trait (#947)
* Added ingressClass to route trait

* typo

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>

* run make reviewable

* fixed ingress test

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-02-02 09:52:20 +08:00
Jianbo Sun
e5a9721fa5 Merge pull request #985 from zzxwill/capability-show
Change "vela show" function name
2021-02-02 09:51:23 +08:00
zzxwill
86db8de125 Change "vela show" function name
Also updated help vela help message
2021-02-01 19:48:34 +08:00
Ryan Zhang
7f64974701 This PR spells out the rollout states (#972)
* add rollout state transition:

* address comments
2021-02-01 17:40:59 +08:00
Hongchao Deng
18f184d57c Merge pull request #981 from wonderflow/fix
fix pull image error
2021-01-31 21:57:37 -08:00
天元
b80bacf65d fix version 2021-02-01 13:19:33 +08:00
Jianbo Sun
c96a92475d Merge pull request #974 from wonderflow/reg
minor change for CI name
2021-01-29 18:40:21 +08:00
天元
316b438674 minor change for CI name 2021-01-29 18:24:38 +08:00
Jianbo Sun
104f0827dc Merge pull request #958 from captainroy-hy/static-check-action
add staticcheck CI action
2021-01-29 18:14:56 +08:00
Jianbo Sun
0a81696315 Merge pull request #973 from wonderflow/testmaster
manually create release and automatically upload artifacts
2021-01-29 17:44:33 +08:00
roy wang
93ae8a9099 fix staticcheck issues
add staticcheck CI action

add staticcheck in Makefile

Signed-off-by: roywang <seiwy2010@gmail.com>
2021-01-29 18:42:03 +09:00
天元
ed436d4e6d merge chart and docker publish into registry 2021-01-29 17:12:18 +08:00
天元
e5e71dbc25 change from create release by github robot to manuelly
automatically upload artifacts after manually released
2021-01-29 17:11:58 +08:00
Jianbo Sun
af61a81828 Merge pull request #971 from wonderflow/fixc
fix inner containerizedworkload not work
2021-01-29 16:28:52 +08:00
天元
b88309a333 fix inner containerizedworkload not work 2021-01-29 15:51:29 +08:00
Jianbo Sun
c41bd241ce update kubevela installation guide (#955)
* update kubevela installation guide

* adress comments

* Update docs/en/install.md

Co-authored-by: Hongchao Deng <hongchaodeng1@gmail.com>

* Update docs/en/install.md

Co-authored-by: Hongchao Deng <hongchaodeng1@gmail.com>

* remove line

* address comments

Co-authored-by: Hongchao Deng <hongchaodeng1@gmail.com>
2021-01-29 15:46:58 +08:00
Jianbo Sun
5c188dd9cc Merge pull request #952 from wonderflow/removecode
remove unused dependency installation
2021-01-29 14:58:57 +08:00
Jianbo Sun
66fb99954e fix quick start guide as we don't have route trait installed as default (#954)
* fix quick start guide as we don't have route trait installed as default

* add a description for ingress trait
2021-01-29 14:56:38 +08:00
Jianbo Sun
f39660c286 Merge pull request #953 from wonderflow/svcd
deprecate unused vela commands
2021-01-29 13:48:31 +08:00
Jianbo Sun
07e16d9f8a Merge pull request #967 from wonderflow/arm64
build linux/arm64 cli command
2021-01-29 13:47:27 +08:00
Jianbo Sun
2abcb44ee2 Merge pull request #937 from wonderflow/outputs
allow multiple outputs for workloaddefintion
2021-01-29 12:39:36 +08:00
天元
d2ce5856a6 adress comment 2021-01-29 12:38:23 +08:00
天元
bed609e192 build linux/arm64 cli command 2021-01-29 12:18:38 +08:00
天元
6922f7cfab fix ci 2021-01-29 11:39:44 +08:00
天元
aed2494875 allow multiple outputs for workloaddefintion 2021-01-29 11:39:44 +08:00
天元
10076f8516 trait name should not contain dummy when traitdefinition not found 2021-01-29 11:39:44 +08:00
Jianbo Sun
a8b4004e3b Merge pull request #965 from captainroy-hy/not-depend-defref
allow traitDefinition to omit definitionRef
2021-01-29 11:36:22 +08:00
Lei Zhang (Harry)
d1c93ed90c Update docs/en/platform-engineers/overview.md
Co-authored-by: Zheng Xi Zhou <zzxwill@gmail.com>
2021-01-28 19:22:08 -08:00
Jianbo Sun
a042b6b43d Merge pull request #963 from ryanzhang-oss/appDeployment-structure
further develop appDeployment controller
2021-01-29 11:19:59 +08:00
Jianbo Sun
130827629b Merge pull request #962 from allenhaozi/feat/update-del-app-prompt-msg
update delete app prompt information
2021-01-29 11:18:23 +08:00
mahao
82cdb615c0 update delete app prompt information
Signed-off-by: mahao <allenhaozi@gmail.com>
2021-01-29 11:00:44 +08:00
roy wang
7629399683 allow traitDefinition to omit definitionRef
Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-01-29 11:31:03 +09:00
Ryan Zhang
ad496b132a further develop appDeployment controller 2021-01-28 17:59:31 -08:00
Harry Zhang
ef5d3c35c6 Explain KubeVela 2021-01-28 12:30:25 -08:00
Zheng Xi Zhou
2a943c9429 Using Terraform as IaC module in KubeVela (#863)
* Integrate Terraform into KubeVela

Integrated Terrafrom into KubeVela to enable it to deploy
infrastruce resouces by `vela up`

* extend Terraform modules/files as WorkloadDefinition

stop printing terraform log to console

Support one workload consumes two cloud services

Refactor Terraform plugin based on Application Object

add testcase

* refactor code per reviewer's comments

fix rebase issue

* find lost code back

* refactor code to make the modification as little as to that of branch master

* remove blank lines from imports
2021-01-28 18:36:52 +08:00
天元
52aed26b96 update docs 2021-01-28 15:21:04 +08:00
天元
61c256a97c remove unused dependency installation as we have reduce 3rd party dependency , they will be installed as capability from registry 2021-01-28 14:55:25 +08:00
天元
8dbad9e8c1 remove relevant test code 2021-01-28 14:54:09 +08:00
天元
3e8f0b3299 remove vela <trait> command 2021-01-28 14:45:55 +08:00
天元
c1a14a70f5 remove vela comp deploy 2021-01-28 14:41:41 +08:00
just-do1
0a6065d7d0 [#929] Modification to comand vela show WORKLOAD_TYPE or TRAIT (#948)
* [#929] Modification to comand vela show WORKLOAD_TYPE or TRAIT

* update the describetion of --web

* [#929] update --web describtion

* update the doc of check-ref-doc.md
2021-01-28 12:28:47 +08:00
Jianbo Sun
fa58501a97 remove 3rd party dependency from default installation (#946)
* remove 3rd party dependency from default installation

* fix CI
2021-01-27 18:29:42 -08:00
Zheng Xi Zhou
aa03e9c9d4 OpenAPI: Application creation based on Application object (#924)
* OpenAPI: Application creation based on Application object

Implemented Application creation OpenAPI based on new Application object
To #913

* fix e2e problems

* fix import issue
2021-01-28 10:15:26 +08:00
Jaime Zhang
4d00ad78ae #884 #830 complete the trait info when it is applied to * (#890)
* #884 complete the trait info when it is applied to *

* add unit test for trait print which applied to *

* code optimization

* code optimization to go standard

* summarize all 'applies to' content to *
2021-01-27 19:57:47 +08:00
Ryan Zhang
5b26575c16 Merge pull request #945 from wonderflow/charts
Upload vela core chart to alibaba cloud oss for every release and master commit
2021-01-27 01:24:13 -08:00
天元
cf60e72fe9 use the number version 2021-01-27 17:02:10 +08:00
天元
a2707395e9 force push to cloud 2021-01-27 16:37:16 +08:00
天元
a420785dc2 add repo url 2021-01-27 16:32:58 +08:00
天元
ccf47a2189 fix no config 2021-01-27 16:20:55 +08:00
天元
3d98b94fd8 upload charts to alibaba cloud oss bucket 2021-01-27 16:17:23 +08:00
Ryan Zhang
6adb91fb50 Merge pull request #940 from ryanzhang-oss/appDeployment
Add rollout annotation logic in application
2021-01-27 00:14:40 -08:00
Jianbo Sun
d27aa77753 Merge pull request #938 from wonderflow/updatedep
upgrade github.com/stretchr/testify try fix CI
2021-01-27 15:06:58 +08:00
Ryan Zhang
462be588af address comments and fix CI 2021-01-26 20:47:56 -08:00
Ryan Zhang
c85bbe1ae2 add rolling annotation to the application 2021-01-26 00:29:49 -08:00
Ryan Zhang
a257f6e60c application controller ignore annotation 2021-01-26 00:03:53 -08:00
Ryan Zhang
0e987a08b6 Merge pull request #934 from wonderflow/cert-manager
support vela install with helm args and make cert-manager optional
2021-01-25 23:35:56 -08:00
Jianbo Sun
206d343785 Merge pull request #927 from ryanzhang-oss/appdeployment-controller
some initial code for app deployment controller/webhook
2021-01-26 15:24:00 +08:00
天元
1cf1e6c064 upgrade github.com/stretchr/testify try fix CI 2021-01-26 15:00:43 +08:00
Jianbo Sun
c1f50d622b Merge pull request #936 from kqzh/master
fix condition err always nil
2021-01-26 14:49:29 +08:00
Ryan Zhang
e664831ff6 application deployment 2021-01-25 22:17:35 -08:00
kqzh
3a73221661 fix err always nil 2021-01-26 13:58:10 +08:00
Jianbo Sun
97f45ae859 code refactor (#935)
* code refactor

* update boilerplate.go.txt
2021-01-26 10:26:41 +08:00
天元
4cd9a70cfe support vela install with helm args and make cert-manager optional 2021-01-25 19:16:18 +08:00
Weiping Cai
75ecf2f301 support env and config storage driver (#850)
* support env and config storage driver

Signed-off-by: Weiping Cai <weiping.cai@daocloud.io>

* use driver.LocalDriverName to replace  str

Signed-off-by: Weiping Cai <weiping.cai@daocloud.io>
2021-01-25 16:26:42 +08:00
Hongchao Deng
77642f069a Merge pull request #926 from hongchaodeng/design-update
* update APIServer + Catalog design

- add application creation workflow
- make application adaptable to multiple env and clusters
- add module into catalog package format and adapt to helm/terraform
2021-01-24 19:32:23 -08:00
Hongchao Deng
2720028e2a comment 2021-01-24 19:11:36 -08:00
Jianbo Sun
72ee26dbb4 add advanced trait tutorial (#921)
* add advanced trait tutorial

* add more intersiting trait

* init container and patch

* add more traits

* node affinity

* addressing comment
2021-01-25 10:53:36 +08:00
Jianbo Sun
9173ff828f Merge pull request #930 from leejanee/dry-run
Add dry-run command
2021-01-23 12:28:03 +08:00
Hongchao Deng
62ec540fcf update 2021-01-22 13:35:54 -08:00
lj176172
f6a3ade584 lint 2021-01-22 19:17:49 +08:00
lj176172
be49ea092b application dry-run 2021-01-22 19:05:55 +08:00
Hongchao Deng
b173224212 update APIServer + Catalog design
- add application creation workflow
- make application adaptable to multiple env and clusters
- add module into catalog package format and adapt to helm/terraform
2021-01-22 00:24:30 -08:00
Jianbo Sun
c71eea7f90 Merge pull request #923 from zeed-w-beez/master
happy new year
2021-01-22 12:37:08 +08:00
zeed-w-beez
5b1a55b58b happy new year
Use variable-year in copyrights.
2021-01-22 11:25:21 +08:00
Zheng Xi Zhou
eba7049f39 Add Getdefinition OpenAPI in Restful-api docs (#917)
Added Getdefinition api docs and update email contact
2021-01-22 10:20:22 +08:00
Jianbo Sun
65706f401b Merge pull request #857 from captainroy-hy/refactor-apply
using 3-way-merge-patch instead of "json merge patch for workload" and "update for trait"
2021-01-21 18:42:00 +08:00
roywang
59a6ef5140 implement util/apply with three-way diff
add/fix unit tests

fix e2e tests

update doc & add unit test

Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-01-21 18:05:29 +09:00
Jianbo Sun
1fcd4ca55e Merge pull request #920 from ryanzhang-oss/app-deployment-controller
refactor application controller
2021-01-21 16:52:00 +08:00
Ryan Zhang
d74dbb4fda refactor application controller 2021-01-21 00:34:04 -08:00
Jianbo Sun
b6edd4bc7e Merge pull request #916 from resouer/dev
Fix ref doc guide
2021-01-21 14:04:18 +08:00
Harry Zhang
879c6c8878 Fix ref doc guide 2021-01-20 21:22:49 -08:00
Hongchao Deng
c722f561b0 Merge pull request #901 from zzxwill/ref-docs
Add `Writing Appfile` based on capability references docs
2021-01-20 19:20:32 -08:00
Jianbo Sun
0b5052ad91 Merge pull request #912 from resouer/dev
Update the concept doc to reflect app crd
2021-01-21 10:52:04 +08:00
Jianbo Sun
4661297ca5 Merge pull request #902 from ryanzhang-oss/rollout-structure
Rollout code framework
2021-01-21 10:02:37 +08:00
Harry Zhang
87cc86dde2 Update the concept doc to reflect app crd 2021-01-20 17:33:20 -08:00
Ryan Zhang
adbe1f9368 add the rollout code framework 2021-01-20 13:08:00 -08:00
Zheng Xi Zhou
f0d8bd078b address comments
Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2021-01-20 15:56:20 +08:00
zzxwill
78b86d84b6 Add Writing Appfile based on capability references docs
Introduced `vela show` with and without flag `--no-website`, and
official site to help setting properties for workload types and
traits.
2021-01-20 15:56:20 +08:00
Jianbo Sun
ba4374dc27 Merge pull request #900 from sunny0826/docs
update docs
2021-01-20 15:35:13 +08:00
guoxudong
806c396264 update docs 2021-01-20 13:37:43 +08:00
Jianbo Sun
721ca9ff92 Merge pull request #886 from zzxwill/ref-docs
Generate the reference doc for a workload type or trait in the local host website and in a table style on Cli console
2021-01-20 10:34:03 +08:00
Ryan Zhang
023d24d392 draft 2021-01-19 15:50:38 -08:00
zzxwill
a674174cda add more unittest 2021-01-19 21:56:26 +08:00
zzxwill
48f3ed94b7 convert configuration files to variables
open the exact reference doc link for a capability

add option `--no-website` to support display reference docs on console
2021-01-19 15:16:40 +08:00
Jianbo Sun
47f35e6d62 Merge pull request #861 from rain18/health
feature: add healthcheck policy for workload and trait by cue template
2021-01-19 13:23:58 +08:00
zhangrun.zr
f55dd467b9 feature: add healthcheck policy for workload and trait by cue template
Signed-off-by: zhangrun.zr <zhangrun.zr@alibaba-inc.com>
2021-01-19 13:03:05 +08:00
Ryan Zhang
7524aeee31 Merge pull request #852 from rain18/task
feature: add http task for application cue template
2021-01-18 20:11:59 -08:00
Hongchao Deng
cb368c2f8c roadmap: add template, rewrite 2020 winter, add 2021 spring (#891)
* roadmap: add template, rewrite 2020 winter, add 2021 spring

Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>

* Update docs/en/roadmap/2020-12-roadmap.md

Co-authored-by: Zheng Xi Zhou <zzxwill@gmail.com>

* update

Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>

Co-authored-by: Zheng Xi Zhou <zzxwill@gmail.com>
2021-01-19 09:57:27 +08:00
Jianbo Sun
64c560583e Merge pull request #894 from captainroy-hy/fix-unstable-ut-4
fix unstable unit test
2021-01-19 09:55:33 +08:00
roy wang
580056b209 fix unstable unit test
Signed-off-by: roy wang <seiwy2010@gmail.com>
2021-01-18 18:59:58 +09:00
zhangrun.zr
2706e63743 fix: use httptest instead of echo and rename context
Signed-off-by: zhangrun.zr <zhangrun.zr@alibaba-inc.com>
2021-01-18 15:52:22 +08:00
zzxwill
3546001bf6 Generate a local site to host all reference docs
By Cli `vela reference` to generate reference docs for all workload
types and traits, and host them in a local website.

To fix #880
2021-01-18 12:18:15 +08:00
Jianbo Sun
40aa97363e Merge pull request #787 from ryanzhang-oss/rollout
rollout CRD API Spec
2021-01-18 11:01:59 +08:00
Ryan Zhang
f6345534e6 fix field name 2021-01-15 19:19:32 -08:00
Ryan Zhang
df32d4b1ba update rollout CRD spec 2021-01-15 19:19:32 -08:00
Hongchao Deng
a10dccf5bd Vela APIServer and Catalog Design (#881)
* APIServer + Catalog Architecture Design

Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>

* update
2021-01-15 11:22:59 -08:00
Jianbo Sun
f40a41dbc1 Merge pull request #888 from resouer/fix-msg
Add more details for platform builder
2021-01-15 19:51:28 +08:00
zhangrun.zr
732d8f76d3 feature: add http task for application cue template
Signed-off-by: zhangrun.zr <zhangrun.zr@alibaba-inc.com>
2021-01-15 19:20:39 +08:00
Jianbo Sun
4732bd943d Update docs/en/concepts.md
Co-authored-by: Zheng Xi Zhou <zzxwill@gmail.com>
2021-01-15 19:05:40 +08:00
Jianbo Sun
89863b30e8 fix ci and refactor code (#887)
* adjust CI scripts

* fix go ci order

* try fix

* use appfile to update trait

* fix vela status

* use assert.ObjectAreEqual to check diff for map case

* remove application controller own AC and Components

* tune place

* fix lint

* update

* remove error check of vela init test

Co-authored-by: Ryan Zhang <yangzhangrice@hotmail.com>
2021-01-15 19:04:12 +08:00
Harry Zhang
00ba0697dc Update concepts and readme to reflect recent change 2021-01-14 22:14:57 -08:00
Harry Zhang
30585f80e6 Init platform builder doc 2021-01-14 21:38:03 -08:00
Zheng Xi Zhou
83ce5ec724 Add ConflictsWith and more sections for Rollout (#869)
Added `ConflictsWith` and `How Rollout Works` section to Rollout Reference Docs.
To fix #777
2021-01-14 17:22:55 +08:00
Jianbo Sun
4467084c0e Merge pull request #875 from wonderflow/vela-up
add tests for application controller
2021-01-11 21:23:41 +08:00
天元
1f1f3af7b7 refacter and add tests 2021-01-11 20:48:17 +08:00
Ryan Zhang
d38c08af56 Merge pull request #846 from leejanee/vela-up
vela up generate application object instead of AC and Component
2021-01-10 22:10:39 -08:00
天元
2761e7afb9 use map[string]string for scope 2021-01-11 10:54:57 +08:00
天元
8410f03eb0 addressing comments 2021-01-11 10:45:13 +08:00
Jianbo Sun
e51c283c1d Merge pull request #868 from zzxwill/apischema
Add unit-test for generateOpenAPISchema
2021-01-09 21:48:33 +08:00
天元
f694d1ad5d add tests 2021-01-08 18:16:03 +08:00
zzxwill
674408784b address comments and add one more testcase 2021-01-08 15:46:30 +08:00
majian
19e8aa2af6 Dashboard fix (#871)
* 1.fix repeated click does not show component bug
2.typed
3.fix locales

* capability rename

Co-authored-by: Zheng Xi Zhou <zzxwill@gmail.com>
2021-01-08 10:54:15 +08:00
天元
3dd954541e add tests 2021-01-07 20:24:25 +08:00
天元
ba614da809 fix ci 2021-01-07 19:40:32 +08:00
天元
b92e2a92fc try test again 2021-01-07 19:28:19 +08:00
天元
718a4b1999 fix ci 2021-01-07 17:52:15 +08:00
天元
de83320306 remove unused code 2021-01-07 13:07:28 +08:00
天元
4cfee561b9 refactor and add scope to application 2021-01-07 13:07:12 +08:00
Jianbo Sun
6b78945c18 Merge pull request #858 from Incubator4th/route-provider
Add provider parameter to route trait
2021-01-07 11:49:41 +08:00
incubator4th
72d6981628 set provider can be empty 2021-01-06 17:22:16 +08:00
zzxwill
2243632d0c Add unit-test for generateOpenAPISchema
Added title for all fields and added unit-test for generateOpenAPISchema FixOpenSchema,
2021-01-06 14:36:36 +08:00
Jianbo Sun
775991cfaa Merge pull request #784 from zzxwill/form-render
Implement API for generating OpenAPI schema for definition
2021-01-06 11:58:20 +08:00
Zheng Xi Zhou
da097989f8 Update pkg/appfile/service.go
Co-authored-by: Hongchao Deng <hongchaodeng1@gmail.com>
2021-01-06 11:05:37 +08:00
zzxwill
53164a4d2f Implement API for generating OpenAPI schema for definition
Fetched cue parameters from workloaddefinition/traitdefinition, generated
OpenAPI v3 schema, fixed problems of tainted `description` filed, added filed
"title" required by form-render component, added it in API server router

To fix #680
2021-01-05 21:57:38 +08:00
天元
3d3b3239d8 add trait type 2021-01-05 21:18:27 +08:00
天元
b1a97b08ec add workload type to label 2021-01-05 21:08:41 +08:00
incubator4th
72663f68cb add provider to route.cue 2021-01-05 21:06:55 +08:00
天元
8c7db9b0e0 larger time 2021-01-05 19:31:11 +08:00
天元
c72941f916 check application 2021-01-05 19:18:48 +08:00
天元
cc590d7c42 using vela up to deploy 2021-01-05 18:10:22 +08:00
天元
5e06e41477 try fix ci 2021-01-05 17:15:55 +08:00
天元
6e658d1ea8 Merge branch 'master' into vela-up 2021-01-05 17:15:03 +08:00
Jianbo Sun
4832d95506 Merge pull request #854 from wonderflow/contribute
refine contributing doc
2021-01-05 13:33:46 +08:00
Jianbo Sun
61b9816296 Merge pull request #853 from wonderflow/tests
add test for component revision hook
2021-01-05 12:09:57 +08:00
天元
9a613da8c5 refine contributing doc 2021-01-05 12:09:23 +08:00
guoxudong
72ee5db872 Fix `each child in a list should have a unique "key" prop.' (#844)
* fix capability

* fix
2021-01-04 13:30:59 -08:00
lj176172
cb68136f93 remove 2021-01-04 17:26:34 +08:00
lj176172
a181ff46b6 extend exec-timeout period 2021-01-04 16:28:38 +08:00
lj176172
2e1433c366 extend exec-timeout period 2021-01-04 16:04:54 +08:00
lj176172
bac35a425f extend exec-timeout period 2021-01-04 15:53:03 +08:00
lj176172
08d0b4830a recover 2020-12-31 18:41:46 +08:00
lj176172
a1d9b3d032 remove trait attach 2020-12-31 18:31:24 +08:00
Jianbo Sun
8d0595ed4e Update cmd/core/main.go 2020-12-31 17:13:13 +08:00
天元
01bd05d0a5 add test for component revision hook 2020-12-31 16:41:55 +08:00
lj176172
76d585795b fix ls command 2020-12-31 16:18:37 +08:00
lj176172
4088a20252 ApplyApp 2020-12-31 12:26:05 +08:00
Jianbo Sun
810cbcaae4 Merge pull request #841 from zzxwill/issue-trait-no-definition
Allow trait to work without TraitDefinition
2020-12-31 10:52:01 +08:00
zzxwill
dfdb833abe Check trait CR is created and update ApplicationConfiguration 2020-12-31 09:16:56 +08:00
Jianbo Sun
f10e53c1eb Merge pull request #847 from wonderflow/application
refine error message: trait definition not found
2020-12-30 19:01:05 +08:00
lj176172
a88d0a5660 lint code 2020-12-30 18:26:31 +08:00
天元
02bb9a1dc1 refine error message: trait definition not found 2020-12-30 18:25:30 +08:00
lj176172
950238aa11 export scopes 2020-12-30 18:19:38 +08:00
lj176172
b52fc09fd6 lint code 2020-12-30 14:13:27 +08:00
lj176172
062c906e95 rebase master 2020-12-30 14:08:54 +08:00
Jianbo Sun
69e860a1e8 Merge pull request #843 from zzxwill/dashboard-start
Refine Dashboard README
2020-12-30 13:11:54 +08:00
zzxwill
0bd85d359a Refine Dashboard README
Refined dashboard readme with all-in-one start command
2020-12-30 11:06:51 +08:00
Jianbo Sun
1abbe1f7cf Merge pull request #842 from ryanzhang-oss/minor-improve
Use the correct cue parse api
2020-12-30 10:19:06 +08:00
Jianbo Sun
88143ae64a Merge pull request #834 from zzxwill/workload
Add description field for Capability/Workloads list
2020-12-30 10:08:13 +08:00
Ryan Zhang
b25e911a74 use the correct cue parse api 2020-12-29 13:24:04 -08:00
zzxwill
d8d891f6c9 Allow trait to work without TraitDefinition
Fix the issue of applying trait if its traitdefinition
doesn't exits.

To fix issue #839
2020-12-30 00:14:26 +08:00
Jianbo Sun
a7f823940c Merge pull request #832 from wonderflow/application
refactor application object to have basic schema
2020-12-29 17:11:35 +08:00
天元
3a47d5de73 refactor application object to have more strict schema 2020-12-29 15:48:32 +08:00
zzxwill
eb2501f644 fix lint issue 2020-12-29 10:58:07 +08:00
zzxwill
abce944aad Add description field for Capability/Workloads list
Added `description` field for workloads.

To fix #821
2020-12-29 10:43:05 +08:00
Jianbo Sun
386d5dd0ee Merge pull request #833 from zzxwill/workload
Expend column width for "vela workloads/traits"
2020-12-28 22:00:59 +08:00
zzxwill
509895511b Expend column width for "vela workloads/traits"
Expended column width for `vela workloads/traits` and also
shortened the description for all workloads and traits.
Fixed a tiny issue in hack/reference/generate.go

To fix issue #827
2020-12-28 20:57:22 +08:00
Weiping Cai
c0ebe8dc62 support mutli storage resources,define storage interface and implemen… (#776)
* support mutli storage resources,define storage interface and implement local storage

Signed-off-by: Weiping Cai <weiping.cai@daocloud.io>

* support mutli storage resources,define storage interface and implement local storage

Signed-off-by: Weiping Cai <weiping.cai@daocloud.io>

* support mutli storage resources,define storage interface and implement local storage

Signed-off-by: Weiping Cai <weiping.cai@daocloud.io>

* support mutli storage resources,define storage interface and implement local storage

Signed-off-by: Weiping Cai <weiping.cai@daocloud.io>

* move application/Application to storage/driver pkg

Signed-off-by: Weiping Cai <weiping.cai@daocloud.io>

* update storage import format

Signed-off-by: Weiping Cai <weiping.cai@daocloud.io>
2020-12-28 18:39:58 +08:00
Jianbo Sun
ebf1b51d58 Merge pull request #831 from zzxwill/mutation-webhook-conflicts
Add "How to fix issue: MutatingWebhookConfiguration mutating-webhook-configuration exists?"
2020-12-28 18:39:17 +08:00
zzxwill
4b27f9b4e2 Add "How to fix issue: MutatingWebhookConfiguration mutating-webhook-configuration exists?"
Added another question.

To cover issue #794
2020-12-28 17:44:58 +08:00
Jianbo Sun
8f6d0fded8 Merge pull request #825 from wonderflow/fix1
run CI check for all PR including docs/ and *md
2020-12-28 13:38:41 +08:00
Jianbo Sun
e8cabdc13c Merge pull request #824 from zzxwill/issue-workloads
Add "description" field for each workload from ListWorkloads API
2020-12-28 10:02:01 +08:00
Jianbo Sun
a03d9f2626 Merge pull request #828 from zzxwill/issue-vela-workloads
Refine error message for trait without `spec.extension.template`
2020-12-27 11:06:50 +08:00
zzxwill
37cb5ccb51 Add "description" field for each workload from ListWorkloads API
Workload item doesn't have descriptin property, added it to help display
the description in capability list on Dashboard
2020-12-25 19:04:54 +08:00
zzxwill
4c34048186 Refine error message for trait without spec.extension.template
Error message of trait without `spec.extension.template`
adheres with normal message when executing "vela workloads".

To fix #826
2020-12-25 18:25:19 +08:00
天元
76e0bbcabd run CI check for all PR including docs/ and *md 2020-12-25 17:53:04 +08:00
Jianbo Sun
32bc74456a Merge pull request #810 from Cweiping/fix/fix_promethus_typo_error_2
fix typo error of promethus
2020-12-25 17:39:22 +08:00
Jianbo Sun
82df7c3a71 Merge pull request #811 from captainroy-hy/fix-integration-test
fix unstable integration test
2020-12-25 17:38:21 +08:00
majian
c06aca6f60 add dashboard lint check (#815) and remove unused ref 2020-12-25 14:24:06 +08:00
Jianbo Sun
69dcf2fc5a Merge pull request #807 from wonderflow/datainput
support strategy patch datainput merge for slice case
2020-12-25 12:42:13 +08:00
Yang Liu
04c9af5c81 Merge pull request #812 from wonderflow/revision
support custom component revision hook
2020-12-25 11:51:02 +08:00
guoxudong
1e6248d189 [Dashboard] Capabilities page (#803)
* add capabilities (workloads and traits)

* yarn prettier
2020-12-25 11:13:08 +08:00
天元
e3b4bcd2ca support custom component revision 2020-12-25 09:40:54 +08:00
roywang
9730cb438d fix unstable integration test
Signed-off-by: roywang <seiwy2010@gmail.com>
2020-12-24 18:22:27 +09:00
Jianbo Sun
a8f48eb140 Merge pull request #809 from hongchaodeng/owner
add sunny0826 (Xudong Guo) as reviewer
2020-12-24 14:20:59 +08:00
Weiping Cai
ab6a170c1d fix typo error of promethus
Signed-off-by: Weiping Cai <weiping.cai@daocloud.io>
2020-12-24 14:00:17 +08:00
Hongchao Deng
dc9b1eb6fc add sunny0826 (Xudong Guo) as reviewer 2020-12-23 21:55:04 -08:00
Hongchao Deng
629bf00b63 update owner file (#808)
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-12-23 21:51:31 -08:00
Jian.Li
1f2c38d3c7 supports strategy patch for definition template (#798)
* supports strategy patch for definition template

* strategy unify

* lint code

* test cases

* add docs

* add test cases

* lint code

* add test cases for walk

* fix close fun

* lint code

* const variable for patchKey

* lint code

* interceptor for ast.Node

* add test cases

* check diff

* strategyUnify

* listMergeByKey

* prompts
2020-12-24 13:35:34 +08:00
Hongchao Deng
b129637cf2 add Community doc to clarify membership ladder (#805)
* add Community doc to clarify membership ladder

* update
2020-12-23 11:07:06 -08:00
Yue Wang
630f1e48bc enable webhooks for AppConfig/Comp (#781)
rename webhooks

fix e2e tests

Signed-off-by: roywang <seiwy2010@gmail.com>
2020-12-23 11:02:06 -08:00
天元
4bed55b400 support strategy patch datainput merge for slice case 2020-12-23 21:53:05 +08:00
Jianbo Sun
54ca5c115f Merge pull request #774 from captainroy-hy/trait-conflict-validation
implement conflictsWtih feature in trait definition
2020-12-23 13:32:38 +08:00
Zheng Xi Zhou
ddba62fba0 Generate restful api based on Swagger (#765)
* Generate restful api based on Swagger

As OpenAPI has to be quickly developped to support front-end developement, so
did the restufl api docs. Based on swagger, generate the docs automatically

* fix conflicts and add application list annotation
2020-12-22 16:35:26 -08:00
guoxudong
15a24c65b9 fix toc (#802) 2020-12-22 16:32:48 -08:00
guoxudong
56285ca540 add restful api docs (#801) 2020-12-22 15:16:56 +08:00
Jianbo Sun
b1c3f593db Merge pull request #800 from sunny0826/brew-install
docs add brew
2020-12-22 14:53:45 +08:00
guoxudong
e23f6b3866 docs add brew 2020-12-22 14:47:54 +08:00
Jianbo Sun
2943bc7ce1 Merge pull request #797 from wonderflow/fixrevision
fix workload reconcile error when revision enable trait is attached
2020-12-21 22:27:47 +08:00
Jianbo Sun
da0f8916aa Merge pull request #790 from zzxwill/issue-vela-install
Refine error message for vela installation
2020-12-21 21:15:21 +08:00
天元
7609da212f fix workload can not be update when revision enable trait is attached 2020-12-21 21:12:19 +08:00
Zheng Xi Zhou
7f87a47832 Update pkg/commands/system.go
Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2020-12-21 18:05:42 +08:00
Jianbo Sun
04868d217b Merge pull request #791 from zzxwill/autoscale-metrics-server
Add "Autoscale: how to enable metrics server in various Kubernetes clusters?" in FAQ
2020-12-21 14:35:42 +08:00
zzxwill
56aa3c24d7 Add "Autoscale: how to enable metrics server in various Kubernetes clusters?" in FAQ
Also linked the FAQ in set-autoscale.md
2020-12-18 21:02:11 +08:00
zzxwill
a54ba9bb54 Refine error message for vela installation
Refined error message for vela installation and increase
timeout to 5 minutes from 2 minutes. And did some code
refactoring

To fix issue #783
2020-12-18 19:41:38 +08:00
Jianbo Sun
fbe93dc847 Merge pull request #771 from wonderflow/blog
add blog about how to extend kubevela by cuelang
2020-12-18 19:33:59 +08:00
天元
dbd855cc25 address comments 2020-12-18 19:11:57 +08:00
Hongchao Deng
7f136159c0 fix inconsistency for dev proxy config (#786) 2020-12-17 20:39:27 -08:00
Hongchao Deng
af61b59c5e return go time in Format RFC3339 to match js Date (#785)
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-12-17 20:11:18 -08:00
majian
c09e4df452 1.add application list page (#779)
2.ignore the deleted applicationconfig resource instead return nil
3.code style fix
2020-12-17 09:22:38 -08:00
Jianbo Sun
1694980eba Update docs/blog/zh/extend-kubevela-by-cuelang-in-20-mins.md
Co-authored-by: Lei Zhang (Harry) <resouer@gmail.com>
2020-12-17 09:54:46 +08:00
Jianbo Sun
feee1306fd Update docs/blog/zh/extend-kubevela-by-cuelang-in-20-mins.md
Co-authored-by: Lei Zhang (Harry) <resouer@gmail.com>
2020-12-17 09:54:30 +08:00
Jianbo Sun
0d56da4ab8 Update docs/blog/zh/extend-kubevela-by-cuelang-in-20-mins.md
Co-authored-by: Lei Zhang (Harry) <resouer@gmail.com>
2020-12-17 09:53:28 +08:00
roywang
582c3788c4 implement TraitConflict check in webhook
add unit tests

Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-12-16 18:01:44 +09:00
天元
b8fd6f9823 add blog about how to extend kubevela by cuelang 2020-12-15 20:14:50 +08:00
Jianbo Sun
0fab691ba3 Merge pull request #773 from wonderflow/fiximports
minor fix
2020-12-15 15:56:23 +08:00
天元
3cb172f7ff minor fix 2020-12-15 13:55:36 +08:00
Jian.Li
e882a650ae Extend application's capabilities by trait definition (#742)
* add dsl pkg

* realize context capabilities for application

* fix golint

* fix check-diff

* upgrade vela server sample

* comment group

* Definition Reference be Optional & fix  three-part trait crd apply without namespace

* Improve samples
2020-12-13 20:00:06 -08:00
Jianbo Sun
ef9c26ffec Merge pull request #686 from majian159/hotfix-notfound-error
application not found return error. fix #685
2020-12-14 10:41:14 +08:00
majian
cf2a57c96a Integrate swagger and add env api (#764)
* 1.swagger integrate
2.add env swagger comment

Signed-off-by: majian <majian159@live.com>

* use swagger.json

Signed-off-by: majian <majian159@live.com>
2020-12-12 08:54:33 -08:00
majian
7acc52ebdb 1.use yarn (#769)
2.reinstall package

Signed-off-by: majian <majian159@live.com>
2020-12-11 10:28:08 -08:00
Jianbo Sun
3c35d9dadc Merge pull request #684 from majian159/feature-exec-svc
add svc flag for exec command.
2020-12-11 20:53:41 +08:00
majian
07742b6349 application not found return error. fix #685 and fix unit tests
Signed-off-by: majian <majian159@live.com>
2020-12-11 19:54:18 +08:00
majian
d45d086efb add svc flag for exec command and add unit test
Signed-off-by: majian <majian159@live.com>
2020-12-11 19:32:50 +08:00
Jianbo Sun
a31a316171 Merge pull request #767 from sunny0826/brew
Adapted for brew installation
2020-12-11 13:54:50 +08:00
guoxudong
ec287a181f Adapted for brew installation 2020-12-11 10:20:53 +08:00
Zheng Xi Zhou
50f4d10b00 Add make target to start both OpenAPI server and dashboard (#766)
Start up dashboard all in one
2020-12-10 11:10:10 -08:00
majian
9f27f70da8 1.migrate-env (#757)
2.add lockfile to version control
3.update packages
2020-12-10 15:05:33 +08:00
Jianbo Sun
3df55a92f3 Merge pull request #762 from resouer/dev
Update slack channel link
2020-12-10 12:08:04 +08:00
Harry Zhang
fd65c27ecb Update slack channel link 2020-12-09 19:49:15 -08:00
Jianbo Sun
576d928a83 Merge pull request #761 from captainroy-hy/fix-golint-1
fix golint issues
2020-12-10 11:39:20 +08:00
roywang
d14558a227 fix golint issues
Signed-off-by: roywang <seiwy2010@gmail.com>
2020-12-10 12:10:52 +09:00
Jianbo Sun
f48aba6f66 Merge pull request #743 from captainroy-hy/faster-refresh
faster refresh capabilities
2020-12-10 10:16:52 +08:00
Zheng Xi Zhou
f51dccf956 Minor updates on docs (#758)
Updated reference docs for autoscale and task, updated
cli docs
2020-12-09 10:35:59 -08:00
roywang
a961b002c2 faster refresh capabilities
Signed-off-by: roywang <seiwy2010@gmail.com>
2020-12-09 23:51:04 +09:00
Jianbo Sun
bffd43fa2c Merge pull request #754 from zzxwill/disscussion
Remove "Question" issue template
2020-12-09 22:14:47 +08:00
Jianbo Sun
2a88f9221f Merge pull request #728 from captainroy-hy/fix-uitable-wrap
fix cmd uitable wrap issue
2020-12-09 22:14:05 +08:00
Jianbo Sun
efdef27d0a Merge pull request #756 from zzxwill/extending-docs
Minor docs fix
2020-12-09 22:12:10 +08:00
roy wang
58bef9791f fix cmd uitable wrap issue
Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-12-09 19:48:17 +09:00
zzxwill
c1de71d122 Minor docs fix
In extending trait docs, correct heading level for "Step 3"
2020-12-09 17:06:14 +08:00
majian
f8e320b97c Feature dashboard scaffold init. (#747)
* ant design pro5 init.

* scaffold init

Signed-off-by: majian <majian159@live.com>
2020-12-09 16:48:48 +08:00
zzxwill
f69476df37 Remove "question" issue template
Removed "Question" issue as we enable Github "Discussion" #744
2020-12-09 14:50:29 +08:00
Jianbo Sun
922892a909 Merge pull request #753 from zzxwill/faq
Add `what's the difference between Kubevela and helm` in FAQ
2020-12-09 14:35:43 +08:00
zzxwill
f36f7296fd Add what's the difference between Kubevela and helm in FAQ
Added the question from #704 in FAQ
2020-12-09 14:32:30 +08:00
Jianbo Sun
eff9d5f6e9 Merge pull request #752 from ElementakGod/fix-rds
Fixed the problem that the rds crd name is incorrect
2020-12-09 13:55:13 +08:00
Jianbo Sun
a75f32857a Merge pull request #750 from sunny0826/docs
Toc adapts to narrow screens
2020-12-09 13:41:19 +08:00
guoxudong
f011fe14bc fix 2020-12-09 13:40:04 +08:00
陈浩
7889a8c467 change the name of rds crd 2020-12-09 13:37:48 +08:00
guoxudong
f37cb3a1a7 Toc adapts to narrow screens 2020-12-09 13:01:35 +08:00
Jianbo Sun
bb6b050d15 Merge pull request #745 from ryanzhang-oss/ack-cleanup
make Vela work with ACK and clean up imports and scripts
2020-12-09 11:59:35 +08:00
Jianbo Sun
ec8427c419 Merge pull request #746 from ryan4yin/fix-appfile
fix: load appfile
2020-12-09 11:55:16 +08:00
ryan
3211c89610 fix: load appfile 2020-12-09 11:33:26 +08:00
Ryan Zhang
92f31a100e make vela work with ACK and clean up 2020-12-08 17:33:27 -08:00
guoxudong
960322c21f Docs update (#741)
* update docs

* add blog

* fix
2020-12-08 10:17:24 -08:00
912988434
f0596c4914 fix task( k8s job ) restartpolicy default Always (#723)
* fix task( k8s job ) restrtpolicy default Always

* Update the parameter policy to  restartPolicy

* Update the parameter restartPolicy to restart

* Update charts/vela-core/templates/defwithtemplate/task.yaml

Co-authored-by: Ryan Zhang <yangzhangrice@hotmail.com>

* Update hack/vela-templates/cue/task.cue

Co-authored-by: 李帅 <lishuai@MacBook-Pro.local>
Co-authored-by: Katacoda Scenario <scenario@katacoda.com>
Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
Co-authored-by: Ryan Zhang <yangzhangrice@hotmail.com>
2020-12-08 16:04:06 +08:00
Jianbo Sun
4ff9639daa Merge pull request #737 from wonderflow/addrelease
add release version into README
2020-12-08 10:06:53 +08:00
Jianbo Sun
8513c40b62 Merge pull request #738 from wonderflow/updateo
update owners file
2020-12-07 21:08:26 +08:00
天元
9224e8eb47 fix CI 2020-12-07 20:15:40 +08:00
天元
ee547ec441 add release version into README 2020-12-07 15:30:39 +08:00
天元
dc4071d0bc update owners file 2020-12-07 15:22:26 +08:00
Jianbo Sun
1ec07b0198 Merge pull request #722 from wonderflow/doc
add some detail for route design
2020-12-07 11:29:13 +08:00
Jianbo Sun
a848dd1bf3 Merge pull request #732 from zzxwill/design-docs
Fix broken link
2020-12-07 09:48:29 +08:00
zzxwill
901b1ef83e Fix broken link
Fixed broken link for `Capability Oriented` in appfile-design.md
2020-12-05 23:50:09 +08:00
Jianbo Sun
79c2209d19 Merge pull request #729 from wonderflow/setup
fix build issue
2020-12-05 16:00:04 +08:00
天元
c018b4e722 fix log 2020-12-05 15:15:02 +08:00
Jianbo Sun
28ede4adca Merge pull request #726 from LeoLiuYan/fix_restapi
Fix function `GetCapabilityDir` error handler and variable `env` typo
2020-12-05 10:39:18 +08:00
liuyan
c61efb1352 Fix function GetCapabilityDir error handler and variable env typo 2020-12-05 09:26:35 +08:00
lllwan
b36bfa02a6 Add JSON format appfile support (#691)
* Add JSON format appfile support

Co-authored-by: 摩羯 <wangxun@cai-inc.com>
Co-authored-by: wangxun <wangxun@zcydeMBP.lan>
2020-12-05 08:06:25 +08:00
Hongchao Deng
6f9d49be52 Merge pull request #717 from wonderflow/lockversion
build version into vela-core and lock helm version on release
2020-12-04 16:04:10 -08:00
Jianbo Sun
f702b845be Merge pull request #711 from zzxwill/faq
Add "warning: Namespace cert-manager exists" in FAQ
2020-12-04 18:37:54 +08:00
Jianbo Sun
2a2bc40282 Merge pull request #725 from Cweiping/feature/fix_port_forword_long_text
fix long text port forword
2020-12-04 18:26:02 +08:00
Weiping Cai
305360b755 fix long text port forword 2020-12-04 18:06:25 +08:00
天元
799bcf9cef add some detail for route design 2020-12-04 17:27:41 +08:00
天元
21cae61f93 build version into vela-core and lock helm version on release 2020-12-04 16:45:37 +08:00
Jianbo Sun
89507ec8ef Merge pull request #716 from zzxwill/official-site
Fix Webservice/worker reference link 404 and add Scaler link
2020-12-04 16:23:32 +08:00
zzxwill
2bd0e0af81 Fix Webservice/worker reference link 404 and add Scaler link
To fix 404 issue https://kubevela.io/#/en/developers/references/workload-types/web-service
and add manualscalertrait link
2020-12-04 16:11:57 +08:00
Hongchao Deng
169b02f965 Merge pull request #713 from wonderflow/fixjob
fix task(k8s job) definition
2020-12-03 20:10:33 -08:00
天元
9f44bb128f fix job definition 2020-12-04 11:52:13 +08:00
zzxwill
b7d16f7188 Add "warning: Namespace cert-manager exists" in FAQ
Added another case in FAQ.
Fix #701
2020-12-04 10:57:14 +08:00
Zheng Xi Zhou
06585fea92 Support disable installation of builtin capabilities (#687)
* Support disable installation of builtin capabilities

Added vela core bootstrap flag `--enable-caps` to support no
installation for builtin capabiliteis

Feature #658

* revert flag to "disable-cpas"

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>

* Address comments

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2020-12-04 10:03:25 +08:00
Jianbo Sun
7d3397ac31 Merge pull request #673 from zzxwill/docs-reference
Auto-generate reference docs
2020-12-03 18:11:49 +08:00
Jianbo Sun
8f9104387e Merge pull request #706 from zzxwill/faq
FAQ
2020-12-03 17:51:37 +08:00
zzxwill
2c3c97560d FAQ
Add FAQ on installation related questions in `Reference` section of
the official site
2020-12-03 17:17:11 +08:00
Jian.Li
ee906dbd5a Using CUE to implement OAM model on Kubernetes server side (#669)
Init: Using CUE to implement OAM model on Kubernetes server side
* vela server

* fix refator

* lint code

* vela server

* fix refator

* lint code

* rebase upstream

* remove lister

* add vela-server sample

* fix lint error

* fix lint error

* fix check-diff error

* add test case

* add test case for application controller

* add reconciler test with ginkgo

* remove make server

* remove the kustomize scripts

* fix units test bug

* config direct

* suite test

* add application validater

Co-authored-by: lj176172 <lj176172@alibaba-inc.com>
2020-12-03 17:09:55 +08:00
Jianbo Sun
a4e68dd604 add doc for users to migrate from oam-runtime to kubevela (#697)
* add doc for users to migrate from oam-runtime to kubevela

* Update design/vela-core/migrate-from-oam-runtime.md

Co-authored-by: Zheng Xi Zhou <zzxwill@gmail.com>

* Update design/vela-core/migrate-from-oam-runtime.md

Co-authored-by: Zheng Xi Zhou <zzxwill@gmail.com>

* Update design/vela-core/migrate-from-oam-runtime.md

Co-authored-by: Zheng Xi Zhou <zzxwill@gmail.com>

* Update design/vela-core/migrate-from-oam-runtime.md

Co-authored-by: Zheng Xi Zhou <zzxwill@gmail.com>

* Update design/vela-core/migrate-from-oam-runtime.md

Co-authored-by: Zheng Xi Zhou <zzxwill@gmail.com>

* Update design/vela-core/migrate-from-oam-runtime.md

Co-authored-by: Zheng Xi Zhou <zzxwill@gmail.com>

* Update design/vela-core/migrate-from-oam-runtime.md

Co-authored-by: Lei Zhang (Harry) <resouer@gmail.com>

* Update design/vela-core/migrate-from-oam-runtime.md

Co-authored-by: Lei Zhang (Harry) <resouer@gmail.com>

* add disable webhook

* Update design/vela-core/migrate-from-oam-runtime.md

Co-authored-by: Lei Zhang (Harry) <resouer@gmail.com>

* Update design/vela-core/migrate-from-oam-runtime.md

Co-authored-by: Lei Zhang (Harry) <resouer@gmail.com>

* Update design/vela-core/migrate-from-oam-runtime.md

Co-authored-by: Lei Zhang (Harry) <resouer@gmail.com>

* Update design/vela-core/migrate-from-oam-runtime.md

Co-authored-by: Lei Zhang (Harry) <resouer@gmail.com>

* address comments

* Update design/vela-core/migrate-from-oam-runtime.md

Co-authored-by: Lei Zhang (Harry) <resouer@gmail.com>

* Update design/vela-core/migrate-from-oam-runtime.md

Co-authored-by: Hongchao Deng <hongchaodeng1@gmail.com>

Co-authored-by: Zheng Xi Zhou <zzxwill@gmail.com>
Co-authored-by: Lei Zhang (Harry) <resouer@gmail.com>
Co-authored-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-12-03 15:29:56 +08:00
Jianbo Sun
b45b9dd6c7 Merge pull request #703 from hongchaodeng/export
add export command and argo gitops sample
2020-12-03 15:17:10 +08:00
Hongchao Deng
c52847eaaa add codecov threshold 2020-12-02 22:33:13 -08:00
Hongchao Deng
306b21459e add export command and argo gitops sample
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-12-02 22:25:57 -08:00
Jianbo Sun
af5bdd713f Merge pull request #702 from zzxwill/issue-template
Remove automatically prefixed "[BUG]" in the issue title
2020-12-03 12:10:58 +08:00
zzxwill
2bd770d88d Remove automatically prefixed "[BUG]" in the issue title
Remove "[BUG]" from the default issue as maintainers can
use labeling mechanism to tell whether it is
2020-12-03 11:54:02 +08:00
zzxwill
39db378bcd Put error as return for sub-functions and update description for definitions 2020-12-02 15:29:20 +08:00
Jianbo Sun
0c22a4c72e Merge pull request #690 from wonderflow/tip
add a tip for make diff fail
2020-12-02 14:49:23 +08:00
天元
1a37228e03 add a tip for make diff fail
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-12-02 13:54:19 +08:00
Jianbo Sun
c02e1eae9e Merge pull request #689 from horis233/move-GetConfig
Move GetConfig into specific commands
2020-12-02 13:51:14 +08:00
Jiaming Hu
014513d55e Add unit test for PersistentPreRunE 2020-12-01 22:49:03 -05:00
Jiaming Hu
5e4f270b1e move GetConfig function into specific commands 2020-12-01 21:44:06 -05:00
Jianbo Sun
ec388b11bb Merge pull request #683 from hongchaodeng/contrib
CONTRIBUTING: add merge regulations
2020-12-01 15:13:24 +08:00
Hongchao Deng
fb40432309 CONTRIBUTING: add merge regulations 2020-11-30 23:10:53 -08:00
Jianbo Sun
e7ab480e40 Merge pull request #678 from wonderflow/fixroute
fix route reconcile too frequency and replace oam-runtime imports
2020-12-01 15:01:45 +08:00
天元
9aae23e163 fix route reconcile too frequency and replace oam-runtime imports
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-12-01 14:05:12 +08:00
zzxwill
f7718b4c08 Auto-generate reference docs
Automatically generate reference docs for all workloads and traits.
1) moved design part from hack/references/configurations/rollout.yaml to design/vela-core/rollout.md
2) added usages for all workloads/traits, except route (#672)
3) renamed some reference docs

Attention: atuo-generation of specifications for all parameters has NOT been implemented, they are generated
based on files under `hack/references/configurations`

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2020-12-01 13:56:24 +08:00
Jianbo Sun
6ef0605542 Merge pull request #670 from captainroy-hy/fix-webhook-applyto
fix webhook about Trait-Applyto
2020-11-30 15:49:18 +08:00
roy wang
12a2eb8491 fix minor lint issues
add unit tests

Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-11-30 16:11:48 +09:00
roy wang
8b27ade1cb fix validating-webhook about Trait-ApplyTo feature
Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-11-30 15:23:07 +09:00
Jianbo Sun
b8f18153b3 Merge pull request #667 from zzxwill/install
Install KubeVela Cli by script
2020-11-30 13:26:20 +08:00
zzxwill
7658a05b84 indicates the source from 2020-11-30 11:42:57 +08:00
Jianbo Sun
ba2d945079 Merge pull request #663 from wonderflow/mergecode
Merging oam-runtime into vela-core
2020-11-27 20:24:06 +08:00
天元
6b931d9b32 fix unstable test as workload changed by reconcile
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-27 20:11:26 +08:00
天元
43754e89b6 merge CI and makefile
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-27 12:16:36 +08:00
天元
26b4e3c2d5 merge main.go
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-27 11:08:58 +08:00
天元
cfadfd8763 merge tests and run on CI
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-27 11:08:58 +08:00
天元
6480873e81 change import headers
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-27 11:08:54 +08:00
天元
2e975e678c merge code: apis,pkg all moved
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-27 11:07:50 +08:00
Jianbo Sun
fa7b6fa85f Merge pull request #664 from captainroy-hy/fix-lint-pkg-controller
fix lint issues
2020-11-27 11:07:20 +08:00
zzxwill
d31a983c7e Install KubeVela Cli by script
Supported macOS/Linux/Windows platform
2020-11-26 19:22:29 +08:00
roy wang
6303d311c8 fix lint issues in /pkg/*
fix lint issues in /cmd/*

Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-11-26 17:18:54 +09:00
roy wang
bfb0f94b82 fix lint issues in /pkg/controller
fix lint issues in /apis

Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-11-26 16:12:03 +09:00
Yue Wang
855f194228 doc for apply-once-only (#649)
* doc for apply-once-only

Signed-off-by: roy wang <seiwy2010@gmail.com>

* Update design/vela-core/apply-once-only.md

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2020-11-26 10:29:52 +08:00
Hongchao Deng
db03c6e291 Merge pull request #660 from wonderflow/refactor
Refactor standardize project structure
2020-11-25 18:27:39 -08:00
天元
be8403dc0d standardize project structure: move v1alpha1 into standard.oam.dev group
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-25 21:46:31 +08:00
Jianbo Sun
edaac86304 Merge pull request #659 from captainroy-hy/fix-lint
fix lint issues in /pkg/commands
2020-11-25 17:33:24 +08:00
天元
fc805214c7 standardize project structure: change api to apis
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-25 17:28:09 +08:00
roy wang
ee9b44fa80 fix lint issues in /pkg/commands
Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-11-25 18:01:31 +09:00
Jianbo Sun
aa5a11bcdd Merge pull request #653 from laojianzi/fix-lint
fix lints for pkg/commands/init.go and pkg/server/util/middleware.go
2020-11-24 21:15:42 +08:00
laojianzi
80d4a8bfd1 fix lints in pkg/server/util/middleware.go 2020-11-24 20:56:20 +08:00
laojianzi
31e5eb05c5 fix lints in pkg/commands/init.go 2020-11-24 20:40:23 +08:00
Jianbo Sun
615f81c251 Merge pull request #650 from fengxsong/patch-1
correct usage of flag 'log-file-path'
2020-11-24 16:11:51 +08:00
fengxsong
899e7e1647 correct usage of flag 'log-file-path' 2020-11-24 15:34:55 +08:00
Jianbo Sun
c7bb52a4d4 Merge pull request #648 from horis233/fix-lints-in-appHandlers.go
Fix lints in appHandlers.go
2020-11-24 15:00:07 +08:00
Jiaming Hu
31012bc7e5 Fix lints in appHandlers.go 2020-11-23 23:51:52 -05:00
Jianbo Sun
03259630c2 Merge pull request #614 from wonderflow/golanci
add more strict golangci check
2020-11-23 19:06:13 +08:00
天元
2876d2f921 fix more golints and leave TODOs for no fixed package or files 2020-11-23 18:21:43 +08:00
天元
ba7a4a33fc add more strict golangci check
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>

add description for export const variable and function, fix golint

Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-23 16:19:20 +08:00
Jianbo Sun
e6397723db Merge pull request #643 from wonderflow/fixlint
part of lint fixes detected by #614
2020-11-23 16:18:46 +08:00
Jianbo Sun
2165624ba8 Merge pull request #642 from morlay/master
Version tags should handle in workflow docker.yml
2020-11-23 15:58:39 +08:00
天元
3c233d3a9b fix lint 2020-11-23 15:55:46 +08:00
Morlay
ecae9e4785 version tags should in workflow docker.yml too 2020-11-23 14:55:10 +08:00
Jianbo Sun
32921796e8 Merge pull request #631 from morlay/master
multi-arch images support
2020-11-23 11:48:57 +08:00
Zheng Xi Zhou
83ed11e254 ComponentTrait composing and trait CR naming design (#628)
* Componenttrait composing and trait CR naming design

Add the design docs for OAM Kubernetes Runtime PR
https://github.com/crossplane/oam-kubernetes-runtime/pull/305

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>

* Update design/vela-core/componenttrait-composing-and-trait-CR-naming.md

* Update design/vela-core/componenttrait-composing-and-trait-CR-naming.md

* Update design/vela-core/componenttrait-composing-and-trait-CR-naming.md

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2020-11-23 11:13:07 +08:00
Jianbo Sun
461968ab5c Merge pull request #640 from weibaohui/master
support contour ingress controller
2020-11-23 10:28:52 +08:00
weibaohui
d42aff9fb2 support contour ingress controller 2020-11-21 16:50:39 +08:00
Jianbo Sun
5a6cfa401c Merge pull request #639 from leonrodenburg/patch-1
Fix typo in 'Setting Routes' doc
2020-11-21 11:01:50 +08:00
Léon Rodenburg
9027a78c4f Fix typo in 'Setting Routes' doc 2020-11-20 09:44:34 +01:00
Jianbo Sun
816b7d2d6f Merge pull request #637 from wonderflow/display
add tips about vela install capability not ready instead of directly fail
2020-11-20 10:21:35 +08:00
Jianbo Sun
050b66b5d0 Merge pull request #636 from wonderflow/check
check helm release first before add repo and install chart
2020-11-20 09:53:08 +08:00
天元
6862435594 add tips about vela install capability not ready instead of directly fail, it could self-heal after background installation succeed
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-20 09:51:22 +08:00
天元
c195580126 check helm release first before add repo and install chart 2020-11-20 09:39:59 +08:00
Hongchao Deng
0747b03c50 Merge pull request #635 from hongchaodeng/hide_ui
hide dashboard command
2020-11-19 17:27:27 -08:00
Jianbo Sun
25558b2c86 Merge pull request #633 from zzxwill/docs-cli
Update vela Cli description
2020-11-20 09:22:56 +08:00
Hongchao Deng
f1ff1564fb hide dashboard command 2020-11-19 17:12:31 -08:00
Hongchao Deng
ebfd1dfe15 Merge pull request #634 from resouer/doc
Fix broken link in introduction
2020-11-19 15:38:55 -08:00
Harry Zhang
51873e0b4d Fix broken link in introduction 2020-11-19 15:32:25 -08:00
zzxwill
bcd6fb08cc Update vela Cli description
To make it consistent to the description of KubeVela repo
2020-11-19 16:22:34 +08:00
Morlay
7457c39f48 multi-arch images support
Signed-off-by: Morlay <morlay.null@gmail.com>
2020-11-19 14:16:17 +08:00
Jianbo Sun
7a81bba7ca Merge pull request #627 from wonderflow/newname
change demo app name to avoid see unhealthy status too quick
2020-11-18 17:03:57 +08:00
天元
5a4b70479c change demo app name to avoid see unhealthy status too quick 2020-11-18 17:00:40 +08:00
Jianbo Sun
2becbebceb Merge pull request #624 from oam-dev/wonderflow-patch-1
Update install.md
2020-11-18 16:40:13 +08:00
Jianbo Sun
cf57610e20 Update install.md
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-18 16:39:21 +08:00
Hongchao Deng
244b3f7f48 Merge pull request #622 from wonderflow/gosec
fix go sec and remove unnecessary code
2020-11-17 20:34:21 -08:00
天元
42c9e68512 fix go sec and remove unnecessary code
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-18 10:34:22 +08:00
Jianbo Sun
17b4a2c966 Merge pull request #623 from resouer/fix
Update design description
2020-11-18 10:15:54 +08:00
Harry Zhang
5266274c60 Update design description 2020-11-17 16:47:18 -08:00
Hongchao Deng
00ee2bfad4 Merge pull request #621 from hongchaodeng/fix-config
fix config in webservice template
2020-11-17 11:49:40 -08:00
Hongchao Deng
e6445f7458 fix config in webservice template
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-11-17 11:38:16 -08:00
Hongchao Deng
debc0da3b6 Merge pull request #620 from wonderflow/golint
add description for export const variable and function
2020-11-17 11:15:14 -08:00
Hongchao Deng
ea823db8ea Merge pull request #619 from wonderflow/goimports
fix go imports lint complain
2020-11-17 11:14:18 -08:00
天元
fb8c33af8d add description for export const variable and function, fix golint
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-17 21:04:53 +08:00
天元
974027e233 fix go imports lint complain
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-17 20:40:08 +08:00
Jianbo Sun
cb946bff95 Merge pull request #618 from zzxwill/docs-webservice-autoscale
Minor updates on webservice/autoscale docs/comments
2020-11-17 13:25:11 +08:00
zzxwill
f22c8995f4 Minor updates on webservice/autoscale docs/comments
based on the comments https://github.com/oam-dev/kubevela/pull/566#discussion_r522385511
and https://github.com/oam-dev/kubevela/issues/585#issuecomment-726253432,
update docs and comments on webservice and autoscale
2020-11-17 13:10:49 +08:00
Jianbo Sun
550d708637 Merge pull request #617 from wonderflow/fixci
update KIND action to fix CI
2020-11-17 11:11:51 +08:00
天元
1a592496a1 update KIND action to fix CI
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-17 10:47:44 +08:00
Jianbo Sun
a5eb3161eb Merge pull request #613 from wonderflow/ext1
refactor extend trait feature and doc
2020-11-17 10:16:39 +08:00
Hongchao Deng
ffa965d637 Merge pull request #616 from resouer/badge
Remove duplicated badges
2020-11-16 17:34:34 -08:00
Harry Zhang
ef16da72f5 Remove duplicated badges 2020-11-16 15:42:40 -08:00
Hongchao Deng
19657d488f Merge pull request #615 from szihai/master
add README badges
2020-11-16 13:36:44 -08:00
andy shi
b9fc2180c5 add README badges 2020-11-16 12:38:25 -08:00
天元
daef0523fa refactor extend trait feature and doc
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-16 19:22:38 +08:00
Jianbo Sun
3269c4f48f Merge pull request #612 from wonderflow/rollout1
tunning docs
2020-11-16 14:32:44 +08:00
Hongchao Deng
2526760080 Merge pull request #611 from resouer/readme
Use doc site for quick start
2020-11-15 22:30:02 -08:00
Harry Zhang
5ec22917a1 Use doc site for quick start 2020-11-15 22:07:49 -08:00
天元
efb76ee5ee tunning docs 2020-11-16 14:07:38 +08:00
andy shi
47222606dd Fix cloud service doc (#607)
* first version cloud-service

* revise cloud service doc

* remove sensitive information

* update document

* add cloud service to sidebar

* add cloud service to sidebar

* formatting instructions

* fix syntax
2020-11-16 10:39:56 +08:00
Jianbo Sun
fe81ed1653 Merge pull request #593 from wonderflow/upd
refactor crd generate mode
2020-11-16 10:39:04 +08:00
Jianbo Sun
51fe5e7c7b Merge pull request #610 from resouer/roadmap
Update roadmap a bit
2020-11-15 14:31:55 +08:00
Harry Zhang
3e6002cc95 Update roadmap 2020-11-14 21:52:10 -08:00
Hongchao Deng
6792d7ded1 Merge pull request #608 from resouer/cap
Add details in cap mgmt
2020-11-14 13:23:38 -08:00
Hongchao Deng
2b2eb9701c Merge pull request #606 from resouer/dev
Refactor workload type doc
2020-11-14 13:23:07 -08:00
Harry Zhang
93559a2f01 Add details in cap mgmt 2020-11-13 23:17:35 -08:00
Harry Zhang
ecf3f5d664 Refactor workload type doc 2020-11-13 22:32:48 -08:00
Hongchao Deng
54e30b1f8b Merge pull request #605 from resouer/dev
Add better rollout trait doc
2020-11-13 18:35:52 -08:00
Harry Zhang
de7bb9ba46 Add better rollout trait doc 2020-11-13 17:23:05 -08:00
Hongchao Deng
c1d6dedb5d Merge pull request #604 from hongchaodeng/doc-extend
extend kubevela: add openfaas workload
2020-11-13 17:13:07 -08:00
天元
9a89699691 refactor crd generate mode
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-14 09:10:39 +08:00
Hongchao Deng
34819f8d80 Update docs/en/platform-engineers/workload-type.md
Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2020-11-13 17:10:27 -08:00
Hongchao Deng
6486b7878f extend kubevela: add openfaas workload 2020-11-13 16:14:33 -08:00
Hongchao Deng
9fcfb7e1df Merge pull request #603 from resouer/rollout
Fix nits in rollout ref doc
2020-11-13 16:07:01 -08:00
Harry Zhang
8d4fe38cc3 Fix nits in rollout ref doc 2020-11-13 15:33:08 -08:00
Hongchao Deng
48052e59ee Merge pull request #599 from hongchaodeng/cli2
update descriptions of capabilities
2020-11-13 14:27:47 -08:00
Hongchao Deng
b0c9e4b78a update descriptions of capabilities 2020-11-13 12:38:45 -08:00
Hongchao Deng
4e7af35e61 Merge pull request #598 from hongchaodeng/cli
upate descriptions of commands
2020-11-13 12:38:18 -08:00
Hongchao Deng
4264a63613 Merge pull request #600 from resouer/fix
Fixe several nits in the doc and guide
2020-11-13 12:38:02 -08:00
Harry Zhang
f90140ee5b Fixe several nits in the doc and guide 2020-11-13 12:35:19 -08:00
Hongchao Deng
57dc83976d upate descriptions of commands
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-11-13 12:31:57 -08:00
Hongchao Deng
2a88bf271a Merge pull request #596 from resouer/dev
Hide empty docs
2020-11-13 11:39:18 -08:00
Harry Zhang
84a17764ed Hide empty docs 2020-11-13 10:59:14 -08:00
Hongchao Deng
98a6d7a8cf Merge pull request #594 from resouer/dev
Fix typos in docs
2020-11-13 10:21:28 -08:00
Harry Zhang
dd5a74235d Fix typos in docs 2020-11-13 10:18:33 -08:00
Jianbo Sun
c10cbead76 Merge pull request #592 from hongchaodeng/cli
clean up vela cli help info to be app focused
2020-11-13 15:58:29 +08:00
Hongchao Deng
28e417ef47 add init to get start
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-11-12 22:09:59 -08:00
Hongchao Deng
43a674b6f7 unify format 2020-11-12 21:09:47 -08:00
Hongchao Deng
cfab53f97b clean up vela cli help info to be app focused 2020-11-12 21:04:37 -08:00
Hongchao Deng
df7dca81da Merge pull request #586 from wonderflow/froute
go through rollout with kind cluster and fix bugs
2020-11-12 19:45:40 -08:00
andy shi
22b6e87d58 revise cloud service doc (#591)
* first version cloud-service

* revise cloud service doc

* remove sensitive information
2020-11-13 11:44:10 +08:00
Jianbo Sun
4b768c49a6 Merge pull request #587 from tossmilestone/add-missing-command-type
Add missing TagCommandType
2020-11-13 11:43:06 +08:00
天元
cd4615405f updated oam-k8s-runtime and go through rollout fix bugs
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-13 11:24:49 +08:00
Jianbo Sun
ccc3576a4c Merge pull request #566 from zzxwill/docs-autoscale
Revise autoscaler doc with appfile focused
2020-11-13 11:08:50 +08:00
zzxwill
3dd5e493c6 update reference doc 2020-11-13 10:22:36 +08:00
Xiaoxi He
e120e141ee Add missing TagCommandType 2020-11-13 00:14:20 +08:00
zzxwill
e794da5492 fix unit-test issue 2020-11-12 20:01:45 +08:00
zzxwill
7031e04c75 Revise Autoscaler doc with appfile focused
- Splitted autoscale docs to be appfile focused,
and add cpu utilization scaling policy for appfile
- Allow user to input parameter with int type, like
10 instead of "10"
- Change cpuRequest/cpu to proper names

To fix #564
2020-11-12 19:02:14 +08:00
Jianbo Sun
e8de0e29df Merge pull request #584 from wonderflow/remove
remove annotation for apiversion and kind, use discoverymapper instead
2020-11-12 15:58:53 +08:00
天元
d67ce4d2a1 refactor server and fix CI
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-12 15:19:50 +08:00
天元
40ab610a8e remove annotation for apiversion and kind, use discoverymapper instead
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-12 12:04:08 +08:00
Hongchao Deng
78b1c5b32c Merge pull request #582 from hongchaodeng/ci
CI: ignore all markdown changes
2020-11-11 19:54:11 -08:00
Hongchao Deng
7b957df709 Merge pull request #583 from resouer/dev
Fix typo in previous fix
2020-11-11 19:44:35 -08:00
Hongchao Deng
3edc6ed317 CI: ignore all markdown changes 2020-11-11 19:42:41 -08:00
Harry Zhang
c43dad4907 Fix typo 2020-11-11 19:42:37 -08:00
Hongchao Deng
b4b9fcfaf0 Merge pull request #579 from resouer/dev
Focus on appfile in docs part 3 (w/ ref docs)
2020-11-11 19:40:37 -08:00
Harry Zhang
3af42feb02 Focus on appfile in docs part 3 (w/ ref docs) 2020-11-11 19:19:42 -08:00
Lei Zhang (Harry)
16ddba80b3 Merge pull request #581 from hongchaodeng/image
fix metrics image and merge resource folders
2020-11-11 19:09:43 -08:00
Jianbo Sun
32bb102a86 Merge pull request #573 from wonderflow/raw
keep silence when no Capability discovered && clean code
2020-11-12 11:08:38 +08:00
Hongchao Deng
0fcc6498cb fix metrics image and merge resource folders
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-11-11 19:00:05 -08:00
天元
ab72ddbea4 clean code
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-12 10:54:21 +08:00
Lei Zhang (Harry)
10d360c03c Merge pull request #580 from hongchaodeng/doc
vela up support url, fix scale/rollout/metrics to focus on appfile, fix reference doc
2020-11-11 18:09:10 -08:00
Hongchao Deng
4b609e0fff vela up support url, fix scale/rollout/metrics to focus on appfile, fix reference doc
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-11-11 17:13:24 -08:00
Lei Zhang (Harry)
49e8aca2bd Merge pull request #571 from wonderflow/fixlink
fix link
2020-11-11 11:18:49 -08:00
天元
c5ecd0aff3 keep silence when no Capability discovered 2020-11-11 17:44:32 +08:00
Jianbo Sun
adac554333 Merge pull request #570 from wonderflow/fixrollout
update rollout doc
2020-11-11 17:24:14 +08:00
天元
c6e15fae2d add reference doc
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-11 17:19:23 +08:00
天元
7f75d22ab6 fix link
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-11 17:10:26 +08:00
Jianbo Sun
e148a901a9 Merge pull request #569 from wonderflow/redou
delete redundant example folder, it's docs/examples
2020-11-11 17:08:48 +08:00
天元
9c5e156e23 update rollout doc 2020-11-11 16:59:50 +08:00
天元
626eb5eb68 delete redundant example folder, it's docs/examples 2020-11-11 16:35:35 +08:00
Jianbo Sun
72f3d22942 Merge pull request #567 from wonderflow/init
update vela init UI
2020-11-11 16:28:19 +08:00
天元
07351d9dd7 update vela init UI
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-11 16:16:01 +08:00
Hongchao Deng
6ac7e88a63 Merge pull request #563 from resouer/fix
Focus on appfile in docs (part 2)
2020-11-10 19:14:03 -08:00
Harry Zhang
36d2b9e761 Focus on appfile in docs (part 2) 2020-11-10 17:36:56 -08:00
Hongchao Deng
1681fe7de2 Merge pull request #561 from hongchaodeng/ci
ignore dashboard build on doc change
2020-11-10 15:33:50 -08:00
Hongchao Deng
214a5ee4aa Merge pull request #562 from resouer/doc
Fix the previous missing directory
2020-11-10 15:31:30 -08:00
Harry Zhang
e69548a72a Seperate install and getting started. 2020-11-10 15:26:03 -08:00
Lei Zhang (Harry)
877b7b8cb6 Merge pull request #560 from oam-dev/revert-558-doc
Revert "Focus on appfile in docs (part 1)"
2020-11-10 15:25:14 -08:00
Hongchao Deng
2476f83b1b ignore dashboard build on doc change 2020-11-10 15:21:38 -08:00
Lei Zhang (Harry)
c9929cf7cf Revert "Focus on appfile in docs (part 1)" 2020-11-10 15:18:37 -08:00
Hongchao Deng
8b9c927572 Merge pull request #558 from resouer/doc
Focus on appfile in docs (part 1)
2020-11-10 15:04:13 -08:00
Hongchao Deng
b59fe17f4d Merge pull request #559 from Fei-Guo/master
Revise design.md
2020-11-10 15:01:34 -08:00
Harry Zhang
645fd3f917 Focus on appfile in docs (part 1) 2020-11-10 14:54:14 -08:00
Lei Zhang (Harry)
15e1564983 Merge pull request #556 from hongchaodeng/ci
make CI ignore doc change
2020-11-10 14:38:56 -08:00
Guo, Fei
c24c039b15 Address review comments 2020-11-10 14:34:26 -08:00
Guo, Fei
8e2205ef07 Revise design.md 2020-11-10 14:19:26 -08:00
Hongchao Deng
cd3c91b537 make CI ignore doc change 2020-11-10 11:01:51 -08:00
Lei Zhang (Harry)
f6e3fc31d1 Merge pull request #554 from hongchaodeng/doc
fix doc link
2020-11-10 10:10:19 -08:00
Hongchao Deng
1f5d3bde7b fix link 2020-11-10 09:21:17 -08:00
Jianbo Sun
0fc1c3132e Merge pull request #546 from zzxwill/issue-autoscaler
Fix autoscale inconsistence UI
2020-11-10 20:47:48 +08:00
Jianbo Sun
f18ee6586a Merge pull request #540 from wonderflow/rollout
support rollout trait
2020-11-10 20:39:16 +08:00
zzxwill
da8457fbf0 Fix autoscale inconsistence UI
fixed autoscale Cli and Appfile inconsistence
and refactor `vela status` output for autoscale
2020-11-10 20:30:04 +08:00
天元
29e97a6040 fix doc 2020-11-10 20:22:39 +08:00
天元
5c0f26c6f6 fix doc gen path 2020-11-10 20:16:15 +08:00
天元
fd3f300901 support rollout trait
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-10 20:13:27 +08:00
guoxudong
025ce5d74d move website & keep design md (#551)
* move website & keep design md

* fix

* update README

* fix

* fix

* rename

* fix
2020-11-10 20:09:13 +08:00
Hongchao Deng
bbb2c527d9 Merge pull request #543 from hongchaodeng/doc
README: update doc link to website
2020-11-09 13:03:26 -08:00
Hongchao Deng
65db8753de README: update doc link to website 2020-11-09 12:52:15 -08:00
Jianbo Sun
890aef14f3 Merge pull request #539 from lujinda/fix
Fix `capabilities system of OAM` links
2020-11-09 21:23:21 +08:00
lujinda
7371496f27 Fix capabilities system of OAM links 2020-11-09 20:27:36 +08:00
Jianbo Sun
f792bf2bbf Merge pull request #535 from zzxwill/issue-ls
Fix `vela ls` issue
2020-11-09 12:28:48 +08:00
zzxwill
9ca4f64030 Fix vela ls issue
By default, all svc deployed without `--staging` will appear
to be `staging` in cmd `vela ls`.
To fix #534
2020-11-09 11:34:07 +08:00
Jianbo Sun
d5909a13f3 Merge pull request #532 from resouer/typo
Minor fixes in design and readme
2020-11-09 10:31:34 +08:00
Jianbo Sun
9b5c72e5ad Merge pull request #533 from captainroy-hy/enhance-cap-list
Don't output all existing caps during vela workloads/traits
2020-11-09 10:23:02 +08:00
roy wang
88d3042767 remove vela system update command
sync caps from cluster before `vela env init`

fix e2e-test

Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-11-08 16:42:40 +09:00
Harry Zhang
9f6e53269d Minor fixes in design and readme 2020-11-07 22:11:29 -08:00
roy wang
66f157cca7 not output all existing caps during vela workloads/traits
Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-11-07 17:53:26 +09:00
Hongchao Deng
94fad7229b Merge pull request #530 from hongchaodeng/doc-cap
doc: add managing caps
2020-11-06 19:11:17 -08:00
Hongchao Deng
2b71fd5201 add back traits doc 2020-11-06 18:59:49 -08:00
Hongchao Deng
a199c1f009 fix cap uninstall 2020-11-06 17:57:46 -08:00
Hongchao Deng
936b4dfa32 doc: add cap center
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-11-06 17:57:44 -08:00
andy shi
35f3b68d45 first version cloud-service (#517)
* first version cloud-service

* change working directory
2020-11-06 17:45:45 -08:00
Zheng Xi Zhou
91f47586cf Autoscaler for appfile (#510)
* Autoscaler for appfile

completed spec.extension.template to support autoscale in
cli and appfile

* add alias name  to cpuRequest in Cli for deploying webservice
2020-11-07 07:54:59 +08:00
Jianbo Sun
37bbc37fa2 Merge pull request #527 from furykerry/changerun
remove vela app & vela app run cli options
2020-11-06 23:24:58 +08:00
守辰
a9ea45370d remove vela app & vela app run cli options
Signed-off-by: 守辰 <shouchen.zz@alibaba-inc.com>
2020-11-06 19:23:01 +08:00
Jianbo Sun
a9d7e3844b Merge pull request #525 from wonderflow/revisonroute
only choose OAM app labels for route trait
2020-11-06 15:49:18 +08:00
天元
0d2c251b45 only choose OAM app labels for route trait
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-06 15:35:42 +08:00
Jianbo Sun
b02b0db950 Merge pull request #524 from Fei-Guo/master
Revise concepts.md
2020-11-06 15:23:30 +08:00
Guo, Fei
b2db04e8c2 Revise conecepts.md 2020-11-05 23:04:07 -08:00
Jianbo Sun
c23ff6810a Merge pull request #518 from silotrd/master
Function SyncCapabilityFromCenter Called twices.
2020-11-06 14:56:03 +08:00
Jianbo Sun
9a6523cade Merge pull request #523 from wonderflow/replica
don't specify replica in template
2020-11-06 14:44:48 +08:00
linjie.miao
e52d173d57 SyncCapabilityFromCenter This function is
called one more time.
2020-11-06 14:43:51 +08:00
天元
9a27c604b1 don't specify replica in template
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-06 14:30:17 +08:00
Jianbo Sun
d91c5b9bfe Merge pull request #520 from wonderflow/fixrace
fix datarace for map
2020-11-06 13:50:13 +08:00
天元
b7cdedd0cb fix datarace for map, fix #444 2020-11-06 13:22:00 +08:00
Jianbo Sun
1c67b6ea16 Merge pull request #519 from wonderflow/removename
don't specify name for workload object in component
2020-11-06 13:21:34 +08:00
天元
630e27f762 don't add name for workload object 2020-11-06 13:05:40 +08:00
Lei Zhang (Harry)
35ae4109bc Merge pull request #516 from resouer/concepts
Add concepts doc to kubevela
2020-11-05 21:02:45 -08:00
Harry Zhang
81df4e23af Add concepts doc to kubevela 2020-11-05 20:50:21 -08:00
Jianbo Sun
1e6c3d66c5 Merge pull request #515 from Fei-Guo/master
Some corrections for QuickStart.md
2020-11-06 09:58:09 +08:00
Hongchao Deng
86f05cf47a minor update (#514)
the copy-paste friendly thing could be handled on website.
2020-11-05 12:09:51 -08:00
Guo, Fei
f02982b6a1 Some corrections for QuickStart.md 2020-11-05 12:07:07 -08:00
Jianbo Sun
5ca9aa4ed2 Merge pull request #513 from silotrd/master
The return value of `vela ls` must contain the TYPE and TRAITS fields.
2020-11-05 18:18:00 +08:00
linjie.miao
2b47a934d3 The return value of vela ls must contain the TYPE and TRAITS fields. 2020-11-05 15:39:37 +08:00
Jianbo Sun
1736efb33c Merge pull request #512 from hongchaodeng/doc
minor update on extending vela
2020-11-05 13:49:21 +08:00
Hongchao Deng
3dcd861d0c minor update on extending vela
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-11-04 20:43:34 -08:00
Hongchao Deng
1809b47bb9 doc: add extending vela (#511)
* doc: add extending vela

- also rename in `system update` name -> type, type -> category

Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>

* github action: fixed ubuntu version

Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>

* update
2020-11-05 10:09:29 +08:00
Jianbo Sun
d621cc34b6 Merge pull request #505 from captainroy-hy/combine-sys-update
update local caps before listing workloads&traits
2020-11-05 07:48:18 +08:00
roy wang
24c7f23e8a update local caps before listing workloads&traits
refine output of `vela system update`

add e2e-test

Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-11-05 01:40:03 +09:00
Hongchao Deng
6efb68f51f Merge pull request #506 from silotrd/master
Logs need to be printed in real time when vela executes docker command
2020-11-04 07:39:42 -08:00
Jianbo Sun
2121fa6cc1 Merge pull request #500 from zzxwill/docs-scale
Add Autoscaler docs and support cli and appfile
2020-11-04 14:32:20 +08:00
Jianbo Sun
f19d8be2f6 Merge pull request #509 from hongchaodeng/e2e
skip capability e2e due to rate limit
2020-11-04 14:30:56 +08:00
Hongchao Deng
ce286701a2 Merge pull request #508 from hongchaodeng/doc-extend
Update CLI printout in various docs
2020-11-03 21:46:39 -08:00
Hongchao Deng
6b4325eebc skip capability e2e due to rate limit
plan to change e2e into a mock UT to avoid remote call.

Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-11-03 21:37:35 -08:00
Hongchao Deng
6ca3381882 update kubecon demo 2020-11-03 21:30:17 -08:00
Hongchao Deng
6ec5799ce4 update cli printout 2020-11-03 21:21:27 -08:00
Hongchao Deng
8b028fff31 Merge pull request #507 from Fei-Guo/master
Some revisions for the printed out messages
2020-11-03 21:11:15 -08:00
Guo, Fei
08c784506e fix a nit 2020-11-03 20:50:21 -08:00
Guo, Fei
e6b5e11311 Clean up for printed messages 2020-11-03 20:48:11 -08:00
linjie.miao
5c7f37f034 When executing commands such as docker build/push, logs are
required to be printed to the console in real time.
2020-11-04 11:57:46 +08:00
zzxwill
81d40a2f51 Wrongly rebased newly merged requests from comments, fixed it.
co-authored-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-04 11:39:05 +08:00
Hongchao Deng
27621463fd Merge pull request #504 from hongchaodeng/doc
doc: add app init, config, and capability references
2020-11-03 19:35:59 -08:00
Hongchao Deng
e20b6c9bf4 doc: add app init, config, and capability references
additionally:

- change backend workload type to worker
- add cue format script

Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-11-03 19:25:41 -08:00
Jianbo Sun
2c7391f2d0 Merge pull request #502 from wonderflow/metrics
start promethus instance on installation
2020-11-03 16:37:20 +08:00
天元
5066320a2f start promethus instance on installation
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-03 16:15:46 +08:00
Lei Zhang (Harry)
31bc537b5d Merge pull request #501 from Fei-Guo/master
Fix some small nits for introduction
2020-11-02 21:26:20 -08:00
Guo, Fei
b2750906fa Fix some small nits for introduction 2020-11-02 21:07:43 -08:00
zzxwill
d082502406 Add Autoscaler docs and support cli and appfile
added Autoscaler docs and add spec.extension.template
for cli and appfile
2020-11-03 12:02:23 +08:00
Jianbo Sun
0afddf945a Merge pull request #487 from resouer/followup
Follow up introduction doc
2020-11-03 11:13:24 +08:00
Harry Zhang
104c33403e Follow up introduction doc 2020-11-02 18:54:34 -08:00
Hongchao Deng
3097a46a04 Merge pull request #493 from wonderflow/metrics
fix metric capability and add tutroial
2020-11-02 08:27:35 -08:00
Jianbo Sun
526712d56c Merge pull request #498 from FillZpp/fix-defer-in-main
Fix invalid defer in waitWebhookSecretVolume
2020-11-02 21:06:52 +08:00
Siyu Wang
2cfa7b7ec7 Fix invalid defer in waitWebhookSecretVolume
Signed-off-by: Siyu Wang <FillZpp.pub@gmail.com>
2020-11-02 20:13:30 +08:00
天元
26b6327919 fix metric capability and add tutroial
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-11-02 15:50:20 +08:00
Hongchao Deng
0168f5fdda Merge pull request #496 from hongchaodeng/doc-init
doc for quick start, exec/logs/port-forward; add render-only to init cmd
2020-11-01 23:46:12 -08:00
Hongchao Deng
c02e3a7b54 doc: add quickstart, exec/logs/portforward 2020-11-01 23:34:12 -08:00
Hongchao Deng
7cfc80cd41 add render-only to ini cmd and ignore route if domain is empty 2020-11-01 23:34:12 -08:00
Jianbo Sun
e043e6b764 Merge pull request #497 from zzxwill/doc-vela-status-show
Add unit-test for `vela up`
2020-11-02 14:45:05 +08:00
zzxwill
33ed0a9a20 Add unit-test for vela up
During to decrease of code coverage, added unit-test
for `vela up`
2020-11-02 14:24:38 +08:00
Jianbo Sun
7d021d6e89 Merge pull request #495 from zzxwill/doc-vela-status-show
Update `vela show/status` related docs
2020-11-02 13:07:07 +08:00
zzxwill
f77999e8dc Update related vela show/status docs
updated related `vela show/status` docs, also update
`vela ls/delete` related documentation
2020-11-02 11:49:48 +08:00
Hongchao Deng
6fb615be73 Merge pull request #445 from szihai/master
Add Kubecon demo page
2020-11-01 19:10:47 -08:00
Zheng Xi Zhou
5f34351706 Merge pull request #480 from zzxwill/app-status
Refactor "vela status"
2020-11-02 09:57:21 +08:00
szihai
b6be560ad0 use webservice based on podspecworkload 2020-11-01 13:06:36 -08:00
szihai
371cfa3a57 add webservice template 2020-11-01 09:44:09 -08:00
zzxwill
435ac44cbf fix issue 'ineffectual assignment to err' 2020-11-01 21:09:37 +08:00
zzxwill
c212ac93ff revert modification for make manifests 2020-11-01 16:25:18 +08:00
zzxwill
865c52e883 Refactor "vela status"
merged `vela app status` and `vela svc status`
to `vela status`.
To fix #474
2020-11-01 16:25:17 +08:00
Zheng Xi Zhou
e58d705a8b Merge pull request #478 from zzxwill/app-show
Refactor `vela show`
2020-11-01 11:44:04 +08:00
zzxwill
0a3b3ffdb1 address Wonderflow's offline advice 2020-11-01 10:02:49 +08:00
Jianbo Sun
a4be8bbbe1 Merge pull request #490 from hongchaodeng/doc-fix
fix installation link and minor update on intro
2020-11-01 09:00:21 +08:00
Hongchao Deng
27bb0f8844 fix installation link
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-10-31 15:30:18 -07:00
Ryan Zhang
7e5e2de263 Merge pull request #489 from zzxwill/null-yaml
Fix `charts/vela-core/crds/_.yaml` generation issue
2020-10-31 14:47:46 +08:00
zzxwill
cc93367b22 Fix charts/vela-core/crds/_.yaml generation issue
Fixed the issue of `charts/vela-core/crds/_.yaml` generation
by removing unkonwn struct in pkg/commands/show.go.
2020-10-31 13:43:10 +08:00
Hongchao Deng
9c5c3f879f Merge pull request #488 from hongchaodeng/ing
remove ingress from velaConfig and add it in install.md
2020-10-30 22:36:39 -07:00
Hongchao Deng
5bda371861 remove ingress from velaConfig and add it in install.md
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-10-30 22:22:57 -07:00
Jianbo Sun
94aa38640a Merge pull request #485 from hongchaodeng/fixing
fix check route status when using local kind
2020-10-31 13:07:48 +08:00
Hongchao Deng
d44832aa01 Merge pull request #486 from hongchaodeng/fix-scale
update manualscale cue template and appfile guide
2020-10-30 21:52:38 -07:00
Hongchao Deng
8b3c2104bc update manualscale cue to set default replica 1 and update appfile example to exclude scaler trait 2020-10-30 21:14:53 -07:00
Hongchao Deng
d003a6652d fix check route status when using local kind 2020-10-30 20:56:37 -07:00
zzxwill
6ffee730ec Update cli docs 2020-10-31 11:52:12 +08:00
zzxwill
838995e816 Refactor vela show
Merge `vela app show` and `vela svc show` in `vela show`
to display all details information of an application
2020-10-31 11:52:12 +08:00
Jianbo Sun
c51f4d5074 Merge pull request #484 from hongchaodeng/doc-exec
doc: separate appfile chapter into a few sections to gradually add traits, workloads
2020-10-31 10:33:16 +08:00
Jianbo Sun
c8fc39370e Merge pull request #483 from hongchaodeng/fix-ing
fix ingress rewrite-target
2020-10-31 10:22:54 +08:00
Hongchao Deng
9c2b75d9af update
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-10-30 19:07:00 -07:00
Hongchao Deng
9be4316256 doc: separate appfile chapter into a few sections to gradually add traits, workloads
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-10-30 19:07:00 -07:00
Hongchao Deng
854e88f385 fix ingress rewrite-target 2020-10-30 17:20:02 -07:00
Lei Zhang (Harry)
085151cf1f Merge pull request #477 from Fei-Guo/master
Revise introduction.md
2020-10-30 15:10:09 -07:00
szihai
0381b0fb95 updated crossplane charts, README, and db workload template 2020-10-30 14:51:46 -07:00
Guo, Fei
bb3111d68d Change Kubevela to KubeVela 2020-10-30 14:49:40 -07:00
Guo, Fei
cf19fed17f Revise based on review comments 2020-10-30 14:37:39 -07:00
Hongchao Deng
f94d2128d9 Merge pull request #481 from zzxwill/cli-description
Refine some minor Cli description
2020-10-30 11:10:18 -07:00
Hongchao Deng
2632617e70 Merge pull request #482 from silotrd/master
[Feature #443] should report capability not exist instead of file not found
2020-10-30 11:07:58 -07:00
root
f4f0d92a74 [Feature #443] should report capability not exist instead of file not found #433 2020-10-30 16:56:37 +00:00
zzxwill
85aa774dd4 Refine some Cli description
Refined some description and adjust cli order in `-h`
2020-10-30 23:28:02 +08:00
Hongchao Deng
aea6fd4589 Merge pull request #476 from hongchaodeng/doc-appfile
Add appfile tutorial and fix code
2020-10-30 00:19:39 -07:00
Hongchao Deng
629ceee307 fix
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-10-30 00:08:15 -07:00
Guo, Fei
deb73c34fa Format change 2020-10-29 23:22:52 -07:00
Guo, Fei
54ac8eb6c2 revise introduction 2020-10-29 23:06:37 -07:00
Hongchao Deng
2451236791 update install guide 2020-10-29 22:41:31 -07:00
Hongchao Deng
8fdf48eac1 Add appfile tutorial and fix code
includes:
- fix up command to save appfile to env dir
- update cue template to include cmd and config
- move design to doc/design
2020-10-29 22:41:07 -07:00
Jianbo Sun
5cc97bc2c0 Merge pull request #475 from wonderflow/newroute
merge vela app/svc delete to vela delete
2020-10-30 11:58:45 +08:00
天元
f016ada842 merge vela app/svc delete to vela delete
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-10-30 11:42:27 +08:00
Zhe Jiang
24ef896142 Spelling mistakes (#471)
* Spelling mistakes

* Update docs/install.md

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
2020-10-30 09:56:45 +08:00
Lei Zhang (Harry)
488cc9d545 Merge pull request #469 from resouer/docs
Rename owners file and update design doc
2020-10-29 15:48:06 -07:00
Harry Zhang
f0fe340d7d Update design doc to reflect recent idea 2020-10-29 15:21:35 -07:00
Lei Zhang (Harry)
c87594ad04 Merge pull request #472 from hongchaodeng/doc
fix and clean up charts
2020-10-29 15:03:25 -07:00
Hongchao Deng
391a1e5e89 add codecov.yml
disable patch status
2020-10-29 14:35:55 -07:00
Hongchao Deng
72d0284454 install.md: update clean CRD section 2020-10-29 14:17:38 -07:00
Hongchao Deng
0ef3d8650b fix and clean up charts
currently the charts has following issues:
- cert-manager has manifests in multiple places. Should be combined into one.
  Prefer pure yaml since its helm chart requires `--set installCRDs=true` flag and uninstalling CRD via helm is inconvient.
- The bootstrap of vela-core will setup metrics controller. This requires Prometheus Operator CRD. Move related CRD to vela-core chart.
- move prometheus to vela-system namespace. Remove monitoring namespace.
- remove grafana. It's already a dependency of prometheus chart.
- change default image pull policy to IfNotPresent. Should not be Always.

Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-10-29 13:56:33 -07:00
Jianbo Sun
7150d71716 Merge pull request #450 from wonderflow/newroute
add route tuturiol
2020-10-29 17:59:35 +08:00
天元
091b70deba add route tuturiol
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-10-29 17:36:51 +08:00
Jianbo Sun
8e0641baca Merge pull request #470 from captainroy-hy/vela-portforward
vela port-forward
2020-10-29 15:34:29 +08:00
Hongchao Deng
4426133c43 Fix vela install to include all dependencies (#467)
* Fix vela install to include all dependencies

rewrite server dependency component install:

- Don't rely on crd name. Continue installing all charts.
- Rewrite signal handler to uninstall dependencies before exiting.

Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>

* fix

Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-10-29 15:24:02 +08:00
roy wang
32daa8f280 vela port-forward
add unit test and e2e test
refresh cli doc of vela port-forward

Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-10-29 16:21:33 +09:00
Harry Zhang
0f85f9763d Rename owners file 2020-10-28 15:00:07 -07:00
Lei Zhang (Harry)
1c3f7f925e Merge pull request #452 from resouer/dev
Add onwers file and fix typo
2020-10-28 14:58:20 -07:00
Harry Zhang
aae80847a1 Add onwers file and fix typo 2020-10-28 14:30:50 -07:00
Lei Zhang (Harry)
4d30423d55 Add introducation doc (#459) 2020-10-28 11:45:43 -07:00
Jianbo Sun
e9b4257107 Merge pull request #456 from captainroy-hy/refresh-cli-docs
refresh cli docs
2020-10-28 13:29:49 +08:00
Hongchao Deng
b52fc92e93 change podspec workload to deployment in built-in templates (#458)
* change podspec workload to deployment in built-in templates

* fix

Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-10-28 13:28:27 +08:00
roy wang
1522280e50 refresh cli docs
Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-10-28 14:16:19 +09:00
Hongchao Deng
5f4a55f594 Merge pull request #457 from hongchaodeng/kind
e2e: delete kind cluster at the end
2020-10-27 21:10:09 -07:00
Hongchao Deng
42115e7774 e2e: delete kind cluster in setup
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-10-27 20:55:50 -07:00
Jianbo Sun
137b56cb03 Merge pull request #455 from hongchaodeng/runner
setup and use self hosted runner
2020-10-28 10:00:10 +08:00
Jianbo Sun
c25a22a17d Merge pull request #449 from captainroy-hy/term-service
change term "component" to "service" in commands
2020-10-28 09:51:11 +08:00
Hongchao Deng
cf22e96b37 Merge pull request #454 from resouer/roadmap
Add roadmap doc and update extending doc
2020-10-27 18:30:40 -07:00
Hongchao Deng
82f5ee0bd3 setup and use self hosted runner 2020-10-27 15:49:43 -07:00
Harry Zhang
e827da2db2 Add roadmap doc and update extending doc 2020-10-27 14:36:18 -07:00
szihai
ac4b948a4e Merge branch 'master' of https://github.com/szihai/kubevela 2020-10-27 10:40:37 -07:00
szihai
782664696f move to /example folder 2020-10-27 10:38:31 -07:00
roy wang
69944f9dad change term "component" to "service" in commands
Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-10-27 19:31:24 +09:00
Jianbo Sun
5dd91add89 Merge pull request #447 from wonderflow/fixdoc
fix doc gen path
2020-10-27 17:06:21 +08:00
Jianbo Sun
d2452ad8ef Merge pull request #446 from wonderflow/oam-runtime
upgrade oam-k8s-runtime dependency
2020-10-27 17:06:01 +08:00
Hongchao Deng
b8cb0565a8 Merge pull request #439 from hongchaodeng/template
update templates
2020-10-27 02:00:46 -07:00
Hongchao Deng
ac9a2a2b81 fix e2e
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-10-27 01:38:10 -07:00
天元
4d4ea8f3c4 fix doc gen path 2020-10-27 15:48:44 +08:00
天元
4c70136ba1 upgrade oam-k8s-runtime dependency 2020-10-27 15:32:42 +08:00
Hongchao Deng
f962dc0f11 fix ut 2020-10-26 23:38:11 -07:00
Hongchao Deng
95823cdcdb fix 2020-10-26 23:19:59 -07:00
Hongchao Deng
182805c9ca move and remove extra parameter def
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-10-26 23:14:48 -07:00
Jianbo Sun
1c1508b0c3 Merge branch 'master' into master 2020-10-27 13:52:11 +08:00
Hongchao Deng
cba72cb6e6 fix e2e
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-10-26 21:52:18 -07:00
Hongchao Deng
cff6a74430 capability: use def name as name
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-10-26 20:51:16 -07:00
Hongchao Deng
e9186fa8eb fix plugin test 2020-10-26 20:51:16 -07:00
Hongchao Deng
3d17464c44 fix trait definition
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-10-26 20:51:16 -07:00
Hongchao Deng
eed2e2f219 fix
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-10-26 20:51:16 -07:00
Hongchao Deng
16d3cbd5a4 add readme 2020-10-26 20:51:16 -07:00
Hongchao Deng
80cf81e4d5 update templates
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-10-26 20:51:16 -07:00
szihai
f92cdcefe4 polish for pr 2020-10-26 20:10:36 -07:00
Jianbo Sun
ea836ee2eb Merge pull request #438 from wonderflow/scale
Implement Autoscaler Trait
2020-10-27 10:45:00 +08:00
天元
0990e6fa64 fix autoscaler
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
2020-10-27 10:19:26 +08:00
Lei Zhang (Harry)
2b0759bcff Minor fix on doc framework (#442) 2020-10-26 16:31:38 -07:00
Lei Zhang (Harry)
d425ded75c Merge pull request #440 from resouer/init-doc
Bootstrap docs for kubevela
2020-10-26 15:02:00 -07:00
Harry Zhang
ec5b45a428 Init docs for kubevela
Move non user facint things into e2e
2020-10-26 14:34:22 -07:00
szihai
2e71e21991 add route 2020-10-26 01:45:11 -07:00
Jianbo Sun
24a92c9cbc Merge pull request #437 from captainroy-hy/app-centric
refact cmds from comp-centric into app-centric style
2020-10-26 15:29:35 +08:00
roy wang
410eb2be2b refact cmds from comp-centric into app-centric style
Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-10-26 15:05:37 +09:00
zzxwill
fecf1a710d Implement Autoscaler Trait
Support Cron type and resource usages (cpu) type
scalling

integrate with OAM by getting child deployment resource via OAM util library

support scaling PodSpecWorkload

support deployment scaling

remove unnecessary comment

support KEDA cron + resource metrics with Keda context

fix ownerreference issue

reorg imports

address part of commemts and refactor code

revert ownerRef settings as somehome leaving spec.replicas doesn't work
2020-10-26 13:39:31 +08:00
szihai
75a7ad4139 formatting 2020-10-25 22:10:53 -07:00
szihai
e874f68f39 formatting 2020-10-25 22:09:59 -07:00
szihai
4bd850853f add sections 2020-10-25 22:00:22 -07:00
Jianbo Sun
fe5f4b1680 Merge pull request #434 from ryanzhang-oss/add-scale
Add Flagger OAM integration example README
2020-10-26 12:33:56 +08:00
Jianbo Sun
297131d23d Merge pull request #435 from captainroy-hy/cap-template-URI
fix getting CUE template from remote
2020-10-26 12:33:04 +08:00
Jianbo Sun
6cf7a30dd4 Merge pull request #436 from hongchaodeng/master
make default appfile as vela.yaml
2020-10-26 12:31:56 +08:00
Jianbo Sun
755e134b87 Merge pull request #428 from captainroy-hy/vela-exec
vela exec
2020-10-26 11:40:27 +08:00
Hongchao Deng
192f435cfc make default appfile as vela.yaml 2020-10-25 19:34:28 -07:00
szihai
c5baa3ea19 update workload type 2020-10-25 19:32:38 -07:00
szihai
45f4e7d575 change db port 2020-10-25 11:09:48 -07:00
Ryan Zhang
64da6af3dc add podSpec test 2020-10-25 22:53:06 +08:00
roy wang
879427176d fix getting CUE template through URI
fix e2e-test

Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-10-25 23:42:32 +09:00
szihai
0962a6f776 add vela.yml 2020-10-25 01:42:50 -07:00
szihai
11d8f63e63 fix typo 2020-10-25 01:21:23 -07:00
szihai
f3e17ef90a fix typo 2020-10-25 00:38:28 -07:00
szihai
fbca8aab49 fix comp names for lab 2020-10-25 00:26:56 -07:00
szihai
770ecb3848 corrects to steps 2020-10-24 23:24:35 -07:00
roy wang
be6122edc3 vela exec
Signed-off-by: roy wang <seiwy2010@gmail.com>

add unit test

Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-10-25 14:56:37 +09:00
szihai
26ca8b85da working template 2020-10-24 10:59:11 -07:00
szihai
791578ee0c modify readme 2020-10-24 10:51:46 -07:00
Ryan Zhang
109e807d17 add flagger rollout example README 2020-10-24 19:26:27 +08:00
Ryan Zhang
d3466a0c4a document 2020-10-24 17:14:07 +08:00
szihai
c810e9494c add demo scripts 2020-10-24 00:18:05 -07:00
Hongchao Deng
037f14806a Merge pull request #431 from hongchaodeng/configcmd
vela config command
2020-10-23 20:09:02 -07:00
Hongchao Deng
941f5a973a add unit test for config cmd 2020-10-23 19:50:07 -07:00
Hongchao Deng
b11ccee60d add unit test for config in appfile
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-10-23 19:28:50 -07:00
Hongchao Deng
1b82e3ae2a vela config command
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-10-23 13:49:10 -07:00
Hongchao Deng
da05d71014 Merge pull request #429 from hongchaodeng/fix-image
remove image constraint
2020-10-23 13:43:52 -07:00
Hongchao Deng
f2825f2181 remove image constraint
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-10-23 13:14:14 -07:00
Hongchao Deng
125a0ce081 Merge pull request #426 from hongchaodeng/configcmd
fix naming
2020-10-22 20:03:46 -07:00
Hongchao Deng
c4a8d31073 fix naming 2020-10-22 17:05:30 -07:00
Jianbo Sun
e286862c59 Merge pull request #422 from mosesyou/feature-up-file
add support for `vela up` specify file path
2020-10-22 23:09:35 +08:00
mosesyou
faaaf5fd59 add support for vela up specify file path 2020-10-22 14:35:41 +08:00
Jianbo Sun
cbc8a90152 Merge pull request #423 from wonderflow/fix
fix label not int
2020-10-22 13:20:00 +08:00
天元
3082b7b9dd fix label not int 2020-10-22 12:22:50 +08:00
Hongchao Deng
6675b8a806 Merge pull request #421 from hongchaodeng/master
fix codecov
2020-10-21 18:49:51 -07:00
Hongchao Deng
8b0764e170 fix codecov
Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-10-21 17:15:13 -07:00
Jianbo Sun
204a578aaa Merge pull request #401 from captainroy-hy/check-oam-pod
wait until runtime ready during vela install
2020-10-21 17:42:54 +08:00
roy wang
de28c06af5 wait until runtime ready during vela install
check runtime ready before vela dashboard

Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-10-21 17:43:24 +09:00
Hongchao Deng
20a5457d5f refactor pkg/application to use Appfile (#402)
* refactor pkg/application to use Appfile

Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>

* fix build

* fix workload

* refactor pkg/application to use Appfile

Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>

* rebase

* fix

Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>

* e2e

Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>

* update design

* add test coverage for appfile

Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>

* comment

Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>
2020-10-21 13:01:46 +08:00
Hongchao Deng
fa575a0103 Merge pull request #414 from wonderflow/logs
support vela logs
2020-10-20 08:45:29 -07:00
Hongchao Deng
841ce47ecd Merge pull request #415 from wonderflow/fixroutedef
fix route trait definition
2020-10-20 08:44:10 -07:00
Jianbo Sun
df495d9c04 Update pkg/commands/logs.go
Co-authored-by: Ryan Zhang <yangzhangrice@hotmail.com>
2020-10-20 23:24:47 +08:00
天元
5f755d4ec9 fix route trait definition 2020-10-20 20:58:36 +08:00
天元
a195d25546 support vela logs 2020-10-20 20:45:28 +08:00
Jianbo Sun
177e89a399 Merge pull request #410 from wonderflow/docgen
refactor command and add vela generate-doc for cli
2020-10-20 15:13:48 +08:00
天元
04fcad21d4 refactor command and add vela generate-doc for cli 2020-10-20 14:54:02 +08:00
Zheng Xi Zhou
13dea58e35 Refine help and error message (#345)
* Refine help and error message

refined error message for `vela app run`
and correct help message for `vela comp ls`

To fix #320

* fix make issue
2020-10-20 14:34:19 +08:00
Hongchao Deng
38dc6fe73e fix bugs on pkg/appfile (#409)
* fix bugs on pkg/appfile

Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>

* fix
2020-10-20 13:55:57 +08:00
Jianbo Sun
33c9a1dade Merge pull request #408 from ryanzhang-oss/fix-local
fix local dev environment
2020-10-20 11:46:53 +08:00
Ryan Zhang
b13677363f install CRD manually 2020-10-20 11:30:34 +08:00
Ryan Zhang
50e5c6a25c Merge pull request #403 from wonderflow/fixrace
fix race and update oam-runtime dependency
2020-10-19 13:41:13 +08:00
天元
3812ed2488 fix race and update oam-runtime dependency 2020-10-19 13:19:08 +08:00
Jianbo Sun
1cc8a3980c Merge pull request #387 from wonderflow/route1
give route trait new discovery port way with podspecable design
2020-10-18 11:24:38 +08:00
Hongchao Deng
b08c6b9441 Appfile: Extensible, User-friendly Application Config Format (#390)
* design doc

Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>

* Support deployment via appfile

Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>

* design update

Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>

* comments

Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>

* update

Signed-off-by: Hongchao Deng <hongchaodeng1@gmail.com>

* refactor

* add multi services example in design doc
2020-10-18 11:22:17 +08:00
Ryan Zhang
8de3ee27f4 Merge pull request #392 from oam-dev/rollout-design
rollout trait high level design
2020-10-17 19:52:33 +08:00
Hongchao Deng
82714d163d Merge pull request #398 from hongchaodeng/codecov
move codecov upload to github workflow
2020-10-16 16:58:15 -07:00
Hongchao Deng
4fa3fb6486 move codecov upload to github workflow 2020-10-16 16:44:35 -07:00
Hongchao Deng
62de2e4d50 test codecov 2020-10-16 16:19:40 -07:00
Hongchao Deng
146dcb5e41 Merge pull request #397 from hongchaodeng/codecov
Setup codecov
2020-10-16 16:18:52 -07:00
Hongchao Deng
4889e458d4 add token 2020-10-16 16:07:47 -07:00
Hongchao Deng
8f4d9b37d2 fix 2020-10-16 15:24:59 -07:00
Hongchao Deng
0e83ff303c add codecov 2020-10-16 15:16:58 -07:00
天元
3d2bd9a898 add a design doc for route trait, along with fix and tests 2020-10-16 20:50:08 +08:00
Ryan Zhang
96f6a38869 rough rollout trait design 2020-10-15 21:06:50 +08:00
Jianbo Sun
4ef766c05d Merge pull request #395 from wonderflow/definition
move definition files to a separate dir
2020-10-15 17:30:05 +08:00
天元
2c721e5177 move definition files to a separate dir 2020-10-15 16:40:00 +08:00
Jianbo Sun
f58617f733 Merge pull request #394 from wonderflow/fixcert
covert certmanager to v1 and use wonderflow/cert-manager-api to reduce dependency collision
2020-10-15 12:13:50 +08:00
天元
1166c5b526 covert certmanager to v1 and use wonderflow/cert-manager-api to reduce dependency collision 2020-10-15 11:52:40 +08:00
Jianbo Sun
a5cacbe383 Merge pull request #393 from wonderflow/fix
add args for vela install and fix E2E with fresh image build
2020-10-14 23:41:33 +08:00
天元
d9302ff982 add args for vela install and fix E2E with fresh image build 2020-10-14 23:22:15 +08:00
Jianbo Sun
3751b98e7a Merge pull request #389 from wonderflow/initappdeploy
bootstrap application deployment for app level rollout/traffic management
2020-10-14 12:49:16 +08:00
天元
a66938eee8 add more to contributing guide 2020-10-14 12:01:52 +08:00
Ryan Zhang
529d150737 add an example on how to use flagger and fix some minor bugs (#381) 2020-10-14 11:43:57 +08:00
天元
395e2d55f7 bootstrap application deployment for app level rollout/traffic management 2020-10-14 11:41:31 +08:00
Jianbo Sun
4cb677418f Merge pull request #388 from captainroy-hy/fix-e2e-setup-2
revert commented e2e cases
2020-10-14 10:05:56 +08:00
roy wang
ad819b354a fix e2e-setup
revert commented e2e cases

Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-10-13 21:56:44 +09:00
Jianbo Sun
48404bde98 Merge pull request #386 from wonderflow/fixconfig
fix make core-run panic
2020-10-13 19:57:22 +08:00
Jianbo Sun
a36e6fc14b Merge pull request #379 from captainroy-hy/add-probes
add liveness & readiness probes
2020-10-13 19:46:44 +08:00
天元
f3eed5f283 fix make core-run panic 2020-10-13 19:35:01 +08:00
roy wang
53fc9e5b71 add ready/health probes
add waiting for webhook secret ready

add unit tests

Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-10-13 18:57:58 +09:00
Jianbo Sun
1479109324 move chart build to source file, allow chart CRD switching to V1 of cert-manager (#382)
* add chart_source

* generate chart to fake file

* switching to V1 of cert-manager

make exec time longer
2020-10-13 17:20:59 +08:00
Hongchao Deng
f106752b48 Merge pull request #385 from wonderflow/route
align to oam-k8s-runtime v0.3.0-rc1 and its CRD file
2020-10-12 21:20:59 -07:00
Hongchao Deng
467d3ab59c Merge pull request #384 from hongchaodeng/data
cue: rename 'data' to 'output'
2020-10-12 21:12:26 -07:00
天元
6076516c24 align to oam-k8s-runtime v0.3.0-rc1 and its CRD file 2020-10-13 12:11:55 +08:00
Hongchao Deng
af91fdf21e cue: rename 'data' to 'output' 2020-10-12 21:02:33 -07:00
Jianbo Sun
4bb8492f43 Merge pull request #383 from captainroy-hy/fix-block-e2e
comment out e2e blocking cases
2020-10-13 11:41:55 +08:00
roy wang
4428a6e738 remove e2e blocking cases
Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-10-13 12:12:17 +09:00
silenceper
1f3548eee4 fix check resource exists (#373)
* fix check resource exists

* fix go lint

* add tests, fix DoesCRDExist

* remove init func

* fix should return err
2020-10-13 07:54:19 +08:00
Jianbo Sun
64d77656cf Merge pull request #380 from zzxwill/env-args
Update env init API doc
2020-10-12 15:46:43 +08:00
zzxwill
21f191b889 Update env init API doc 2020-10-12 15:32:07 +08:00
Jianbo Sun
60402414f1 Merge pull request #372 from zzxwill/fix-link
Fix code of conduct link
2020-10-10 18:28:35 +08:00
zzxwill
6fb9d02e8d Fix code of conduct link
renamed:    CODE_OF_CONDUCT.md  -> CODE_OF_CONDUCT.md
2020-10-10 17:35:16 +08:00
Jianbo Sun
eaac01b58c Merge pull request #366 from wonderflow/descirption
add description for workload and trait
2020-10-10 14:47:45 +08:00
Zheng Xi Zhou
af724ad58a Update appliesToWorkloads field in traitdefinition (#368)
* Update appliesToWorkloads field in traitdefintion

updated appliesToWorkloads fileds in traitdefinition
for three workloads, webservice, task and backend.
fix issue #346

* remove duplication
2020-10-10 14:27:34 +08:00
天元
590918af32 add description for workload and trait 2020-10-10 10:15:30 +08:00
Jianbo Sun
0b59db8fb0 Merge pull request #367 from resouer/fix-typo
Fix typos in design doc [part 2]
2020-10-10 09:59:38 +08:00
Harry Zhang
04deadd684 Fix typos in design doc [part 2] 2020-10-09 10:45:19 -07:00
Jianbo Sun
dd08aa4d45 Merge pull request #329 from captainroy-hy/track-comp-status
track status changing in vela init
2020-10-09 19:12:35 +08:00
roy wang
8b3bda82f7 add e2e test for vela init
modify e2e setup to wait oam-runtime pod running

add k8sclient in e2e test

refine tracking status of vela init

Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-10-09 19:36:33 +09:00
roy wang
6aafb90acd track status changing in vela init
fix e2e-test

update oam-k8s-runtime dependency to latest tag

Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-10-09 18:41:53 +09:00
Jianbo Sun
a0e12b84c7 Merge pull request #364 from resouer/update-project
Add design doc to kubevela and update readme
2020-10-09 14:48:55 +08:00
Harry Zhang
e56eb2fa67 Complete detailed design (part 1) 2020-10-08 22:38:08 -07:00
Jianbo Sun
28e75551ed Merge pull request #363 from hanxie-crypto/feature07
bug fix
2020-10-09 10:10:30 +08:00
hanxie
045a4aae2d bug fix 2020-10-09 09:58:48 +08:00
Jianbo Sun
53a9e9284d Merge pull request #359 from wonderflow/fixroute
Some fixes
2020-10-09 08:31:37 +08:00
天元
189175c4db using Environment intead of ENV fixes #350 2020-10-09 08:21:31 +08:00
Jianbo Sun
aa9c96d0b5 Merge pull request #360 from captainroy-hy/fix-hack-generate
fix minor bug in generate.go
2020-10-08 19:32:32 +08:00
roy wang
ceaf6db82c fix minor bugs in generate.go
Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-10-08 19:09:22 +09:00
天元
e4570e22ae fix podspec workload not create service anymore 2020-10-08 16:09:04 +08:00
天元
c9a28309b2 fix trait detach not work 2020-10-08 16:08:42 +08:00
天元
6d50eed4f9 fix temparory chart dir created when develop locally 2020-10-08 15:58:43 +08:00
天元
e922666d5f rename 'vela comp run' to 'vela comp deploy' 2020-10-08 15:46:30 +08:00
天元
43223f0759 fix helm chart release name to kubevela 2020-10-08 15:31:05 +08:00
Harry Zhang
2641630b97 Init commit on design doc 2020-10-07 10:31:55 -07:00
Ryan Zhang
f4d5a13934 Merge pull request #356 from oam-dev/rename
rename containerized to podspecworkload
2020-10-06 10:13:54 -07:00
Ryan Zhang
61544a0be6 rename containerized to podspecworkload 2020-10-06 00:25:16 -07:00
Ryan Zhang
e422d0ba86 Merge pull request #352 from oam-dev/install-helm
Hack the Helm install client and improve the helm chart
2020-10-02 23:14:12 -07:00
Ryan Zhang
d0d8d77337 fix the test 2020-10-02 20:26:50 -07:00
Ryan Zhang
3f468e4752 improve helm install 2020-10-02 19:29:31 -07:00
Jianbo Sun
3b6ced2a58 Merge pull request #351 from resouer/readme
Add details for the project
2020-10-02 11:47:05 +08:00
Harry Zhang
f29bb26880 Add details for the project 2020-10-01 19:22:15 -07:00
Jianbo Sun
6ede8601b4 Merge pull request #343 from zzxwill/api
Refine and fix API
2020-09-30 14:44:38 +08:00
zzxwill
8a15d19348 Refine and fix API
- fixed trait attach issue
- allow leaving out `/` to make API more friendly
- merge similar struct
2020-09-29 19:30:52 +08:00
Zheng Xi Zhou
e0b4e5f76f Merge pull request #342 from hanxie-crypto/feature06
update applist
2020-09-29 19:27:30 +08:00
hanxie
6c04af02cb update applist 2020-09-29 19:08:04 +08:00
Zheng Xi Zhou
351049b74f Merge pull request #337 from hanxie-crypto/feature05
Component module related
2020-09-29 16:58:07 +08:00
hanxie
30127f8a3e Component module related 2020-09-28 19:37:33 +08:00
Ryan Zhang
6863ac02a1 add back the test after the cue templates are updated (#328)
* add back the test

* enhance e2e test
2020-09-28 17:51:06 +08:00
silenceper
24c30e65fb Determine whether it is necessary to create a service (#333)
* Determine whether it is necessary to create a service

* add checkContainerPortsSpecified func

* add check workload is nil
2020-09-28 10:08:51 +08:00
silenceper
c4dd02761a support delete multi env (#331)
* support delete multi env

* fix golint
2020-09-27 15:44:46 +08:00
Hongchao Deng
72b7a89e9a Merge pull request #332 from silenceper/fix-break
use return instead of break
2020-09-26 23:41:37 -07:00
silenceper
453976e28f use return instead of break 2020-09-27 14:31:03 +08:00
Jianbo Sun
914fa61819 Merge pull request #325 from zzxwill/component-api
Implemente Component api
2020-09-27 12:19:52 +08:00
zzxwill
e1a2edb604 fix naming issue 2020-09-27 11:35:46 +08:00
zzxwill
d245f3f939 implemented component delete API 2020-09-26 21:43:32 +08:00
zzxwill
433296d718 Update trait attach/detach with the introduction of component 2020-09-26 21:43:32 +08:00
zzxwill
28c3c683a0 Implement component related API
Update app list/show, implmented
component show
2020-09-26 21:41:15 +08:00
Jianbo Sun
50ba36eb1e Merge pull request #319 from oam-dev/cue-improve
Tweak the cue template format
2020-09-26 13:12:08 +08:00
Ryan Zhang
c69c809264 improve CUE format 2020-09-25 21:58:30 -07:00
Sun Jianbo
fac05a3bd1 Merge pull request #326 from zzxwill/naming
Fix naming in `json` of struct fields
2020-09-25 15:39:43 +08:00
zzxwill
60e34d5b03 Fix naming in json of struct fields
almost all of names in `json` of struct fileds
should be in `lowerUpper` format
2020-09-25 14:55:24 +08:00
Hongchao Deng
8b480df72d Merge pull request #318 from hongchaodeng/gomod
fixed dep should be put under 'replace'
2020-09-23 21:00:44 -07:00
Sun Jianbo
5deef1c098 Merge pull request #314 from captainroy-hy/fix-comp-status
fix bug: handle exception cases in `vela comp status`
2020-09-24 10:15:59 +08:00
roy wang
11d4fcd56f handle exception cases of vela comp status
Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-09-24 10:59:53 +09:00
Hongchao Deng
d78648b73c fixed dep should be put under 'replace' 2020-09-23 09:12:09 -07:00
Sun Jianbo
525c228bd7 Merge pull request #311 from wonderflow/fix
fix env exist but issuer not exist
2020-09-23 11:22:11 +08:00
天元
ba6a53c6f5 fix env exist but issuer not exist 2020-09-23 10:38:59 +08:00
Sun Jianbo
0d1dd62b8a Merge pull request #308 from wonderflow/init
vela init to create and run application in one command
2020-09-22 20:23:41 +08:00
天元
5ac7265474 vela init to create and run application in one command 2020-09-22 20:07:53 +08:00
Zheng Xi Zhou
08701568a1 Fix OpenAPIV3Schema Validation Issue (#300)
* Fix OpenAPIV3Schema Validation Issue

Temporarily corrects spec.validation.openAPIV3Schema issue, and it would be removed
after this issue was fixed https://github.com/oam-dev/kubevela/issues/284.

* fix vela install issue

* return error during fixing APIV3SchemaValidation issue
2020-09-22 15:51:38 +08:00
roy wang
faedce906a fix #128 | sync deleted workload locally
Signed-off-by: roy wang <seiwy2010@gmail.com>

fix & add unit tests

Signed-off-by: roy wang <seiwy2010@gmail.com>

fix info output & unit test

Signed-off-by: roy wang <seiwy2010@gmail.com>

fix e2e-test

Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-09-21 19:22:34 +08:00
Sun Jianbo
f5908741d3 Update pkg/commands/system.go 2020-09-21 19:22:34 +08:00
mosesyou
5414cc1f86 fix duplicate vela system info failure message 2020-09-21 19:22:34 +08:00
天元
371a989f9b add move readme 2020-09-21 19:22:34 +08:00
天元
8b3af3be93 temporarily add containerized to chart 2020-09-21 19:22:34 +08:00
hanxie
d6e519f1c4 Components static page,bugfix,capability delete 2020-09-21 19:22:34 +08:00
Sun Jianbo
90fd0a5055 Merge pull request #295 from wonderflow/production-issuer
add production certificate issuer and fix route trait
2020-09-18 21:45:14 +08:00
天元
3af41f6515 add production certificate issuer and fix route trait 2020-09-18 19:06:51 +08:00
Yue Wang
ee39054537 get cue temp from remote through URI (#287)
* get cue template of capabilities from remote by URI

Signed-off-by: roy wang <seiwy2010@gmail.com>

* add e2e tests

Signed-off-by: roy wang <seiwy2010@gmail.com>

* fix type conversion

Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-09-18 15:59:36 +08:00
Ryan Zhang
b5218d371a Merge pull request #293 from wonderflow/iamge
use image from docker hub instead of quay.io
2020-09-17 19:23:41 -07:00
天元
7f5298a802 use image from docker hub instead of quay.io 2020-09-17 17:30:33 +08:00
2075 changed files with 330536 additions and 48966 deletions

36
.github/CODEOWNERS vendored Normal file
View File

@@ -0,0 +1,36 @@
# This file is a github code protect rule follow the codeowners https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-code-owners#example-of-a-codeowners-file
* @barnettZQG @wonderflow @leejanee
design/ @barnettZQG @leejanee @wonderflow
# Owner of CUE
pkg/cue @leejanee @FogDong
pkg/stdlib @leejanee @FogDong
# Owner of Workflow
pkg/workflow @leejanee @FogDong
# Owner of rollout
pkg/controller/common/rollout/ @wangyikewxgm @wonderflow
pkg/controller/core.oam.dev/v1alpha2/applicationrollout @wangyikewxgm @wonderflow
pkg/controller/standard.oam.dev/v1alpha1/rollout @wangyikewxgm @wonderflow
runtime/rollout @wangyikewxgm @wonderflow
# Owner of definition controller
pkg/controller/core.oam.dev/v1alpha2/core/workflow/workflowstepdefinition @yangsoon @Somefive
pkg/controller/core.oam.dev/v1alpha2/core/policies/policydefinition @yangsoon @Somefive
pkg/controller/core.oam.dev/v1alpha2/core/components/componentdefinition @yangsoon @zzxwill
pkg/controller/core.oam.dev/v1alpha2/core/traits/traitdefinition @yangsoon @zzxwill
# Owner of health scope controller
pkg/controller/core.oam.dev/v1alpha2/core/scopes/healthscope @captainroy-hy @zzxwill
# Owner of vela templates
vela-templates/ @Somefive @barnettZQG @wonderflow
# Owner of vela CLI
references/cli/ @Somefive @zzxwill
# Owner of vela APIServer
pkg/apiserver/ @barnettZQG @yangsoon

View File

@@ -1,7 +1,7 @@
---
name: Bug report
name: "\U0001F41B Bug report"
about: Create a report to help us improve
title: "[BUG]"
title: ""
labels: kind/bug
assignees: ''
@@ -15,9 +15,9 @@ A clear and concise description of what the bug is.
**To Reproduce**
<!--
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
1. The YAML files of Component/Trait I used.
2. The YAML file of Application I applied.
3. Other operations I have done.
4. See error
-->
@@ -31,6 +31,12 @@ A clear and concise description of what you expected to happen.
If applicable, add screenshots to help explain your problem.
-->
**KubeVela Version**
<!--
Describe your KubeVela controller or CLI version information.
-->
**Cluster information**
<!--
Describe your kubernetes cluster information.

View File

@@ -1 +0,0 @@
blank_issues_enabled: true

5
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Questions & Help
url: https://github.com/oam-dev/kubevela/discussions
about: Please ask and answer questions here.

View File

@@ -1,5 +1,5 @@
---
name: Feature request
name: "\U0001F680 Feature request"
about: Suggest an idea for this project
title: "[Feature]"
labels: kind/feature

View File

@@ -1,12 +0,0 @@
---
name: Question
about: Help wanted.
title: "[Question]"
labels: help wanted
assignees: ''
---
<!--
Please write your questions.
-->

37
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,37 @@
### Description of your changes
<!--
Briefly describe what this pull request does. We love pull requests that resolve an open KubeVela issue. If yours does, you
can uncomment the below line to indicate which issue your PR fixes, for example
"Fixes #500":
-->
Fixes #
I have:
- [ ] Read and followed KubeVela's [contribution process](https://github.com/kubevela/kubevela/blob/master/contribute/create-pull-request.md).
- [ ] [Related Docs](https://github.com/kubevela/kubevela.io) updated properly. In a new feature or configuration option, an update to the documentation is necessary.
- [ ] Run `make reviewable` to ensure this PR is ready for review.
- [ ] Added `backport release-x.y` labels to auto-backport this PR if necessary.
### How has this code been tested
<!--
Before reviewers can be confident in the correctness of this pull request, it
needs to tested and shown to be correct. Briefly describe the testing that has
already been done or which is planned for this change.
-->
### Special notes for your reviewer
<!--
Be sure to direct your reviewers'
attention to anything that needs special consideration.
-->

31
.github/bot.md vendored Normal file
View File

@@ -0,0 +1,31 @@
### GitHub & kubevela automation
The bot is configured via [issue-commands.json](https://github.com/kubevela/kubevela/blob/master/.github/workflows/issue-commands.json)
and some other GitHub [workflows](https://github.com/kubevela/kubevela/blob/master/.github/workflows).
By default, users with write access to the repo is allowed to use the comments,
the [userlist](https://github.com/kubevela/kubevela/blob/master/.github/comment.userlist)
file is for adding additional members who do not have access and want to contribute to the issue triage.
Comment commands:
* Write the word `/needsInvestigation` in a comment, and the bot will add the corresponding label.
* Write the word `/needsMoreInfo` in a comment, and the bot will add the correct label and standard message.
* Write the word `/duplicate #<number>` to have `type/duplicate` label, the issue number is required for remind where is the other issue.
* Write the word `/type/*` in a comment, and the bot will add the corresponding label `/type/*`.
* Write the word `/area/*` in a comment, and the bot will add the corresponding label `/area/*`.
* Write the word `/priority/*` in a comment, and the bot will add the corresponding label `/priority/*`.
The `*` mention above represent a specific word. Please read the details about label category in [ISSUE_TRIAGE.md](https://github.com/kubevela/kubevela/blob/master/ISSUE_TRIAGE.md)
Label commands:
* Add label `bot/question` the bot will close with standard question message and add label `type/question`
* Add label `bot/needs more info` for bot to request more info (or use comment command mentioned above)
* Add label `bot/no new info` for bot to close an issue where we asked for more info but has not received any updates in at least 14 days.
* Add label `bot/duplicate` to have `type/duplicate` label & the bot will close issue with an appropriate message.
* Add label `bot/close feature request` for bot to close a feature request with standard message.
Assign:
When you participating in an issue area, and you want to assign to others
to distribute this task or self-assign to give a solution. You can use the comment bellow.
* Write the word `/assign githubname` in a comment, the robot will automatically assign to the corresponding person.
* Specially, write the word `/assign` in a comment, you can assgin this task to yourself.

14
.github/comment.userlist vendored Normal file
View File

@@ -0,0 +1,14 @@
resouer
wonderflow
hongchaodeng
zzxwill
ryanzhang-oss
captainroy-hy
wangyikewxgm
BinaryHB0916
yangsoon
wangyuan249
chivalryq
FogDong
leejanee
barnettZQG

15
.github/how-to.md vendored Normal file
View File

@@ -0,0 +1,15 @@
# Github Utilities
## How to add a custom runner
1. Create an ECS that can connect github. Create a normal user(DON'T use `root`).
2. Install Dependencies:
- Kind
- Docker `apt install docker.io`, and the user to docker group(`usermod -aG docker <user>`)
- Kubectl
- Go(1.14 for now, must align with CI)
- Helm v3
- ginkgo
- Add all these dependencies to $PATH.
3. Install Custom runner agent https://docs.github.com/en/actions/hosting-your-own-runners/adding-self-hosted-runners
4. Run the runner as service https://docs.github.com/en/actions/hosting-your-own-runners/configuring-the-self-hosted-runner-application-as-a-service

153
.github/issue-commands.json vendored Normal file
View File

@@ -0,0 +1,153 @@
[
{
"type": "comment",
"name": "needsMoreInfo",
"allowUsers": [],
"action": "updateLabels",
"addLabel": "needs more info"
},
{
"type": "comment",
"name": "needsInvestigation",
"allowUsers": [],
"action": "updateLabels",
"addLabel": "needs investigation"
},
{
"type": "comment",
"name": "assign",
"allowUsers": ["*"]
},
{
"type": "comment",
"name": "type/bug",
"allowUsers": [],
"action": "updateLabels",
"addLabel": "type/bug"
},
{
"type": "comment",
"name": "type/docs",
"allowUsers": [],
"action": "updateLabels",
"addLabel": "type/docs"
},
{
"type": "comment",
"name": "type/enhancement",
"allowUsers": [],
"action": "updateLabels",
"addLabel": "type/enhancement"
},
{
"type": "comment",
"name": "priority/critical",
"allowUsers": [],
"action": "updateLabels",
"addLabel": "priority/critical"
},
{
"type": "comment",
"name": "priority/important-soon",
"allowUsers": [],
"action": "updateLabels",
"addLabel": "priority/important-soon"
},
{
"type": "comment",
"name": "priority/important-longterm",
"allowUsers": [],
"action": "updateLabels",
"addLabel": "priority/important-longterm"
},
{
"type": "comment",
"name": "priority/nice-to-have",
"allowUsers": [],
"action": "updateLabels",
"addLabel": "priority/nice-to-have"
},
{
"type": "comment",
"name": "priority/awaiting-more-evidence",
"allowUsers": [],
"action": "updateLabels",
"addLabel": "priority/awaiting-more-evidence"
},
{
"type": "comment",
"name": "priority/unscheduled",
"allowUsers": [],
"action": "updateLabels",
"addLabel": "priority/unscheduled"
},
{
"type": "comment",
"name": "area/appconfig",
"allowUsers": [],
"action": "updateLabels",
"addLabel": "area/appconfig"
},
{
"type": "comment",
"name": "area/application",
"allowUsers": [],
"action": "updateLabels",
"addLabel": "area/application"
},
{
"type": "comment",
"name": "area/component",
"allowUsers": [],
"action": "updateLabels",
"addLabel": "area/component"
},
{
"type": "comment",
"name": "area/controller",
"allowUsers": [],
"action": "updateLabels",
"addLabel": "area/controller"
},
{
"type": "comment",
"name": "area/cue",
"allowUsers": [],
"action": "updateLabels",
"addLabel": "area/cue"
},
{
"type": "comment",
"name": "area/trait",
"allowUsers": [],
"action": "updateLabels",
"addLabel": "area/trait"
},
{
"type": "comment",
"name": "duplicate",
"allowUsers": [],
"action": "updateLabels",
"addLabel": "type/duplicate"
},
{
"type": "label",
"name": "bot/duplicate",
"addLabel": "type/duplicate",
"removeLabel": "bot/duplicate",
"action": "close",
"comment": "Thanks for creating this issue! It looks like this has already been reported by another user. Weve closed this in favor of the existing one. Please consider adding any details you think is missing to that issue.\n\nTo avoid having your issue closed in the future, please read our [CONTRIBUTING](https://github.com/oam-dev/kubevela/blob/master/CONTRIBUTING.md) guidelines.\n\nHappy graphing!"
},
{
"type": "label",
"name": "bot/no new info",
"action": "close",
"comment": "We've closed this issue since it needs more information and hasn't had any activity recently. We can re-open it after you you add more information. To avoid having your issue closed in the future, please read our [CONTRIBUTING](https://github.com/oam-dev/kubevela/blob/master/CONTRIBUTING.md) guidelines.\n\nHappy graphing!"
},
{
"type": "label",
"name": "bot/close feature request",
"action": "close",
"comment": "This feature request has been open for a long time with few received upvotes or comments, so we are closing it. We're trying to limit open GitHub issues in order to better track planned work and features. \r\n\r\nThis doesn't mean that we'll never ever implement it or that we will never accept a PR for it. A closed issue can still attract upvotes and act as a ticket to track feature demand\/interest. \r\n\r\nThank You to you for taking the time to create this issue!"
}
]

10
.github/pr-title-checker-config.json vendored Normal file
View File

@@ -0,0 +1,10 @@
{
"LABEL": {
"name": "title-needs-formatting",
"color": "EEEEEE"
},
"CHECKS": {
"prefixes": ["Fix: ", "Feat: ", "Docs: ", "Test: ", "Chore: ", "CI: ", "Perf: ", "Refactor: ", "Revert: ", "Style: ", "Test: ",
"Fix(", "Feat(", "Docs(", "Test(", "Chore(", "CI(", "Perf(", "Refactor(", "Revert(", "Style(", "Test(", "[Backport"]
}
}

143
.github/workflows/apiserver-test.yaml vendored Normal file
View File

@@ -0,0 +1,143 @@
name: APIServer Unit Test & E2E Test
on:
push:
branches:
- master
- release-*
- apiserver
tags:
- v*
workflow_dispatch: { }
pull_request:
branches:
- master
- release-*
- apiserver
env:
# Common versions
GO_VERSION: '1.17'
GOLANGCI_VERSION: 'v1.38'
KIND_VERSION: 'v0.7.0'
KIND_IMAGE_VERSION: '[\"v1.20.7\"]'
KIND_IMAGE_VERSIONS: '[\"v1.18.20\",\"v1.20.7\",\"v1.22.7\"]'
jobs:
detect-noop:
runs-on: ubuntu-20.04
outputs:
noop: ${{ steps.noop.outputs.should_skip }}
steps:
- name: Detect No-op Changes
id: noop
uses: fkirc/skip-duplicate-actions@v3.3.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
paths_ignore: '["**.md", "**.mdx", "**.png", "**.jpg"]'
do_not_skip: '["workflow_dispatch", "schedule", "push"]'
concurrent_skipping: false
set-k8s-matrix:
runs-on: ubuntu-20.04
outputs:
matrix: ${{ steps.set-k8s-matrix.outputs.matrix }}
steps:
- id: set-k8s-matrix
run: |
if [[ "${{ github.ref }}" == refs/tags/v* ]]; then
echo "pushing tag: ${{ github.ref_name }}"
echo "::set-output name=matrix::${{ env.KIND_IMAGE_VERSIONS }}"
else
echo "::set-output name=matrix::${{ env.KIND_IMAGE_VERSION }}"
fi
apiserver-unit-tests:
runs-on: aliyun
needs: [ detect-noop,set-k8s-matrix ]
if: needs.detect-noop.outputs.noop != 'true'
strategy:
matrix:
k8s-version: ${{ fromJson(needs.set-k8s-matrix.outputs.matrix) }}
steps:
- name: Set up Go
uses: actions/setup-go@v1
with:
go-version: ${{ env.GO_VERSION }}
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v2
with:
submodules: true
- name: Get dependencies
run: |
go get -v -t -d ./...
- name: Setup Kind
uses: engineerd/setup-kind@v0.5.0
with:
version: ${{ env.KIND_VERSION }}
skipClusterCreation: true
- name: Setup Kind Cluster (Worker)
run: |
kind delete cluster --name worker
kind create cluster --image kindest/node:${{ matrix.k8s-version }} --name worker
kubectl version
kubectl cluster-info
kind get kubeconfig --name worker --internal > /tmp/worker.kubeconfig
kind get kubeconfig --name worker > /tmp/worker.client.kubeconfig
- name: Setup Kind Cluster (Hub)
run: |
kind delete cluster
kind create cluster --image kindest/node:${{ matrix.k8s-version }}
kubectl version
kubectl cluster-info
- name: Run api server unit test
run: make unit-test-apiserver
- name: Load Image to kind cluster
run: make kind-load
- name: Cleanup for e2e tests
run: |
make e2e-cleanup
make vela-cli
make e2e-setup-core
bin/vela addon enable fluxcd
timeout 600s bash -c -- 'while true; do kubectl get ns flux-system; if [ $? -eq 0 ] ; then break; else sleep 5; fi;done'
kubectl wait --for=condition=Ready pod -l app.kubernetes.io/name=vela-core,app.kubernetes.io/instance=kubevela -n vela-system --timeout=600s
kubectl wait --for=condition=Ready pod -l app=source-controller -n flux-system --timeout=600s
kubectl wait --for=condition=Ready pod -l app=helm-controller -n flux-system --timeout=600s
- name: Run api server e2e test
run: |
export ALIYUN_ACCESS_KEY_ID=${{ secrets.ALIYUN_ACCESS_KEY_ID }}
export ALIYUN_ACCESS_KEY_SECRET=${{ secrets.ALIYUN_ACCESS_KEY_SECRET }}
export GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }}
make e2e-apiserver-test
- name: Stop kubevela, get profile
run: make end-e2e-core
- name: Upload coverage report
uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./coverage.txt,/tmp/e2e_apiserver_test.out
flags: apiserver-unittests
name: codecov-umbrella
- name: Clean e2e profile
run: rm /tmp/e2e-profile.out
- name: Cleanup image
if: ${{ always() }}
run: make image-cleanup

22
.github/workflows/back-port.yaml vendored Normal file
View File

@@ -0,0 +1,22 @@
name: Backport
on:
pull_request_target:
types:
- closed
jobs:
# align with crossplane's choice https://github.com/crossplane/crossplane/blob/master/.github/workflows/backport.yml
open-pr:
runs-on: ubuntu-20.04
if: github.event.pull_request.merged
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Open Backport PR
uses: zeebe-io/backport-action@v0.0.6
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
github_workspace: ${{ github.workspace }}

89
.github/workflows/chart.yaml vendored Normal file
View File

@@ -0,0 +1,89 @@
name: Publish Chart
on:
push:
tags:
- "v*"
workflow_dispatch: { }
env:
BUCKET: ${{ secrets.OSS_BUCKET }}
ENDPOINT: ${{ secrets.OSS_ENDPOINT }}
ACCESS_KEY: ${{ secrets.OSS_ACCESS_KEY }}
ACCESS_KEY_SECRET: ${{ secrets.OSS_ACCESS_KEY_SECRET }}
ARTIFACT_HUB_REPOSITORY_ID: ${{ secrets.ARTIFACT_HUB_REPOSITORY_ID }}
jobs:
publish-charts:
env:
HELM_CHARTS_DIR: charts
HELM_CHART: charts/vela-core
MINIMAL_HELM_CHART: charts/vela-minimal
LEGACY_HELM_CHART: legacy/charts/vela-core-legacy
VELA_ROLLOUT_HELM_CHART: runtime/rollout/charts
LOCAL_OSS_DIRECTORY: .oss/
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@master
- name: Get git revision
id: vars
shell: bash
run: |
echo "::set-output name=git_revision::$(git rev-parse --short HEAD)"
- name: Install Helm
uses: azure/setup-helm@v1
with:
version: v3.4.0
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: '14'
- name: Generate helm doc
run: |
make helm-doc-gen
- name: Prepare legacy chart
run: |
rsync -r $LEGACY_HELM_CHART $HELM_CHARTS_DIR
rsync -r $HELM_CHART/* $LEGACY_HELM_CHART --exclude=Chart.yaml --exclude=crds
- name: Prepare vela chart
run: |
rsync -r $VELA_ROLLOUT_HELM_CHART $HELM_CHARTS_DIR
- name: Get the version
id: get_version
run: |
VERSION=${GITHUB_REF#refs/tags/}
echo ::set-output name=VERSION::${VERSION}
- name: Tag helm chart image
run: |
image_tag=${{ steps.get_version.outputs.VERSION }}
chart_version=${{ steps.get_version.outputs.VERSION }}
sed -i "s/latest/${image_tag}/g" $HELM_CHART/values.yaml
sed -i "s/latest/${image_tag}/g" $MINIMAL_HELM_CHART/values.yaml
sed -i "s/latest/${image_tag}/g" $LEGACY_HELM_CHART/values.yaml
sed -i "s/latest/${image_tag}/g" $VELA_ROLLOUT_HELM_CHART/values.yaml
chart_smever=${chart_version#"v"}
sed -i "s/0.1.0/$chart_smever/g" $HELM_CHART/Chart.yaml
sed -i "s/0.1.0/$chart_smever/g" $MINIMAL_HELM_CHART/Chart.yaml
sed -i "s/0.1.0/$chart_smever/g" $LEGACY_HELM_CHART/Chart.yaml
sed -i "s/0.1.0/$chart_smever/g" $VELA_ROLLOUT_HELM_CHART/Chart.yaml
- name: Install ossutil
run: wget http://gosspublic.alicdn.com/ossutil/1.7.0/ossutil64 && chmod +x ossutil64 && mv ossutil64 ossutil
- name: Configure Alibaba Cloud OSSUTIL
run: ./ossutil --config-file .ossutilconfig config -i ${ACCESS_KEY} -k ${ACCESS_KEY_SECRET} -e ${ENDPOINT} -c .ossutilconfig
- name: sync cloud to local
run: ./ossutil --config-file .ossutilconfig sync oss://$BUCKET/core $LOCAL_OSS_DIRECTORY
- name: add artifacthub stuff to the repo
run: |
rsync $HELM_CHART/README.md $LEGACY_HELM_CHART/README.md
rsync $HELM_CHART/README.md $VELA_ROLLOUT_HELM_CHART/README.md
sed -i "s/ARTIFACT_HUB_REPOSITORY_ID/$ARTIFACT_HUB_REPOSITORY_ID/g" hack/artifacthub/artifacthub-repo.yml
rsync hack/artifacthub/artifacthub-repo.yml $LOCAL_OSS_DIRECTORY
- name: Package helm charts
run: |
helm package $HELM_CHART --destination $LOCAL_OSS_DIRECTORY
helm package $MINIMAL_HELM_CHART --destination $LOCAL_OSS_DIRECTORY
helm package $LEGACY_HELM_CHART --destination $LOCAL_OSS_DIRECTORY
helm package $VELA_ROLLOUT_HELM_CHART --destination $LOCAL_OSS_DIRECTORY
helm repo index --url https://$BUCKET.$ENDPOINT/core $LOCAL_OSS_DIRECTORY
- name: sync local to cloud
run: ./ossutil --config-file .ossutilconfig sync $LOCAL_OSS_DIRECTORY oss://$BUCKET/core -f

30
.github/workflows/codeql-analysis.yml vendored Normal file
View File

@@ -0,0 +1,30 @@
name: "CodeQL"
on:
push:
branches: [ master, release-* ]
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
language: [ 'go' ]
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
- name: Autobuild
uses: github/codeql-action/autobuild@v1
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

19
.github/workflows/commit-lint.yml vendored Normal file
View File

@@ -0,0 +1,19 @@
name: PR Title Checker
on:
pull_request:
types:
- opened
- edited
- synchronize
- labeled
- unlabeled
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: thehanimo/pr-title-checker@v1.3.1
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
pass_on_octokit_error: true
configuration_path: ".github/pr-title-checker-config.json"

View File

@@ -1,25 +0,0 @@
name: Dashboard
on:
push:
branches: [ master ]
pull_request:
defaults:
run:
working-directory: ./dashboard
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [10.x]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- run: npm install
- run: npm run build

View File

@@ -1,25 +0,0 @@
name: Publish to Registry
on:
push:
branches:
- master
jobs:
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Publish to Github Docker Package Registry
uses: elgohr/Publish-Docker-Github-Action@2.21
with:
name: oam-dev/kubevela/vela-core
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
registry: docker.pkg.github.com
tags: "latest"
- name: Publish to Docker Hub Registry
uses: elgohr/Publish-Docker-Github-Action@2.21
with:
name: oamdev/vela-core
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
tags: "latest"

View File

@@ -0,0 +1,131 @@
name: E2E MultiCluster Test
on:
push:
branches:
- master
- release-*
tags:
- v*
workflow_dispatch: {}
pull_request:
branches:
- master
- release-*
env:
# Common versions
GO_VERSION: '1.17'
GOLANGCI_VERSION: 'v1.38'
KIND_VERSION: 'v0.7.0'
KIND_IMAGE_VERSION: '[\"v1.20.7\"]'
KIND_IMAGE_VERSIONS: '[\"v1.18.20\",\"v1.20.7\",\"v1.22.7\"]'
jobs:
detect-noop:
runs-on: ubuntu-20.04
outputs:
noop: ${{ steps.noop.outputs.should_skip }}
steps:
- name: Detect No-op Changes
id: noop
uses: fkirc/skip-duplicate-actions@v3.3.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
paths_ignore: '["**.md", "**.mdx", "**.png", "**.jpg"]'
do_not_skip: '["workflow_dispatch", "schedule", "push"]'
concurrent_skipping: false
set-k8s-matrix:
runs-on: ubuntu-20.04
outputs:
matrix: ${{ steps.set-k8s-matrix.outputs.matrix }}
steps:
- id: set-k8s-matrix
run: |
if [[ "${{ github.ref }}" == refs/tags/v* ]]; then
echo "pushing tag: ${{ github.ref_name }}"
echo "::set-output name=matrix::${{ env.KIND_IMAGE_VERSIONS }}"
else
echo "::set-output name=matrix::${{ env.KIND_IMAGE_VERSION }}"
fi
e2e-multi-cluster-tests:
runs-on: aliyun
needs: [ detect-noop,set-k8s-matrix ]
if: needs.detect-noop.outputs.noop != 'true'
strategy:
matrix:
k8s-version: ${{ fromJson(needs.set-k8s-matrix.outputs.matrix) }}
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- name: Setup Go
uses: actions/setup-go@v2
with:
go-version: ${{ env.GO_VERSION }}
- name: Get dependencies
run: |
go get -v -t -d ./...
- name: Setup Kind
uses: engineerd/setup-kind@v0.5.0
with:
version: ${{ env.KIND_VERSION }}
skipClusterCreation: true
- name: Setup Kind Cluster (Worker)
run: |
kind delete cluster --name worker
kind create cluster --image kindest/node:${{ matrix.k8s-version }} --name worker
kubectl version
kubectl cluster-info
kind get kubeconfig --name worker --internal > /tmp/worker.kubeconfig
kind get kubeconfig --name worker > /tmp/worker.client.kubeconfig
- name: Setup Kind Cluster (Hub)
run: |
kind delete cluster
kind create cluster --image kindest/node:${{ matrix.k8s-version }}
kubectl version
kubectl cluster-info
- name: Load Image to kind cluster (Hub)
run: make kind-load
- name: Cleanup for e2e tests
run: |
make e2e-cleanup
make vela-cli
make e2e-setup-core-auth
make
make setup-runtime-e2e-cluster
- name: Run e2e multicluster tests
run: |
export PATH=$(pwd)/bin:$PATH
make e2e-multicluster-test
- name: Stop kubevela, get profile
run: make end-e2e-core
- name: Upload coverage report
uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: /tmp/e2e-profile.out,/tmp/e2e_multicluster_test.out
flags: e2e-multicluster-test
name: codecov-umbrella
- name: Clean e2e profile
run: rm /tmp/e2e-profile.out
- name: Cleanup image
if: ${{ always() }}
run: make image-cleanup

123
.github/workflows/e2e-rollout-test.yml vendored Normal file
View File

@@ -0,0 +1,123 @@
name: E2E Rollout Test
on:
push:
branches:
- master
- release-*
tags:
- v*
workflow_dispatch: {}
pull_request:
branches:
- master
- release-*
env:
# Common versions
GO_VERSION: '1.17'
GOLANGCI_VERSION: 'v1.38'
KIND_VERSION: 'v0.7.0'
KIND_IMAGE_VERSION: '[\"v1.20.7\"]'
KIND_IMAGE_VERSIONS: '[\"v1.18.20\",\"v1.20.7\",\"v1.22.7\"]'
jobs:
detect-noop:
runs-on: ubuntu-20.04
outputs:
noop: ${{ steps.noop.outputs.should_skip }}
steps:
- name: Detect No-op Changes
id: noop
uses: fkirc/skip-duplicate-actions@v3.3.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
paths_ignore: '["**.md", "**.mdx", "**.png", "**.jpg"]'
do_not_skip: '["workflow_dispatch", "schedule", "push"]'
concurrent_skipping: false
set-k8s-matrix:
runs-on: ubuntu-20.04
outputs:
matrix: ${{ steps.set-k8s-matrix.outputs.matrix }}
steps:
- id: set-k8s-matrix
run: |
if [[ "${{ github.ref }}" == refs/tags/v* ]]; then
echo "pushing tag: ${{ github.ref_name }}"
echo "::set-output name=matrix::${{ env.KIND_IMAGE_VERSIONS }}"
else
echo "::set-output name=matrix::${{ env.KIND_IMAGE_VERSION }}"
fi
e2e-rollout-tests:
runs-on: aliyun
needs: [ detect-noop,set-k8s-matrix ]
if: needs.detect-noop.outputs.noop != 'true'
strategy:
matrix:
k8s-version: ${{ fromJson(needs.set-k8s-matrix.outputs.matrix) }}
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- name: Setup Go
uses: actions/setup-go@v2
with:
go-version: ${{ env.GO_VERSION }}
- name: Get dependencies
run: |
go get -v -t -d ./...
- name: Setup Kind
uses: engineerd/setup-kind@v0.5.0
with:
version: ${{ env.KIND_VERSION }}
skipClusterCreation: true
- name: Setup Kind Cluster
run: |
kind delete cluster
kind create cluster --image kindest/node:${{ matrix.k8s-version }}
kubectl version
kubectl cluster-info
- name: Load Image to kind cluster
run: make kind-load
- name: Run Make
run: make
- name: Run Make Manager
run: make manager
- name: Prepare for e2e tests
run: |
make e2e-cleanup
make e2e-setup
helm lint ./charts/vela-core
helm test -n vela-system kubevela --timeout 5m
- name: Run e2e tests
run: make e2e-rollout-test
- name: Stop kubevela, get profile
run: make end-e2e
- name: Upload coverage report
uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: /tmp/e2e-profile.out
flags: e2e-rollout-tests
name: codecov-umbrella
- name: Clean e2e profile
run: rm /tmp/e2e-profile.out
- name: Cleanup image
if: ${{ always() }}
run: make image-cleanup

129
.github/workflows/e2e-test.yml vendored Normal file
View File

@@ -0,0 +1,129 @@
name: E2E Test
on:
push:
branches:
- master
- release-*
tags:
- v*
workflow_dispatch: {}
pull_request:
branches:
- master
- release-*
env:
# Common versions
GO_VERSION: '1.17'
GOLANGCI_VERSION: 'v1.38'
KIND_VERSION: 'v0.7.0'
KIND_IMAGE_VERSION: '[\"v1.20.7\"]'
KIND_IMAGE_VERSIONS: '[\"v1.18.20\",\"v1.20.7\",\"v1.22.7\"]'
jobs:
detect-noop:
runs-on: ubuntu-20.04
outputs:
noop: ${{ steps.noop.outputs.should_skip }}
steps:
- name: Detect No-op Changes
id: noop
uses: fkirc/skip-duplicate-actions@v3.3.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
paths_ignore: '["**.md", "**.mdx", "**.png", "**.jpg"]'
do_not_skip: '["workflow_dispatch", "schedule", "push"]'
concurrent_skipping: false
set-k8s-matrix:
runs-on: ubuntu-20.04
outputs:
matrix: ${{ steps.set-k8s-matrix.outputs.matrix }}
steps:
- id: set-k8s-matrix
run: |
if [[ "${{ github.ref }}" == refs/tags/v* ]]; then
echo "pushing tag: ${{ github.ref_name }}"
echo "::set-output name=matrix::${{ env.KIND_IMAGE_VERSIONS }}"
else
echo "::set-output name=matrix::${{ env.KIND_IMAGE_VERSION }}"
fi
e2e-tests:
runs-on: aliyun
needs: [ detect-noop,set-k8s-matrix ]
if: needs.detect-noop.outputs.noop != 'true'
strategy:
matrix:
k8s-version: ${{ fromJson(needs.set-k8s-matrix.outputs.matrix) }}
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- name: Setup Go
uses: actions/setup-go@v2
with:
go-version: ${{ env.GO_VERSION }}
- name: Get dependencies
run: |
go get -v -t -d ./...
- name: Setup Kind
uses: engineerd/setup-kind@v0.5.0
with:
version: ${{ env.KIND_VERSION }}
skipClusterCreation: true
- name: Setup Kind Cluster
run: |
kind delete cluster
kind create cluster --image kindest/node:${{ matrix.k8s-version }}
kubectl version
kubectl cluster-info
- name: Load Image to kind cluster
run: make kind-load
- name: Run Make
run: make
- name: Run Make Manager
run: make manager
- name: Prepare for e2e tests
run: |
make e2e-cleanup
make e2e-setup
helm lint ./charts/vela-core
helm test -n vela-system kubevela --timeout 5m
- name: Run api e2e tests
run: make e2e-api-test
- name: Run addons e2e tests
run: make e2e-addon-test
- name: Run e2e tests
run: make e2e-test
- name: Stop kubevela, get profile
run: make end-e2e
- name: Upload coverage report
uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: /tmp/e2e-profile.out
flags: e2etests
name: codecov-umbrella
- name: Clean e2e profile
run: rm /tmp/e2e-profile.out
- name: Cleanup image
if: ${{ always() }}
run: make image-cleanup

View File

@@ -1,51 +0,0 @@
name: E2E
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.13
uses: actions/setup-go@v1
with:
go-version: 1.13
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- name: Get dependencies
run: |
go get -v -t -d ./...
- name: Install ginkgo
run: |
sudo apt-get update
sudo apt-get install -y golang-ginkgo-dev
- name: Setup Kind Cluster
uses: engineerd/setup-kind@v0.4.0
with:
version: "v0.7.0"
- name: install Kubebuilder
uses: RyanSiu1995/kubebuilder-action@v1
- name: Run Make
run: make
- name: Run Make Manager
run: make manager
- name: Run e2e tests
run: |
make e2e-setup
make e2e-test
make e2e-api-test
make e2e-cleanup

View File

@@ -2,36 +2,137 @@ name: Go
on:
push:
branches: [master]
branches:
- master
- release-*
workflow_dispatch: {}
pull_request:
branches: [master]
branches:
- master
- release-*
env:
# Common versions
GO_VERSION: '1.17'
GOLANGCI_VERSION: 'v1.38'
KIND_VERSION: 'v0.7.0'
jobs:
build:
name: Build
runs-on: ubuntu-latest
detect-noop:
runs-on: ubuntu-20.04
outputs:
noop: ${{ steps.noop.outputs.should_skip }}
steps:
- name: Set up Go 1.13
uses: actions/setup-go@v1
- name: Detect No-op Changes
id: noop
uses: fkirc/skip-duplicate-actions@v3.3.0
with:
go-version: 1.13
id: go
github_token: ${{ secrets.GITHUB_TOKEN }}
paths_ignore: '["**.md", "**.mdx", "**.png", "**.jpg"]'
do_not_skip: '["workflow_dispatch", "schedule", "push"]'
concurrent_skipping: false
- name: Check out code into the Go module directory
staticcheck:
runs-on: ubuntu-20.04
needs: detect-noop
if: needs.detect-noop.outputs.noop != 'true'
steps:
- name: Setup Go
uses: actions/setup-go@v2
with:
go-version: ${{ env.GO_VERSION }}
- name: Checkout
uses: actions/checkout@v2
- name: Install ginkgo
run: |
sudo apt-get update
sudo apt-get install -y golang-ginkgo-dev
- name: Setup Kind Cluster
uses: engineerd/setup-kind@v0.4.0
with:
version: "v0.7.0"
submodules: true
- name: install Kubebuilder
uses: RyanSiu1995/kubebuilder-action@v1
- name: Cache Go Dependencies
uses: actions/cache@v2
with:
path: .work/pkg
key: ${{ runner.os }}-pkg-${{ hashFiles('**/go.sum') }}
restore-keys: ${{ runner.os }}-pkg-
- name: Run Make test
run: make test
- name: Install StaticCheck
run: GO111MODULE=on go get honnef.co/go/tools/cmd/staticcheck@v0.3.0
- name: Static Check
run: staticcheck ./...
- name: License Header Check
run: make check-license-header
lint:
runs-on: ubuntu-20.04
needs: detect-noop
if: needs.detect-noop.outputs.noop != 'true'
steps:
- name: Setup Go
uses: actions/setup-go@v2
with:
go-version: ${{ env.GO_VERSION }}
- name: Checkout
uses: actions/checkout@v2
with:
submodules: true
- name: Cache Go Dependencies
uses: actions/cache@v2
with:
path: .work/pkg
key: ${{ runner.os }}-pkg-${{ hashFiles('**/go.sum') }}
restore-keys: ${{ runner.os }}-pkg-
# This action uses its own setup-go, which always seems to use the latest
# stable version of Go. We could run 'make lint' to ensure our desired Go
# version, but we prefer this action because it leaves 'annotations' (i.e.
# it comments on PRs to point out linter violations).
- name: Lint
uses: golangci/golangci-lint-action@v3
with:
version: ${{ env.GOLANGCI_VERSION }}
check-diff:
runs-on: aliyun
needs: detect-noop
if: needs.detect-noop.outputs.noop != 'true'
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: true
- name: Setup Go
uses: actions/setup-go@v2
with:
go-version: ${{ env.GO_VERSION }}
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: '14'
- name: Cache Go Dependencies
uses: actions/cache@v2
with:
path: .work/pkg
key: ${{ runner.os }}-pkg-${{ hashFiles('**/go.sum') }}
restore-keys: ${{ runner.os }}-pkg-
- name: Check code formatting
run: go install golang.org/x/tools/cmd/goimports && make fmt
- name: Run cross-build
run: make cross-build
- name: Check Diff
run: make check-diff
- name: Cleanup binary
run: make build-cleanup

69
.github/workflows/issue-commands.yml vendored Normal file
View File

@@ -0,0 +1,69 @@
name: Run commands when issues are labeled or comments added
on:
issues:
types: [labeled, opened]
issue_comment:
types: [created]
jobs:
bot:
runs-on: ubuntu-latest
steps:
- name: Checkout Actions
uses: actions/checkout@v2
with:
repository: "oam-dev/kubevela-github-actions"
path: ./actions
ref: v0.4.2
- name: Install Actions
run: npm ci --production --prefix ./actions
- name: Run Commands
uses: ./actions/commands
with:
token: ${{secrets.VELA_BOT_TOKEN}}
configPath: issue-commands
backport:
runs-on: ubuntu-18.04
if: github.event.issue.pull_request && contains(github.event.comment.body, '/backport')
steps:
- name: Extract Command
id: command
uses: xt0rted/slash-command-action@v1
with:
repo-token: ${{ secrets.VELA_BOT_TOKEN }}
command: backport
reaction: "true"
reaction-type: "eyes"
allow-edits: "false"
permission-level: read
- name: Handle Command
uses: actions/github-script@v4
env:
VERSION: ${{ steps.command.outputs.command-arguments }}
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const version = process.env.VERSION
let label = "backport release-" + version
if (version.includes("release")) {
label = "backport " + version
}
// Add our backport label.
github.issues.addLabels({
// Every pull request is an issue, but not every issue is a pull request.
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: [label]
})
console.log("Added '" + label + "' label.")
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Open Backport PR
uses: zeebe-io/backport-action@v0.0.6
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
github_workspace: ${{ github.workspace }}

26
.github/workflows/license.yml vendored Normal file
View File

@@ -0,0 +1,26 @@
name: license
on:
push:
branches:
- master
- release-*
workflow_dispatch: {}
pull_request:
branches:
- master
- release-*
jobs:
license_check:
runs-on: ubuntu-latest
name: Check for unapproved licenses
steps:
- uses: actions/checkout@v2
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
- name: Install dependencies
run: gem install license_finder
- name: Run tests
run: license_finder --decisions_file .license/dependency_decisions.yml

188
.github/workflows/registry.yml vendored Normal file
View File

@@ -0,0 +1,188 @@
name: Registry
on:
push:
branches:
- master
tags:
- "v*"
workflow_dispatch: {}
env:
ACCESS_KEY: ${{ secrets.OSS_ACCESS_KEY }}
ACCESS_KEY_SECRET: ${{ secrets.OSS_ACCESS_KEY_SECRET }}
jobs:
publish-core-images:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Get the version
id: get_version
run: |
VERSION=${GITHUB_REF#refs/tags/}
if [[ ${GITHUB_REF} == "refs/heads/master" ]]; then
VERSION=latest
fi
echo ::set-output name=VERSION::${VERSION}
- name: Get git revision
id: vars
shell: bash
run: |
echo "::set-output name=git_revision::$(git rev-parse --short HEAD)"
- name: Login ghcr.io
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login docker.io
uses: docker/login-action@v1
with:
registry: docker.io
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Login Alibaba Cloud ACR
uses: docker/login-action@v1
with:
registry: ${{ secrets.ACR_DOMAIN }}
username: ${{ secrets.ACR_USERNAME }}
password: ${{ secrets.ACR_PASSWORD }}
- uses: docker/setup-qemu-action@v1
- uses: docker/setup-buildx-action@v1
with:
driver-opts: image=moby/buildkit:master
- uses: docker/build-push-action@v2
name: Build & Pushing vela-core for Dockerhub, GHCR and ACR
with:
context: .
file: Dockerfile
labels: |-
org.opencontainers.image.source=https://github.com/${{ github.repository }}
org.opencontainers.image.revision=${{ github.sha }}
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
build-args: |
GITVERSION=git-${{ steps.vars.outputs.git_revision }}
VERSION=${{ steps.get_version.outputs.VERSION }}
GOPROXY=https://proxy.golang.org
tags: |-
docker.io/oamdev/vela-core:${{ steps.get_version.outputs.VERSION }}
ghcr.io/${{ github.repository_owner }}/oamdev/vela-core:${{ steps.get_version.outputs.VERSION }}
${{ secrets.ACR_DOMAIN }}/oamdev/vela-core:${{ steps.get_version.outputs.VERSION }}
- uses: docker/build-push-action@v2
name: Build & Pushing CLI for Dockerhub, GHCR and ACR
with:
context: .
file: Dockerfile.cli
labels: |-
org.opencontainers.image.source=https://github.com/${{ github.repository }}
org.opencontainers.image.revision=${{ github.sha }}
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
build-args: |
GITVERSION=git-${{ steps.vars.outputs.git_revision }}
VERSION=${{ steps.get_version.outputs.VERSION }}
GOPROXY=https://proxy.golang.org
tags: |-
docker.io/oamdev/vela-cli:${{ steps.get_version.outputs.VERSION }}
ghcr.io/${{ github.repository_owner }}/oamdev/vela-cli:${{ steps.get_version.outputs.VERSION }}
${{ secrets.ACR_DOMAIN }}/oamdev/vela-cli:${{ steps.get_version.outputs.VERSION }}
publish-addon-images:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Get the version
id: get_version
run: |
VERSION=${GITHUB_REF#refs/tags/}
if [[ ${GITHUB_REF} == "refs/heads/master" ]]; then
VERSION=latest
fi
echo ::set-output name=VERSION::${VERSION}
- name: Get git revision
id: vars
shell: bash
run: |
echo "::set-output name=git_revision::$(git rev-parse --short HEAD)"
- name: Login ghcr.io
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login docker.io
uses: docker/login-action@v1
with:
registry: docker.io
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Login Alibaba Cloud ACR
uses: docker/login-action@v1
with:
registry: ${{ secrets.ACR_DOMAIN }}
username: ${{ secrets.ACR_USERNAME }}
password: ${{ secrets.ACR_PASSWORD }}
- uses: docker/setup-qemu-action@v1
- uses: docker/setup-buildx-action@v1
with:
driver-opts: image=moby/buildkit:master
- uses: docker/build-push-action@v2
name: Build & Pushing vela-apiserver for Dockerhub, GHCR and ACR
with:
context: .
file: Dockerfile.apiserver
labels: |-
org.opencontainers.image.source=https://github.com/${{ github.repository }}
org.opencontainers.image.revision=${{ github.sha }}
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
build-args: |
GITVERSION=git-${{ steps.vars.outputs.git_revision }}
VERSION=${{ steps.get_version.outputs.VERSION }}
GOPROXY=https://proxy.golang.org
tags: |-
docker.io/oamdev/vela-apiserver:${{ steps.get_version.outputs.VERSION }}
ghcr.io/${{ github.repository_owner }}/oamdev/vela-apiserver:${{ steps.get_version.outputs.VERSION }}
${{ secrets.ACR_DOMAIN }}/oamdev/vela-apiserver:${{ steps.get_version.outputs.VERSION }}
- uses: docker/build-push-action@v2
name: Build & Pushing runtime rollout Dockerhub, GHCR and ACR
with:
context: .
file: runtime/rollout/Dockerfile
labels: |-
org.opencontainers.image.source=https://github.com/${{ github.repository }}
org.opencontainers.image.revision=${{ github.sha }}
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
build-args: |
GITVERSION=git-${{ steps.vars.outputs.git_revision }}
VERSION=${{ steps.get_version.outputs.VERSION }}
GOPROXY=https://proxy.golang.org
tags: |-
docker.io/oamdev/vela-rollout:${{ steps.get_version.outputs.VERSION }}
ghcr.io/${{ github.repository_owner }}/oamdev/vela-rollout:${{ steps.get_version.outputs.VERSION }}
${{ secrets.ACR_DOMAIN }}/oamdev/vela-rollout:${{ steps.get_version.outputs.VERSION }}
publish-capabilities:
env:
CAPABILITY_BUCKET: kubevela-registry
CAPABILITY_DIR: capabilities
CAPABILITY_ENDPOINT: oss-cn-beijing.aliyuncs.com
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@master
- name: Install ossutil
run: wget http://gosspublic.alicdn.com/ossutil/1.7.0/ossutil64 && chmod +x ossutil64 && mv ossutil64 ossutil
- name: Configure Alibaba Cloud OSSUTIL
run: ./ossutil --config-file .ossutilconfig config -i ${ACCESS_KEY} -k ${ACCESS_KEY_SECRET} -e ${CAPABILITY_ENDPOINT} -c .ossutilconfig
- name: sync capabilities bucket to local
run: ./ossutil --config-file .ossutilconfig sync oss://$CAPABILITY_BUCKET $CAPABILITY_DIR
- name: rsync all capabilites
run: rsync vela-templates/registry/auto-gen/* $CAPABILITY_DIR
- name: sync local to cloud
run: ./ossutil --config-file .ossutilconfig sync $CAPABILITY_DIR oss://$CAPABILITY_BUCKET -f

View File

@@ -4,106 +4,173 @@ on:
push:
tags:
- "v*"
workflow_dispatch: { }
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BUCKET: ${{ secrets.CLI_OSS_BUCKET }}
ENDPOINT: ${{ secrets.CLI_OSS_ENDPOINT }}
ACCESS_KEY: ${{ secrets.CLI_OSS_ACCESS_KEY }}
ACCESS_KEY_SECRET: ${{ secrets.CLI_OSS_ACCESS_KEY_SECRET }}
jobs:
build:
name: Build
runs-on: ubuntu-latest
name: build
strategy:
matrix:
TARGETS: [ linux/amd64, darwin/amd64, windows/amd64, linux/arm64, darwin/arm64 ]
env:
VELA_VERSION: ${{ github.ref }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VELA_VERSION_KEY: github.com/oam-dev/kubevela/version.VelaVersion
VELA_GITVERSION_KEY: github.com/oam-dev/kubevela/version.GitRevision
GO_BUILD_ENV: GO111MODULE=on CGO_ENABLED=0
DIST_DIRS: find * -type d -exec
steps:
- name: Set up Go 1.13
uses: actions/setup-go@v1
with:
go-version: 1.13
id: go
- name: Check out code into the Go module directory
- name: Checkout
uses: actions/checkout@v2
- name: Use Node.js 10.x
uses: actions/setup-node@v1
- name: Set up Go
uses: actions/setup-go@v2
with:
node-version: 10.x
- name: Run npm install
run: make npm-install
- name: Run npm build
run: make npm-build
- name: Run generate-source
run: make generate-source
- name: Run cross-build
run: make cross-build
- name: Run compress binary
run: make compress
- name: Create Release
id: create_release
uses: actions/create-release@v1
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
- name: Get the version
id: get_version
run: echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/}
- name: Upload Linux tar.gz
go-version: 1.17
- name: Get release
id: get_release
uses: bruceadams/get-release@v1.2.2
- name: Get version
run: echo "VELA_VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
- name: Get matrix
id: get_matrix
run: |
TARGETS=${{matrix.TARGETS}}
echo ::set-output name=OS::${TARGETS%/*}
echo ::set-output name=ARCH::${TARGETS#*/}
- name: Get ldflags
id: get_ldflags
run: |
LDFLAGS="-s -w -X ${{ env.VELA_VERSION_KEY }}=${{ env.VELA_VERSION }} -X ${{ env.VELA_GITVERSION_KEY }}=git-$(git rev-parse --short HEAD)"
echo "LDFLAGS=${LDFLAGS}" >> $GITHUB_ENV
- name: Build
run: |
${{ env.GO_BUILD_ENV }} GOOS=${{ steps.get_matrix.outputs.OS }} GOARCH=${{ steps.get_matrix.outputs.ARCH }} \
go build -ldflags "${{ env.LDFLAGS }}" \
-o _bin/vela/${{ steps.get_matrix.outputs.OS }}-${{ steps.get_matrix.outputs.ARCH }}/vela -v \
./references/cmd/cli/main.go
${{ env.GO_BUILD_ENV }} GOOS=${{ steps.get_matrix.outputs.OS }} GOARCH=${{ steps.get_matrix.outputs.ARCH }} \
go build -ldflags "${{ env.LDFLAGS }}" \
-o _bin/kubectl-vela/${{ steps.get_matrix.outputs.OS }}-${{ steps.get_matrix.outputs.ARCH }}/kubectl-vela -v \
./cmd/plugin/main.go
- name: Compress
run: |
echo "\n## Release Info\nVERSION: ${{ env.VELA_VERSION }}" >> README.md && \
echo "GIT_COMMIT: ${GITHUB_SHA}\n" >> README.md && \
cd _bin/vela && \
${{ env.DIST_DIRS }} cp ../../LICENSE {} \; && \
${{ env.DIST_DIRS }} cp ../../README.md {} \; && \
${{ env.DIST_DIRS }} tar -zcf vela-{}.tar.gz {} \; && \
${{ env.DIST_DIRS }} zip -r vela-{}.zip {} \; && \
cd ../kubectl-vela && \
${{ env.DIST_DIRS }} cp ../../LICENSE {} \; && \
${{ env.DIST_DIRS }} cp ../../README.md {} \; && \
${{ env.DIST_DIRS }} tar -zcf kubectl-vela-{}.tar.gz {} \; && \
${{ env.DIST_DIRS }} zip -r kubectl-vela-{}.zip {} \; && \
cd .. && \
sha256sum vela/vela-* kubectl-vela/kubectl-vela-* >> sha256-${{ steps.get_matrix.outputs.OS }}-${{ steps.get_matrix.outputs.ARCH }}.txt \
- name: Upload Vela tar.gz
uses: actions/upload-release-asset@v1.0.2
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./_bin/vela-linux-amd64.tar.gz
asset_name: vela-${{ steps.get_version.outputs.VERSION }}-linux-amd64.tar.gz
upload_url: ${{ steps.get_release.outputs.upload_url }}
asset_path: ./_bin/vela/vela-${{ steps.get_matrix.outputs.OS }}-${{ steps.get_matrix.outputs.ARCH }}.tar.gz
asset_name: vela-${{ env.VELA_VERSION }}-${{ steps.get_matrix.outputs.OS }}-${{ steps.get_matrix.outputs.ARCH }}.tar.gz
asset_content_type: binary/octet-stream
- name: Upload Linux zip
- name: Upload Vela zip
uses: actions/upload-release-asset@v1.0.2
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./_bin/vela-linux-amd64.zip
asset_name: vela-${{ steps.get_version.outputs.VERSION }}-linux-amd64.zip
upload_url: ${{ steps.get_release.outputs.upload_url }}
asset_path: ./_bin/vela/vela-${{ steps.get_matrix.outputs.OS }}-${{ steps.get_matrix.outputs.ARCH }}.zip
asset_name: vela-${{ env.VELA_VERSION }}-${{ steps.get_matrix.outputs.OS }}-${{ steps.get_matrix.outputs.ARCH }}.zip
asset_content_type: binary/octet-stream
- name: Upload MacOS tar.gz
- name: Upload Kubectl-Vela tar.gz
uses: actions/upload-release-asset@v1.0.2
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./_bin/vela-darwin-amd64.tar.gz
asset_name: vela-${{ steps.get_version.outputs.VERSION }}-darwin-amd64.tar.gz
upload_url: ${{ steps.get_release.outputs.upload_url }}
asset_path: ./_bin/kubectl-vela/kubectl-vela-${{ steps.get_matrix.outputs.OS }}-${{ steps.get_matrix.outputs.ARCH }}.tar.gz
asset_name: kubectl-vela-${{ env.VELA_VERSION }}-${{ steps.get_matrix.outputs.OS }}-${{ steps.get_matrix.outputs.ARCH }}.tar.gz
asset_content_type: binary/octet-stream
- name: Upload MacOS zip
- name: Upload Kubectl-Vela zip
uses: actions/upload-release-asset@v1.0.2
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./_bin/vela-darwin-amd64.zip
asset_name: vela-${{ steps.get_version.outputs.VERSION }}-darwin-amd64.zip
upload_url: ${{ steps.get_release.outputs.upload_url }}
asset_path: ./_bin/kubectl-vela/kubectl-vela-${{ steps.get_matrix.outputs.OS }}-${{ steps.get_matrix.outputs.ARCH }}.zip
asset_name: kubectl-vela-${{ env.VELA_VERSION }}-${{ steps.get_matrix.outputs.OS }}-${{ steps.get_matrix.outputs.ARCH }}.zip
asset_content_type: binary/octet-stream
- name: Upload Windows tar.gz
uses: actions/upload-release-asset@v1.0.2
- name: Post sha256
uses: actions/upload-artifact@v2
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./_bin/vela-windows-amd64.tar.gz
asset_name: vela-${{ steps.get_version.outputs.VERSION }}-windows-amd64.tar.gz
asset_content_type: binary/octet-stream
- name: Upload Windows zip
uses: actions/upload-release-asset@v1.0.2
name: sha256sums
path: ./_bin/sha256-${{ steps.get_matrix.outputs.OS }}-${{ steps.get_matrix.outputs.ARCH }}.txt
retention-days: 1
- name: clear the asset
run: |
rm -rf ./_bin/vela/${{ steps.get_matrix.outputs.OS }}-${{ steps.get_matrix.outputs.ARCH }}
mv ./_bin/vela/vela-${{ steps.get_matrix.outputs.OS }}-${{ steps.get_matrix.outputs.ARCH }}.tar.gz ./_bin/vela/vela-${{ env.VELA_VERSION }}-${{ steps.get_matrix.outputs.OS }}-${{ steps.get_matrix.outputs.ARCH }}.tar.gz
mv ./_bin/vela/vela-${{ steps.get_matrix.outputs.OS }}-${{ steps.get_matrix.outputs.ARCH }}.zip ./_bin/vela/vela-${{ env.VELA_VERSION }}-${{ steps.get_matrix.outputs.OS }}-${{ steps.get_matrix.outputs.ARCH }}.zip
- name: Install ossutil
run: wget http://gosspublic.alicdn.com/ossutil/1.7.0/ossutil64 && chmod +x ossutil64 && mv ossutil64 ossutil
- name: Configure Alibaba Cloud OSSUTIL
run: ./ossutil --config-file .ossutilconfig config -i ${ACCESS_KEY} -k ${ACCESS_KEY_SECRET} -e ${ENDPOINT} -c .ossutilconfig
- name: sync local to cloud
run: ./ossutil --config-file .ossutilconfig sync ./_bin/vela oss://$BUCKET/binary/vela/${{ env.VELA_VERSION }}
- name: sync the latest version file
if: ${{ !contains(env.VELA_VERSION,'alpha') && !contains(env.VELA_VERSION,'beta') }}
run: |
LATEST_VERSION=$(curl -fsSl https://static.kubevela.net/binary/vela/latest_version)
verlte() {
[ "$1" = "`echo -e "$1\n$2" | sort -V | head -n1`" ]
}
verlte ${{ env.VELA_VERSION }} $LATEST_VERSION && echo "${{ env.VELA_VERSION }} <= $LATEST_VERSION, skip update" && exit 0
echo ${{ env.VELA_VERSION }} > ./latest_version
./ossutil --config-file .ossutilconfig cp -u ./latest_version oss://$BUCKET/binary/vela/latest_version
upload-plugin-homebrew:
needs: build
runs-on: ubuntu-latest
name: upload-sha256sums
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Get release
id: get_release
uses: bruceadams/get-release@v1.2.2
- name: Download sha256sums
uses: actions/download-artifact@v2
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./_bin/vela-windows-amd64.zip
asset_name: vela-${{ steps.get_version.outputs.VERSION }}-windows-amd64.zip
asset_content_type: binary/octet-stream
name: sha256sums
path: cli-artifacts
- name: Display structure of downloaded files
run: ls -R
working-directory: cli-artifacts
- shell: bash
working-directory: cli-artifacts
run: |
for file in *
do
cat ${file} >> sha256sums.txt
done
- name: Upload Checksums
uses: actions/upload-release-asset@v1.0.2
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./_bin/sha256sums.txt
upload_url: ${{ steps.get_release.outputs.upload_url }}
asset_path: cli-artifacts/sha256sums.txt
asset_name: sha256sums.txt
asset_content_type: text/plain
- name: Publish to Github Docker Package Registry
uses: elgohr/Publish-Docker-Github-Action@2.21
- name: Update kubectl plugin version in krew-index
uses: rajatjindal/krew-release-bot@v0.0.38
- name: Update Homebrew formula
uses: dawidd6/action-homebrew-bump-formula@v3
with:
name: oam-dev/kubevela/vela-core
username: $GITHUB_ACTOR
password: ${{ secrets.GITHUB_TOKEN }}
registry: docker.pkg.github.com
tags: "${{ steps.get_version.outputs.VERSION }}"
- name: Publish to Docker Hub Registry
uses: elgohr/Publish-Docker-Github-Action@2.21
with:
name: oamdev/vela-core
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
tags: "${{ steps.get_version.outputs.VERSION }}"
token: ${{ secrets.HOMEBREW_TOKEN }}
formula: kubevela
tag: ${{ github.ref }}
revision: ${{ github.sha }}
force: false

37
.github/workflows/sync-api.yml vendored Normal file
View File

@@ -0,0 +1,37 @@
name: sync-api
on:
push:
paths:
- 'apis/**'
- 'pkg/oam/**'
tags:
- "v*"
jobs:
sync-core-api:
runs-on: ubuntu-20.04
steps:
- name: Set up Go 1.17
uses: actions/setup-go@v1
env:
GO_VERSION: '1.17'
GOLANGCI_VERSION: 'v1.38'
with:
go-version: ${{ env.GO_VERSION }}
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- name: Get the version
id: get_version
run: echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/}
- name: Sync to kubevela-core-api Repo
env:
SSH_DEPLOY_KEY: ${{ secrets.VELA_API_DEPLOY }}
VERSION: ${{ steps.get_version.outputs.VERSION }}
COMMIT_ID: ${{ github.sha }}
run: |
bash ./hack/apis/clientgen.sh
bash ./hack/apis/sync.sh

10
.github/workflows/timed-task.yml vendored Normal file
View File

@@ -0,0 +1,10 @@
name: Timed Task
on:
schedule:
- cron: '* * * * *'
jobs:
clean-image:
runs-on: aliyun
steps:
- name: Cleanup image
run: docker image prune -f

30
.github/workflows/trivy-scan.yml vendored Normal file
View File

@@ -0,0 +1,30 @@
name: "Trivy Scan"
on:
pull_request:
branches: [ master ]
jobs:
images:
name: Image Scan
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Build Vela Core image from Dockerfile
run: |
docker build --build-arg GOPROXY=https://proxy.golang.org -t docker.io/oamdev/vela-core:${{ github.sha }} .
- name: Run Trivy vulnerability scanner for vela core
uses: aquasecurity/trivy-action@master
with:
image-ref: 'docker.io/oamdev/vela-core:${{ github.sha }}'
format: 'sarif'
output: 'trivy-results.sarif'
- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v1
if: always()
with:
sarif_file: 'trivy-results.sarif'

85
.github/workflows/unit-test.yml vendored Normal file
View File

@@ -0,0 +1,85 @@
name: Unit-Test
on:
push:
branches:
- master
- release-*
workflow_dispatch: {}
pull_request:
branches:
- master
- release-*
env:
# Common versions
GO_VERSION: '1.17'
GOLANGCI_VERSION: 'v1.38'
KIND_VERSION: 'v0.7.0'
jobs:
detect-noop:
runs-on: ubuntu-20.04
outputs:
noop: ${{ steps.noop.outputs.should_skip }}
steps:
- name: Detect No-op Changes
id: noop
uses: fkirc/skip-duplicate-actions@v3.3.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
paths_ignore: '["**.md", "**.mdx", "**.png", "**.jpg"]'
do_not_skip: '["workflow_dispatch", "schedule", "push"]'
concurrent_skipping: false
unit-tests:
runs-on: ubuntu-20.04
needs: detect-noop
if: needs.detect-noop.outputs.noop != 'true'
steps:
- name: Set up Go
uses: actions/setup-go@v1
with:
go-version: ${{ env.GO_VERSION }}
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v2
with:
submodules: true
- name: Cache Go Dependencies
uses: actions/cache@v2
with:
path: .work/pkg
key: ${{ runner.os }}-pkg-${{ hashFiles('**/go.sum') }}
restore-keys: ${{ runner.os }}-pkg-
- name: Install ginkgo
run: |
sudo apt-get install -y golang-ginkgo-dev
- name: Setup Kind Cluster
uses: engineerd/setup-kind@v0.5.0
with:
version: ${{ env.KIND_VERSION }}
- name: install Kubebuilder
uses: RyanSiu1995/kubebuilder-action@v1.2
with:
version: 3.1.0
kubebuilderOnly: false
kubernetesVersion: v1.21.2
- name: Run Make test
run: make test
- name: Upload coverage report
uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.txt
flags: core-unittests
name: codecov-umbrella

24
.gitignore vendored
View File

@@ -13,6 +13,7 @@ e2e/vela
# Output of the go coverage tool, specifically when used with LiteIDE
*.out
coverage.txt
# Kubernetes Generated files - skip generated files, except for vendored files
@@ -24,6 +25,7 @@ e2e/vela
*.swo
*~
.DS_Store
_.yaml
# Dependency directories (remove the comment below to include it)
vendor/
@@ -33,16 +35,18 @@ vendor/
pkg/test/vela
config/crd/bases
_tmp/
references/cmd/cli/fake/source.go
references/cmd/cli/fake/chart_source.go
charts/vela-core/crds/_.yaml
.test_vela
tmp/
cmd/vela/fake/source.go
charts/vela-core/crds/_.yaml
.vela/
# Dashboard
dashboard/node_modules/
.eslintcache
dashboard/dist/
dashboard/package-lock.json
dashboard/src/.umi/
package-lock.json
dashboard/src/.umi-production/
# check docs
git-page/
# e2e rollout runtime image build
runtime/rollout/e2e/tmp

209
.golangci.yml Normal file
View File

@@ -0,0 +1,209 @@
run:
timeout: 10m
skip-files:
- "zz_generated\\..+\\.go$"
- ".*_test.go$"
skip-dirs:
- "hack"
- "e2e"
output:
# colored-line-number|line-number|json|tab|checkstyle|code-climate, default is "colored-line-number"
format: colored-line-number
linters-settings:
errcheck:
# report about not checking of errors in type assetions: `a := b.(MyStruct)`;
# default is false: such cases aren't reported by default.
check-type-assertions: false
# report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`;
# default is false: such cases aren't reported by default.
check-blank: false
# [deprecated] comma-separated list of pairs of the form pkg:regex
# the regex is used to ignore names within pkg. (default "fmt:.*").
# see https://github.com/kisielk/errcheck#the-deprecated-method for details
ignore: fmt:.*,io/ioutil:^Read.*
exhaustive:
# indicates that switch statements are to be considered exhaustive if a
# 'default' case is present, even if all enum members aren't listed in the
# switch
default-signifies-exhaustive: true
govet:
# report about shadowed variables
check-shadowing: false
golint:
# minimal confidence for issues, default is 0.8
min-confidence: 0.8
gofmt:
# simplify code: gofmt with `-s` option, true by default
simplify: true
goimports:
# put imports beginning with prefix after 3rd-party packages;
# it's a comma-separated list of prefixes
local-prefixes: github.com/oam-dev/kubevela
gocyclo:
# minimal code complexity to report, 30 by default (but we recommend 10-20)
min-complexity: 30
maligned:
# print struct with more effective memory layout or not, false by default
suggest-new: true
dupl:
# tokens count to trigger issue, 150 by default
threshold: 100
goconst:
# minimal length of string constant, 3 by default
min-len: 3
# minimal occurrences count to trigger, 3 by default
min-occurrences: 5
lll:
# tab width in spaces. Default to 1.
tab-width: 1
unused:
# treat code as a program (not a library) and report unused exported identifiers; default is false.
# XXX: if you enable this setting, unused will report a lot of false-positives in text editors:
# if it's called for subdir of a project it can't find funcs usages. All text editor integrations
# with golangci-lint call it on a directory with the changed file.
check-exported: false
unparam:
# Inspect exported functions, default is false. Set to true if no external program/library imports your code.
# XXX: if you enable this setting, unparam will report a lot of false-positives in text editors:
# if it's called for subdir of a project it can't find external interfaces. All text editor integrations
# with golangci-lint call it on a directory with the changed file.
check-exported: false
nakedret:
# make an issue if func has more lines of code than this setting and it has naked returns; default is 30
max-func-lines: 30
gocritic:
# Enable multiple checks by tags, run `GL_DEBUG=gocritic golangci-lint` run to see all tags and checks.
# Empty list by default. See https://github.com/go-critic/go-critic#usage -> section "Tags".
enabled-tags:
- performance
settings: # settings passed to gocritic
captLocal: # must be valid enabled check name
paramsOnly: true
rangeValCopy:
sizeThreshold: 32
makezero:
# Allow only slices initialized with a length of zero. Default is false.
always: false
linters:
enable:
- megacheck
- govet
- gocyclo
- gocritic
- goconst
- goimports
- gofmt # We enable this as well as goimports for its simplify mode.
- golint
- unconvert
- misspell
- nakedret
presets:
- bugs
- unused
fast: false
issues:
# Excluding configuration per-path and per-linter
exclude-rules:
# Exclude some linters from running on tests files.
- path: _test(ing)?\.go
linters:
- gocyclo
- errcheck
- dupl
- gosec
- scopelint
- unparam
# Ease some gocritic warnings on test files.
- path: _test\.go
text: "(unnamedResult|exitAfterDefer)"
linters:
- gocritic
# These are performance optimisations rather than style issues per se.
# They warn when function arguments or range values copy a lot of memory
# rather than using a pointer.
- text: "(hugeParam|rangeValCopy):"
linters:
- gocritic
# This "TestMain should call os.Exit to set exit code" warning is not clever
# enough to notice that we call a helper method that calls os.Exit.
- text: "SA3000:"
linters:
- staticcheck
- text: "k8s.io/api/core/v1"
linters:
- goimports
# This is a "potential hardcoded credentials" warning. It's triggered by
# any variable with 'secret' in the same, and thus hits a lot of false
# positives in Kubernetes land where a Secret is an object type.
- text: "G101:"
linters:
- gosec
- gas
# This is an 'errors unhandled' warning that duplicates errcheck.
- text: "G104:"
linters:
- gosec
- gas
# The Azure AddToUserAgent method appends to the existing user agent string.
# It returns an error if you pass it an empty string lettinga you know the
# user agent did not change, making it more of a warning.
- text: \.AddToUserAgent
linters:
- errcheck
- text: "don't use an underscore"
linters:
- golint
# Independently from option `exclude` we use default exclude patterns,
# it can be disabled by this option. To list all
# excluded by default patterns execute `golangci-lint run --help`.
# Default value for this option is true.
exclude-use-default: false
# Show only new issues: if there are unstaged changes or untracked files,
# only those changes are analyzed, else only changes in HEAD~ are analyzed.
# It's a super-useful option for integration of golangci-lint into existing
# large codebase. It's not practical to fix all existing issues at the moment
# of integration: much better don't allow issues in new code.
# Default is false.
new: false
# Maximum issues count per one linter. Set to 0 to disable. Default is 50.
max-per-linter: 0
# Maximum count of issues with the same text. Set to 0 to disable. Default is 3.
max-same-issues: 0

47
.krew.yaml Normal file
View File

@@ -0,0 +1,47 @@
apiVersion: krew.googlecontainertools.github.com/v1alpha2
kind: Plugin
metadata:
name: vela
spec:
version: "{{ .TagName }}"
platforms:
- selector:
matchLabels:
os: linux
arch: amd64
{{addURIAndSha "https://github.com/oam-dev/kubevela/releases/download/{{ .TagName }}/kubectl-vela-{{ .TagName }}-linux-amd64.tar.gz" .TagName }}
files:
- from: "*/kubectl-vela"
to: "."
- from: "*/LICENSE"
to: "."
bin: "kubectl-vela"
- selector:
matchLabels:
os: darwin
arch: amd64
{{addURIAndSha "https://github.com/oam-dev/kubevela/releases/download/{{ .TagName }}/kubectl-vela-{{ .TagName }}-darwin-amd64.tar.gz" .TagName }}
files:
- from: "*/kubectl-vela"
to: "."
- from: "*/LICENSE"
to: "."
bin: "kubectl-vela"
- selector:
matchLabels:
os: windows
arch: amd64
{{addURIAndSha "https://github.com/oam-dev/kubevela/releases/download/{{ .TagName }}/kubectl-vela-{{ .TagName }}-windows-amd64.zip" .TagName }}
files:
- from: "*/kubectl-vela"
to: "kubectl-vela.exe"
- from: "*/LICENSE"
to: "."
bin: "kubectl-vela.exe"
shortDescription: Easily interact with KubeVela
homepage: https://kubevela.io
description: |
kubectl vela is a kubectl plugin from the KubeVela project. KubeVela is
a modern application platform that is fully self-service, and adapts to
your needs when you grow. This plugin allows you to better view, manage
and maintain KubeVela applications.

19
.license/README.md Normal file
View File

@@ -0,0 +1,19 @@
# License Checker
Our license checker CI rely on https://github.com/pivotal/LicenseFinder.
## How to add a new license?
LicenseFinder is a ruby project, so make sure you have ruby installed.
### Install the tool
```shell
gem install license_finder
```
### Add a license
```shell
license_finder permitted_licenses add MIT --decisions_file .license/dependency_decisions.yml
```

View File

@@ -0,0 +1,43 @@
---
- - :permit
- MIT
- :who:
:why:
:versions: []
:when: 2021-03-12 07:35:34.645031000 Z
- - :permit
- Apache 2.0
- :who:
:why:
:versions: []
:when: 2021-03-12 07:19:18.243194000 Z
- - :permit
- New BSD
- :who:
:why:
:versions: []
:when: 2021-03-12 07:19:28.540675000 Z
- - :permit
- Simplified BSD
- :who:
:why:
:versions: []
:when: 2021-03-12 07:20:01.774212000 Z
- - :permit
- Mozilla Public License 2.0
- :who:
:why:
:versions: []
:when: 2021-03-12 07:21:05.194536000 Z
- - :permit
- unknown
- :who:
:why:
:versions: []
:when: 2021-03-12 07:21:43.379269000 Z
- - :permit
- ISC
- :who:
:why:
:versions: []
:when: 2021-03-12 07:22:07.265966000 Z

260
CHANGELOG/CHANGELOG-1.0.md Normal file
View File

@@ -0,0 +1,260 @@
# v1.0.7
This is a minor fix for release-1.0, please refer to release-1.1.x for the latest feature.
1. Fix podDisruptive field for inner traits #1844
# v1.0.6
1. fix bug: When the Component contains multiple traits of the same type, the status of the trait in the Application is reported incorrectly (#1731) (#1743)
2. Fix terraform component can't work normally, generate OpenAPI JSON schema for Terraform Component (#1738) (#1753)
3. Improve the logging system #1735 #1758
4. add ConcurrentReconciles for setting the concurrent reconcile number of the controller #1775
# v1.0.5
1. Fix Terraform application status issue (#1611)
2. applicaiton supports specifying different versions of Definition (#1597)
3. Enable Dynamic Admission Control for Application (#1619)
4. Update inner samples for "vela show xxx --web" (#1616)
5. fix empty rolloutBatch will panic whole controller bug (#1646)
6. Use stricter syntax check for CUE (#1643)
7. make ResourceTracker to own cluster-scope resource (#1634)
8. update docs
# v1.0.4
## Upgrade to this release
**Please update Application CRD to upgrade from v1.0.3 to this release**
```
kubectl apply -f https://raw.githubusercontent.com/kubevela/kubevela/master/charts/vela-core/crds/core.oam.dev_applications.yaml
```
**Check the upgrade docs to upgrade from other release: https://kubevela.io/docs/advanced-install#upgrade**
## Changelog
1. add more PVC volume traits and docs (#1524)
2. automatically sync vela api code to the repo([kubevela-core-api](https://github.com/oam-dev/kubevela-core-api)) on release, you can use this repo as import package for kubevela integration (#1523)
3. fix cue template of worker and ingress with more accurate error info (#1532)
4. add critical path k8s event for Application (#1463)
5. support K8s Deployment for AppRollout #1539 #1557
6. vela cli: enable "vela show" to support namespaced capability (#1521)
7. Add scpoe reference in Application object `status.Service` (#1540)
8. vela cli: `vela show` support list the parameter of ComponentDefinition created by helm charts (#1543)
9. Add revision mechanism for Component/Trait Definition and default revision histroy will keep 20 revisions #1531
10. fix CRD for legacy K8s cluser(<=1.14) (#1531)
11. fix duplate key in kubevela chart webhook yaml (#1571)
12. Check whether parameter.cmd is nill for `sidecar` trait (#1575)
13. add e2e-test into test coverage report (#1553)
14. support krew install for kubectl vela plugin #1582
15. fix controller cannot start due to the format error of the third-party CRD (#1584)
16. use accelerate domain for helm chart repo to speed up for global users (#1585)
17. embed rollout in an application, now you can use rolloutPlan in Application (#1568)
18. Support server-side Terraform as cloud resource provider #1519
# v1.0.3
More end user guide was added in `Application Deployment` section.
1. add helm test to verify the chart of KubeVela have been installed successfully (#1415)
2. fix bug which Component/TraitDefinition won't work when contains “`_|_`” in value (#1450)
3. add volumes definition in worker/webservice (#1459)
4. Remove local kind binary dependency #1458
5. ignore error not found when deleting resourceTracker (#1462)
6. add context.appRevisionNum as runtime context (#1466)
7. implement cli `vela system live-diff` to check diff before upgrade (#1419)
8. add webhook validation on CUE template outputs name (#1460)
9. Fix helm chart about wrong webhook policy (#1483)
10. Remove trait-injector from controller options (#1490)
12. add app name as label for AppRevision (#1488)
13. Introduce vela as a kubectl plugin (#1485)
14. update status of appContext by patch to avoid resourceVersion conflict error (#1500)
15. add workloadDefinitionRef to application status.services (#1471)
16. Add garbage collection mechanism for AppRevision, it will only keep 10 revisions by default (#1501)
17. Remove AGE in definition crd print columns (#1509)
# v1.0.2
1. remove no used ingress notes in KubeVela charts (#1405)
2. fix import inner package in the format of third party package path and add docs (#1412 #1417)
3. vela cli support use "vela system cue-packages" to list cue-package (#1417)
4. Fix bug that the registered k8s built-in gvk does not exist in third party package path (#1414)
5. Fix bug that patchKey not work when strategyUnify function not work with close call (#1430)
6. add podDisruptive to traitdefinition to notify wether a trait update will cause restart of pod or not (#1192)
7. Add a new cloneset scale controller (#1301)
8. Support garbage collection for across-namespace workloads and traits (#1421)
9. Add short name for crds && Remove redundant and ambiguous short names #1434
10. Refresh built-in packages when component/trait definition are registered (#1402)
**You should upgrade following CRDs to upgrade from v1.0.1, all CRDs changes are backward compatible**:
```
kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/master/charts/vela-core/crds/core.oam.dev_resourcetrackers.yaml
kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/master/charts/vela-core/crds/standard.oam.dev_rollouttraits.yaml
kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/master/charts/vela-core/crds/core.oam.dev_traitdefinitions.yaml
kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/master/charts/vela-core/crds/core.oam.dev_applications.yaml
kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/master/charts/vela-core/crds/core.oam.dev_approllouts.yaml
kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/master/charts/vela-core/crds/core.oam.dev_applicationrevisions.yaml
```
# v1.0.1
There are some fixes contained for release v1.0.0:
1. add initial finalizer and abandon support for app rollout, you can revert quickly now(#1362)
2. fix vela show fail to get component definition (#1366)
3. fix application context controller should not own application object (#1370)
4. fix: "system-definition-namespace" chart args not work in vela chart (#1371)
5. fix resources created in different namespace can not be updated (#1374)
6. fix automatically generate schema for helm values fail in array list value (#1375)
7. upgrade API version of mutate/validate webhook to v1 (#1383)
8. fix webhook not work by helm install kubevela without cert-manager #1267
7. remove create cert-manager issuer in vela CLI env command (#1267)
8. refine CRD print results: add additional print column and short Name for CRD (#1377)
Many other docs improvements.
Thanks for all the contributors!
# v1.0.0
We're excited to announce the release of KubeVela 1.0.0! 🎉🎉🎉🎉
Thanks to all the new and existing contributors who helped make this release happen!
You may already noticed the awesome community has shipped a brand new KubeVela website https://kubevela.io ! 🎉🎉
If you're new to KubeVela, feel free to start with its [getting started page](https://kubevela.io/docs/quick-start) and learning about [its core concepts](https://kubevela.io/docs/concepts). The full feature of vela is explained in [platform builder guide](https://kubevela.io/docs/platform-engineers/overview).
For existing adopters, please follow the [installing](https://kubevela.io/docs/install) or [upgrading](https://kubevela.io/docs/install#upgrade) KubeVela to version 1.0.0.
## Acknowledgements ❤️
Thanks to everyone who made this release possible!
@captainroy-hy @sunny0826 @leejanee @yangsoon @wangyikewxgm @hongchaodeng @zzxwill @ryanzhang-oss @resouer @wonderflow @hprotzek @vnzongzna @majian159 @Cweiping @mengjiao-liu @kushthedude @unknwon @Ghostbaby @mosesyou @dylandee @wangkai1994 @LeoLiuYan @just-do1 @hoopoe61 @Incubator4th @TomorJM @hahchenchen @zeed-w-beez @allenhaozi @mason1kwok @kinsolee @shikanon @96RadhikaJadhav
# What's New
## API version upgraded to `v1beta1`
All user facing APIs have been upgraded to `v1beta1`, you could learn more details in the [API Changes](#API-Changes) section below.
## `ComponentDefinition`
The [`ComponentDefinition`](https://kubevela.io/docs/platform-engineers/definition-and-templates) now takes the responsibility of defining encapsulation and abstraction for your app components. And you are free to choose to use Helm chart or CUE to define them. This leaves `WorkloadDefinition` focusing on declaring workload characteristic such as `replicable`, `childResource` etc, so the `spec.schematic` field in `WorkloadDefinition` could be deprecated in next few releases.
## Application Versioning and Progressive Rollout
* A rolling style upgrade was supported by the object called [`AppRollout`](https://kubevela.io/docs/rollout/rollout/). It can help you to upgrade an Application from source revision to the target and support Blue/Green, Canary and A/B testing rollout strategy.
* Multi-Version, Multi-Cluster Application Deployment was supported by the object called [`AppDeployment`](https://kubevela.io/docs/rollout/appdeploy). It can help you to deploy multiple revision apps to multiple clusters with leverage of Service Mesh.
## Visualization Enhancement
KubeVela now automatically generates Open-API-v3 Schema for all the definition abstractions including CUE, Helm and raw Kubernetes resource templates. You can integrate KubeVela with your own dashboard and [generate forms from definitions](https://kubevela.io/docs/platform-engineers/openapi-v3-json-schema) at ease!
## Application Abstraction
There're several major updates on the `Application` abstraction itself:
* [Helm based abstraction](https://kubevela.io/docs/helm/component) was supported with few [limitations](https://kubevela.io/docs/helm/known-issues). In other words, you can now declare any existing Helm chart as an app component in KubeVela. The most exciting part is the trait system of KubeVela works seamlessly with the Helm based components, yes, just [attach trait](https://kubevela.io/docs/helm/trait) to it!
* [Raw Kubernetes resource templates](https://kubevela.io/docs/kube/component) was still supported, that's simpler but less powerful comparing to [the CUE way](https://kubevela.io/docs/cue/component). Of course, the trait system also [works seamless](https://kubevela.io/docs/kube/trait) with it.
## CUE Template Enhancement
* [Runtime information context](https://kubevela.io/docs/cue/component#full-available-information-in-cue-context) was supported, you could use this information to render the resources in CUE template.
* [Data passing](https://kubevela.io/docs/cue/advanced#data-passing) was supported during CUE rendering. Specifically, the `context.output` contains the rendered workload API resource and the `context.outputs.<xx>` contains all the other rendered API resources.
* [K8s API resources are now built-in packages](https://kubevela.io/docs/cue/basic#import-kube-package): the K8s built-in API including CRD will be discovered by KubeVela and automatically built as CUE packages, you can use it in your CUE template. This is very helpful in validation especially on writing new CUE templates.
* [Dry-run Application](https://kubevela.io/docs/platform-engineers/debug-test-cue) was supported along with a debug and test guide for building CUE template. You can create CUE based definitions with confidence now!
* [Deploy resources in different namespaces](https://kubevela.io/docs/cue/cross-namespace-resource/) was supported now, you can specify namespace in your CUE template.
## Declare and Consume Cloud Resources
* [Declare and consume cloud resources](https://kubevela.io/docs/platform-engineers/cloud-services/) were supported now in KubeVela, you can easily register cloud resources by `ComponentDefinition` and bind the service into the applications.
## A brand new website
We have upgraded our website [kubevela.io](https://github.com/oam-dev/kubevela.io) based on "Docusaurus". All docs is automatically generated from [KubeVela](https://github.com/oam-dev/kubevela/tree/master/docs) while the blogs are on [kubevela.io/blogs](https://github.com/oam-dev/kubevela.io/tree/main/blog).
# Changes
## API Changes
1. Change definition from cluster scope to namespace scope #1085 the cluster scope CRD was still compatible.
2. Application Spec changes.
- `spec.components[x].settings` in v1alpha2 was changed to `spec.components[x].properties` in v1beta1
- `spec.components[x].traits[x].name` in v1alpha2 was changed to `spec.components[x].traits[x].type` in v1beta1
Example of the v1alpha2 Spec:
```
apiVersion: core.oam.dev/v1alpha2
kind: Application
metadata:
name: first-vela-app
spec:
components:
- name: express-server
type: webservice
settings:
...
traits:
- name: ingress
properties:
...
```
Example of the v1beta1 Spec:
```
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: first-vela-app
spec:
components:
- name: express-server
type: webservice
properties:
...
traits:
- type: ingress
properties:
...
```
## Deprecation
1. route/autoscaler/metrics these three traits and their controllers were moved out from the vela core. #1172 You could still find and use them from https://github.com/oam-dev/catalog.
2. the dashboard was deprecated in KubeVela and we will merge these features and create a new in [velacp](https://github.com/oam-dev/velacp) soon.
3. vela CLI will only support run/modify an app from appfile by using `vela up`, so some other commands related were deprecated, such as `vela svc deploy`, `vela <trait> ...`
## Other Notable changes
1. `prometheus` and `certmanager` CRD are not required in installation #1005
2. Parent overrides child when annotation/labels conflicts && one revision will apply once only in force mode && AC.status CRD updated #1109
3. `ApplicationRevision` CRD Object was introduced as revision of Application #1214
4. KubeVela chart image pull policy was changed to `Always` from `IfNotPresent` #1228
5.` Application` Controller will use `AppContext` to manage the resources generation #1245, in other word, you can run KubeVela `Application Controller` without any `v1apha2 Object`.
6. The regular time for all events automatically sync changed from 5min to 1 hour #1285
7. `vela system dry-run` will print raw K8s resources in a better format #1246
# Known Issues
1. Built-in CUE package was not supported now for K8s Cluster v1.20, we will support in the next release. #1313
2. Resources created in different namespace from application will only be garbage collected (GC) when the application deleted, an update will not trigger GC for now, we will fix it in the next release. #1339
Thanks again to all the contributors!

243
CHANGELOG/CHANGELOG-1.1.md Normal file
View File

@@ -0,0 +1,243 @@
# v1.1.3
## What's Changed
* Fix: remove ocm addon enable in Makefile by @Somefive in https://github.com/oam-dev/kubevela/pull/2327
* Chore(cli): remove useless deploy.yaml by @chivalryq in https://github.com/oam-dev/kubevela/pull/2335
* Fix: do not override the workload name if its specified by @FogDong in https://github.com/oam-dev/kubevela/pull/2336
* Fix: remove appcontext CRD and controller by @wonderflow in https://github.com/oam-dev/kubevela/pull/2270
* Feat: add revisionHistoryLimit to helm chart by @haugom in https://github.com/oam-dev/kubevela/pull/2343
* Chore: deprecate 'vela dashboard' apiserver by @chivalryq in https://github.com/oam-dev/kubevela/pull/2341
* Chore: remove e2e-api-test in rollout test to speed up by @chivalryq in https://github.com/oam-dev/kubevela/pull/2345
* Docs: rollout demo by @wangyikewxgm in https://github.com/oam-dev/kubevela/pull/2348
* Feat: add vela minimal chart by @FogDong in https://github.com/oam-dev/kubevela/pull/2340
* Fix: runc security issue by @Somefive in https://github.com/oam-dev/kubevela/pull/2350
* Docs: add a WeChat QR code by @barnettZQG in https://github.com/oam-dev/kubevela/pull/2351
* Feat: Initialize api for vela dashboard and CLI by @barnettZQG in https://github.com/oam-dev/kubevela/pull/2339
* Fix(helm chart): fix startup args for apiserver by @yangsoon in https://github.com/oam-dev/kubevela/pull/2362
* Fix: dockerfile e2e test command lack environment configuration by @Somefive in https://github.com/oam-dev/kubevela/pull/2231
* Feat: inputs support setting value in array by @leejanee in https://github.com/oam-dev/kubevela/pull/2358
* Feat: support rollout controller for StatefulSet by @whichxjy in https://github.com/oam-dev/kubevela/pull/1969
* Fix: delete deprecated vela dashboard in e2e setup by @FogDong in https://github.com/oam-dev/kubevela/pull/2379
* Fix: try fix CI unit test by @wonderflow in https://github.com/oam-dev/kubevela/pull/2376
* Feat: Addon REST API by @hongchaodeng in https://github.com/oam-dev/kubevela/pull/2369
* Fix: fix built in workflow steps by @FogDong in https://github.com/oam-dev/kubevela/pull/2378
* Feat: add vela minimal in make manifests by @FogDong in https://github.com/oam-dev/kubevela/pull/2389
* Chore(deps): bump go.mongodb.org/mongo-driver from 1.3.2 to 1.5.1 by @wonderflow in https://github.com/oam-dev/kubevela/pull/2391
* Fix: use aliyun oss istio chart by @wangyikewxgm in https://github.com/oam-dev/kubevela/pull/2392
* Support remote git repo for Terraform configuration by @zzxwill in https://github.com/oam-dev/kubevela/pull/2337
* Feat: add inputs test cases and optimize code by @leejanee in https://github.com/oam-dev/kubevela/pull/2388
* Fix: pass owner to workload if rollout failed by @wangyikewxgm in https://github.com/oam-dev/kubevela/pull/2397
* Feat: bootstrap multicluster testing by @Somefive in https://github.com/oam-dev/kubevela/pull/2368
* Feat(workflow): add depends on in workflow by @FogDong in https://github.com/oam-dev/kubevela/pull/2387
* Fix: make the name of Terraform credential secret same to component name by @zzxwill in https://github.com/oam-dev/kubevela/pull/2399
* Fix: revision GC in workflow mode by @FogDong in https://github.com/oam-dev/kubevela/pull/2355
* Fix: Applied Resources Statistics Error by @leejanee in https://github.com/oam-dev/kubevela/pull/2398
# v1.1.2
This is a bug fix release.
Since the big v1.1.1 release, many users had given it try for our new features. We sincerely appreciate your enthusiasm and amazing feedback.
There are some small issues found by our users and we have fixed them. Most notably:
- The Charts of addons (prometheus, etc.) are moved to OSS to provide better accessibility and network speed.
- The FluxCD and Terraform addons are not enabled by default. Users can install them via `vela addon enable ...`.
We have located more small issues around templates as well and fixed them, and decided a bug fix release ASAP.
Users are highly recommended to use the v1.1.2 release instead. We want to thank all of our users sincerely! ❤️ ❤️ ❤️
## What's Changed
* Fix(rollout): improve rollback experience by @hongchaodeng in https://github.com/oam-dev/kubevela/pull/2294
* Fix: fix typo by @hughxia in https://github.com/oam-dev/kubevela/pull/2317
* Fix: fix cluster-gateway image tag in chart by @Somefive in https://github.com/oam-dev/kubevela/pull/2318
* Fix: workflow example by @leejanee in https://github.com/oam-dev/kubevela/pull/2323
* Fix: fix multicluster values bug by @Somefive in https://github.com/oam-dev/kubevela/pull/2326
* Fix(helm): Do not install fluxcd and terraform by default by @yangsoon in https://github.com/oam-dev/kubevela/pull/2328
* Fix: move charts from github repo to Alibaba Cloud OSS repo by @zzxwill in https://github.com/oam-dev/kubevela/pull/2324
* Fix: add comments and adjust helm typed component's spec by @zzxwill in https://github.com/oam-dev/kubevela/pull/2332
* Fix: fix multicluster template bug by @Somefive in https://github.com/oam-dev/kubevela/pull/2333
* Feat: add args for init-contianer and sidecar by @Gallardot in https://github.com/oam-dev/kubevela/pull/2331
# v1.1.1
Users are highly recommended to use the v1.1.2 release instead.
# Changes since v1.1.0
1. rollout trait change IncreaseFirst to DecreaseFirst (#2142)
2. Feat(definition): add built-in dingtalk workflow step definition (#2152)
3. Fix(dryrun): add default name and namespace in dry run (#2150)
4. Docs: fix typo about workflow rollout (#2163)
5. Fix: traitdefinition controller reconcile in a infinite loop (#2157)
6. Refactor: change the ownerReference of configMap which store the parameter for each revision to definitionRevision (#2164)
7. Fix: add fluxcd dashbaords (#2130)
8. Feat: modify apply component cue action to support skipWorkload trait (#2167)
9. Trait: Add TraitDefinition for PVC (#2158)
10. initilize KubeVela codeowner file (#2178)
11. Feat(cue): support access components artifacts in cue template context (#2161)
12. Feat(addon): add default enable addon (#2172)
13. Feat(envbinding): add resourceTracker for envBinding (#2179)
14. Fix: align all CUE template keyword to use parameter (#2181)
15. Feat: add vela live-diff , dry-run, cue-packages into vela commands (#2182)
16. Fix: move Terraform defintions charts/vela-core/templates/definitions (#2176)
17. Fix: add patchkey to volumes (#2191)
18. Feat(workflow): add depends-on workflow step definition (#2190)
19. Feat: add pprof (#2192)
20. Feat: add more registry traits as internal ones (#2184)
21. Fix: support more Terraform variable types (#2194)
22. Fix: update help message of ingress trait (#2198)
23. Refactor(#2185): remove unused config options in Makefile (#2200)
24. Docs: update environment design (#2199)
25. Fix: modify service-binding with more accurate type (#2209)
26. Feat(healthscope): add health-scope-binding policy and e2e test for health scope (#2205)
27. Feat(workflow): support dingding and slack in webhook notification (#2213)
28. Feat(workflow): add apply application workflow step definition (#2186)
29. Feat(workflow): input.ParameterKey described like paths notation (#2214)
30. Fix(upgrade): upgrade controller-tools from 0.2 to 0.6.2 (#2215)
31. Fix(app): When only the policy is specified, the resources in the app need to be rendered and created (#2197)
32. Feat(workflow): outputs support script notation (#2218)
33. Fix(addon): rename clonset-service to clonse (#2219)
34. Feat(workflow): Add op.#Task action (#2220)
35. Fix(webhook): only check the uniqueness of component names under the same namespace (#2222)
36. Feat(apiserver): add apiserver service to helm chart (#2225)
37. Fix: add flag --label to filer components and traits (#2217)
38. Fix(addons): remove kruise addon (#2226)
39. Feat: add pressure-test parameter optimize (#2230)
40. Fix: align the envbind-app name with the original application name (#2232)
41. Feat(workflow): add status check for workflow mutil-env deploy (#2229)
42. Refactor: move from io/ioutil to io and os package (#2234)
43. Feat(trait): annotation and labels trait should also affect the workload object along with pod (#2237)
44. Feat(app): show health status from HealthScope in application (#2228)
45. Fix: kustomize json patch trait definition (#2239)
46. Docs: canary rollout demo (rollout part only) (#2177)
47. Feat: vela show annotations display undefined should be refined (#2244)
48. Feat: support code-generator and sync to kubevela-core-api (#2174)
49. Feat: add image auto update for gitops (#2251)
50. Fix: fix the output DB_PASSWORD for rds definition (#2267)
51. Fix: add alibaba eip cloud resource (#2268)
52. Refactor application code to make it run as Dag workflow (#2236)
53. Fix: remove podspecworkload controller and CRD (#2269)
54. Feat: add more options for leader election configuration to avoid pressure on apiserver
55. Feat: istio addon and use case demo (#2276)
56. Fix: patch any key using retainKeys strategy (#2280)
57. Fix: add exponential backoff wait time for workflow reconciling (#2279)
58. Refactor: change field exportKey to valueFrom (#2284)
59. Fix(helm): enable apiserver by default (#2249)
60. Feat: alibaba provider addon (#2243)
61. Support MultiCluster EnvBinding with cluster-gateway (#2247)
62. Fix: fix apply application workflow step (#2288)
63. Fix: fix alibaba cloud rds module (#2293)
64. Feat: add commit msg in kustomize (#2296)
65. Feat: allow user specify alibaba provider addon's region (#2297)
66. Fix: generate service in canary-traffic trait (#2300)
67. Fix: imagePullSecrets error from cloneset (#2305)
68. Fix: add application logging dashboard (#2301)
69. Feat: Make applicationComponent can be modified in step (#2304)
70. Fix: generate service in canary-traffic trait (#2307)
# v1.1.0
Note: the documents (https://kubevela.io/) for v1.1.0 is still WIP, so we mark it as pre-release. The ETA for documents is next 2 weeks.
We would like to extend our thanks to all [the new and existing contributors](https://github.com/oam-dev/kubevela/graphs/contributors) who helped make this release happen.
Please follow the guide to [install](https://kubevela.io/docs/next/getting-started/quick-install) or [upgrade](https://kubevela.io/docs/next/platform-engineers/advanced-install/) KubeVela to version v1.1.0.
## What's New
- **Hybrid Environment App Delivery Control plane**
- In the new release, we have fully upgraded KubeVela to a multi-cluster/hybrid-cloud/multi-cloud app delivery control plane with leverage of OAM as the consistent app delivery model across clouds and infrastructures.
- **Workflow**
- KubeVela has added a Workflow mechanism that empowers users to glue any operational tasks to customize the control logic to build more complex operations. Workflow is modular by design and each module is mainly composed in CUE -- so you can define complex operations in a declarative, data-driven manner.
- **Environment**
- KubeVela added an Initializer which allow users to define what constructs the environment. The environment Initialized by the Initilizer could contain different kinds of resources include K8s cluster, system components, policies and almost everything. Of course, you can destry an environment very easily with the help of Initializer.
- **Out of Box Addons**
- With the help of Initilizer, KubeVela has support lots of out of box addons. You can list/enable/disable them by `vela addon` command. Each addon is an Initializer that deloy the CRD Controllers and other resources related.
- **Cloud Resources Support**
- We also support terraform to provision almost every cloud resources and pass through to other components defined in KubeVela application.
- **Tools to edit and manage X-Definition**
- We also provide the `vela def` tool sets to provide unified CUE based capability to manage X-Definition.
- **Others**
- Allow specify name for component revision auto-generated by Application. Allow specify name for auto generated Definition revision.
- Controller runtime dependency upgrade that can compatible with Kubernetes v1.21 . KubeVela support Kubernetes v1.18~v1.21.
- Other details you could read changelog in the release history.
## Change log since v1.1-rc2
1. fix configmap patchkey bug (#2080)
2. Merge velacp to apiserver branch in oam repo (#2039) (#2127) (#2087)
3. support rollout controller seprated and install as helm chart in runtime cluster (#2075)
4. fix bug that KubeVela can not be installed in specified namespace (#2083)
5. enable vela def to use import decl (#2084)
6. enhance envbinding: support apply resources to cluster (#2093)
7. Add obsevability addon (#2091)
8. Feat(vela): add vela workflow suspend command (#2108)
9. feat(def): add built-in workflow definitions (#2094)
10. Feat(vela): add vela workflow resume command (#2114)
11. upgrade openkruise version to v0.9.0 (#2076)
12. Fix(workflow): set workload name in configmap if the name is not specified (#2119)
13. helm component support OSS bucket (#2104)
14. add rollout demo with Workflow (#2121)
15. Support script as parameter and make the WorkflowStepDefinition more universal (#2124)
16. fix(cli) fix bug when vela show componetdefinition's workload type is AutoDetectWorkloadDefinition (#2125)
17. Fix(workflow): set the namespace to app's ns if it's not specified (#2133)
18. fix specify external revision bug (#2126)
19. add CUE-based health check in HealthScope controller (#1956)
20. Feat(addon): Add source and patch to kustomize definition (#2138)
21. Feat(vela): add vela workflow terminate and restart command (#2131)
# v1.1.0-rc.2
1. Allow users to specify component revision name in Application (#1929) the new field `externalRevision` can specify the revision name.
```
kind: Application
spec:
components:
- name: mycomp
type: webservice
externalRevision: my-revision-v1
properties:
...
```
2. Add more workflow demo and fix some demos #2042 #2059 #2060 #2064
3. Add cloneset ComponentDefinition into kruise addon (#2050)
4. definitions support specify the revision name (#2044), you can specify the name by adding an annotation `definitionrevision.oam.dev/name`
```
apiVersion: core.oam.dev/v1beta1
kind: ComponentDefinition
metadata:
name: worker
annotations:
# you can specify the revision name in annotations
definitionrevision.oam.dev/name: "1.1.3"
spec:
...
```
5. fix definition controller log error cause by openapi schema generation error (#2063)
6. Add add-on input go-template implementation (#2049)
# v1.1.0-rc.1
1. Workflow support specify Order Steps by Field Tag (#2022)
2. support application policy (#2011)
3. add OCM multi cluster demo (#1992)
4. Fix(volume): seperate volume to trait (#2027)
5. allow application skip gc resource and leave workload ownerReference controlled by rollout(#2024)
6. Store component parameters in context (#2030)
7. Allow specify chart values for helm trait(#2033)
8. workflow support http provider (#2029)
9. Use vela def commands to replace mergedef.sh for internal definition generation (#2031)
# Other release histories
Refer to https://github.com/oam-dev/kubevela/releases

205
CHANGELOG/CHANGELOG-1.2.md Normal file
View File

@@ -0,0 +1,205 @@
# v1.2.2
## What's Changed
* Feat: add JFrog webhook trigger by @chwetion in https://github.com/oam-dev/kubevela/pull/3104
* Fix: trait/comp command output without a new line by @chivalryq in https://github.com/oam-dev/kubevela/pull/3112
* Feat: support wild match for env patch by @Somefive in https://github.com/oam-dev/kubevela/pull/3111
* Fix: fix revision will change when add new trait with skiprevisionaffect to application by @chwetion in https://github.com/oam-dev/kubevela/pull/3032
* Fix: add app samples for Terraform definition by @zzxwill in https://github.com/oam-dev/kubevela/pull/3118
* Feat: add port name in webservice by @FogDong in https://github.com/oam-dev/kubevela/pull/3110
* Fix: add imagePullSecrets for helm templates to support private docker registry by @StevenLeiZhang in https://github.com/oam-dev/kubevela/pull/3122
* Fix: workflow skip executing all steps occasionally by @leejanee in https://github.com/oam-dev/kubevela/pull/3025
* Fix: support generate Terraform ComponentDefinition from local HCL file by @zzxwill in https://github.com/oam-dev/kubevela/pull/3132
* Fix: prioritize namespace flag for `vela up` by @devholic in https://github.com/oam-dev/kubevela/pull/3135
* Fix: handle workflow cache reconcile by @FogDong in https://github.com/oam-dev/kubevela/pull/3128
* Feat: extend gateway trait to set class in spec by @devholic in https://github.com/oam-dev/kubevela/pull/3138
* Fix: add providerRef in generated ComponentDefinition by @zzxwill in https://github.com/oam-dev/kubevela/pull/3142
* Fix: retrieve Terraform variables from variables.tf by @zzxwill in https://github.com/oam-dev/kubevela/pull/3149
* Feat: addon parameter support ui-shcema by @wangyikewxgm in https://github.com/oam-dev/kubevela/pull/3154
* Fix: vela addnon enable cannot support '=' by @wangyikewxgm in https://github.com/oam-dev/kubevela/pull/3156
* Fix: add context parameters into the error message by @zeed-w-beez in https://github.com/oam-dev/kubevela/pull/3145
* Feat: support vela show for workflow step definition by @FogDong in https://github.com/oam-dev/kubevela/pull/3140
## New Contributors
* @devholic made their first contribution in https://github.com/oam-dev/kubevela/pull/3135
**Full Changelog**: https://github.com/oam-dev/kubevela/compare/v1.2.1...v1.2.2
# v1.2.1
## What's Changed
* Fix: can't query data from the MongoDB by @barnettZQG in https://github.com/oam-dev/kubevela/pull/3095
* Fix: use personel token of vela-bot instead of github token for homebrew update by @wonderflow in https://github.com/oam-dev/kubevela/pull/3096
* Fix: acr image no version by @wangyikewxgm in https://github.com/oam-dev/kubevela/pull/3100
* Fix: support generate cloud resource docs in Chinese by @zzxwill in https://github.com/oam-dev/kubevela/pull/3079
* Fix: clear old data in mongodb unit test case by @barnettZQG in https://github.com/oam-dev/kubevela/pull/3103
* Feat: support external revision in patch component by @Somefive in https://github.com/oam-dev/kubevela/pull/3106
* Fix: file under the path of github addon registry is not ignored by @StevenLeiZhang in https://github.com/oam-dev/kubevela/pull/3099
* Fix: Vela is crashed, when disabling addon, which needs namespace vela-system by @StevenLeiZhang in https://github.com/oam-dev/kubevela/pull/3109
* Fix: rollout workload namespace not aligned with rollout by @Somefive in https://github.com/oam-dev/kubevela/pull/3107
## New Contributors
* @StevenLeiZhang made their first contribution in https://github.com/oam-dev/kubevela/pull/3099
**Full Changelog**: https://github.com/oam-dev/kubevela/compare/v1.2.0...v1.2.1
# v1.2.0
❤️ KubeVela v1.2.0 released ! ❤️
Docs have been updated about the release at https://kubevela.io/docs/next/ .
**Changelog Between v1.2.0-rc.2~v1.2.0**: https://github.com/oam-dev/kubevela/compare/v1.2.0-rc.2...v1.2.0
## What's New
### UI Console Supported
Check how to use the GUI by this [how-to document](https://kubevela.io/docs/next/how-to/dashboard/application/create-application).
**GUI frontend code repo is here: https://github.com/oam-dev/velaux**
**API Server Code is here: https://github.com/oam-dev/kubevela/tree/master/pkg/apiserver**
We also add a [VelaQL](https://kubevela.io/docs/next/platform-engineers/system-operation/velaql) feature that could allow apiserver to interact with K8s Object in an extended way.
### Addon System
We add a new addon system in v1.2, this helps KubeVela install it's extension including more than X-Definition files.
The community has already supported some built-in addons herehttps://github.com/oam-dev/catalog/tree/master/addons , there're also some experimental addons here https://github.com/oam-dev/catalog/tree/master/experimental/addons
You can learn how to use it [from docs](https://kubevela.io/docs/next/how-to/cli/addon/addon).
You can [build and contribute](https://kubevela.io/docs/next/platform-engineers/addon/intro) your own addons.
### CI/CD Integration
You can use triggers to integrate with different CI and image registry systems on VelaUX.
* Feat: add ACR webhook trigger for CI/CD (#3044)
* Feat: add Harbor image registry webhook trigger for CI/CD (#3065)
* Feat: add DockerHub webhook trigger for CI/CD (#3081)
### Cloud Resources Enhancement
* Feature: support terraform/provider-azure addon by @zzxwill in https://github.com/oam-dev/kubevela/pull/2402
* Fix: aws/azure Terraform provider are broken by @zzxwill in https://github.com/oam-dev/kubevela/pull/2513 , https://github.com/oam-dev/kubevela/pull/2520 , https://github.com/oam-dev/kubevela/pull/2465
* Feat: Add Terraform Azure Storage Account by @maciejgwizdala in https://github.com/oam-dev/kubevela/pull/2646
* Docs: add vpc and vswitch cloud resource templates of alicloud by @lowkeyrd in https://github.com/oam-dev/kubevela/pull/2663
* Fix: allow external cloud resources to be kept when Application is deleted by @zzxwill in https://github.com/oam-dev/kubevela/pull/2698
* Feat: add alibaba cloud redis definition by @chivalryq in https://github.com/oam-dev/kubevela/pull/2507
* Feat: envbinding support cloud resource deploy and share by @Somefive in https://github.com/oam-dev/kubevela/pull/2734
* Fix: support naming a terraform provider by @zzxwill in https://github.com/oam-dev/kubevela/pull/2794
### Multi-Cluster Enhancement
* Feat: multicluster support ServiceAccountToken by @Somefive in https://github.com/oam-dev/kubevela/pull/2356
* Feat: add secure tls for cluster-gateway by @Somefive in https://github.com/oam-dev/kubevela/pull/2426
* Feat: add support for envbinding with namespace selector by @Somefive in https://github.com/oam-dev/kubevela/pull/2432
* Feat: upgrade cluster gateway to support remote debug by @Somefive in https://github.com/oam-dev/kubevela/pull/2673
* Feat: set multicluster enabled by default by @Somefive in #2930
### Workflow Enhancement
* Feat: add apply raw built in workflow steps by @FogDong in https://github.com/oam-dev/kubevela/pull/2420
* Feat: add read object step def by @FogDong in https://github.com/oam-dev/kubevela/pull/2480
* Feat: add export config and secret def for workflow by @FogDong in https://github.com/oam-dev/kubevela/pull/2484
* Feat: support secret in webhook notification by @FogDong in https://github.com/oam-dev/kubevela/pull/2509
* Feat: Record workflow execution state by @leejanee in https://github.com/oam-dev/kubevela/pull/2479
* Fix(cli): use flag instead of env in workflow cli by @FogDong in https://github.com/oam-dev/kubevela/pull/2512
* Not update resource if render hash equal. by @leejanee in https://github.com/oam-dev/kubevela/pull/2522
* Feat: add email support in webhook notification by @FogDong in https://github.com/oam-dev/kubevela/pull/2535
* Feat: add render component and apply component remaining by @FogDong in https://github.com/oam-dev/kubevela/pull/2587
* Feat: add list application records api by @FogDong in https://github.com/oam-dev/kubevela/pull/2757
* Feat: component-pod-view support filter resource by cluster name and cluster namespace by @yangsoon in https://github.com/oam-dev/kubevela/pull/2754
* Feat: workflow support update by @barnettZQG in https://github.com/oam-dev/kubevela/pull/2760
* Feat: add workflow reconciling backoff time and failed limit times by @FogDong in #2881
### Component/Trait Enhancement
* Feat: add health check and custom status for helm type component by @chivalryq in https://github.com/oam-dev/kubevela/pull/2499
* Feat: add nocalhost dev config trait definition by @yuyicai in https://github.com/oam-dev/kubevela/pull/2545
* Feat(rollout): fill rolloutBatches if empty when scale up/down by @wangyikewxgm in https://github.com/oam-dev/kubevela/pull/2569
* Feat: allow import package in custom status cue template by @Chwetion in https://github.com/oam-dev/kubevela/pull/2585
* Feat: add trait service-account by @yangsoon in https://github.com/oam-dev/kubevela/pull/2878
* Fix: add ingress class as arguments by @Somefive in https://github.com/oam-dev/kubevela/pull/2445
* Fix: add libgit2 support for gitops by @FogDong in https://github.com/oam-dev/kubevela/pull/2477
* Fix: make nginx class to be default value and allow pvc trait to attach more than once by @wonderflow in https://github.com/oam-dev/kubevela/pull/2466
* Feat: add imagePullPolicy/imagePullSecret to task def by @chivalryq in https://github.com/oam-dev/kubevela/pull/2503
### Vela CLI Enhancement
* Feat: add vela prob to test cluster by @wonderflow in https://github.com/oam-dev/kubevela/pull/2635
* Feat: vela logs support multicluster by @chivalryq in https://github.com/oam-dev/kubevela/pull/2593
* Feat: vela-cli support use ocm to join/list/detach cluster by @yangsoon in https://github.com/oam-dev/kubevela/pull/2599
* Feat: add vela exec for multi cluster by @wonderflow in https://github.com/oam-dev/kubevela/pull/2299
* Feat: multicluster vela status/exec/port-forward by @Somefive in https://github.com/oam-dev/kubevela/pull/2662
* Fix: support `-n` flag for all commands to specify namespace by @chivalryq in https://github.com/oam-dev/kubevela/pull/2719
* Feat: vela delete add wait and force options by @yangsoon in https://github.com/oam-dev/kubevela/pull/2747
* Feat: add workflow rollback cli by @FogDong in https://github.com/oam-dev/kubevela/pull/2795
* Refactor: refine cli commands && align kubectl-vela with vela && use getnamespaceAndEnv for all by @wonderflow in #3048
### Overall Enhancements
* Feat: ResourceTracker new architecture by @Somefive in https://github.com/oam-dev/kubevela/pull/2849
* New Resource Management Model: Garbage Collection and Resource State Keeper [Desigin Doc](https://github.com/oam-dev/kubevela/blob/master/design/vela-core/resourcetracker_design.md)
* Feat: output log with structured tag & add step duration metrics by @leejanee in https://github.com/oam-dev/kubevela/pull/2683
* Feat: support user defined image registry that allows private installation by @wonderflow in https://github.com/oam-dev/kubevela/pull/2623
* Feat: add a built in garbage-collect policy to application by @yangsoon in https://github.com/oam-dev/kubevela/pull/2575
* Feat: health scope controller support check trait-managing workload by @wangyikewxgm in https://github.com/oam-dev/kubevela/pull/2527
* Chore: add homebrew bump to support `brew install kubevela` by @basefas in https://github.com/oam-dev/kubevela/pull/2434
* Chore: Update release action to support build binaries for more platform by @basefas in https://github.com/oam-dev/kubevela/pull/2537
* Feat: add reconcile timeout configuration for vela-core by @Somefive in https://github.com/oam-dev/kubevela/pull/2630
* Chore: push docker images to Alibaba Cloud ACR by @zzxwill in https://github.com/oam-dev/kubevela/pull/2601
## What's Changed/Deprecated
* Deprecated: containerized workload by @reetasingh in https://github.com/oam-dev/kubevela/pull/2330
* Deprecated: initializer CRD controller by @chivalryq in https://github.com/oam-dev/kubevela/pull/2491
* Deprecated: remove envbinding controller, use #ApplyComponent for EnvBinding by @Somefive in https://github.com/oam-dev/kubevela/pull/2556 , https://github.com/oam-dev/kubevela/pull/2382
* Deprecated(cli): CLI vela config by @chivalryq in https://github.com/oam-dev/kubevela/pull/2037
* Deprecated: remove addon with no definitions by @chivalryq in https://github.com/oam-dev/kubevela/pull/2574
* Refactor: remove apiserver component from the chart, users should use velaux addon instead by @barnettZQG in https://github.com/oam-dev/kubevela/pull/2838
* Refactor: all addons are migrated from initializer to application objects by @chivalryq in https://github.com/oam-dev/kubevela/pull/2444
* Refactor: change rollout's json tag so the status of rollout will be optional by @GingoBang in https://github.com/oam-dev/kubevela/pull/2314
* Deprecated: deprecate CRD discovery for CUE import in Definition to prevent memory leak and OOM crash (#2925)
* Deprecated: delete approllout related code #3040
* Deprecate: delete appDeployment related logic #3050
## Bugfix
* Feat: rework resource tracker to solve bugs by @Somefive in https://github.com/oam-dev/kubevela/pull/2797
* Fix: change raw extension to pointer by @FogDong in https://github.com/oam-dev/kubevela/pull/2451
* Fix: show reconcile error log by @wonderflow in https://github.com/oam-dev/kubevela/pull/2626
* Fix: Closure Bug In newValue by @leejanee in https://github.com/oam-dev/kubevela/pull/2437
* Fix: resourceTracker compatibility bug by @wangyikewxgm in https://github.com/oam-dev/kubevela/pull/2467
* Fix(application): nil pointer for component properties by @kinsolee in https://github.com/oam-dev/kubevela/pull/2481
* Fix: Commit step-generate data without success by @leejanee in https://github.com/oam-dev/kubevela/pull/2539
* Fix(cli): client-side throttling in vela CLI by @chivalryq in https://github.com/oam-dev/kubevela/pull/2581
* Fix: fix delete a component from application not delete workload by @wangyikewxgm in https://github.com/oam-dev/kubevela/pull/2680
* Fix: lookupByScript don't support `import` by @leejanee in https://github.com/oam-dev/kubevela/pull/2788
* Fix: resourcetracker do not garbage collect legacyRTs correctly by @Somefive in https://github.com/oam-dev/kubevela/pull/2817
* Fix: application conditions confusion. by @leejanee in https://github.com/oam-dev/kubevela/pull/2834
## New Contributors
* @GingoBang made their first contribution in https://github.com/oam-dev/kubevela/pull/2314
* @basefas made their first contribution in https://github.com/oam-dev/kubevela/pull/2434
* @yuyicai made their first contribution in https://github.com/oam-dev/kubevela/pull/2540
* @maciejgwizdala made their first contribution in https://github.com/oam-dev/kubevela/pull/2646
* @lowkeyrd made their first contribution in https://github.com/oam-dev/kubevela/pull/2663
* @zxbyoyoyo made their first contribution in https://github.com/oam-dev/kubevela/pull/2703
* @yue9944882 made their first contribution in https://github.com/oam-dev/kubevela/pull/2751
* @snyk-bot made their first contribution in https://github.com/oam-dev/kubevela/pull/2857
* @yunjianzhong made their first contribution in https://github.com/oam-dev/kubevela/pull/3005
* @songminglong made their first contribution in https://github.com/oam-dev/kubevela/pull/3064
* @basuotian made their first contribution in https://github.com/oam-dev/kubevela/pull/3059
* @K1ngram4 made their first contribution in https://github.com/oam-dev/kubevela/pull/3065
**Full Changelog**: https://github.com/oam-dev/kubevela/compare/v1.1.3...v1.2.0

13
CHANGELOG/README.md Normal file
View File

@@ -0,0 +1,13 @@
# CHANGELOGs
## Development release
- [CHANGELOG-1.2.md](./CHANGELOG-1.2.md)
## Current release
- [CHANGELOG-1.1.md](./CHANGELOG-1.1.md)
## Older releases
- [CHANGELOG-1.0.md](./CHANGELOG-1.0.md)

3
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,3 @@
# Code of Conduct
KubeVela follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).

View File

@@ -1,115 +1,3 @@
# CONTRIBUTING
# CONTRIBUTING Guide
This doc explains how to set up a development environment, so you can get started
contributing to `kubevela` or build a PoC (Proof of Concept).
## Prerequisites
1. Golang version 1.12+
2. Kubernetes version v1.15+ with `~/.kube/config` configured.
3. OAM Kubernetes Runtime installed.
4. Kustomize version 3.8+
5. ginkgo 1.14.0+ (just for [E2E test](https://github.com/oam-dev/kubevela/blob/master/DEVELOPMENT.md#e2e-test))
6. golangci-lint 1.31.0+, it will install automatically if you run `make`, you can [install it manually](https://golangci-lint.run/usage/install/#local-installation) if the installation is too slow.
## Build
* Clone this project
```shell script
git clone git@github.com:oam-dev/kubevela.git
```
* Install Template CRD into your cluster
```shell script
make install
```
* Install template object
```shell script
kubectl apply -f config/samples/
```
## Develop & Debug
If you change Template CRD, remember to rerun `make install`.
Use the following command to develop and debug.
```shell script
$ cd cmd/vela
$ go run main.go COMMAND [FLAG]
```
For example, use the following command to create and run an application.
```shell script
$ go run main.go run containerized app2057 nginx:1.9.4
Creating AppConfig app2057
SUCCEED
$ kubectl get oam
NAME WORKLOAD-KIND
component.core.oam.dev/app2057 ContainerizedWorkload
NAME AGE
containerizedworkload.core.oam.dev/poc 53m
NAME AGE
applicationconfiguration.core.oam.dev/app2057 69s
NAME DEFINITION-NAME
traitdefinition.core.oam.dev/simplerollouttraits.extend.oam.dev simplerollouttraits.extend.oam.dev
NAME DEFINITION-NAME
workloaddefinition.core.oam.dev/containerizedworkloads.core.oam.dev containerizedworkloads.core.oam.dev
workloaddefinition.core.oam.dev/deployments.apps deployments.apps
workloaddefinition.core.oam.dev/statefulsets.apps statefulsets.apps
```
## E2E test
```
$ make e2e-test
Running Suite: Trait Suite
==========================
Random Seed: 1596559178
Will run 5 of 5 specs
Trait env init
should print env initiation successful message
kubevela/e2e/commonContext.go:14
Create env succeed, current env is default
------------------------------
Trait env set
should show env set message
kubevela/e2e/commonContext.go:40
Set env succeed, current env is default
------------------------------
Trait run
should print successful creation information
kubevela/e2e/commonContext.go:76
Creating AppConfig app-trait-basic
SUCCEED
------------------------------
Trait kubevela attach trait
should print successful attached information
kubevela/e2e/trait/trait_test.go:24
Applying trait for app
Succeeded!
------------------------------
Trait delete
should print successful deletion information
kubevela/e2e/commonContext.go:85
Deleting AppConfig "app-trait-basic"
DELETE SUCCEED
Ran 5 of 5 Specs in 9.717 seconds
SUCCESS! -- 5 Passed | 0 Failed | 0 Pending | 0 Skipped
PASS
```
## Make a pull request
Remember to write unit-test and e2e test before making a pull request.
Please refer to https://kubevela.io/docs/contributor/overview for details.

View File

@@ -1,28 +1,51 @@
ARG BASE_IMAGE
# Build the manager binary
FROM golang:1.13 as builder
FROM --platform=${BUILDPLATFORM:-linux/amd64} golang:1.17-alpine as builder
WORKDIR /workspace
# Copy the Go Modules manifests
COPY go.mod go.mod
COPY go.sum go.sum
# It's a proxy for CN developer, please unblock it if you have network issue
ARG GOPROXY
ENV GOPROXY=${GOPROXY:-https://goproxy.cn}
# cache deps before building and copying source so that we don't need to re-download as much
# and so that source changes don't invalidate our downloaded layer
RUN go mod download
# Copy the go source
COPY cmd/core/main.go main.go
COPY api/ api/
COPY cmd/apiserver/main.go cmd/apiserver/main.go
COPY apis/ apis/
COPY pkg/ pkg/
COPY version/ version/
COPY references/ references/
# Build
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GO111MODULE=on go build -a -o manager main.go
ARG TARGETARCH
ARG VERSION
ARG GITVERSION
RUN GO111MODULE=on CGO_ENABLED=0 GOOS=linux GOARCH=${TARGETARCH} \
go build -a -ldflags "-s -w -X github.com/oam-dev/kubevela/version.VelaVersion=${VERSION:-undefined} -X github.com/oam-dev/kubevela/version.GitRevision=${GITVERSION:-undefined}" \
-o manager-${TARGETARCH} main.go
# Use distroless as minimal base image to package the manager binary
# Use alpine as base image due to the discussion in issue #1448
# You can replace distroless as minimal base image to package the manager binary
# Refer to https://github.com/GoogleContainerTools/distroless for more details
# oamdev/gcr.io-distroless-static:nonroot is syncd from gcr.io/distroless/static:nonroot as somewhere can't reach gcr.io
FROM oamdev/gcr.io-distroless-static:nonroot
WORKDIR /
COPY --from=builder /workspace/manager .
USER nonroot:nonroot
# Overwrite `BASE_IMAGE` by passing `--build-arg=BASE_IMAGE=gcr.io/distroless/static:nonroot`
FROM ${BASE_IMAGE:-alpine:3.15}
# This is required by daemon connecting with cri
RUN apk add --no-cache ca-certificates bash expat
ENTRYPOINT ["/manager"]
WORKDIR /
ARG TARGETARCH
COPY --from=builder /workspace/manager-${TARGETARCH} /usr/local/bin/manager
COPY entrypoint.sh /usr/local/bin/
ENTRYPOINT ["entrypoint.sh"]
CMD ["manager"]

49
Dockerfile.apiserver Normal file
View File

@@ -0,0 +1,49 @@
ARG BASE_IMAGE
# Build the manager binary
FROM --platform=${BUILDPLATFORM:-linux/amd64} golang:1.17-alpine as builder
ARG GOPROXY
ENV GOPROXY=${GOPROXY:-https://goproxy.cn}
WORKDIR /workspace
# Copy the Go Modules manifests
COPY go.mod go.mod
COPY go.sum go.sum
# cache deps before building and copying source so that we don't need to re-download as much
# and so that source changes don't invalidate our downloaded layer
RUN go mod download
# Copy the go source
COPY cmd/core/main.go main.go
COPY cmd/apiserver/main.go cmd/apiserver/main.go
COPY apis/ apis/
COPY pkg/ pkg/
COPY version/ version/
COPY references/ references/
# Build
ARG TARGETARCH
ARG VERSION
ARG GITVERSION
RUN GO111MODULE=on CGO_ENABLED=0 GOOS=linux GOARCH=${TARGETARCH} \
go build -a -ldflags "-s -w -X github.com/oam-dev/kubevela/version.VelaVersion=${VERSION:-undefined} -X github.com/oam-dev/kubevela/version.GitRevision=${GITVERSION:-undefined}" \
-o apiserver-${TARGETARCH} cmd/apiserver/main.go
# Use alpine as base image due to the discussion in issue #1448
# You can replace distroless as minimal base image to package the manager binary
# Refer to https://github.com/GoogleContainerTools/distroless for more details
# Overwrite `BASE_IMAGE` by passing `--build-arg=BASE_IMAGE=gcr.io/distroless/static:nonroot`
FROM ${BASE_IMAGE:-alpine:3.15}
# This is required by daemon connecting with cri
RUN apk add --no-cache ca-certificates bash expat
WORKDIR /
ARG TARGETARCH
COPY --from=builder /workspace/apiserver-${TARGETARCH} /usr/local/bin/apiserver
COPY entrypoint.sh /usr/local/bin/
ENTRYPOINT ["entrypoint.sh"]
CMD ["apiserver"]

43
Dockerfile.cli Normal file
View File

@@ -0,0 +1,43 @@
ARG BASE_IMAGE
# Build the cli binary
FROM --platform=${BUILDPLATFORM:-linux/amd64} golang:1.17-alpine as builder
ARG GOPROXY
ENV GOPROXY=${GOPROXY:-https://goproxy.cn}
WORKDIR /workspace
# Copy the Go Modules manifests
COPY go.mod go.mod
COPY go.sum go.sum
# cache deps before building and copying source so that we don't need to re-download as much
# and so that source changes don't invalidate our downloaded layer
RUN go mod download
# Copy the go source
COPY apis/ apis/
COPY pkg/ pkg/
COPY version/ version/
COPY references/ references/
# Build
ARG TARGETARCH
ARG VERSION
ARG GITVERSION
RUN GO111MODULE=on CGO_ENABLED=0 GOOS=linux GOARCH=${TARGETARCH:-amd64} \
go build -a -ldflags "-s -w -X github.com/oam-dev/kubevela/version.VelaVersion=${VERSION:-undefined} -X github.com/oam-dev/kubevela/version.GitRevision=${GITVERSION:-undefined}" \
-o vela-${TARGETARCH} ./references/cmd/cli/main.go
# Use alpine as base image due to the discussion in issue #1448
# You can replace distroless as minimal base image to package the manager binary
# Refer to https://github.com/GoogleContainerTools/distroless for more details
# Overwrite `BASE_IMAGE` by passing `--build-arg=BASE_IMAGE=gcr.io/distroless/static:nonroot`
FROM ${BASE_IMAGE:-alpine:3.15}
# This is required by daemon connecting with cri
RUN apk add --no-cache ca-certificates bash expat
WORKDIR /
ARG TARGETARCH
COPY --from=builder /workspace/vela-${TARGETARCH} /vela
ENTRYPOINT ["/vela"]

57
Dockerfile.e2e Normal file
View File

@@ -0,0 +1,57 @@
ARG BASE_IMAGE
# Build the manager binary
FROM --platform=${BUILDPLATFORM:-linux/amd64} golang:1.17-alpine as builder
WORKDIR /workspace
# Copy the Go Modules manifests
COPY go.mod go.mod
COPY go.sum go.sum
# cache deps before building and copying source so that we don't need to re-download as much
# and so that source changes don't invalidate our downloaded layer
RUN go mod download
# Copy the go source
COPY cmd/core/main.go main.go
COPY cmd/core/main_e2e_test.go main_e2e_test.go
COPY cmd/apiserver/main.go cmd/apiserver/main.go
COPY cmd/ cmd/
COPY apis/ apis/
COPY pkg/ pkg/
COPY version/ version/
COPY references/ references/
# Build
ARG TARGETARCH
ARG VERSION
ARG GITVERSION
RUN apk add gcc musl-dev libc-dev ;\
GO111MODULE=on CGO_ENABLED=0 GOOS=linux GOARCH=${TARGETARCH} \
go test -c -o manager-${TARGETARCH} -cover -covermode=atomic -coverpkg ./... .
RUN GO111MODULE=on CGO_ENABLED=0 GOOS=linux GOARCH=${TARGETARCH} \
go build -a -ldflags "-s -w -X github.com/oam-dev/kubevela/version.VelaVersion=${VERSION:-undefined} -X github.com/oam-dev/kubevela/version.GitRevision=${GITVERSION:-undefined}" \
-o apiserver-${TARGETARCH} cmd/apiserver/main.go
# Use alpine as base image due to the discussion in issue #1448
# You can replace distroless as minimal base image to package the manager binary
# Refer to https://github.com/GoogleContainerTools/distroless for more details
# Overwrite `BASE_IMAGE` by passing `--build-arg=BASE_IMAGE=gcr.io/distroless/static:nonroot`
FROM ${BASE_IMAGE:-alpine:3.15}
# This is required by daemon connecting with cri
RUN apk add --no-cache ca-certificates bash expat
WORKDIR /
ARG TARGETARCH
COPY --from=builder /workspace/manager-${TARGETARCH} /usr/local/bin/manager
COPY --from=builder /workspace/apiserver-${TARGETARCH} /usr/local/bin/apiserver
COPY entrypoint.sh /usr/local/bin/
VOLUME ["/workspace/data"]
ENTRYPOINT ["entrypoint.sh"]
CMD ["manager"]

16
GOVERNANCE.md Normal file
View File

@@ -0,0 +1,16 @@
# Governance
[Project maintainers](https://github.com/kubevela/community/blob/main/OWNERS.md#maintainers) are responsible for activities around maintaining and updating KubeVela.
Final decisions on the project reside with the project maintainers.
Maintainers **MUST** remain active. If they are unresponsive for >6 months,
they will be automatically removed unless a [super-majority](https://en.wikipedia.org/wiki/Supermajority#Two-thirds_vote) of the other project maintainers agrees to extend the period to be greater than 6 months.
New maintainers can be added to the project by a [super-majority](https://en.wikipedia.org/wiki/Supermajority#Two-thirds_vote) vote of the existing maintainers.
A potential maintainer may be nominated by an existing maintainer.
A vote is conducted in private between the current maintainers over the course of a one week voting period.
At the end of the week, votes are counted and a pull request is made on the repo adding the new maintainer to the [CODEOWNERS](https://github.com/kubevela/kubevela/blob/master/.github/CODEOWNERS) file.
A maintainer may step down by submitting an [issue](https://github.com/kubevela/kubevela/issues/new/choose) stating their intent.
Changes to this governance document require a pull request with approval from a [super-majority](https://en.wikipedia.org/wiki/Supermajority#Two-thirds_vote) of the current maintainers.

323
ISSUE_TRIAGE.md Normal file
View File

@@ -0,0 +1,323 @@
# Triage issues
The main goal of issue triage is to categorize all incoming KubeVela issues and make sure each issue has all basic
information needed for anyone else to understand and be able to start working on it.
> **Note:** This information is for OAM/KubeVela project Maintainers, Owners, and Admins.
> If you are a Contributor, then you will not be able to perform most of the tasks in this topic.
The core maintainers of the OAM/KubeVela project are responsible for categorizing all incoming issues and delegating
any critical or important issue to other maintainers. Currently one maintainer each week is responsible.
Besides that part, triage provides an important way to contribute to an open source project.
Triage helps ensure issues resolve quickly by:
- Ensuring the issue's intent and purpose is conveyed precisely. This is necessary because it can be difficult for
an issue to explain how an end user experiences a problem and what actions they took.
- Giving a contributor the information they need before they commit to resolving an issue.
- Lowering the issue count by preventing duplicate issues.
- Streamlining the development process by preventing duplicate discussions.
If you don't have the knowledge or time to code, consider helping with triage.
The community will thank you for saving them time by spending some of yours.
## Simplified flowchart diagram of the issue triage process
<!-- https://textik.com/#908a27a44c590528 -->
```
+-----------------------------+
| |
| New Issues Opened |
+-----------------+ |
| | Or More information needed |
| | |
| +--------------+--------------+
| Ask for more info |
| |
| +--------------+------------+
| | | Yes
| | All informatio needed |
| +-----------+ to categorize the issue +---------------+
| | No | | |
| | +---------------------------+ |
| | +-----------+-----------+ +---------------------------+
+------------+-----+-----+ | | Yes | |
| | | Needs investigation +---------+ label: needs investigation|
| label: needs more info | | | | |
| | +----------+------------+ +-------------+-------------+
+------------------------+ | |
| No |
| |
+----------+----------+ investigate |
| label: type/* | |
| label: area/* +--------------------------+
| |
+--|-------------|----+
| | Yes
| +-------|-------------+ +-------------------+
| | needs priority +----+ label: priority/* |
| +-------|-------------+ +----------|--------+
| | No |
| | |
+----- ------|---+ +--|----- --+ |
| close issue + ---- + done +---------------------+
+----------------+ +-----------+
```
## 1. Find uncategorized issues
To get started with issue triage and finding issues that haven't been triaged you have two alternatives.
### Browse unlabeled issues
The easiest and straight forward way of getting started and finding issues that haven't been triaged is to browse
[unlabeled issues](https://github.com/kubevela/kubevela/issues?q=is%3Aopen+is%3Aissue+no%3Alabel) and starting from
the bottom and working yourself to the top.
### Subscribe to all notifications
The more advanced, but recommended way is to subscribe to all notifications from this repository which means that
all new issues, pull requests, comments and important status changes are sent to your configured email address.
Read this [guide](https://help.github.com/en/articles/watching-and-unwatching-repositories#watching-a-single-repository)
for help with setting this up.
It's highly recommended that you setup filters to automatically remove emails from the inbox and label/categorize
them accordingly to make it easy for you to understand when you need to act upon a notification or where to look for
finding issues that haven't been triaged etc.
## 2. Ensure the issue contains basic information
Before triaging an issue very far, make sure that the issue's author provided the standard issue information.
This will help you make an educated recommendation on how to categorize the issue.
The KubeVela project utilizes [GitHub issue templates](https://help.github.com/en/articles/creating-issue-templates-for-your-repository)
to guide contributors to provide standard information that must be included for each type of template or type of issue.
### Standard issue information that must be included
Given a certain [issue template]([template](https://github.com/kubevela/kubevela/issues/new/choose)) have been used
by the issue author or depending how the issue is perceived by the issue triage responsible, the following should
help you understand what standard issue information that must be included.
#### Bug reports
Should explain what happened, what was expected and how to reproduce it together with any additional information that
may help giving a complete picture of what happened such as screenshots, application related YAMLs, and any environment
related information that's applicable and/or maybe related to the reported problem:
- KubeVela version
- K8s cluster version KubeVela is installed on
- Which other K8s CRD controllers used
- Development environment like Go versions, if applicable
#### Enhancement requests
Should explain what enhancement or feature that the author wants to be added and why that is needed.
### Good practices
To make it easier for everyone to understand and find issues they're searching for it's suggested as a general rule of thumbs to:
- Make sure that issue titles are named to explain the subject of the issue, has a correct spelling and doesn't include irrelevant information and/or sensitive information.
- Make sure that issue descriptions doesn't include irrelevant information, information from template that haven't been filled out and/or sensitive information.
- Do your best effort to change title and description or request suggested changes by adding a comment.
> **Note:** Above rules is applicable to both new and existing issues of the KubeVela project.
### Do you have all the information needed to categorize an issue?
Depending on the issue, you might not feel all this information is needed. Use your best judgement.
If you cannot triage an issue using what its author provided, explain kindly to the author that they must provide the
above information to clarify the problem. Label issue with `needs more info` and add any related `area/*` or `type/*` labels.
If the author provides the standard information but you are still unable to triage the issue, request additional information.
Do this kindly and politely because you are asking for more of the author's time.
If the author does not respond to the requested information within the timespan of a week,
close the issue with a kind note stating that the author can request for the issue to be reopened when the necessary information is provided.
When you feel you have all the information needed you're ready to [categorizing the issue](#3-categorizing-an-issue).
If you receive a notification with additional information provided but you are not anymore on issue triage and
you feel you do not have time to handle it, you should delegate it to the current person on issue triage.
## 3. Categorizing an issue
An issue can have multiple of the following labels. Typically, a properly categorized issue should at least have:
- One label identifying its type (`type/*`).
- One or multiple labels identifying the functional areas of interest or component (`area/*`), if applicable.
| Label | Description |
| ------------------------ | ------------------------------------------------------------------------- |
| `type/bug` | A feature isn't working as expected given design or documentation. |
| `type/enhancement` | Request for a new feature or enhancement. |
| `type/docs` | Documentation problem or enhancement. |
| `type/question` | Issue is a question or is perceived as such. |
| `type/duplicate` | An existing issue of the same subject/request have already been reported. |
| `type/wontfix` | A reported bug works as intended/by design. |
| `type/invalid` | A reported bug with invalid usage. |
| `area/*` | Subject is related to a functional area of interest or component. |
### Duplicate issues
Make sure it's not a duplicate by searching existing issues using related terms from the issue title and description.
If you think you know there is an existing issue, but can't find it, please reach out to one of the maintainers and ask for help.
If you identify that the issue is a duplicate of an existing issue:
1. Add a comment `/duplicate of #<issue number>`. GitHub will recognize this and add some additional context to the issue activity.
2. The KubeVela bot will do the rest, adding the correct label and closing comment
3. Optionally add any related `area/*` labels.
### Bug reports
If it's not perfectly clear that it's an actual bug, quickly try to reproduce it.
**It's a bug/it can be reproduced:**
1. Add a comment describing detailed steps for how to reproduce it, if applicable.
2. Label the issue `type/bug` and at least one `area/*` label.
3. If you know that maintainers won't be able to put any resources into it for some time then label the issue
with `help wanted` and optionally `good first issue` together with pointers on which code to update to fix the bug.
This should signal to the community that we would appreciate any help we can get to resolve this.
4. Move on to [prioritizing the issue](#4-prioritization-of-issues).
**It can't be reproduced:**
1. Either [ask for more information](#2-ensure-the-issue-contains-basic-information) needed to investigate it more thoroughly.
2. Either [delegate further investigations](#investigation-of-issues) to someone else.
**It works as intended/by design:**
1. Kindly and politely add a comment explaining briefly why we think it works as intended and close the issue.
2. Label the issue `type/wontfix`.
### Enhancement/feature?
1. Label the issue `type/enhancement` and at least one `area/*` label.
2. Move on to [prioritizing the issue](#4-prioritization-of-issues).
### Documentation issue?
First, evaluate if the documentation makes sense to be included in the KubeVela project:
- Is this something we want/can maintain as a project?
- Is this referring to usage of some specific integration/tool and in that case is that a popular use case in combination with KubeVela?
- If unsure, kindly and politely add a comment explaining that we would need [upvotes](https://help.github.com/en/articles/about-conversations-on-github#reacting-to-ideas-in-comments)
to identify that lots of other users want/need this.
Second, label the issue `type/docs` and at least one `area/*` label.
**Minor typo/error/lack of information:**
There's a minor typo/error/lack of information that adds a lot of confusion for users and given the amount of work is a big win to make sure fixing it:
1. Either update the documentation yourself and open a pull request.
2. Either delegate the work to someone else by assigning that person to the issue and add the issue to next major/minor milestone.
**Major error/lack of information:**
1. Label the issue with `help wanted` and `good first issue`, if applicable, to signal that we find this important to
fix and we would appreciate any help we can get from the community.
2. Move on to [prioritizing the issue](#4-prioritization-of-issues).
### Support requests and questions
1. Kindly and politely direct the issue author to the [github discussion](https://github.com/kubevela/kubevela/discussions)
and explain that issue is mainly used for tracking bugs and feature requests.
If possible, it's usually a good idea to add some pointers to the issue author's question.
2. Close the issue and label it with `type/question`.
## 4. Prioritization of issues
In general bugs and enhancement issues should be labeled with a priority.
This is the most difficult thing with triaging issues since it requires a lot of knowledge, context and experience
before being able to think of and start feel comfortable adding a certain priority label.
The key here is asking for help and discuss issues to understand how more experienced project members think and reason.
By doing that you learn more and eventually be more and more comfortable with prioritizing issues.
In case there is an uncertainty around the prioritization of an issue, please ask the maintainers for help.
| Label | Description |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| `priority/critical` | Highest priority. Must be actively worked on as someone's top priority right now. |
| `priority/important-soon` | Must be staffed and worked on either currently, or very soon, ideally in time for the next release. |
| `priority/important-longterm` | Important over the long term, but may not be staffed and/or may need multiple releases to complete. |
| `priority/nice-to-have` | It's a good idea, but not scheduled for any release. |
| `priority/awaiting-more-evidence` | Lowest priority. Possibly useful, but not yet enough interest in it. |
| `priority/unscheduled` | Something to look into before and to be discussed during the planning of the next (upcoming) major/minor stable release. |
**Critical bugs**
1. If a bug has been categorized and any of the following criteria apply, the bug should be labeled as critical and
must be actively worked on as someone's top priority right now.
- Results in any crash or data loss.
- Critical security or performance issues
- Problem that makes a feature unusable
- Multiple users experience a severe problem affecting their business, users etc.
2. Label the issue `priority/critical`.
3. Add the issue to the next upcoming patch release milestone. Create a new milestone if there are none.
4. Escalate the problem to the maintainers.
5. Assign or ask a maintainer for help assigning someone to make this issue their top priority right now.
**Important short-term**
1. Label the issue `priority/important-soon`.
2. Add the issue to the next upcoming patch or major/minor stable release milestone. Ask maintainers for help if unsure if it's a patch or not.
Create a new milestone if there are none.
3. Make sure to add the issue to a suitable backlog of a GitHub project and prioritize it or assign someone to work on it now or very soon.
4. Consider requesting [help from the community](#5-requesting-help-from-the-community), even though it may be problematic given a short amount of time until it should be released.
**Important long-term**
1. Label the issue `priority/important-longterm`.
2. Consider requesting [help from the community](#5-requesting-help-from-the-community).
**Nice to have**
1. Label the issue `priority/nice-to-have`.
2. Consider requesting [help from the community](#5-requesting-help-from-the-community).
**Not critical, but unsure?**
1. Label the issue `priority/unscheduled`.
2. Consider requesting [help from the community](#5-requesting-help-from-the-community).
## 5. Requesting help from the community
Depending on the issue and/or priority, it's always a good idea to consider signalling to the community that help from community
is appreciated and needed in case an issue is not prioritized to be worked on by maintainers. Use your best judgement.
In general, requesting help from the community means that a contribution has a good chance of getting accepted and merged.
1. Kindly and politely add a comment to signal to users subscribed to updates of the issue.
- Explain that the issue would be nice to get resolved, but it isn't prioritized to work on by maintainers for an unforeseen future.
- If possible or applicable, try to help contributors getting starting by adding pointers and references to
what code/files need to be changed and/or ideas of a good way to solve/implement the issue.
2. Label the issue with `help wanted`.
3. If applicable, label the issue with `good first issue` to denote that the issue is suitable for a beginner to work on.
4. If possible, try to estimate the amount of work by adding `effort/small`, `effort/medium` or `effort/large`.
## Investigation of issues
When an issue has all basic information provided, but the triage responsible haven't been able to reproduce the reported
problem at a first glance, the issue is labeled [Needs investigation](https://github.com/oam-dev/kubevela/labels/needs%20investigation).
Depending on the perceived severity and/or number of [upvotes](https://help.github.com/en/articles/about-conversations-on-github#reacting-to-ideas-in-comments),
the investigation will either be delegated to another maintainer for further investigation or put on hold until someone else (maintainer or contributor)
picks it up and eventually starts investigating it.
Investigating issues can be a very time consuming task, especially for the maintainers, provide as much related info will
make it easier for maintainers to investigate.
Even if you don't have the time or knowledge to investigate an issue we highly recommend that you [upvote](https://help.github.com/en/articles/about-conversations-on-github#reacting-to-ideas-in-comments)
the issue if you happen to have the same problem. If you have further details that may help investigating the issue
please provide as much information as possible.
## Automation
We have some automation that triggers on comments or labels being added to issues.
Many of these automated behaviors are defined in [issue-commands.json](https://github.com/oam-dev/kubevela/blob/master/.github/issue-commands.json).
* Add comment `/duplicate #<number>` to have `type/duplicate` label, the issue number is required for remind where is the other issue.
* Add label `bot/no new info` for bot to close an issue where we asked for more info but has not received any updates in at least 14 days.
Read more bot actions on [bot.md](https://github.com/oam-dev/kubevela/blob/master/.github/bot.md)

238
Makefile
View File

@@ -1,165 +1,135 @@
# Vela version
VELA_VERSION ?= 0.1.0
# Repo info
GIT_COMMIT ?= git-$(shell git rev-parse --short HEAD)
VELA_VERSION_VAR := github.com/oam-dev/kubevela/version.VelaVersion
VELA_GITVERSION_VAR := github.com/oam-dev/kubevela/version.GitRevision
LDFLAGS ?= "-X $(VELA_VERSION_VAR)=$(VELA_VERSION) -X $(VELA_GITVERSION_VAR)=$(GIT_COMMIT) -X main.chartTGZSource=$$(cat -) -s -w"
GOX = go run github.com/mitchellh/gox
TARGETS := darwin/amd64 linux/amd64 windows/amd64
DIST_DIRS := find * -type d -exec
# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set)
ifeq (,$(shell go env GOBIN))
GOBIN=$(shell go env GOPATH)/bin
else
GOBIN=$(shell go env GOBIN)
endif
include makefiles/const.mk
include makefiles/dependency.mk
include makefiles/release.mk
include makefiles/develop.mk
include makefiles/build.mk
include makefiles/e2e.mk
.DEFAULT_GOAL := all
all: build
# Run tests
test: fmt vet lint
go test ./pkg/... -coverprofile cover.out
test: vet lint staticcheck unit-test-core test-cli-gen
@$(OK) unit-tests pass
# Build manager binary
build: fmt vet lint
go run hack/chart/generate.go | go build -o bin/vela -ldflags ${LDFLAGS} cmd/vela/main.go
test-cli-gen:
mkdir -p ./bin/doc
go run ./hack/docgen/gen.go ./bin/doc
unit-test-core:
go test -coverprofile=coverage.txt $(shell go list ./pkg/... ./cmd/... ./apis/... | grep -v apiserver | grep -v applicationconfiguration)
go test $(shell go list ./references/... | grep -v apiserver)
unit-test-apiserver:
go test -gcflags=all=-l -coverprofile=coverage.txt $(shell go list ./pkg/... ./cmd/... | grep -E 'apiserver|velaql')
npm-build:
cd dashboard && npm run build && cd ./..
# Build vela cli binary
build: fmt vet lint staticcheck vela-cli kubectl-vela
@$(OK) build succeed
npm-install:
cd dashboard && npm install && cd ./..
generate-source:
go run hack/frontend/source.go
cross-build:
go run hack/chart/generate.go | GO111MODULE=on CGO_ENABLED=0 $(GOX) -ldflags $(LDFLAGS) -parallel=3 -output="_bin/{{.OS}}-{{.Arch}}/vela" -osarch='$(TARGETS)' ./cmd/vela/
compress:
( \
cd _bin && \
$(DIST_DIRS) cp ../LICENSE {} \; && \
$(DIST_DIRS) cp ../README.md {} \; && \
$(DIST_DIRS) tar -zcf vela-{}.tar.gz {} \; && \
$(DIST_DIRS) zip -r vela-{}.zip {} \; && \
sha256sum vela-* > sha256sums.txt \
)
# Run against the configured Kubernetes cluster in ~/.kube/config
run: fmt vet
go run ./cmd/core/main.go
build-cleanup:
rm -rf _bin
# Run go fmt against code
fmt:
fmt: goimports installcue
go fmt ./...
$(GOIMPORTS) -local github.com/oam-dev/kubevela -w $$(go list -f {{.Dir}} ./...)
$(CUE) fmt ./vela-templates/definitions/internal/*
$(CUE) fmt ./vela-templates/definitions/deprecated/*
$(CUE) fmt ./vela-templates/definitions/registry/*
$(CUE) fmt ./pkg/stdlib/pkgs/*
$(CUE) fmt ./pkg/stdlib/op.cue
$(CUE) fmt ./pkg/workflow/tasks/template/static/*
# Run go vet against code
vet:
go vet ./...
lint: golangci
$(GOLANGCILINT) run --timeout 10m -E golint,goimports ./...
staticcheck: staticchecktool
$(STATICCHECK) ./...
# Build the docker image
docker-build: test
docker build . -t ${IMG}
lint: golangci
$(GOLANGCILINT) run ./...
reviewable: manifests fmt vet lint staticcheck helm-doc-gen
go mod tidy
# Execute auto-gen code commands and ensure branch is clean.
check-diff: reviewable
git --no-pager diff
git diff --quiet || ($(ERR) please run 'make reviewable' to include all changes && false)
@$(OK) branch is clean
# Push the docker image
docker-push:
docker push ${IMG}
docker push $(VELA_CORE_IMAGE)
e2e-setup:
ginkgo version
ginkgo -v -r e2e/setup
bin/vela dashboard &
e2e-test:
# Run e2e test
ginkgo -v -skipPackage setup,apiserver -r e2e
e2e-api-test:
# Run e2e test
ginkgo -v -r e2e/apiserver
e2e-cleanup:
# Clean up
build-swagger:
go run ./cmd/apiserver/main.go build-swagger ./docs/apidoc/swagger.json
# Image URL to use all building/pushing image targets
IMG ?= vela-core:latest
# Produce CRDs that work back to Kubernetes 1.11 (no version conversion)
CRD_OPTIONS ?= "crd:crdVersions=v1"
# Run tests
core-test: generate fmt vet manifests
go test ./pkg/... -coverprofile cover.out
image-cleanup:
ifneq (, $(shell which docker))
# Delete Docker images
# Build manager binary
manager: generate fmt vet lint manifests
go build -o bin/manager ./cmd/core/main.go
# Run against the configured Kubernetes cluster in ~/.kube/config
core-run: generate fmt vet manifests
go run ./cmd/core/main.go
# Install CRDs into a cluster
core-install: manifests
kustomize build config/crd | kubectl apply -f -
# Uninstall CRDs from a cluster
core-uninstall: manifests
kustomize build config/crd | kubectl delete -f -
# Deploy controller in the configured Kubernetes cluster in ~/.kube/config
core-deploy: manifests
cd config/manager && kustomize edit set image controller=${IMG}
kustomize build config/default | kubectl apply -f -
# Generate manifests e.g. CRD, RBAC etc.
manifests: controller-gen
$(CONTROLLER_GEN) $(CRD_OPTIONS) rbac:roleName=manager-role webhook paths="./..." output:crd:artifacts:config=charts/vela-core/crds
# Generate code
generate: controller-gen
$(CONTROLLER_GEN) object:headerFile="hack/boilerplate.go.txt" paths="./..."
# find or download controller-gen
# download controller-gen if necessary
controller-gen:
ifeq (, $(shell which controller-gen))
@{ \
set -e ;\
CONTROLLER_GEN_TMP_DIR=$$(mktemp -d) ;\
cd $$CONTROLLER_GEN_TMP_DIR ;\
go mod init tmp ;\
go get sigs.k8s.io/controller-tools/cmd/controller-gen@v0.2.5 ;\
rm -rf $$CONTROLLER_GEN_TMP_DIR ;\
}
CONTROLLER_GEN=$(GOBIN)/controller-gen
else
CONTROLLER_GEN=$(shell which controller-gen)
ifneq ($(shell docker images -q $(VELA_CORE_TEST_IMAGE)),)
docker rmi -f $(VELA_CORE_TEST_IMAGE)
endif
GOLANGCILINT_VERSION ?= v1.29.0
ifneq ($(shell docker images -q $(VELA_RUNTIME_ROLLOUT_TEST_IMAGE)),)
docker rmi -f $(VELA_RUNTIME_ROLLOUT_TEST_IMAGE)
endif
endif
# load docker image to the kind cluster
kind-load: kind-load-runtime-cluster
docker build -t $(VELA_CORE_TEST_IMAGE) -f Dockerfile.e2e .
kind load docker-image $(VELA_CORE_TEST_IMAGE) || { echo >&2 "kind not installed or error loading image: $(VELA_CORE_TEST_IMAGE)"; exit 1; }
kind-load-runtime-cluster:
/bin/sh hack/e2e/build_runtime_rollout.sh
docker build -t $(VELA_RUNTIME_ROLLOUT_TEST_IMAGE) -f runtime/rollout/e2e/Dockerfile.e2e runtime/rollout/e2e/
rm -rf runtime/rollout/e2e/tmp
kind load docker-image $(VELA_RUNTIME_ROLLOUT_TEST_IMAGE) || { echo >&2 "kind not installed or error loading image: $(VELA_RUNTIME_ROLLOUT_TEST_IMAGE)"; exit 1; }
kind load docker-image $(VELA_RUNTIME_ROLLOUT_TEST_IMAGE) --name=$(RUNTIME_CLUSTER_NAME) || { echo >&2 "kind not installed or error loading image: $(VELA_RUNTIME_ROLLOUT_TEST_IMAGE)"; exit 1; }
# Run tests
core-test: fmt vet manifests
go test ./pkg/... -coverprofile cover.out
# Build vela core manager and apiserver binary
manager: fmt vet lint manifests
$(GOBUILD_ENV) go build -o bin/manager -a -ldflags $(LDFLAGS) ./cmd/core/main.go
$(GOBUILD_ENV) go build -o bin/apiserver -a -ldflags $(LDFLAGS) ./cmd/apiserver/main.go
vela-runtime-rollout-manager: fmt vet lint manifests
$(GOBUILD_ENV) go build -o ./runtime/rollout/bin/manager -a -ldflags $(LDFLAGS) ./runtime/rollout/cmd/main.go
# Generate manifests e.g. CRD, RBAC etc.
manifests: installcue kustomize
go generate $(foreach t,pkg apis,./$(t)/...)
# TODO(yangsoon): kustomize will merge all CRD into a whole file, it may not work if we want patch more than one CRD in this way
$(KUSTOMIZE) build config/crd -o config/crd/base/core.oam.dev_applications.yaml
./hack/crd/cleanup.sh
go run ./hack/crd/dispatch/dispatch.go config/crd/base charts/vela-core/crds runtime/ charts/vela-minimal/crds
rm -f config/crd/base/*
./vela-templates/gen_definitions.sh
HOSTOS := $(shell uname -s | tr '[:upper:]' '[:lower:]')
HOSTARCH := $(shell uname -m)
ifeq ($(HOSTARCH),x86_64)
HOSTARCH := amd64
endif
golangci:
ifeq (, $(shell which golangci-lint))
@{ \
set -e ;\
echo 'installing golangci-lint-$(GOLANGCILINT_VERSION)' ;\
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(GOBIN) $(GOLANGCILINT_VERSION) ;\
echo 'Install succeed' ;\
}
GOLANGCILINT=$(GOBIN)/golangci-lint
else
GOLANGCILINT=$(shell which golangci-lint)
endif
check-license-header:
./hack/licence/header-check.sh
def-install:
./hack/utils/installdefinition.sh
helm-doc-gen: helmdoc
readme-generator -v charts/vela-core/values.yaml -r charts/vela-core/README.md
readme-generator -v charts/vela-minimal/values.yaml -r charts/vela-minimal/README.md

1
OWNERS_ALIASES Normal file
View File

@@ -0,0 +1 @@
The owner file has been migrated to the community repo, please refer to https://github.com/kubevela/community/blob/main/OWNERS.md

View File

@@ -1,7 +0,0 @@
domain: oam.dev
repo: github.com/oam-dev/kubevela
resources:
- group: standard
kind: Route
version: v1alpha1
version: "2"

142
README.md
View File

@@ -1,110 +1,96 @@
# KubeVela
<div style="text-align: center">
<p align="center">
<img src="https://raw.githubusercontent.com/kubevela/kubevela.io/main/docs/resources/KubeVela-03.png">
<br><br>
<i>Make shipping applications more enjoyable.</i>
</p>
</div>
The Open Application Platform based on Kubernetes and OAM.
![Build status](https://github.com/kubevela/kubevela/workflows/E2E/badge.svg)
[![Go Report Card](https://goreportcard.com/badge/github.com/kubevela/kubevela)](https://goreportcard.com/report/github.com/kubevela/kubevela)
![Docker Pulls](https://img.shields.io/docker/pulls/oamdev/vela-core)
[![codecov](https://codecov.io/gh/kubevela/kubevela/branch/master/graph/badge.svg)](https://codecov.io/gh/kubevela/kubevela)
[![LICENSE](https://img.shields.io/github/license/kubevela/kubevela.svg?style=flat-square)](/LICENSE)
[![Releases](https://img.shields.io/github/release/kubevela/kubevela/all.svg?style=flat-square)](https://github.com/kubevela/kubevela/releases)
[![TODOs](https://img.shields.io/endpoint?url=https://api.tickgit.com/badge?repo=github.com/kubevela/kubevela)](https://www.tickgit.com/browse?repo=github.com/kubevela/kubevela)
[![Twitter](https://img.shields.io/twitter/url?style=social&url=https%3A%2F%2Ftwitter.com%2Foam_dev)](https://twitter.com/oam_dev)
[![Artifact HUB](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/kubevela)](https://artifacthub.io/packages/search?repo=kubevela)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/4602/badge)](https://bestpractices.coreinfrastructure.org/projects/4602)
:rotating_light: **Warning: The project is still under heavy development, its UI/UX is also for demo purpose, please don't look inside unless you know what you are doing** Please contact @wonderflow if you are interested in its full story or becoming one of the boostrap contributors/maintainers. :rotating_light:
## Introduction
## Install
KubeVela is a modern application delivery platform that makes deploying and operating applications across today's hybrid, multi-cloud environments easier, faster and more reliable.
### Prerequisites
- Kubernetes cluster running Kubernetes v1.15.0 or greater
- kubectl current context is configured for the target cluster install
- ```kubectl config current-context```
![](docs/resources/what-is-kubevela.png)
### Get the Vela CLI
## Highlights
Download the `vela` binary from the [Releases page](https://github.com/oam-dev/kubevela/releases). Unpack the `vela` binary and add it to `$PATH` to get started.
KubeVela practices the "render, orchestrate, deploy" workflow with below highlighted values added to existing ecosystem:
```shell
sudo mv ./vela /usr/local/bin/vela
```
- *Application Centric* - KubeVela introduces [Open Application Model (OAM)](https://oam.dev/) as the consistent yet higher level API to capture and render a full deployment of microservices on top of hybrid environments. Placement strategy, traffic shifting and rolling update are declared at application level. No infrastructure level concern, simply deploy.
### Install Vela Core
- *Programmable Workflow* - KubeVela models application delivery as DAG (Directed Acyclic Graph) and expresses it with [CUE](https://cuelang.org/) - a modern data configuration language. This allows you to design application deployment steps per needs and orchestrate them in programmable approach. No restrictions, natively extensible.
```shell script
$ vela install
```
- *Infrastructure Agnostic* - KubeVela works as an application delivery control plane that is fully decoupled from runtime infrastructure. It can deploy any workload types including containers, cloud services, databases, or even VM instances to any cloud or Kubernetes cluster, following the workflow designed by you.
This command will install vela core controller into your K8s cluster, along with built-in workloads and traits.
## Getting Started
## Demos
- [Introduction](https://kubevela.io/docs)
- [Installation](https://kubevela.io/docs/install)
- [Design Your First Deployment Plan](https://kubevela.io/docs/quick-start)
#### Check workloads
## Documentation
```
$ vela workloads
NAME DEFINITION
backend containerizeds.standard.oam.dev
task jobs
webservice containerizeds.standard.oam.dev
```
Full documentation is available on the [KubeVela website](https://kubevela.io/).
#### workload run
```shell script
$ vela comp run -t webservice app123 -p 80 --image nginx:1.9.4
Creating AppConfig app123
SUCCEED
## Blog
$ vela comp status app123
Official blog is available on [KubeVela blog](https://kubevela.io/blog).
$ vela comp ls
NAME APP WORKLOAD TRAITS STATUS CREATED-TIME
app123 app123 deployment Deployed 2020-08-27 10:56:41 +0800 CST
```
## Community
#### app
We want your contributions and suggestions!
One of the easiest ways to contribute is to participate in discussions on the Github Issues/Discussion, chat on IM or the bi-weekly community calls.
For more information on the community engagement, developer and contributing guidelines and more, head over to the [KubeVela community repo](https://github.com/kubevela/community).
```
$ vela app ls
app123
### Contact Us
$ vela app delete app123
Deleting AppConfig "app123"
DELETE SUCCEED
```
Reach out with any questions you may have and we'll make sure to answer them as soon as possible!
#### Auto-Completion
- Slack: [CNCF Slack kubevela channel](https://cloud-native.slack.com/archives/C01BLQ3HTJA) (*English*)
- [DingTalk Group](https://page.dingtalk.com/wow/dingtalk/act/en-home): `23310022` (*Chinese*)
- Wechat Group (*Chinese*): Broker wechat to add you into the user group.
<img src="https://static.kubevela.net/images/barnett-wechat.jpg" width="200" />
##### bash
### Community Call
```shell script
To load completions in your current shell session:
$ source <(vela completion bash)
Every two weeks we host a community call to showcase new features, review upcoming milestones, and engage in a Q&A. All are welcome!
To load completions for every new session, execute once:
Linux:
$ vela completion bash > /etc/bash_completion.d/vela
MacOS:
$ vela completion bash > /usr/local/etc/bash_completion.d/vela
```
- Bi-weekly Community Call:
- [Meeting Notes](https://docs.google.com/document/d/1nqdFEyULekyksFHtFvgvFAYE-0AMHKoS3RMnaKsarjs).
- [Video Records](https://kubevela.io/videos/meetings/en/meetings).
- Bi-weekly Chinese Community Call:
- [Video Records](https://kubevela.io/videos/meetings/cn/v1.3).
##### zsh
## Talks and Conferences
```shell script
To load completions in your current shell session:
$ source <(vela completion zsh)
| Engagement | Link |
|:-----------|:------------|
| 🎤 Talks | - [KubeVela - The Modern App Delivery System in Alibaba](https://docs.google.com/presentation/d/1CWCLcsKpDQB3bBDTfdv2BZ8ilGGJv2E8L-iOA5HMrV0/edit?usp=sharing) |
| 🌎 KubeCon | - [ [NA 2020] Standardizing Cloud Native Application Delivery Across Different Clouds](https://www.youtube.com/watch?v=0yhVuBIbHcI) <br> - [ [EU 2021] Zero Pain Microservice Development and Deployment with Dapr and KubeVela](https://sched.co/iE4S) |
| 📺 Conferences | - [Dapr, Rudr, OAM: Mark Russinovich presents next gen app development & deployment](https://www.youtube.com/watch?v=eJCu6a-x9uo) <br> - [Mark Russinovich presents "The Future of Cloud Native Applications with OAM and Dapr"](https://myignite.techcommunity.microsoft.com/sessions/82059)|
To load completions for every new session, execute once:
$ vela completion zsh > "${fpath[1]}/_vela"
```
For more talks, please checkout [KubeVela Talks](https://kubevela.io/videos/talks/en/standardizing-app).
### Clean your environment
## Contributing
```shell script
$ helm uninstall vela-core -n oam-system
release "vela-core" uninstalled
```
Check out [CONTRIBUTING](./CONTRIBUTING.md) to see how to develop with KubeVela.
```shell script
$ kubectl delete crd workloaddefinitions.core.oam.dev traitdefinitions.core.oam.dev
customresourcedefinition.apiextensions.k8s.io "workloaddefinitions.core.oam.dev" deleted
customresourcedefinition.apiextensions.k8s.io "traitdefinitions.core.oam.dev" deleted
```
## Report Vulnerability
```shell script
$ rm -r ~/.vela
```
Security is a first priority thing for us at KubeVela. If you come across a related issue, please send email to security@mail.kubevela.io .
## CONTRIBUTING
Check out [CONTRIBUTING.md](./CONTRIBUTING.md) to see how to develop with KubeVela.
## Code of Conduct
KubeVela adopts [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).

20
SECURITY.md Normal file
View File

@@ -0,0 +1,20 @@
# Security Policy
## Reporting a Vulnerability
If you've found a security issue that you'd like to disclose confidentially please send email to security@mail.kubevela.io .
### Who Reads Email Sent to security@mail.kubevela.io?
Only a restricted and carefully chosen group of KubeVela maintainers will have access to material sent to the security@mail.kubevela.io address.
No outside users can subscribe to this list.
### What to Send to security@mail.kubevela.io
Please provide as much information about your system and the issue as possible when contacting the list.
## How We Respond
Email sent to security@mail.kubevela.io is read and acknowledged with a non-automated response within three working days.
For issues that are complicated and require significant attention,
we will open an investigation and will provide you with a mechanism to check the status of our progress at any time.

View File

@@ -1,11 +0,0 @@
package types
import (
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/rest"
)
type Args struct {
Config *rest.Config
Schema *runtime.Scheme
}

View File

@@ -1,137 +0,0 @@
/*
Licensed 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.
*/
package types
import (
"encoding/json"
"fmt"
"cuelang.org/go/cue"
"github.com/spf13/pflag"
"k8s.io/apimachinery/pkg/runtime"
)
type Source struct {
RepoName string `json:"repoName"`
ChartName string `json:"chartName,omitempty"`
}
type CrdInfo struct {
APIVersion string `json:"apiVersion"`
Kind string `json:"kind"`
}
// Capability defines the content of a capability
type Capability struct {
Name string `json:"name"`
Type CapType `json:"type"`
CueTemplate string `json:"template,omitempty"`
Parameters []Parameter `json:"parameters,omitempty"`
DefinitionPath string `json:"definition"`
CrdName string `json:"crdName,omitempty"`
Center string `json:"center,omitempty"`
Status string `json:"status,omitempty"`
//trait only
AppliesTo []string `json:"appliesTo,omitempty"`
// Plugin Source
Source *Source `json:"source,omitempty"`
Install *Installation `json:"install,omitempty"`
CrdInfo *CrdInfo `json:"crdInfo,omitempty"`
}
type Chart struct {
Repo string `json:"repo"`
URL string `json:"url"`
Name string `json:"name"`
Namespace string `json:"namespace,omitempty"`
Version string `json:"version"`
}
type Installation struct {
Helm Chart `json:"helm"`
}
type CapType string
const (
TypeWorkload CapType = "workload"
TypeTrait CapType = "trait"
TypeScope CapType = "scope"
)
type Parameter struct {
Name string `json:"name"`
Short string `json:"short,omitempty"`
Required bool `json:"required,omitempty"`
Default interface{} `json:"default,omitempty"`
Usage string `json:"usage,omitempty"`
Type cue.Kind `json:"type,omitempty"`
}
// ConvertTemplateJSON2Object convert spec.extension to object
func ConvertTemplateJSON2Object(in *runtime.RawExtension) (Capability, error) {
var t Capability
var extension Capability
if in == nil {
return t, fmt.Errorf("extension field is nil")
}
if in.Raw == nil {
return t, fmt.Errorf("template object is nil")
}
err := json.Unmarshal(in.Raw, &extension)
if err == nil {
t = extension
}
return t, err
}
func SetFlagBy(flags *pflag.FlagSet, v Parameter) {
switch v.Type {
case cue.IntKind:
var vv int64
switch val := v.Default.(type) {
case int64:
vv = val
case json.Number:
vv, _ = val.Int64()
case int:
vv = int64(val)
case float64:
vv = int64(val)
}
flags.Int64P(v.Name, v.Short, vv, v.Usage)
case cue.StringKind:
flags.StringP(v.Name, v.Short, v.Default.(string), v.Usage)
case cue.BoolKind:
flags.BoolP(v.Name, v.Short, v.Default.(bool), v.Usage)
case cue.NumberKind, cue.FloatKind:
var vv float64
switch val := v.Default.(type) {
case int64:
vv = float64(val)
case json.Number:
vv, _ = val.Float64()
case int:
vv = float64(val)
case float64:
vv = val
}
flags.Float64P(v.Name, v.Short, vv, v.Usage)
}
}

View File

@@ -1,43 +0,0 @@
package types
const (
DefaultOAMNS = "oam-system"
DefaultOAMReleaseName = "vela-core"
DefaultOAMRuntimeChartName = "vela-core"
DefaultOAMVersion = ">0.0.0-0"
DefaultEnvName = "default"
DefaultAppNamespace = "default"
)
const (
AnnAPIVersion = "definition.oam.dev/apiVersion"
AnnKind = "definition.oam.dev/kind"
// Indicate which workloadDefinition generate from
AnnWorkloadDef = "workload.oam.dev/name"
// Indicate which traitDefinition generate from
AnnTraitDef = "trait.oam.dev/name"
)
const (
StatusDeployed = "Deployed"
StatusStaging = "Staging"
)
type EnvMeta struct {
Name string `json:"name"`
Current string `json:"current,omitempty"`
Namespace string `json:"namespace"`
}
const (
TagCommandType = "commandType"
TypeStart = "Getting Started"
TypeApp = "Applications"
TypeTraits = "Traits"
TypeRelease = "Release"
TypeOthers = "Others"
TypeSystem = "System"
)

View File

@@ -1,80 +0,0 @@
/*
Licensed 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.
*/
package v1alpha1
import (
cpv1alpha1 "github.com/crossplane/crossplane-runtime/apis/core/v1alpha1"
"github.com/crossplane/oam-kubernetes-runtime/pkg/oam"
v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
// ContainerizedSpec defines the desired state of Containerized
type ContainerizedSpec struct {
// Replicas is the desired number of replicas of the given podSpec.
// These are replicas in the sense that they are instantiations of the same podSpec.
// If unspecified, defaults to 1.
Replicas *int32 `json:"replicas"`
// PodSpec describes the pods that will be created,
// we omit the meta part as it will be exactly the same as the containerized
PodSpec v1.PodSpec `json:"podSpec"`
}
// ContainerizedStatus defines the observed state of Containerized
type ContainerizedStatus struct {
cpv1alpha1.ConditionedStatus `json:",inline"`
// Resources managed by this workload.
Resources []cpv1alpha1.TypedReference `json:"resources,omitempty"`
}
// +kubebuilder:object:root=true
// Containerized is the Schema for the containerizeds API
// +kubebuilder:resource:categories={oam}
// +kubebuilder:subresource:status
type Containerized struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ContainerizedSpec `json:"spec,omitempty"`
Status ContainerizedStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// ContainerizedList contains a list of Containerized
type ContainerizedList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Containerized `json:"items"`
}
func init() {
SchemeBuilder.Register(&Containerized{}, &ContainerizedList{})
}
var _ oam.Workload = &Containerized{}
func (in *Containerized) SetConditions(c ...cpv1alpha1.Condition) {
in.Status.SetConditions(c...)
}
func (in *Containerized) GetCondition(c cpv1alpha1.ConditionType) cpv1alpha1.Condition {
return in.Status.GetCondition(c)
}

View File

@@ -1,114 +0,0 @@
/*
Licensed 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.
*/
package v1alpha1
import (
runtimev1alpha1 "github.com/crossplane/crossplane-runtime/apis/core/v1alpha1"
"github.com/crossplane/oam-kubernetes-runtime/pkg/oam"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr"
)
// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized.
// MetricsTraitSpec defines the desired state of MetricsTrait
type MetricsTraitSpec struct {
// An endpoint to be monitored by a ServiceMonitor.
ScrapeService ScapeServiceEndPoint `json:"scrapeService"`
// WorkloadReference to the workload whose metrics needs to be exposed
WorkloadReference runtimev1alpha1.TypedReference `json:"workloadRef,omitempty"`
}
// ScapeServiceEndPoint defines a scrapeable endpoint serving Prometheus metrics.
type ScapeServiceEndPoint struct {
// The format of the metrics data,
// The default and only supported format is "prometheus" for now
Format string `json:"format,omitempty"`
// Number or name of the port to access on the pods targeted by the service.
// When this field has value implies that we need to create a service for the workload
// Mutually exclusive with port.
TargetPort intstr.IntOrString `json:"port,omitempty"`
// Route service traffic to pods with label keys and values matching this
// The default is the labels in the workload
// Mutually exclusive with port.
TargetSelector map[string]string `json:"selector,omitempty"`
// HTTP path to scrape for metrics.
// default is /metrics
// +optional
Path string `json:"path,omitempty"`
// Scheme at which metrics should be scraped
// The default and only supported scheme is "http"
// +optional
Scheme string `json:"scheme,omitempty"`
// The default is true
// +optional
Enabled *bool `json:"enabled,omitempty"`
}
// MetricsTraitStatus defines the observed state of MetricsTrait
type MetricsTraitStatus struct {
runtimev1alpha1.ConditionedStatus `json:",inline"`
// ServiceMonitorNames managed by this trait
ServiceMonitorNames []string `json:"serviceMonitorName,omitempty"`
}
// +kubebuilder:object:root=true
// MetricsTrait is the Schema for the metricstraits API
// +kubebuilder:resource:categories={oam}
// +kubebuilder:subresource:status
type MetricsTrait struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec MetricsTraitSpec `json:"spec"`
Status MetricsTraitStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// MetricsTraitList contains a list of MetricsTrait
type MetricsTraitList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []MetricsTrait `json:"items"`
}
func init() {
SchemeBuilder.Register(&MetricsTrait{}, &MetricsTraitList{})
}
var _ oam.Trait = &MetricsTrait{}
func (tr *MetricsTrait) SetConditions(c ...runtimev1alpha1.Condition) {
tr.Status.SetConditions(c...)
}
func (tr *MetricsTrait) GetCondition(c runtimev1alpha1.ConditionType) runtimev1alpha1.Condition {
return tr.Status.GetCondition(c)
}
// GetWorkloadReference of this ManualScalerTrait.
func (tr *MetricsTrait) GetWorkloadReference() runtimev1alpha1.TypedReference {
return tr.Spec.WorkloadReference
}
// SetWorkloadReference of this ManualScalerTrait.
func (tr *MetricsTrait) SetWorkloadReference(r runtimev1alpha1.TypedReference) {
tr.Spec.WorkloadReference = r
}

View File

@@ -1,138 +0,0 @@
/*
Licensed 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.
*/
package v1alpha1
import (
runtimev1alpha1 "github.com/crossplane/crossplane-runtime/apis/core/v1alpha1"
"github.com/crossplane/oam-kubernetes-runtime/pkg/oam"
"k8s.io/api/networking/v1beta1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr"
)
// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized.
// RouteSpec defines the desired state of Route
type RouteSpec struct {
// WorkloadReference to the workload whose metrics needs to be exposed
WorkloadReference runtimev1alpha1.TypedReference `json:"workloadRef,omitempty"`
// Host is the host of the route
Host string `json:"host"`
// Path is location Path, default for "/"
Path string `json:"path,omitempty"`
// TLS indicate route trait will create SSL secret using cert-manager with specified issuer
// If this is nil, route trait will use a selfsigned issuer
TLS *TLS `json:"tls,omitempty"`
// DefaultBackend uses serviceName
DefaultBackend *v1beta1.IngressBackend `json:"defaultBackend,omitempty"`
// RewriteTarget will rewrite request from Path to RewriteTarget path.
RewriteTarget string `json:"rewriteTarget,omitempty"`
// CustomHeaders pass a custom list of headers to the backend service.
CustomHeaders map[string]string `json:"customHeaders,omitempty"`
// Backend indicate how to connect backend service
// If it's nil, will auto discovery
Backend *Backend `json:"backend,omitempty"`
}
type TLS struct {
IssuerName string `json:"issuerName,omitempty"`
// Type indicate the issuer is ClusterIssuer or NamespaceIssuer
Type IssuerType `json:"type,omitempty"`
}
type IssuerType string
const (
ClusterIssuer IssuerType = "ClusterIssuer"
NamespaceIssuer IssuerType = "Issuer"
)
// Route will automatically discover podTemplate for Port and SelectLabels if they are not set.
// If Port and SelectLabels are already set, discovery won't work.
// If Port is not set, the first port discovered will be set.
// If SelectLabels are not set, all selectorLabels discovered will be set.
type Backend struct {
// Protocol means backend-protocol, HTTP, HTTPS, GRPC, GRPCS, AJP and FCGI, By default uses HTTP
Protocol string `json:"protocol,omitempty"`
// ReadTimeout used for setting read timeout duration for backend service, the unit is second.
ReadTimeout int `json:"readTimeout,omitempty"`
// SendTimeout used for setting send timeout duration for backend service, the unit is second.
SendTimeout int `json:"sendTimeout,omitempty"`
// Port points to backend service port.
Port intstr.IntOrString `json:"port,omitempty"`
// SelectLabels for backend service.
SelectLabels map[string]string `json:"selectLabels,omitempty"`
}
// RouteStatus defines the observed state of Route
type RouteStatus struct {
Ingress *runtimev1alpha1.TypedReference `json:"ingress,omitempty"`
Service *runtimev1alpha1.TypedReference `json:"service,omitempty"`
runtimev1alpha1.ConditionedStatus `json:",inline"`
}
// +kubebuilder:object:root=true
// +kubebuilder:resource:categories={oam}
// +kubebuilder:subresource:status
// Route is the Schema for the routes API
type Route struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec RouteSpec `json:"spec,omitempty"`
Status RouteStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// RouteList contains a list of Route
type RouteList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Route `json:"items"`
}
func init() {
SchemeBuilder.Register(&Route{}, &RouteList{})
}
var _ oam.Trait = &Route{}
func (r *Route) SetConditions(c ...runtimev1alpha1.Condition) {
r.Status.SetConditions(c...)
}
func (r *Route) GetCondition(c runtimev1alpha1.ConditionType) runtimev1alpha1.Condition {
return r.Status.GetCondition(c)
}
// GetWorkloadReference of this ManualScalerTrait.
func (r *Route) GetWorkloadReference() runtimev1alpha1.TypedReference {
return r.Spec.WorkloadReference
}
// SetWorkloadReference of this ManualScalerTrait.
func (r *Route) SetWorkloadReference(rt runtimev1alpha1.TypedReference) {
r.Spec.WorkloadReference = rt
}

View File

@@ -1,414 +0,0 @@
// +build !ignore_autogenerated
/*
Licensed 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.
*/
// Code generated by controller-gen. DO NOT EDIT.
package v1alpha1
import (
corev1alpha1 "github.com/crossplane/crossplane-runtime/apis/core/v1alpha1"
"k8s.io/api/networking/v1beta1"
runtime "k8s.io/apimachinery/pkg/runtime"
)
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Backend) DeepCopyInto(out *Backend) {
*out = *in
out.Port = in.Port
if in.SelectLabels != nil {
in, out := &in.SelectLabels, &out.SelectLabels
*out = make(map[string]string, len(*in))
for key, val := range *in {
(*out)[key] = val
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Backend.
func (in *Backend) DeepCopy() *Backend {
if in == nil {
return nil
}
out := new(Backend)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Containerized) DeepCopyInto(out *Containerized) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
in.Spec.DeepCopyInto(&out.Spec)
in.Status.DeepCopyInto(&out.Status)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Containerized.
func (in *Containerized) DeepCopy() *Containerized {
if in == nil {
return nil
}
out := new(Containerized)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *Containerized) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
return nil
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ContainerizedList) DeepCopyInto(out *ContainerizedList) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ListMeta.DeepCopyInto(&out.ListMeta)
if in.Items != nil {
in, out := &in.Items, &out.Items
*out = make([]Containerized, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerizedList.
func (in *ContainerizedList) DeepCopy() *ContainerizedList {
if in == nil {
return nil
}
out := new(ContainerizedList)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *ContainerizedList) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
return nil
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ContainerizedSpec) DeepCopyInto(out *ContainerizedSpec) {
*out = *in
if in.Replicas != nil {
in, out := &in.Replicas, &out.Replicas
*out = new(int32)
**out = **in
}
in.PodSpec.DeepCopyInto(&out.PodSpec)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerizedSpec.
func (in *ContainerizedSpec) DeepCopy() *ContainerizedSpec {
if in == nil {
return nil
}
out := new(ContainerizedSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ContainerizedStatus) DeepCopyInto(out *ContainerizedStatus) {
*out = *in
in.ConditionedStatus.DeepCopyInto(&out.ConditionedStatus)
if in.Resources != nil {
in, out := &in.Resources, &out.Resources
*out = make([]corev1alpha1.TypedReference, len(*in))
copy(*out, *in)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerizedStatus.
func (in *ContainerizedStatus) DeepCopy() *ContainerizedStatus {
if in == nil {
return nil
}
out := new(ContainerizedStatus)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MetricsTrait) DeepCopyInto(out *MetricsTrait) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
in.Spec.DeepCopyInto(&out.Spec)
in.Status.DeepCopyInto(&out.Status)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsTrait.
func (in *MetricsTrait) DeepCopy() *MetricsTrait {
if in == nil {
return nil
}
out := new(MetricsTrait)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *MetricsTrait) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
return nil
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MetricsTraitList) DeepCopyInto(out *MetricsTraitList) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ListMeta.DeepCopyInto(&out.ListMeta)
if in.Items != nil {
in, out := &in.Items, &out.Items
*out = make([]MetricsTrait, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsTraitList.
func (in *MetricsTraitList) DeepCopy() *MetricsTraitList {
if in == nil {
return nil
}
out := new(MetricsTraitList)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *MetricsTraitList) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
return nil
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MetricsTraitSpec) DeepCopyInto(out *MetricsTraitSpec) {
*out = *in
in.ScrapeService.DeepCopyInto(&out.ScrapeService)
out.WorkloadReference = in.WorkloadReference
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsTraitSpec.
func (in *MetricsTraitSpec) DeepCopy() *MetricsTraitSpec {
if in == nil {
return nil
}
out := new(MetricsTraitSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MetricsTraitStatus) DeepCopyInto(out *MetricsTraitStatus) {
*out = *in
in.ConditionedStatus.DeepCopyInto(&out.ConditionedStatus)
if in.ServiceMonitorNames != nil {
in, out := &in.ServiceMonitorNames, &out.ServiceMonitorNames
*out = make([]string, len(*in))
copy(*out, *in)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsTraitStatus.
func (in *MetricsTraitStatus) DeepCopy() *MetricsTraitStatus {
if in == nil {
return nil
}
out := new(MetricsTraitStatus)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Route) DeepCopyInto(out *Route) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
in.Spec.DeepCopyInto(&out.Spec)
in.Status.DeepCopyInto(&out.Status)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Route.
func (in *Route) DeepCopy() *Route {
if in == nil {
return nil
}
out := new(Route)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *Route) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
return nil
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RouteList) DeepCopyInto(out *RouteList) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ListMeta.DeepCopyInto(&out.ListMeta)
if in.Items != nil {
in, out := &in.Items, &out.Items
*out = make([]Route, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteList.
func (in *RouteList) DeepCopy() *RouteList {
if in == nil {
return nil
}
out := new(RouteList)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *RouteList) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
return nil
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RouteSpec) DeepCopyInto(out *RouteSpec) {
*out = *in
out.WorkloadReference = in.WorkloadReference
if in.TLS != nil {
in, out := &in.TLS, &out.TLS
*out = new(TLS)
**out = **in
}
if in.DefaultBackend != nil {
in, out := &in.DefaultBackend, &out.DefaultBackend
*out = new(v1beta1.IngressBackend)
(*in).DeepCopyInto(*out)
}
if in.CustomHeaders != nil {
in, out := &in.CustomHeaders, &out.CustomHeaders
*out = make(map[string]string, len(*in))
for key, val := range *in {
(*out)[key] = val
}
}
if in.Backend != nil {
in, out := &in.Backend, &out.Backend
*out = new(Backend)
(*in).DeepCopyInto(*out)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteSpec.
func (in *RouteSpec) DeepCopy() *RouteSpec {
if in == nil {
return nil
}
out := new(RouteSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RouteStatus) DeepCopyInto(out *RouteStatus) {
*out = *in
if in.Ingress != nil {
in, out := &in.Ingress, &out.Ingress
*out = new(corev1alpha1.TypedReference)
**out = **in
}
if in.Service != nil {
in, out := &in.Service, &out.Service
*out = new(corev1alpha1.TypedReference)
**out = **in
}
in.ConditionedStatus.DeepCopyInto(&out.ConditionedStatus)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteStatus.
func (in *RouteStatus) DeepCopy() *RouteStatus {
if in == nil {
return nil
}
out := new(RouteStatus)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ScapeServiceEndPoint) DeepCopyInto(out *ScapeServiceEndPoint) {
*out = *in
out.TargetPort = in.TargetPort
if in.TargetSelector != nil {
in, out := &in.TargetSelector, &out.TargetSelector
*out = make(map[string]string, len(*in))
for key, val := range *in {
(*out)[key] = val
}
}
if in.Enabled != nil {
in, out := &in.Enabled, &out.Enabled
*out = new(bool)
**out = **in
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScapeServiceEndPoint.
func (in *ScapeServiceEndPoint) DeepCopy() *ScapeServiceEndPoint {
if in == nil {
return nil
}
out := new(ScapeServiceEndPoint)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TLS) DeepCopyInto(out *TLS) {
*out = *in
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLS.
func (in *TLS) DeepCopy() *TLS {
if in == nil {
return nil
}
out := new(TLS)
in.DeepCopyInto(out)
return out
}

18
apis/apis.go Normal file
View File

@@ -0,0 +1,18 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
// Package apis contains all api types of KubeVela
package apis

View File

@@ -0,0 +1,19 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
// Package common contains types required for both v1alpha2 and v1beta1
// +kubebuilder:object:generate=true
package common

View File

@@ -0,0 +1,22 @@
/*
Copyright 2022 The KubeVela Authors.
Licensed 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.
*/
package common
const (
// Group api group name
Group = "core.oam.dev"
)

View File

@@ -0,0 +1,673 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
package common
import (
"encoding/json"
"errors"
types "github.com/oam-dev/terraform-controller/api/types/crossplane-runtime"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
"github.com/oam-dev/kubevela/apis/core.oam.dev/condition"
"github.com/oam-dev/kubevela/apis/standard.oam.dev/v1alpha1"
"github.com/oam-dev/kubevela/pkg/oam"
)
// Kube defines the encapsulation in raw Kubernetes resource format
type Kube struct {
// Template defines the raw Kubernetes resource
// +kubebuilder:pruning:PreserveUnknownFields
Template runtime.RawExtension `json:"template"`
// Parameters defines configurable parameters
Parameters []KubeParameter `json:"parameters,omitempty"`
}
// ParameterValueType refers to a data type of parameter
type ParameterValueType string
// data types of parameter value
const (
StringType ParameterValueType = "string"
NumberType ParameterValueType = "number"
BooleanType ParameterValueType = "boolean"
)
// A KubeParameter defines a configurable parameter of a component.
type KubeParameter struct {
// Name of this parameter
Name string `json:"name"`
// +kubebuilder:validation:Enum:=string;number;boolean
// ValueType indicates the type of the parameter value, and
// only supports basic data types: string, number, boolean.
ValueType ParameterValueType `json:"type"`
// FieldPaths specifies an array of fields within this workload that will be
// overwritten by the value of this parameter. All fields must be of the
// same type. Fields are specified as JSON field paths without a leading
// dot, for example 'spec.replicas'.
FieldPaths []string `json:"fieldPaths"`
// +kubebuilder:default:=false
// Required specifies whether or not a value for this parameter must be
// supplied when authoring an Application.
Required *bool `json:"required,omitempty"`
// Description of this parameter.
Description *string `json:"description,omitempty"`
}
// CUE defines the encapsulation in CUE format
type CUE struct {
// Template defines the abstraction template data of the capability, it will replace the old CUE template in extension field.
// Template is a required field if CUE is defined in Capability Definition.
Template string `json:"template"`
}
// Schematic defines the encapsulation of this capability(workload/trait/scope),
// the encapsulation can be defined in different ways, e.g. CUE/HCL(terraform)/KUBE(K8s Object)/HELM, etc...
type Schematic struct {
KUBE *Kube `json:"kube,omitempty"`
CUE *CUE `json:"cue,omitempty"`
HELM *Helm `json:"helm,omitempty"`
Terraform *Terraform `json:"terraform,omitempty"`
}
// A Helm represents resources used by a Helm module
type Helm struct {
// Release records a Helm release used by a Helm module workload.
// +kubebuilder:pruning:PreserveUnknownFields
Release runtime.RawExtension `json:"release"`
// HelmRelease records a Helm repository used by a Helm module workload.
// +kubebuilder:pruning:PreserveUnknownFields
Repository runtime.RawExtension `json:"repository"`
}
// Terraform is the struct to describe cloud resources managed by Hashicorp Terraform
type Terraform struct {
// Configuration is Terraform Configuration
Configuration string `json:"configuration"`
// Type specifies which Terraform configuration it is, HCL or JSON syntax
// +kubebuilder:default:=hcl
// +kubebuilder:validation:Enum:=hcl;json;remote
Type string `json:"type,omitempty"`
// Path is the sub-directory of remote git repository. It's valid when remote is set
Path string `json:"path,omitempty"`
// WriteConnectionSecretToReference specifies the namespace and name of a
// Secret to which any connection details for this managed resource should
// be written. Connection details frequently include the endpoint, username,
// and password required to connect to the managed resource.
// +optional
WriteConnectionSecretToReference *types.SecretReference `json:"writeConnectionSecretToRef,omitempty"`
// ProviderReference specifies the reference to Provider
ProviderReference *types.Reference `json:"providerRef,omitempty"`
// DeleteResource will determine whether provisioned cloud resources will be deleted when CR is deleted
// +kubebuilder:default:=true
DeleteResource bool `json:"deleteResource,omitempty"`
// Region is cloud provider's region. It will override the region in the region field of ProviderReference
Region string `json:"customRegion,omitempty"`
}
// A WorkloadTypeDescriptor refer to a Workload Type
type WorkloadTypeDescriptor struct {
// Type ref to a WorkloadDefinition via name
Type string `json:"type,omitempty"`
// Definition mutually exclusive to workload.type, a embedded WorkloadDefinition
Definition WorkloadGVK `json:"definition,omitempty"`
}
// WorkloadGVK refer to a Workload Type
type WorkloadGVK struct {
APIVersion string `json:"apiVersion"`
Kind string `json:"kind"`
}
// A DefinitionReference refers to a CustomResourceDefinition by name.
type DefinitionReference struct {
// Name of the referenced CustomResourceDefinition.
Name string `json:"name"`
// Version indicate which version should be used if CRD has multiple versions
// by default it will use the first one if not specified
Version string `json:"version,omitempty"`
}
// A ChildResourceKind defines a child Kubernetes resource kind with a selector
type ChildResourceKind struct {
// APIVersion of the child resource
APIVersion string `json:"apiVersion"`
// Kind of the child resource
Kind string `json:"kind"`
// Selector to select the child resources that the workload wants to expose to traits
Selector map[string]string `json:"selector,omitempty"`
}
// Status defines the loop back status of the abstraction by using CUE template
type Status struct {
// CustomStatus defines the custom status message that could display to user
// +optional
CustomStatus string `json:"customStatus,omitempty"`
// HealthPolicy defines the health check policy for the abstraction
// +optional
HealthPolicy string `json:"healthPolicy,omitempty"`
}
// ApplicationPhase is a label for the condition of an application at the current time
type ApplicationPhase string
const (
// ApplicationRollingOut means the app is in the middle of rolling out
ApplicationRollingOut ApplicationPhase = "rollingOut"
// ApplicationStarting means the app is preparing for reconcile
ApplicationStarting ApplicationPhase = "starting"
// ApplicationRendering means the app is rendering
ApplicationRendering ApplicationPhase = "rendering"
// ApplicationPolicyGenerating means the app is generating policies
ApplicationPolicyGenerating ApplicationPhase = "generatingPolicy"
// ApplicationRunningWorkflow means the app is running workflow
ApplicationRunningWorkflow ApplicationPhase = "runningWorkflow"
// ApplicationWorkflowSuspending means the app's workflow is suspending
ApplicationWorkflowSuspending ApplicationPhase = "workflowSuspending"
// ApplicationWorkflowTerminated means the app's workflow is terminated
ApplicationWorkflowTerminated ApplicationPhase = "workflowTerminated"
// ApplicationWorkflowFinished means the app's workflow is finished
ApplicationWorkflowFinished ApplicationPhase = "workflowFinished"
// ApplicationRunning means the app finished rendering and applied result to the cluster
ApplicationRunning ApplicationPhase = "running"
// ApplicationUnhealthy means the app finished rendering and applied result to the cluster, but still unhealthy
ApplicationUnhealthy ApplicationPhase = "unhealthy"
// ApplicationDeleting means application is being deleted
ApplicationDeleting ApplicationPhase = "deleting"
)
// WorkflowState is a string that mark the workflow state
type WorkflowState string
const (
// WorkflowStateInitializing means the workflow is in initial state
WorkflowStateInitializing WorkflowState = "initializing"
// WorkflowStateTerminated means workflow is terminated manually, and it won't be started unless the spec changed.
WorkflowStateTerminated WorkflowState = "terminated"
// WorkflowStateSuspended means workflow is suspended manually, and it can be resumed.
WorkflowStateSuspended WorkflowState = "suspended"
// WorkflowStateSucceeded means workflow is running successfully, all steps finished.
WorkflowStateSucceeded WorkflowState = "Succeeded"
// WorkflowStateFinished means workflow is end.
WorkflowStateFinished WorkflowState = "finished"
// WorkflowStateExecuting means workflow is still running or waiting some steps.
WorkflowStateExecuting WorkflowState = "executing"
// WorkflowStateSkipping means it will skip this reconcile and let next reconcile to handle it.
WorkflowStateSkipping WorkflowState = "skipping"
)
// ApplicationComponentStatus record the health status of App component
type ApplicationComponentStatus struct {
Name string `json:"name"`
Namespace string `json:"namespace,omitempty"`
Cluster string `json:"cluster,omitempty"`
Env string `json:"env,omitempty"`
// WorkloadDefinition is the definition of a WorkloadDefinition, such as deployments/apps.v1
WorkloadDefinition WorkloadGVK `json:"workloadDefinition,omitempty"`
Healthy bool `json:"healthy"`
Message string `json:"message,omitempty"`
Traits []ApplicationTraitStatus `json:"traits,omitempty"`
Scopes []corev1.ObjectReference `json:"scopes,omitempty"`
}
// ApplicationTraitStatus records the trait health status
type ApplicationTraitStatus struct {
Type string `json:"type"`
Healthy bool `json:"healthy"`
Message string `json:"message,omitempty"`
}
// Revision has name and revision number
type Revision struct {
Name string `json:"name"`
Revision int64 `json:"revision"`
// RevisionHash record the hash value of the spec of ApplicationRevision object.
RevisionHash string `json:"revisionHash,omitempty"`
}
// RawComponent record raw component
type RawComponent struct {
// +kubebuilder:validation:EmbeddedResource
// +kubebuilder:pruning:PreserveUnknownFields
Raw runtime.RawExtension `json:"raw"`
}
// StepStatus record the base status of workflow step, which could be workflow step or subStep
type StepStatus struct {
ID string `json:"id"`
Name string `json:"name,omitempty"`
Type string `json:"type,omitempty"`
Phase WorkflowStepPhase `json:"phase,omitempty"`
// A human readable message indicating details about why the workflowStep is in this state.
Message string `json:"message,omitempty"`
// A brief CamelCase message indicating details about why the workflowStep is in this state.
Reason string `json:"reason,omitempty"`
// FirstExecuteTime is the first time this step execution.
FirstExecuteTime metav1.Time `json:"firstExecuteTime,omitempty"`
// LastExecuteTime is the last time this step execution.
LastExecuteTime metav1.Time `json:"lastExecuteTime,omitempty"`
}
// WorkflowStepStatus record the status of a workflow step, include step status and subStep status
type WorkflowStepStatus struct {
StepStatus `json:",inline"`
SubStepsStatus []WorkflowSubStepStatus `json:"subSteps,omitempty"`
}
// WorkflowSubStepStatus record the status of a workflow subStep
type WorkflowSubStepStatus struct {
StepStatus `json:",inline"`
}
// AppStatus defines the observed state of Application
type AppStatus struct {
// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
// Important: Run "make" to regenerate code after modifying this file
condition.ConditionedStatus `json:",inline"`
// The generation observed by the application controller.
// +optional
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
Phase ApplicationPhase `json:"status,omitempty"`
// Components record the related Components created by Application Controller
Components []corev1.ObjectReference `json:"components,omitempty"`
// Services record the status of the application services
Services []ApplicationComponentStatus `json:"services,omitempty"`
// Workflow record the status of workflow
Workflow *WorkflowStatus `json:"workflow,omitempty"`
// LatestRevision of the application configuration it generates
// +optional
LatestRevision *Revision `json:"latestRevision,omitempty"`
// AppliedResources record the resources that the workflow step apply.
AppliedResources []ClusterObjectReference `json:"appliedResources,omitempty"`
// PolicyStatus records the status of policy
PolicyStatus []PolicyStatus `json:"policy,omitempty"`
}
// PolicyStatus records the status of policy
type PolicyStatus struct {
Name string `json:"name"`
Type string `json:"type"`
// +kubebuilder:pruning:PreserveUnknownFields
Status *runtime.RawExtension `json:"status,omitempty"`
}
// WorkflowStep defines how to execute a workflow step.
type WorkflowStep struct {
// Name is the unique name of the workflow step.
Name string `json:"name"`
Type string `json:"type"`
// +kubebuilder:pruning:PreserveUnknownFields
Properties *runtime.RawExtension `json:"properties,omitempty"`
SubSteps []WorkflowSubStep `json:"subSteps,omitempty"`
If string `json:"if,omitempty"`
DependsOn []string `json:"dependsOn,omitempty"`
Inputs StepInputs `json:"inputs,omitempty"`
Outputs StepOutputs `json:"outputs,omitempty"`
}
// WorkflowSubStep defines how to execute a workflow subStep.
type WorkflowSubStep struct {
// Name is the unique name of the workflow step.
Name string `json:"name"`
Type string `json:"type"`
// +kubebuilder:pruning:PreserveUnknownFields
Properties *runtime.RawExtension `json:"properties,omitempty"`
If string `json:"if,omitempty"`
DependsOn []string `json:"dependsOn,omitempty"`
Inputs StepInputs `json:"inputs,omitempty"`
Outputs StepOutputs `json:"outputs,omitempty"`
}
// WorkflowStatus record the status of workflow
type WorkflowStatus struct {
AppRevision string `json:"appRevision,omitempty"`
Mode WorkflowMode `json:"mode"`
Message string `json:"message,omitempty"`
SuspendState string `json:"suspendState,omitempty"`
Suspend bool `json:"suspend"`
Terminated bool `json:"terminated"`
Finished bool `json:"finished"`
ContextBackend *corev1.ObjectReference `json:"contextBackend,omitempty"`
Steps []WorkflowStepStatus `json:"steps,omitempty"`
StartTime metav1.Time `json:"startTime,omitempty"`
}
// WorkflowStepPhase describes the phase of a workflow step.
type WorkflowStepPhase string
const (
// WorkflowStepPhaseSucceeded will make the controller run the next step.
WorkflowStepPhaseSucceeded WorkflowStepPhase = "succeeded"
// WorkflowStepPhaseFailed will report error in `message`.
WorkflowStepPhaseFailed WorkflowStepPhase = "failed"
// WorkflowStepPhaseSkipped will make the controller skip the step.
WorkflowStepPhaseSkipped WorkflowStepPhase = "skipped"
// WorkflowStepPhaseStopped will make the controller stop the workflow.
WorkflowStepPhaseStopped WorkflowStepPhase = "stopped"
// WorkflowStepPhaseRunning will make the controller continue the workflow.
WorkflowStepPhaseRunning WorkflowStepPhase = "running"
)
// DefinitionType describes the type of DefinitionRevision.
// +kubebuilder:validation:Enum=Component;Trait;Policy;WorkflowStep
type DefinitionType string
const (
// ComponentType represents DefinitionRevision refer to type ComponentDefinition
ComponentType DefinitionType = "Component"
// TraitType represents DefinitionRevision refer to type TraitDefinition
TraitType DefinitionType = "Trait"
// PolicyType represents DefinitionRevision refer to type PolicyDefinition
PolicyType DefinitionType = "Policy"
// WorkflowStepType represents DefinitionRevision refer to type WorkflowStepDefinition
WorkflowStepType DefinitionType = "WorkflowStep"
)
// WorkflowMode describes the mode of workflow
type WorkflowMode string
const (
// WorkflowModeDAG describes the DAG mode of workflow
WorkflowModeDAG WorkflowMode = "DAG"
// WorkflowModeStep describes the step by step mode of workflow
WorkflowModeStep WorkflowMode = "StepByStep"
)
// AppRolloutStatus defines the observed state of AppRollout
type AppRolloutStatus struct {
v1alpha1.RolloutStatus `json:",inline"`
// LastUpgradedTargetAppRevision contains the name of the app that we upgraded to
// We will restart the rollout if this is not the same as the spec
LastUpgradedTargetAppRevision string `json:"lastTargetAppRevision"`
// LastSourceAppRevision contains the name of the app that we need to upgrade from.
// We will restart the rollout if this is not the same as the spec
LastSourceAppRevision string `json:"LastSourceAppRevision,omitempty"`
}
// ApplicationTrait defines the trait of application
type ApplicationTrait struct {
Type string `json:"type"`
// +kubebuilder:pruning:PreserveUnknownFields
Properties *runtime.RawExtension `json:"properties,omitempty"`
}
// ApplicationComponent describe the component of application
type ApplicationComponent struct {
Name string `json:"name"`
Type string `json:"type"`
// ExternalRevision specified the component revisionName
ExternalRevision string `json:"externalRevision,omitempty"`
// +kubebuilder:pruning:PreserveUnknownFields
Properties *runtime.RawExtension `json:"properties,omitempty"`
DependsOn []string `json:"dependsOn,omitempty"`
Inputs StepInputs `json:"inputs,omitempty"`
Outputs StepOutputs `json:"outputs,omitempty"`
// Traits define the trait of one component, the type must be array to keep the order.
Traits []ApplicationTrait `json:"traits,omitempty"`
// +kubebuilder:pruning:PreserveUnknownFields
// scopes in ApplicationComponent defines the component-level scopes
// the format is <scope-type:scope-instance-name> pairs, the key represents type of `ScopeDefinition` while the value represent the name of scope instance.
Scopes map[string]string `json:"scopes,omitempty"`
}
// StepOutputs defines output variable of WorkflowStep
type StepOutputs []outputItem
// StepInputs defines variable input of WorkflowStep
type StepInputs []inputItem
type inputItem struct {
ParameterKey string `json:"parameterKey"`
From string `json:"from"`
}
type outputItem struct {
ValueFrom string `json:"valueFrom"`
Name string `json:"name"`
}
// ClusterSelector defines the rules to select a Cluster resource.
// Either name or labels is needed.
type ClusterSelector struct {
// Name is the name of the cluster.
Name string `json:"name,omitempty"`
// Labels defines the label selector to select the cluster.
Labels map[string]string `json:"labels,omitempty"`
}
// Distribution defines the replica distribution of an AppRevision to a cluster.
type Distribution struct {
// Replicas is the replica number.
Replicas int `json:"replicas,omitempty"`
}
// ClusterPlacement defines the cluster placement rules for an app revision.
type ClusterPlacement struct {
// ClusterSelector selects the cluster to deploy apps to.
// If not specified, it indicates the host cluster per se.
ClusterSelector *ClusterSelector `json:"clusterSelector,omitempty"`
// Distribution defines the replica distribution of an AppRevision to a cluster.
Distribution Distribution `json:"distribution,omitempty"`
}
// ResourceCreatorRole defines the resource creator.
type ResourceCreatorRole string
const (
// PolicyResourceCreator create the policy resource.
PolicyResourceCreator ResourceCreatorRole = "policy"
// WorkflowResourceCreator create the resource in workflow.
WorkflowResourceCreator ResourceCreatorRole = "workflow"
// DebugResourceCreator create the debug resource.
DebugResourceCreator ResourceCreatorRole = "debug"
)
// OAMObjectReference defines the object reference for an oam resource
type OAMObjectReference struct {
Component string `json:"component,omitempty"`
Trait string `json:"trait,omitempty"`
Env string `json:"env,omitempty"`
}
// Equal check if two references are equal
func (in OAMObjectReference) Equal(r OAMObjectReference) bool {
return in.Component == r.Component && in.Trait == r.Trait && in.Env == r.Env
}
// AddLabelsToObject add labels to object if properties are not empty
func (in OAMObjectReference) AddLabelsToObject(obj client.Object) {
labels := obj.GetLabels()
if labels == nil {
labels = map[string]string{}
}
if in.Component != "" {
labels[oam.LabelAppComponent] = in.Component
}
if in.Trait != "" {
labels[oam.TraitTypeLabel] = in.Trait
}
if in.Env != "" {
labels[oam.LabelAppEnv] = in.Env
}
obj.SetLabels(labels)
}
// NewOAMObjectReferenceFromObject create OAMObjectReference from object
func NewOAMObjectReferenceFromObject(obj client.Object) OAMObjectReference {
if labels := obj.GetLabels(); labels != nil {
return OAMObjectReference{
Component: labels[oam.LabelAppComponent],
Trait: labels[oam.TraitTypeLabel],
Env: labels[oam.LabelAppEnv],
}
}
return OAMObjectReference{}
}
// ClusterObjectReference defines the object reference with cluster.
type ClusterObjectReference struct {
Cluster string `json:"cluster,omitempty"`
Creator ResourceCreatorRole `json:"creator,omitempty"`
corev1.ObjectReference `json:",inline"`
}
// Equal check if two references are equal
func (in ClusterObjectReference) Equal(r ClusterObjectReference) bool {
return in.APIVersion == r.APIVersion && in.Kind == r.Kind && in.Name == r.Name && in.Namespace == r.Namespace && in.UID == r.UID && in.Creator == r.Creator && in.Cluster == r.Cluster
}
// RawExtensionPointer is the pointer of raw extension
type RawExtensionPointer struct {
RawExtension *runtime.RawExtension
}
// MarshalJSON may get called on pointers or values, so implement MarshalJSON on value.
// http://stackoverflow.com/questions/21390979/custom-marshaljson-never-gets-called-in-go
func (re RawExtensionPointer) MarshalJSON() ([]byte, error) {
if re.RawExtension == nil {
return nil, nil
}
if re.RawExtension.Raw == nil {
// TODO: this is to support legacy behavior of JSONPrinter and YAMLPrinter, which
// expect to call json.Marshal on arbitrary versioned objects (even those not in
// the scheme). pkg/kubectl/resource#AsVersionedObjects and its interaction with
// kubectl get on objects not in the scheme needs to be updated to ensure that the
// objects that are not part of the scheme are correctly put into the right form.
if re.RawExtension.Object != nil {
return json.Marshal(re.RawExtension.Object)
}
return []byte("null"), nil
}
// TODO: Check whether ContentType is actually JSON before returning it.
return re.RawExtension.Raw, nil
}
// ApplicationConditionType is a valid value for ApplicationCondition.Type
type ApplicationConditionType int
const (
// ParsedCondition indicates whether the parsing is successful.
ParsedCondition ApplicationConditionType = iota
// RevisionCondition indicates whether the generated revision is successful.
RevisionCondition
// PolicyCondition indicates whether policy processing is successful.
PolicyCondition
// RenderCondition indicates whether render processing is successful.
RenderCondition
// WorkflowCondition indicates whether workflow processing is successful.
WorkflowCondition
// RolloutCondition indicates whether rollout processing is successful.
RolloutCondition
// ReadyCondition indicates whether whole application processing is successful.
ReadyCondition
)
var conditions = map[ApplicationConditionType]string{
ParsedCondition: "Parsed",
RevisionCondition: "Revision",
PolicyCondition: "Policy",
RenderCondition: "Render",
WorkflowCondition: "Workflow",
RolloutCondition: "Rollout",
ReadyCondition: "Ready",
}
// String returns the string corresponding to the condition type.
func (ct ApplicationConditionType) String() string {
return conditions[ct]
}
// ParseApplicationConditionType parse ApplicationCondition Type.
func ParseApplicationConditionType(s string) (ApplicationConditionType, error) {
for k, v := range conditions {
if v == s {
return k, nil
}
}
return -1, errors.New("unknown condition type")
}
// ReferredObject the referred Kubernetes object
type ReferredObject struct {
// +kubebuilder:validation:EmbeddedResource
// +kubebuilder:pruning:PreserveUnknownFields
runtime.RawExtension `json:",inline"`
}
// ReferredObjectList a list of referred Kubernetes objects
type ReferredObjectList struct {
// Objects a list of Kubernetes objects.
// +optional
Objects []ReferredObject `json:"objects,omitempty"`
}

View File

@@ -0,0 +1,60 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
package common
import (
"testing"
"github.com/stretchr/testify/require"
v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
)
func TestOAMObjectReference(t *testing.T) {
r := require.New(t)
o1 := OAMObjectReference{
Component: "component",
Trait: "trait",
Env: "env",
}
obj := &unstructured.Unstructured{}
o2 := NewOAMObjectReferenceFromObject(obj)
r.False(o2.Equal(o1))
o1.AddLabelsToObject(obj)
r.Equal(3, len(obj.GetLabels()))
o3 := NewOAMObjectReferenceFromObject(obj)
r.True(o1.Equal(o3))
o3.Component = "comp"
r.False(o3.Equal(o1))
r.True(o1.Equal(*o1.DeepCopy()))
o4 := OAMObjectReference{}
o1.DeepCopyInto(&o4)
r.True(o4.Equal(o1))
}
func TestClusterObjectReference(t *testing.T) {
r := require.New(t)
o1 := ClusterObjectReference{
Cluster: "cluster",
ObjectReference: v1.ObjectReference{Kind: "kind"},
}
o2 := *o1.DeepCopy()
r.True(o1.Equal(o2))
o2.Cluster = "c"
r.False(o2.Equal(o1))
}

View File

@@ -0,0 +1,829 @@
//go:build !ignore_autogenerated
// +build !ignore_autogenerated
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
// Code generated by controller-gen. DO NOT EDIT.
package common
import (
crossplane_runtime "github.com/oam-dev/terraform-controller/api/types/crossplane-runtime"
v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/runtime"
)
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AppRolloutStatus) DeepCopyInto(out *AppRolloutStatus) {
*out = *in
in.RolloutStatus.DeepCopyInto(&out.RolloutStatus)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppRolloutStatus.
func (in *AppRolloutStatus) DeepCopy() *AppRolloutStatus {
if in == nil {
return nil
}
out := new(AppRolloutStatus)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AppStatus) DeepCopyInto(out *AppStatus) {
*out = *in
in.ConditionedStatus.DeepCopyInto(&out.ConditionedStatus)
if in.Components != nil {
in, out := &in.Components, &out.Components
*out = make([]v1.ObjectReference, len(*in))
copy(*out, *in)
}
if in.Services != nil {
in, out := &in.Services, &out.Services
*out = make([]ApplicationComponentStatus, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
if in.Workflow != nil {
in, out := &in.Workflow, &out.Workflow
*out = new(WorkflowStatus)
(*in).DeepCopyInto(*out)
}
if in.LatestRevision != nil {
in, out := &in.LatestRevision, &out.LatestRevision
*out = new(Revision)
**out = **in
}
if in.AppliedResources != nil {
in, out := &in.AppliedResources, &out.AppliedResources
*out = make([]ClusterObjectReference, len(*in))
copy(*out, *in)
}
if in.PolicyStatus != nil {
in, out := &in.PolicyStatus, &out.PolicyStatus
*out = make([]PolicyStatus, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppStatus.
func (in *AppStatus) DeepCopy() *AppStatus {
if in == nil {
return nil
}
out := new(AppStatus)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ApplicationComponent) DeepCopyInto(out *ApplicationComponent) {
*out = *in
if in.Properties != nil {
in, out := &in.Properties, &out.Properties
*out = new(runtime.RawExtension)
(*in).DeepCopyInto(*out)
}
if in.DependsOn != nil {
in, out := &in.DependsOn, &out.DependsOn
*out = make([]string, len(*in))
copy(*out, *in)
}
if in.Inputs != nil {
in, out := &in.Inputs, &out.Inputs
*out = make(StepInputs, len(*in))
copy(*out, *in)
}
if in.Outputs != nil {
in, out := &in.Outputs, &out.Outputs
*out = make(StepOutputs, len(*in))
copy(*out, *in)
}
if in.Traits != nil {
in, out := &in.Traits, &out.Traits
*out = make([]ApplicationTrait, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
if in.Scopes != nil {
in, out := &in.Scopes, &out.Scopes
*out = make(map[string]string, len(*in))
for key, val := range *in {
(*out)[key] = val
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationComponent.
func (in *ApplicationComponent) DeepCopy() *ApplicationComponent {
if in == nil {
return nil
}
out := new(ApplicationComponent)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ApplicationComponentStatus) DeepCopyInto(out *ApplicationComponentStatus) {
*out = *in
out.WorkloadDefinition = in.WorkloadDefinition
if in.Traits != nil {
in, out := &in.Traits, &out.Traits
*out = make([]ApplicationTraitStatus, len(*in))
copy(*out, *in)
}
if in.Scopes != nil {
in, out := &in.Scopes, &out.Scopes
*out = make([]v1.ObjectReference, len(*in))
copy(*out, *in)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationComponentStatus.
func (in *ApplicationComponentStatus) DeepCopy() *ApplicationComponentStatus {
if in == nil {
return nil
}
out := new(ApplicationComponentStatus)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ApplicationTrait) DeepCopyInto(out *ApplicationTrait) {
*out = *in
if in.Properties != nil {
in, out := &in.Properties, &out.Properties
*out = new(runtime.RawExtension)
(*in).DeepCopyInto(*out)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationTrait.
func (in *ApplicationTrait) DeepCopy() *ApplicationTrait {
if in == nil {
return nil
}
out := new(ApplicationTrait)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ApplicationTraitStatus) DeepCopyInto(out *ApplicationTraitStatus) {
*out = *in
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationTraitStatus.
func (in *ApplicationTraitStatus) DeepCopy() *ApplicationTraitStatus {
if in == nil {
return nil
}
out := new(ApplicationTraitStatus)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CUE) DeepCopyInto(out *CUE) {
*out = *in
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CUE.
func (in *CUE) DeepCopy() *CUE {
if in == nil {
return nil
}
out := new(CUE)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ChildResourceKind) DeepCopyInto(out *ChildResourceKind) {
*out = *in
if in.Selector != nil {
in, out := &in.Selector, &out.Selector
*out = make(map[string]string, len(*in))
for key, val := range *in {
(*out)[key] = val
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChildResourceKind.
func (in *ChildResourceKind) DeepCopy() *ChildResourceKind {
if in == nil {
return nil
}
out := new(ChildResourceKind)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClusterObjectReference) DeepCopyInto(out *ClusterObjectReference) {
*out = *in
out.ObjectReference = in.ObjectReference
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterObjectReference.
func (in *ClusterObjectReference) DeepCopy() *ClusterObjectReference {
if in == nil {
return nil
}
out := new(ClusterObjectReference)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClusterPlacement) DeepCopyInto(out *ClusterPlacement) {
*out = *in
if in.ClusterSelector != nil {
in, out := &in.ClusterSelector, &out.ClusterSelector
*out = new(ClusterSelector)
(*in).DeepCopyInto(*out)
}
out.Distribution = in.Distribution
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterPlacement.
func (in *ClusterPlacement) DeepCopy() *ClusterPlacement {
if in == nil {
return nil
}
out := new(ClusterPlacement)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClusterSelector) DeepCopyInto(out *ClusterSelector) {
*out = *in
if in.Labels != nil {
in, out := &in.Labels, &out.Labels
*out = make(map[string]string, len(*in))
for key, val := range *in {
(*out)[key] = val
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSelector.
func (in *ClusterSelector) DeepCopy() *ClusterSelector {
if in == nil {
return nil
}
out := new(ClusterSelector)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DefinitionReference) DeepCopyInto(out *DefinitionReference) {
*out = *in
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DefinitionReference.
func (in *DefinitionReference) DeepCopy() *DefinitionReference {
if in == nil {
return nil
}
out := new(DefinitionReference)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Distribution) DeepCopyInto(out *Distribution) {
*out = *in
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Distribution.
func (in *Distribution) DeepCopy() *Distribution {
if in == nil {
return nil
}
out := new(Distribution)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Helm) DeepCopyInto(out *Helm) {
*out = *in
in.Release.DeepCopyInto(&out.Release)
in.Repository.DeepCopyInto(&out.Repository)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Helm.
func (in *Helm) DeepCopy() *Helm {
if in == nil {
return nil
}
out := new(Helm)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Kube) DeepCopyInto(out *Kube) {
*out = *in
in.Template.DeepCopyInto(&out.Template)
if in.Parameters != nil {
in, out := &in.Parameters, &out.Parameters
*out = make([]KubeParameter, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Kube.
func (in *Kube) DeepCopy() *Kube {
if in == nil {
return nil
}
out := new(Kube)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *KubeParameter) DeepCopyInto(out *KubeParameter) {
*out = *in
if in.FieldPaths != nil {
in, out := &in.FieldPaths, &out.FieldPaths
*out = make([]string, len(*in))
copy(*out, *in)
}
if in.Required != nil {
in, out := &in.Required, &out.Required
*out = new(bool)
**out = **in
}
if in.Description != nil {
in, out := &in.Description, &out.Description
*out = new(string)
**out = **in
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeParameter.
func (in *KubeParameter) DeepCopy() *KubeParameter {
if in == nil {
return nil
}
out := new(KubeParameter)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *OAMObjectReference) DeepCopyInto(out *OAMObjectReference) {
*out = *in
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAMObjectReference.
func (in *OAMObjectReference) DeepCopy() *OAMObjectReference {
if in == nil {
return nil
}
out := new(OAMObjectReference)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PolicyStatus) DeepCopyInto(out *PolicyStatus) {
*out = *in
if in.Status != nil {
in, out := &in.Status, &out.Status
*out = new(runtime.RawExtension)
(*in).DeepCopyInto(*out)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyStatus.
func (in *PolicyStatus) DeepCopy() *PolicyStatus {
if in == nil {
return nil
}
out := new(PolicyStatus)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RawComponent) DeepCopyInto(out *RawComponent) {
*out = *in
in.Raw.DeepCopyInto(&out.Raw)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RawComponent.
func (in *RawComponent) DeepCopy() *RawComponent {
if in == nil {
return nil
}
out := new(RawComponent)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RawExtensionPointer) DeepCopyInto(out *RawExtensionPointer) {
*out = *in
if in.RawExtension != nil {
in, out := &in.RawExtension, &out.RawExtension
*out = new(runtime.RawExtension)
(*in).DeepCopyInto(*out)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RawExtensionPointer.
func (in *RawExtensionPointer) DeepCopy() *RawExtensionPointer {
if in == nil {
return nil
}
out := new(RawExtensionPointer)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ReferredObject) DeepCopyInto(out *ReferredObject) {
*out = *in
in.RawExtension.DeepCopyInto(&out.RawExtension)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReferredObject.
func (in *ReferredObject) DeepCopy() *ReferredObject {
if in == nil {
return nil
}
out := new(ReferredObject)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ReferredObjectList) DeepCopyInto(out *ReferredObjectList) {
*out = *in
if in.Objects != nil {
in, out := &in.Objects, &out.Objects
*out = make([]ReferredObject, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReferredObjectList.
func (in *ReferredObjectList) DeepCopy() *ReferredObjectList {
if in == nil {
return nil
}
out := new(ReferredObjectList)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Revision) DeepCopyInto(out *Revision) {
*out = *in
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Revision.
func (in *Revision) DeepCopy() *Revision {
if in == nil {
return nil
}
out := new(Revision)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Schematic) DeepCopyInto(out *Schematic) {
*out = *in
if in.KUBE != nil {
in, out := &in.KUBE, &out.KUBE
*out = new(Kube)
(*in).DeepCopyInto(*out)
}
if in.CUE != nil {
in, out := &in.CUE, &out.CUE
*out = new(CUE)
**out = **in
}
if in.HELM != nil {
in, out := &in.HELM, &out.HELM
*out = new(Helm)
(*in).DeepCopyInto(*out)
}
if in.Terraform != nil {
in, out := &in.Terraform, &out.Terraform
*out = new(Terraform)
(*in).DeepCopyInto(*out)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Schematic.
func (in *Schematic) DeepCopy() *Schematic {
if in == nil {
return nil
}
out := new(Schematic)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Status) DeepCopyInto(out *Status) {
*out = *in
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Status.
func (in *Status) DeepCopy() *Status {
if in == nil {
return nil
}
out := new(Status)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in StepInputs) DeepCopyInto(out *StepInputs) {
{
in := &in
*out = make(StepInputs, len(*in))
copy(*out, *in)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StepInputs.
func (in StepInputs) DeepCopy() StepInputs {
if in == nil {
return nil
}
out := new(StepInputs)
in.DeepCopyInto(out)
return *out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in StepOutputs) DeepCopyInto(out *StepOutputs) {
{
in := &in
*out = make(StepOutputs, len(*in))
copy(*out, *in)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StepOutputs.
func (in StepOutputs) DeepCopy() StepOutputs {
if in == nil {
return nil
}
out := new(StepOutputs)
in.DeepCopyInto(out)
return *out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *StepStatus) DeepCopyInto(out *StepStatus) {
*out = *in
in.FirstExecuteTime.DeepCopyInto(&out.FirstExecuteTime)
in.LastExecuteTime.DeepCopyInto(&out.LastExecuteTime)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StepStatus.
func (in *StepStatus) DeepCopy() *StepStatus {
if in == nil {
return nil
}
out := new(StepStatus)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Terraform) DeepCopyInto(out *Terraform) {
*out = *in
if in.WriteConnectionSecretToReference != nil {
in, out := &in.WriteConnectionSecretToReference, &out.WriteConnectionSecretToReference
*out = new(crossplane_runtime.SecretReference)
**out = **in
}
if in.ProviderReference != nil {
in, out := &in.ProviderReference, &out.ProviderReference
*out = new(crossplane_runtime.Reference)
**out = **in
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Terraform.
func (in *Terraform) DeepCopy() *Terraform {
if in == nil {
return nil
}
out := new(Terraform)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *WorkflowStatus) DeepCopyInto(out *WorkflowStatus) {
*out = *in
if in.ContextBackend != nil {
in, out := &in.ContextBackend, &out.ContextBackend
*out = new(v1.ObjectReference)
**out = **in
}
if in.Steps != nil {
in, out := &in.Steps, &out.Steps
*out = make([]WorkflowStepStatus, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
in.StartTime.DeepCopyInto(&out.StartTime)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowStatus.
func (in *WorkflowStatus) DeepCopy() *WorkflowStatus {
if in == nil {
return nil
}
out := new(WorkflowStatus)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *WorkflowStep) DeepCopyInto(out *WorkflowStep) {
*out = *in
if in.Properties != nil {
in, out := &in.Properties, &out.Properties
*out = new(runtime.RawExtension)
(*in).DeepCopyInto(*out)
}
if in.SubSteps != nil {
in, out := &in.SubSteps, &out.SubSteps
*out = make([]WorkflowSubStep, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
if in.DependsOn != nil {
in, out := &in.DependsOn, &out.DependsOn
*out = make([]string, len(*in))
copy(*out, *in)
}
if in.Inputs != nil {
in, out := &in.Inputs, &out.Inputs
*out = make(StepInputs, len(*in))
copy(*out, *in)
}
if in.Outputs != nil {
in, out := &in.Outputs, &out.Outputs
*out = make(StepOutputs, len(*in))
copy(*out, *in)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowStep.
func (in *WorkflowStep) DeepCopy() *WorkflowStep {
if in == nil {
return nil
}
out := new(WorkflowStep)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *WorkflowStepStatus) DeepCopyInto(out *WorkflowStepStatus) {
*out = *in
in.StepStatus.DeepCopyInto(&out.StepStatus)
if in.SubStepsStatus != nil {
in, out := &in.SubStepsStatus, &out.SubStepsStatus
*out = make([]WorkflowSubStepStatus, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowStepStatus.
func (in *WorkflowStepStatus) DeepCopy() *WorkflowStepStatus {
if in == nil {
return nil
}
out := new(WorkflowStepStatus)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *WorkflowSubStep) DeepCopyInto(out *WorkflowSubStep) {
*out = *in
if in.Properties != nil {
in, out := &in.Properties, &out.Properties
*out = new(runtime.RawExtension)
(*in).DeepCopyInto(*out)
}
if in.DependsOn != nil {
in, out := &in.DependsOn, &out.DependsOn
*out = make([]string, len(*in))
copy(*out, *in)
}
if in.Inputs != nil {
in, out := &in.Inputs, &out.Inputs
*out = make(StepInputs, len(*in))
copy(*out, *in)
}
if in.Outputs != nil {
in, out := &in.Outputs, &out.Outputs
*out = make(StepOutputs, len(*in))
copy(*out, *in)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowSubStep.
func (in *WorkflowSubStep) DeepCopy() *WorkflowSubStep {
if in == nil {
return nil
}
out := new(WorkflowSubStep)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *WorkflowSubStepStatus) DeepCopyInto(out *WorkflowSubStepStatus) {
*out = *in
in.StepStatus.DeepCopyInto(&out.StepStatus)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowSubStepStatus.
func (in *WorkflowSubStepStatus) DeepCopy() *WorkflowSubStepStatus {
if in == nil {
return nil
}
out := new(WorkflowSubStepStatus)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *WorkloadGVK) DeepCopyInto(out *WorkloadGVK) {
*out = *in
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkloadGVK.
func (in *WorkloadGVK) DeepCopy() *WorkloadGVK {
if in == nil {
return nil
}
out := new(WorkloadGVK)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *WorkloadTypeDescriptor) DeepCopyInto(out *WorkloadTypeDescriptor) {
*out = *in
out.Definition = in.Definition
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkloadTypeDescriptor.
func (in *WorkloadTypeDescriptor) DeepCopy() *WorkloadTypeDescriptor {
if in == nil {
return nil
}
out := new(WorkloadTypeDescriptor)
in.DeepCopyInto(out)
return out
}

View File

@@ -0,0 +1,282 @@
/*
// This file is originally from https://github.com/crossplane/crossplane-runtime/blob/master/apis/common/v1/condition.go
// We copy it here to reduce dependency and add more
Copyright 2021 The KubeVela Authors.
Copyright 2019 The Crossplane Authors.
Licensed 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.
*/
package condition
import (
"sort"
"time"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
// A ConditionType represents a condition a resource could be in.
// nolint:golint
type ConditionType string
// Condition types.
const (
// TypeReady resources are believed to be ready to handle work.
TypeReady ConditionType = "Ready"
// TypeSynced resources are believed to be in sync with the
// Kubernetes resources that manage their lifecycle.
TypeSynced ConditionType = "Synced"
)
// A ConditionReason represents the reason a resource is in a condition.
// nolint:golint
type ConditionReason string
// Reasons a resource is or is not ready.
const (
ReasonAvailable ConditionReason = "Available"
ReasonUnavailable ConditionReason = "Unavailable"
ReasonCreating ConditionReason = "Creating"
ReasonDeleting ConditionReason = "Deleting"
)
// Reasons a resource is or is not synced.
const (
ReasonReconcileSuccess ConditionReason = "ReconcileSuccess"
ReasonReconcileError ConditionReason = "ReconcileError"
)
// A Condition that may apply to a resource.
type Condition struct {
// Type of this condition. At most one of each condition type may apply to
// a resource at any point in time.
Type ConditionType `json:"type"`
// Status of this condition; is it currently True, False, or Unknown?
Status corev1.ConditionStatus `json:"status"`
// LastTransitionTime is the last time this condition transitioned from one
// status to another.
LastTransitionTime metav1.Time `json:"lastTransitionTime"`
// A Reason for this condition's last transition from one status to another.
Reason ConditionReason `json:"reason"`
// A Message containing details about this condition's last transition from
// one status to another, if any.
// +optional
Message string `json:"message,omitempty"`
}
// Equal returns true if the condition is identical to the supplied condition,
// ignoring the LastTransitionTime.
func (c Condition) Equal(other Condition) bool {
return c.Type == other.Type &&
c.Status == other.Status &&
c.Reason == other.Reason &&
c.Message == other.Message
}
// WithMessage returns a condition by adding the provided message to existing
// condition.
func (c Condition) WithMessage(msg string) Condition {
c.Message = msg
return c
}
// NOTE(negz): Conditions are implemented as a slice rather than a map to comply
// with Kubernetes API conventions. Ideally we'd comply by using a map that
// marshalled to a JSON array, but doing so confuses the CRD schema generator.
// https://github.com/kubernetes/community/blob/9bf8cd/contributors/devel/sig-architecture/api-conventions.md#lists-of-named-subobjects-preferred-over-maps
// NOTE(negz): Do not manipulate Conditions directly. Use the Set method.
// A ConditionedStatus reflects the observed status of a resource. Only
// one condition of each type may exist.
type ConditionedStatus struct {
// Conditions of the resource.
// +optional
Conditions []Condition `json:"conditions,omitempty"`
}
// NewConditionedStatus returns a stat with the supplied conditions set.
func NewConditionedStatus(c ...Condition) *ConditionedStatus {
s := &ConditionedStatus{}
s.SetConditions(c...)
return s
}
// GetCondition returns the condition for the given ConditionType if exists,
// otherwise returns nil
func (s *ConditionedStatus) GetCondition(ct ConditionType) Condition {
for _, c := range s.Conditions {
if c.Type == ct {
return c
}
}
return Condition{Type: ct, Status: corev1.ConditionUnknown}
}
// SetConditions sets the supplied conditions, replacing any existing conditions
// of the same type. This is a no-op if all supplied conditions are identical,
// ignoring the last transition time, to those already set.
func (s *ConditionedStatus) SetConditions(c ...Condition) {
for _, new := range c {
exists := false
for i, existing := range s.Conditions {
if existing.Type != new.Type {
continue
}
if existing.Equal(new) {
exists = true
continue
}
s.Conditions[i] = new
exists = true
}
if !exists {
s.Conditions = append(s.Conditions, new)
}
}
}
// Equal returns true if the status is identical to the supplied status,
// ignoring the LastTransitionTimes and order of statuses.
func (s *ConditionedStatus) Equal(other *ConditionedStatus) bool {
if s == nil || other == nil {
return s == nil && other == nil
}
if len(other.Conditions) != len(s.Conditions) {
return false
}
sc := make([]Condition, len(s.Conditions))
copy(sc, s.Conditions)
oc := make([]Condition, len(other.Conditions))
copy(oc, other.Conditions)
// We should not have more than one condition of each type.
sort.Slice(sc, func(i, j int) bool { return sc[i].Type < sc[j].Type })
sort.Slice(oc, func(i, j int) bool { return oc[i].Type < oc[j].Type })
for i := range sc {
if !sc[i].Equal(oc[i]) {
return false
}
}
return true
}
// Creating returns a condition that indicates the resource is currently
// being created.
func Creating() Condition {
return Condition{
Type: TypeReady,
Status: corev1.ConditionFalse,
LastTransitionTime: metav1.Now(),
Reason: ReasonCreating,
}
}
// Deleting returns a condition that indicates the resource is currently
// being deleted.
func Deleting() Condition {
return Condition{
Type: TypeReady,
Status: corev1.ConditionFalse,
LastTransitionTime: metav1.Now(),
Reason: ReasonDeleting,
}
}
// Available returns a condition that indicates the resource is
// currently observed to be available for use.
func Available() Condition {
return Condition{
Type: TypeReady,
Status: corev1.ConditionTrue,
LastTransitionTime: metav1.Now(),
Reason: ReasonAvailable,
}
}
// Unavailable returns a condition that indicates the resource is not
// currently available for use. Unavailable should be set only when Crossplane
// expects the resource to be available but knows it is not, for example
// because its API reports it is unhealthy.
func Unavailable() Condition {
return Condition{
Type: TypeReady,
Status: corev1.ConditionFalse,
LastTransitionTime: metav1.Now(),
Reason: ReasonUnavailable,
}
}
// ReconcileSuccess returns a condition indicating that Crossplane successfully
// completed the most recent reconciliation of the resource.
func ReconcileSuccess() Condition {
return Condition{
Type: TypeSynced,
Status: corev1.ConditionTrue,
LastTransitionTime: metav1.Now(),
Reason: ReasonReconcileSuccess,
}
}
// ReconcileError returns a condition indicating that Crossplane encountered an
// error while reconciling the resource. This could mean Crossplane was
// unable to update the resource to reflect its desired state, or that
// Crossplane was unable to determine the current actual state of the resource.
func ReconcileError(err error) Condition {
return Condition{
Type: TypeSynced,
Status: corev1.ConditionFalse,
LastTransitionTime: metav1.Now(),
Reason: ReasonReconcileError,
Message: err.Error(),
}
}
// ReadyCondition generate ready condition for conditionType
func ReadyCondition(tpy string) Condition {
return Condition{
Type: ConditionType(tpy),
Status: corev1.ConditionTrue,
Reason: ReasonAvailable,
LastTransitionTime: metav1.NewTime(time.Now()),
}
}
// ErrorCondition generate error condition for conditionType and error
func ErrorCondition(tpy string, err error) Condition {
return Condition{
Type: ConditionType(tpy),
Status: corev1.ConditionFalse,
LastTransitionTime: metav1.NewTime(time.Now()),
Reason: ReasonReconcileError,
Message: err.Error(),
}
}

View File

@@ -0,0 +1,221 @@
// This file is originally from https://github.com/crossplane/crossplane-runtime/blob/master/apis/common/v1/condition_test.go
// We copy it here to reduce dependency
/*
Copyright 2019 The Crossplane Authors.
Licensed 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.
*/
package condition
import (
"testing"
"github.com/google/go-cmp/cmp"
"github.com/pkg/errors"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
func TestConditionEqual(t *testing.T) {
cases := map[string]struct {
a Condition
b Condition
want bool
}{
"IdenticalIgnoringTimestamp": {
a: Condition{Type: TypeReady, LastTransitionTime: metav1.Now()},
b: Condition{Type: TypeReady, LastTransitionTime: metav1.Now()},
want: true,
},
"DifferentType": {
a: Condition{Type: TypeReady},
b: Condition{Type: TypeSynced},
want: false,
},
"DifferentStatus": {
a: Condition{Status: corev1.ConditionTrue},
b: Condition{Status: corev1.ConditionFalse},
want: false,
},
"DifferentReason": {
a: Condition{Reason: ReasonCreating},
b: Condition{Reason: ReasonDeleting},
want: false,
},
"DifferentMessage": {
a: Condition{Message: "cool"},
b: Condition{Message: "uncool"},
want: false,
},
}
for name, tc := range cases {
t.Run(name, func(t *testing.T) {
got := tc.a.Equal(tc.b)
if diff := cmp.Diff(tc.want, got); diff != "" {
t.Errorf("a.Equal(b): -want, +got:\n%s", diff)
}
})
}
}
func TestConditionedStatusEqual(t *testing.T) {
cases := map[string]struct {
a *ConditionedStatus
b *ConditionedStatus
want bool
}{
"Identical": {
a: NewConditionedStatus(Available(), ReconcileSuccess()),
b: NewConditionedStatus(Available(), ReconcileSuccess()),
want: true,
},
"IdenticalExceptOrder": {
a: NewConditionedStatus(Unavailable(), ReconcileSuccess()),
b: NewConditionedStatus(ReconcileSuccess(), Unavailable()),
want: true,
},
"DifferentLength": {
a: NewConditionedStatus(Available(), ReconcileSuccess()),
b: NewConditionedStatus(ReconcileSuccess()),
want: false,
},
"DifferentCondition": {
a: NewConditionedStatus(Creating(), ReconcileSuccess()),
b: NewConditionedStatus(Creating(), ReconcileError(errors.New("boom"))),
want: false,
},
"AIsNil": {
a: nil,
b: NewConditionedStatus(Deleting(), ReconcileSuccess()),
want: false,
},
"BIsNil": {
a: NewConditionedStatus(Available(), ReconcileSuccess()),
b: nil,
want: false,
},
}
for name, tc := range cases {
t.Run(name, func(t *testing.T) {
got := tc.a.Equal(tc.b)
if diff := cmp.Diff(tc.want, got); diff != "" {
t.Errorf("a.Equal(b): -want, +got:\n%s", diff)
}
})
}
}
func TestSetConditions(t *testing.T) {
cases := map[string]struct {
cs *ConditionedStatus
c []Condition
want *ConditionedStatus
}{
"TypeIsIdentical": {
cs: NewConditionedStatus(Available()),
c: []Condition{Available()},
want: NewConditionedStatus(Available()),
},
"TypeIsDifferent": {
cs: NewConditionedStatus(Creating()),
c: []Condition{Available()},
want: NewConditionedStatus(Available()),
},
"TypeDoesNotExist": {
cs: NewConditionedStatus(ReconcileSuccess()),
c: []Condition{Available()},
want: NewConditionedStatus(ReconcileSuccess(), Available()),
},
}
for name, tc := range cases {
t.Run(name, func(t *testing.T) {
tc.cs.SetConditions(tc.c...)
got := tc.cs
if diff := cmp.Diff(tc.want, got); diff != "" {
t.Errorf("tc.cs.SetConditions(...): -want, +got:\n%s", diff)
}
})
}
}
func TestGetCondition(t *testing.T) {
cases := map[string]struct {
cs *ConditionedStatus
t ConditionType
want Condition
}{
"ConditionExists": {
cs: NewConditionedStatus(Available()),
t: TypeReady,
want: Available(),
},
"ConditionDoesNotExist": {
cs: NewConditionedStatus(Available()),
t: TypeSynced,
want: Condition{
Type: TypeSynced,
Status: corev1.ConditionUnknown,
},
},
}
for name, tc := range cases {
t.Run(name, func(t *testing.T) {
got := tc.cs.GetCondition(tc.t)
if diff := cmp.Diff(tc.want, got); diff != "" {
t.Errorf("tc.cs.GetConditions(...): -want, +got:\n%s", diff)
}
})
}
}
func TestConditionWithMessage(t *testing.T) {
testMsg := "Something went wrong on cloud side"
cases := map[string]struct {
c Condition
msg string
want Condition
}{
"MessageAdded": {
c: Condition{Type: TypeReady, Reason: ReasonUnavailable},
msg: testMsg,
want: Condition{Type: TypeReady, Reason: ReasonUnavailable, Message: testMsg},
},
"MessageChanged": {
c: Condition{Type: TypeReady, Reason: ReasonUnavailable, Message: "Some other message"},
msg: testMsg,
want: Condition{Type: TypeReady, Reason: ReasonUnavailable, Message: testMsg},
},
"MessageCleared": {
c: Condition{Type: TypeReady, Reason: ReasonUnavailable, Message: testMsg},
msg: "",
want: Condition{Type: TypeReady, Reason: ReasonUnavailable},
},
}
for name, tc := range cases {
t.Run(name, func(t *testing.T) {
got := tc.c.WithMessage(tc.msg)
if diff := cmp.Diff(tc.want, got); diff != "" {
t.Errorf("a.Equal(b): -want, +got:\n%s", diff)
}
})
}
}

View File

@@ -0,0 +1,19 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
// Package condition contains condition types
// +kubebuilder:object:generate=true
package condition

View File

@@ -0,0 +1,60 @@
//go:build !ignore_autogenerated
// +build !ignore_autogenerated
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
// Code generated by controller-gen. DO NOT EDIT.
package condition
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Condition) DeepCopyInto(out *Condition) {
*out = *in
in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Condition.
func (in *Condition) DeepCopy() *Condition {
if in == nil {
return nil
}
out := new(Condition)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ConditionedStatus) DeepCopyInto(out *ConditionedStatus) {
*out = *in
if in.Conditions != nil {
in, out := &in.Conditions, &out.Conditions
*out = make([]Condition, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConditionedStatus.
func (in *ConditionedStatus) DeepCopy() *ConditionedStatus {
if in == nil {
return nil
}
out := new(ConditionedStatus)
in.DeepCopyInto(out)
return out
}

View File

@@ -0,0 +1,39 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
// Package core_oam_dev contains API Schema definitions for the core.oam.dev v1alpha2 API group
package core_oam_dev
import (
"k8s.io/apimachinery/pkg/runtime"
"github.com/oam-dev/kubevela/apis/core.oam.dev/v1alpha1"
"github.com/oam-dev/kubevela/apis/core.oam.dev/v1alpha2"
"github.com/oam-dev/kubevela/apis/core.oam.dev/v1beta1"
)
func init() {
// Register the types with the Scheme so the resources can map objects to GroupVersionKinds and back
AddToSchemes = append(AddToSchemes, v1alpha1.SchemeBuilder.AddToScheme, v1alpha2.SchemeBuilder.AddToScheme, v1beta1.SchemeBuilder.AddToScheme)
}
// AddToSchemes may be used to add all resources defined in the project to a Scheme
var AddToSchemes runtime.SchemeBuilder
// AddToScheme adds all Resources to the Scheme
func AddToScheme(s *runtime.Scheme) error {
return AddToSchemes.AddToScheme(s)
}

View File

@@ -0,0 +1,69 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
package v1alpha1
import (
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
)
const (
// ApplyOncePolicyType refers to the type of configuration drift policy
ApplyOncePolicyType = "apply-once"
)
// ApplyOncePolicySpec defines the spec of preventing configuration drift
type ApplyOncePolicySpec struct {
Enable bool `json:"enable"`
// +optional
Rules []ApplyOncePolicyRule `json:"rules,omitempty"`
}
// ApplyOncePolicyRule defines a single apply-once policy rule
type ApplyOncePolicyRule struct {
// +optional
Selector ResourcePolicyRuleSelector `json:"selector,omitempty"`
// +optional
Strategy *ApplyOnceStrategy `json:"strategy,omitempty"`
}
// ApplyOnceStrategy the strategy for resource path to allow configuration drift
type ApplyOnceStrategy struct {
// Path the specified path that allow configuration drift
// like 'spec.template.spec.containers[0].resources' and '*' means the whole target allow configuration drift
Path []string `json:"path"`
}
// FindStrategy find apply-once strategy for target resource
func (in ApplyOncePolicySpec) FindStrategy(manifest *unstructured.Unstructured) *ApplyOnceStrategy {
if !in.Enable {
return nil
}
for _, rule := range in.Rules {
match := func(src []string, val string) (found bool) {
for _, _val := range src {
found = found || _val == val
}
return val != "" && found
}
if (match(rule.Selector.CompNames, manifest.GetName()) && match(rule.Selector.ResourceTypes, manifest.GetKind())) ||
(rule.Selector.CompNames == nil && match(rule.Selector.ResourceTypes, manifest.GetKind()) ||
(rule.Selector.ResourceTypes == nil && match(rule.Selector.CompNames, manifest.GetName()))) {
return rule.Strategy
}
}
return nil
}

View File

@@ -0,0 +1,74 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
package v1alpha1
const (
// RefObjectsComponentType refers to the type of ref-objects
RefObjectsComponentType = "ref-objects"
)
// RefObjectsComponentSpec defines the spec of ref-objects component
type RefObjectsComponentSpec struct {
// Objects the referrers to the Kubernetes objects
Objects []ObjectReferrer `json:"objects,omitempty"`
}
// ObjectReferrer selects Kubernetes objects
type ObjectReferrer struct {
// ObjectTypeIdentifier identifies the type of referred objects
ObjectTypeIdentifier `json:",inline"`
// ObjectSelector select object by name or labelSelector
ObjectSelector `json:",inline"`
}
// ObjectTypeIdentifier identifies the scheme of Kubernetes object
type ObjectTypeIdentifier struct {
// Resource is the resource name of the Kubernetes object.
Resource string `json:"resource"`
// Group is the API Group of the Kubernetes object.
Group string `json:"group"`
// LegacyObjectTypeIdentifier is the legacy identifier
// Deprecated: use resource/group instead
LegacyObjectTypeIdentifier `json:",inline"`
}
// LegacyObjectTypeIdentifier legacy object type identifier
type LegacyObjectTypeIdentifier struct {
// APIVersion is the APIVersion of the Kubernetes object.
APIVersion string `json:"apiVersion"`
// APIVersion is the Kind of the Kubernetes object.
Kind string `json:"kind"`
}
// ObjectSelector selector for Kubernetes object
type ObjectSelector struct {
// Name is the name of the Kubernetes object.
// If empty, it will inherit the application component's name.
Name string `json:"name,omitempty"`
// Namespace is the namespace for selecting Kubernetes objects.
// If empty, it will inherit the application's namespace.
Namespace string `json:"namespace,omitempty"`
// Cluster is the cluster for selecting Kubernetes objects.
// If empty, it will use the local cluster
Cluster string `json:"cluster,omitempty"`
// LabelSelector selects Kubernetes objects by labels
// Exclusive to "name"
LabelSelector map[string]string `json:"labelSelector,omitempty"`
// DeprecatedLabelSelector a deprecated alias to LabelSelector
// Deprecated: use labelSelector instead.
DeprecatedLabelSelector map[string]string `json:"selector,omitempty"`
}

View File

@@ -0,0 +1,22 @@
/*
Copyright 2021. The KubeVela Authors.
Licensed 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.
*/
// Package v1alpha1 contains resources relating to the Open Application Model.
// See https://github.com/oam-dev/spec for more details.
// +kubebuilder:object:generate=true
// +groupName=core.oam.dev
// +versionName=v1alpha1
package v1alpha1

View File

@@ -0,0 +1,142 @@
/*
Copyright 2021. The KubeVela Authors.
Licensed 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.
*/
package v1alpha1
import (
"k8s.io/apimachinery/pkg/runtime"
"github.com/oam-dev/kubevela/apis/core.oam.dev/common"
)
const (
// EnvBindingPolicyType refers to the type of EnvBinding
EnvBindingPolicyType = "env-binding"
)
// EnvTraitPatch is the patch to trait
type EnvTraitPatch struct {
Type string `json:"type"`
Properties *runtime.RawExtension `json:"properties,omitempty"`
Disable bool `json:"disable,omitempty"`
}
// ToApplicationTrait convert EnvTraitPatch into ApplicationTrait
func (in *EnvTraitPatch) ToApplicationTrait() *common.ApplicationTrait {
out := &common.ApplicationTrait{Type: in.Type}
if in.Properties != nil {
out.Properties = in.Properties.DeepCopy()
}
return out
}
// EnvComponentPatch is the patch to component
type EnvComponentPatch struct {
Name string `json:"name"`
Type string `json:"type"`
Properties *runtime.RawExtension `json:"properties,omitempty"`
Traits []EnvTraitPatch `json:"traits,omitempty"`
ExternalRevision string `json:"externalRevision,omitempty"`
}
// ToApplicationComponent convert EnvComponentPatch into ApplicationComponent
func (in *EnvComponentPatch) ToApplicationComponent() *common.ApplicationComponent {
out := &common.ApplicationComponent{
Name: in.Name,
Type: in.Type,
}
if in.Properties != nil {
out.Properties = in.Properties.DeepCopy()
}
if in.Traits != nil {
for _, trait := range in.Traits {
if !trait.Disable {
out.Traits = append(out.Traits, *trait.ToApplicationTrait())
}
}
}
return out
}
// EnvPatch specify the parameter configuration for different environments
type EnvPatch struct {
Components []EnvComponentPatch `json:"components,omitempty"`
}
// NamespaceSelector defines the rules to select a Namespace resource.
// Either name or labels is needed.
type NamespaceSelector struct {
// Name is the name of the namespace.
Name string `json:"name,omitempty"`
// Labels defines the label selector to select the namespace.
Labels map[string]string `json:"labels,omitempty"`
}
// EnvPlacement defines the placement rules for an app.
type EnvPlacement struct {
ClusterSelector *common.ClusterSelector `json:"clusterSelector,omitempty"`
NamespaceSelector *NamespaceSelector `json:"namespaceSelector,omitempty"`
}
// EnvSelector defines which components should this env contains
type EnvSelector struct {
Components []string `json:"components,omitempty"`
}
// EnvConfig is the configuration for different environments.
type EnvConfig struct {
Name string `json:"name"`
Placement EnvPlacement `json:"placement,omitempty"`
Selector *EnvSelector `json:"selector,omitempty"`
Patch EnvPatch `json:"patch,omitempty"`
}
// EnvBindingSpec defines a list of envs
type EnvBindingSpec struct {
Envs []EnvConfig `json:"envs"`
}
// PlacementDecision describes the placement of one application instance
type PlacementDecision struct {
Cluster string `json:"cluster"`
Namespace string `json:"namespace"`
}
// String encode placement decision
func (in PlacementDecision) String() string {
if in.Namespace == "" {
return in.Cluster
}
return in.Cluster + "/" + in.Namespace
}
// EnvStatus records the status of one env
type EnvStatus struct {
Env string `json:"env"`
Placements []PlacementDecision `json:"placements"`
}
// ClusterConnection records the connection with clusters and the last active app revision when they are active (still be used)
type ClusterConnection struct {
ClusterName string `json:"clusterName"`
LastActiveRevision string `json:"lastActiveRevision"`
}
// EnvBindingStatus records the status of all env
type EnvBindingStatus struct {
Envs []EnvStatus `json:"envs"`
ClusterConnections []ClusterConnection `json:"clusterConnections"`
}

View File

@@ -0,0 +1,75 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
package v1alpha1
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"github.com/oam-dev/kubevela/apis/core.oam.dev/common"
)
// +kubebuilder:object:root=true
// Policy is the Schema for the policy API
// +kubebuilder:storageversion
// +kubebuilder:resource:categories={oam}
// +kubebuilder:printcolumn:name="TYPE",type=string,JSONPath=`.type`
// +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
type Policy struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Type string `json:"type"`
// +kubebuilder:pruning:PreserveUnknownFields
Properties *runtime.RawExtension `json:"properties,omitempty"`
}
// +kubebuilder:object:root=true
// PolicyList contains a list of Policy
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
type PolicyList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Policy `json:"items"`
}
// +kubebuilder:object:root=true
// Workflow is the Schema for the policy API
// +kubebuilder:storageversion
// +kubebuilder:resource:categories={oam}
// +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
type Workflow struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Steps []common.WorkflowStep `json:"steps,omitempty"`
}
// +kubebuilder:object:root=true
// WorkflowList contains a list of Workflow
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
type WorkflowList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Workflow `json:"items"`
}

View File

@@ -0,0 +1,108 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
package v1alpha1
import (
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"github.com/oam-dev/kubevela/pkg/oam"
)
const (
// GarbageCollectPolicyType refers to the type of garbage-collect
GarbageCollectPolicyType = "garbage-collect"
)
// GarbageCollectPolicySpec defines the spec of configuration drift
type GarbageCollectPolicySpec struct {
// KeepLegacyResource if is set, outdated versioned resourcetracker will not be recycled automatically
// outdated resources will be kept until resourcetracker be deleted manually
KeepLegacyResource bool `json:"keepLegacyResource,omitempty"`
// Order defines the order of garbage collect
Order GarbageCollectOrder `json:"order,omitempty"`
// Rules defines list of rules to control gc strategy at resource level
// if one resource is controlled by multiple rules, first rule will be used
Rules []GarbageCollectPolicyRule `json:"rules,omitempty"`
}
// GarbageCollectOrder is the order of garbage collect
type GarbageCollectOrder string
const (
// OrderDependency is the order of dependency
OrderDependency GarbageCollectOrder = "dependency"
)
// GarbageCollectPolicyRule defines a single garbage-collect policy rule
type GarbageCollectPolicyRule struct {
Selector ResourcePolicyRuleSelector `json:"selector"`
Strategy GarbageCollectStrategy `json:"strategy"`
}
// ResourcePolicyRuleSelector select the targets of the rule
// 1) for GarbageCollectPolicyRule
// if both traitTypes, oamTypes and componentTypes are specified, combination logic is OR
// if one resource is specified with conflict strategies, strategy as component go first.
// 2) for ApplyOncePolicyRule only CompNames and ResourceTypes are used
type ResourcePolicyRuleSelector struct {
CompNames []string `json:"componentNames"`
CompTypes []string `json:"componentTypes"`
OAMResourceTypes []string `json:"oamTypes"`
TraitTypes []string `json:"traitTypes"`
ResourceTypes []string `json:"resourceTypes"`
}
// GarbageCollectStrategy the strategy for target resource to recycle
type GarbageCollectStrategy string
const (
// GarbageCollectStrategyNever do not recycle target resource, leave it
GarbageCollectStrategyNever GarbageCollectStrategy = "never"
// GarbageCollectStrategyOnAppDelete do not recycle target resource until application is deleted
// this means the resource will be kept even it is not used in the latest version
GarbageCollectStrategyOnAppDelete GarbageCollectStrategy = "onAppDelete"
// GarbageCollectStrategyOnAppUpdate recycle target resource when it is not inUse
GarbageCollectStrategyOnAppUpdate GarbageCollectStrategy = "onAppUpdate"
)
// FindStrategy find gc strategy for target resource
func (in GarbageCollectPolicySpec) FindStrategy(manifest *unstructured.Unstructured) *GarbageCollectStrategy {
for _, rule := range in.Rules {
var compName, compType, oamType, traitType string
if labels := manifest.GetLabels(); labels != nil {
compName = labels[oam.LabelAppComponent]
compType = labels[oam.WorkloadTypeLabel]
oamType = labels[oam.LabelOAMResourceType]
traitType = labels[oam.TraitTypeLabel]
}
match := func(src []string, val string) (found bool) {
for _, _val := range src {
found = found || _val == val
}
return val != "" && found
}
if match(rule.Selector.CompNames, compName) ||
match(rule.Selector.CompTypes, compType) ||
match(rule.Selector.OAMResourceTypes, oamType) ||
match(rule.Selector.TraitTypes, traitType) {
return &rule.Strategy
}
}
return nil
}

View File

@@ -0,0 +1,137 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
package v1alpha1
import (
"testing"
"github.com/stretchr/testify/require"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"github.com/oam-dev/kubevela/pkg/oam"
)
func TestGarbageCollectPolicySpec_FindStrategy(t *testing.T) {
testCases := map[string]struct {
rules []GarbageCollectPolicyRule
input *unstructured.Unstructured
notFound bool
expectStrategy GarbageCollectStrategy
}{
"trait type rule match": {
rules: []GarbageCollectPolicyRule{{
Selector: ResourcePolicyRuleSelector{TraitTypes: []string{"a"}},
Strategy: GarbageCollectStrategyNever,
}},
input: &unstructured.Unstructured{Object: map[string]interface{}{
"metadata": map[string]interface{}{
"labels": map[string]interface{}{oam.TraitTypeLabel: "a"},
},
}},
expectStrategy: GarbageCollectStrategyNever,
},
"trait type rule mismatch": {
rules: []GarbageCollectPolicyRule{{
Selector: ResourcePolicyRuleSelector{TraitTypes: []string{"a"}},
Strategy: GarbageCollectStrategyNever,
}},
input: &unstructured.Unstructured{Object: map[string]interface{}{}},
notFound: true,
},
"trait type rule multiple match": {
rules: []GarbageCollectPolicyRule{{
Selector: ResourcePolicyRuleSelector{TraitTypes: []string{"a"}},
Strategy: GarbageCollectStrategyOnAppDelete,
}, {
Selector: ResourcePolicyRuleSelector{TraitTypes: []string{"a"}},
Strategy: GarbageCollectStrategyNever,
}},
input: &unstructured.Unstructured{Object: map[string]interface{}{
"metadata": map[string]interface{}{
"labels": map[string]interface{}{oam.TraitTypeLabel: "a"},
},
}},
expectStrategy: GarbageCollectStrategyOnAppDelete,
},
"component type rule match": {
rules: []GarbageCollectPolicyRule{{
Selector: ResourcePolicyRuleSelector{CompTypes: []string{"comp"}},
Strategy: GarbageCollectStrategyNever,
}},
input: &unstructured.Unstructured{Object: map[string]interface{}{
"metadata": map[string]interface{}{
"labels": map[string]interface{}{oam.WorkloadTypeLabel: "comp"},
},
}},
expectStrategy: GarbageCollectStrategyNever,
},
"rule match both component type and trait type, component type first": {
rules: []GarbageCollectPolicyRule{
{
Selector: ResourcePolicyRuleSelector{CompTypes: []string{"comp"}},
Strategy: GarbageCollectStrategyNever,
},
{
Selector: ResourcePolicyRuleSelector{TraitTypes: []string{"trait"}},
Strategy: GarbageCollectStrategyOnAppDelete,
},
},
input: &unstructured.Unstructured{Object: map[string]interface{}{
"metadata": map[string]interface{}{
"labels": map[string]interface{}{oam.WorkloadTypeLabel: "comp", oam.TraitTypeLabel: "trait"},
},
}},
expectStrategy: GarbageCollectStrategyNever,
},
"component name rule match": {
rules: []GarbageCollectPolicyRule{{
Selector: ResourcePolicyRuleSelector{CompNames: []string{"comp-name"}},
Strategy: GarbageCollectStrategyNever,
}},
input: &unstructured.Unstructured{Object: map[string]interface{}{
"metadata": map[string]interface{}{
"labels": map[string]interface{}{oam.LabelAppComponent: "comp-name"},
},
}},
expectStrategy: GarbageCollectStrategyNever,
},
"resource type rule match": {
rules: []GarbageCollectPolicyRule{{
Selector: ResourcePolicyRuleSelector{OAMResourceTypes: []string{"TRAIT"}},
Strategy: GarbageCollectStrategyNever,
}},
input: &unstructured.Unstructured{Object: map[string]interface{}{
"metadata": map[string]interface{}{
"labels": map[string]interface{}{oam.LabelOAMResourceType: "TRAIT"},
},
}},
expectStrategy: GarbageCollectStrategyNever,
},
}
for name, tc := range testCases {
t.Run(name, func(t *testing.T) {
r := require.New(t)
spec := GarbageCollectPolicySpec{Rules: tc.rules}
strategy := spec.FindStrategy(tc.input)
if tc.notFound {
r.Nil(strategy)
} else {
r.Equal(tc.expectStrategy, *strategy)
}
})
}
}

View File

@@ -0,0 +1,55 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
package v1alpha1
const (
// TopologyPolicyType refers to the type of topology policy
TopologyPolicyType = "topology"
// OverridePolicyType refers to the type of override policy
OverridePolicyType = "override"
// DebugPolicyType refers to the type of debug policy
DebugPolicyType = "debug"
)
// TopologyPolicySpec defines the spec of topology policy
type TopologyPolicySpec struct {
// Placement embeds the selectors for choosing cluster
Placement `json:",inline"`
// Namespace is the target namespace to deploy in the selected clusters.
// +optional
Namespace string `json:"namespace,omitempty"`
}
// Placement describes which clusters to be selected in this topology
type Placement struct {
// Clusters is the names of the clusters to select.
Clusters []string `json:"clusters,omitempty"`
// ClusterLabelSelector is the label selector for clusters.
// Exclusive to "clusters"
ClusterLabelSelector map[string]string `json:"clusterLabelSelector,omitempty"`
// DeprecatedClusterSelector is a depreciated alias for ClusterLabelSelector.
// Deprecated: Use clusterLabelSelector instead.
DeprecatedClusterSelector map[string]string `json:"clusterSelector,omitempty"`
}
// OverridePolicySpec defines the spec of override policy
type OverridePolicySpec struct {
Components []EnvComponentPatch `json:"components,omitempty"`
Selector []string `json:"selector,omitempty"`
}

View File

@@ -0,0 +1,58 @@
/*
Copyright 2021. The KubeVela Authors.
Licensed 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.
*/
package v1alpha1
import (
"k8s.io/apimachinery/pkg/runtime/schema"
"sigs.k8s.io/controller-runtime/pkg/scheme"
"github.com/oam-dev/kubevela/apis/core.oam.dev/common"
)
// Package type metadata.
const (
Group = common.Group
Version = "v1alpha1"
)
var (
// SchemeGroupVersion is group version used to register these objects
SchemeGroupVersion = schema.GroupVersion{Group: Group, Version: Version}
// SchemeBuilder is used to add go types to the GroupVersionKind scheme
SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}
// AddToScheme is a global function that registers this API group & version to a scheme
AddToScheme = SchemeBuilder.AddToScheme
)
// Policy meta
var (
PolicyKind = "Policy"
PolicyGroupVersionKind = SchemeGroupVersion.WithKind(PolicyKind)
)
// Workflow meta
var (
WorkflowKind = "Workflow"
WorkflowGroupVersionKind = SchemeGroupVersion.WithKind(WorkflowKind)
)
func init() {
SchemeBuilder.Register(&Policy{}, &PolicyList{})
SchemeBuilder.Register(&Workflow{}, &WorkflowList{})
}

View File

@@ -0,0 +1,728 @@
//go:build !ignore_autogenerated
// +build !ignore_autogenerated
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
// Code generated by controller-gen. DO NOT EDIT.
package v1alpha1
import (
"k8s.io/apimachinery/pkg/runtime"
"github.com/oam-dev/kubevela/apis/core.oam.dev/common"
)
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ApplyOncePolicyRule) DeepCopyInto(out *ApplyOncePolicyRule) {
*out = *in
in.Selector.DeepCopyInto(&out.Selector)
if in.Strategy != nil {
in, out := &in.Strategy, &out.Strategy
*out = new(ApplyOnceStrategy)
(*in).DeepCopyInto(*out)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplyOncePolicyRule.
func (in *ApplyOncePolicyRule) DeepCopy() *ApplyOncePolicyRule {
if in == nil {
return nil
}
out := new(ApplyOncePolicyRule)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ApplyOncePolicySpec) DeepCopyInto(out *ApplyOncePolicySpec) {
*out = *in
if in.Rules != nil {
in, out := &in.Rules, &out.Rules
*out = make([]ApplyOncePolicyRule, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplyOncePolicySpec.
func (in *ApplyOncePolicySpec) DeepCopy() *ApplyOncePolicySpec {
if in == nil {
return nil
}
out := new(ApplyOncePolicySpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ApplyOnceStrategy) DeepCopyInto(out *ApplyOnceStrategy) {
*out = *in
if in.Path != nil {
in, out := &in.Path, &out.Path
*out = make([]string, len(*in))
copy(*out, *in)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplyOnceStrategy.
func (in *ApplyOnceStrategy) DeepCopy() *ApplyOnceStrategy {
if in == nil {
return nil
}
out := new(ApplyOnceStrategy)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClusterConnection) DeepCopyInto(out *ClusterConnection) {
*out = *in
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterConnection.
func (in *ClusterConnection) DeepCopy() *ClusterConnection {
if in == nil {
return nil
}
out := new(ClusterConnection)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *EnvBindingSpec) DeepCopyInto(out *EnvBindingSpec) {
*out = *in
if in.Envs != nil {
in, out := &in.Envs, &out.Envs
*out = make([]EnvConfig, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvBindingSpec.
func (in *EnvBindingSpec) DeepCopy() *EnvBindingSpec {
if in == nil {
return nil
}
out := new(EnvBindingSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *EnvBindingStatus) DeepCopyInto(out *EnvBindingStatus) {
*out = *in
if in.Envs != nil {
in, out := &in.Envs, &out.Envs
*out = make([]EnvStatus, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
if in.ClusterConnections != nil {
in, out := &in.ClusterConnections, &out.ClusterConnections
*out = make([]ClusterConnection, len(*in))
copy(*out, *in)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvBindingStatus.
func (in *EnvBindingStatus) DeepCopy() *EnvBindingStatus {
if in == nil {
return nil
}
out := new(EnvBindingStatus)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *EnvComponentPatch) DeepCopyInto(out *EnvComponentPatch) {
*out = *in
if in.Properties != nil {
in, out := &in.Properties, &out.Properties
*out = new(runtime.RawExtension)
(*in).DeepCopyInto(*out)
}
if in.Traits != nil {
in, out := &in.Traits, &out.Traits
*out = make([]EnvTraitPatch, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvComponentPatch.
func (in *EnvComponentPatch) DeepCopy() *EnvComponentPatch {
if in == nil {
return nil
}
out := new(EnvComponentPatch)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *EnvConfig) DeepCopyInto(out *EnvConfig) {
*out = *in
in.Placement.DeepCopyInto(&out.Placement)
if in.Selector != nil {
in, out := &in.Selector, &out.Selector
*out = new(EnvSelector)
(*in).DeepCopyInto(*out)
}
in.Patch.DeepCopyInto(&out.Patch)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvConfig.
func (in *EnvConfig) DeepCopy() *EnvConfig {
if in == nil {
return nil
}
out := new(EnvConfig)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *EnvPatch) DeepCopyInto(out *EnvPatch) {
*out = *in
if in.Components != nil {
in, out := &in.Components, &out.Components
*out = make([]EnvComponentPatch, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvPatch.
func (in *EnvPatch) DeepCopy() *EnvPatch {
if in == nil {
return nil
}
out := new(EnvPatch)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *EnvPlacement) DeepCopyInto(out *EnvPlacement) {
*out = *in
if in.ClusterSelector != nil {
in, out := &in.ClusterSelector, &out.ClusterSelector
*out = new(common.ClusterSelector)
(*in).DeepCopyInto(*out)
}
if in.NamespaceSelector != nil {
in, out := &in.NamespaceSelector, &out.NamespaceSelector
*out = new(NamespaceSelector)
(*in).DeepCopyInto(*out)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvPlacement.
func (in *EnvPlacement) DeepCopy() *EnvPlacement {
if in == nil {
return nil
}
out := new(EnvPlacement)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *EnvSelector) DeepCopyInto(out *EnvSelector) {
*out = *in
if in.Components != nil {
in, out := &in.Components, &out.Components
*out = make([]string, len(*in))
copy(*out, *in)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvSelector.
func (in *EnvSelector) DeepCopy() *EnvSelector {
if in == nil {
return nil
}
out := new(EnvSelector)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *EnvStatus) DeepCopyInto(out *EnvStatus) {
*out = *in
if in.Placements != nil {
in, out := &in.Placements, &out.Placements
*out = make([]PlacementDecision, len(*in))
copy(*out, *in)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvStatus.
func (in *EnvStatus) DeepCopy() *EnvStatus {
if in == nil {
return nil
}
out := new(EnvStatus)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *EnvTraitPatch) DeepCopyInto(out *EnvTraitPatch) {
*out = *in
if in.Properties != nil {
in, out := &in.Properties, &out.Properties
*out = new(runtime.RawExtension)
(*in).DeepCopyInto(*out)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvTraitPatch.
func (in *EnvTraitPatch) DeepCopy() *EnvTraitPatch {
if in == nil {
return nil
}
out := new(EnvTraitPatch)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *GarbageCollectPolicyRule) DeepCopyInto(out *GarbageCollectPolicyRule) {
*out = *in
in.Selector.DeepCopyInto(&out.Selector)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GarbageCollectPolicyRule.
func (in *GarbageCollectPolicyRule) DeepCopy() *GarbageCollectPolicyRule {
if in == nil {
return nil
}
out := new(GarbageCollectPolicyRule)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *GarbageCollectPolicySpec) DeepCopyInto(out *GarbageCollectPolicySpec) {
*out = *in
if in.Rules != nil {
in, out := &in.Rules, &out.Rules
*out = make([]GarbageCollectPolicyRule, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GarbageCollectPolicySpec.
func (in *GarbageCollectPolicySpec) DeepCopy() *GarbageCollectPolicySpec {
if in == nil {
return nil
}
out := new(GarbageCollectPolicySpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *LegacyObjectTypeIdentifier) DeepCopyInto(out *LegacyObjectTypeIdentifier) {
*out = *in
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LegacyObjectTypeIdentifier.
func (in *LegacyObjectTypeIdentifier) DeepCopy() *LegacyObjectTypeIdentifier {
if in == nil {
return nil
}
out := new(LegacyObjectTypeIdentifier)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *NamespaceSelector) DeepCopyInto(out *NamespaceSelector) {
*out = *in
if in.Labels != nil {
in, out := &in.Labels, &out.Labels
*out = make(map[string]string, len(*in))
for key, val := range *in {
(*out)[key] = val
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceSelector.
func (in *NamespaceSelector) DeepCopy() *NamespaceSelector {
if in == nil {
return nil
}
out := new(NamespaceSelector)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ObjectReferrer) DeepCopyInto(out *ObjectReferrer) {
*out = *in
out.ObjectTypeIdentifier = in.ObjectTypeIdentifier
in.ObjectSelector.DeepCopyInto(&out.ObjectSelector)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectReferrer.
func (in *ObjectReferrer) DeepCopy() *ObjectReferrer {
if in == nil {
return nil
}
out := new(ObjectReferrer)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ObjectSelector) DeepCopyInto(out *ObjectSelector) {
*out = *in
if in.LabelSelector != nil {
in, out := &in.LabelSelector, &out.LabelSelector
*out = make(map[string]string, len(*in))
for key, val := range *in {
(*out)[key] = val
}
}
if in.DeprecatedLabelSelector != nil {
in, out := &in.DeprecatedLabelSelector, &out.DeprecatedLabelSelector
*out = make(map[string]string, len(*in))
for key, val := range *in {
(*out)[key] = val
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectSelector.
func (in *ObjectSelector) DeepCopy() *ObjectSelector {
if in == nil {
return nil
}
out := new(ObjectSelector)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ObjectTypeIdentifier) DeepCopyInto(out *ObjectTypeIdentifier) {
*out = *in
out.LegacyObjectTypeIdentifier = in.LegacyObjectTypeIdentifier
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectTypeIdentifier.
func (in *ObjectTypeIdentifier) DeepCopy() *ObjectTypeIdentifier {
if in == nil {
return nil
}
out := new(ObjectTypeIdentifier)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *OverridePolicySpec) DeepCopyInto(out *OverridePolicySpec) {
*out = *in
if in.Components != nil {
in, out := &in.Components, &out.Components
*out = make([]EnvComponentPatch, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
if in.Selector != nil {
in, out := &in.Selector, &out.Selector
*out = make([]string, len(*in))
copy(*out, *in)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OverridePolicySpec.
func (in *OverridePolicySpec) DeepCopy() *OverridePolicySpec {
if in == nil {
return nil
}
out := new(OverridePolicySpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Placement) DeepCopyInto(out *Placement) {
*out = *in
if in.Clusters != nil {
in, out := &in.Clusters, &out.Clusters
*out = make([]string, len(*in))
copy(*out, *in)
}
if in.ClusterLabelSelector != nil {
in, out := &in.ClusterLabelSelector, &out.ClusterLabelSelector
*out = make(map[string]string, len(*in))
for key, val := range *in {
(*out)[key] = val
}
}
if in.DeprecatedClusterSelector != nil {
in, out := &in.DeprecatedClusterSelector, &out.DeprecatedClusterSelector
*out = make(map[string]string, len(*in))
for key, val := range *in {
(*out)[key] = val
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Placement.
func (in *Placement) DeepCopy() *Placement {
if in == nil {
return nil
}
out := new(Placement)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PlacementDecision) DeepCopyInto(out *PlacementDecision) {
*out = *in
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlacementDecision.
func (in *PlacementDecision) DeepCopy() *PlacementDecision {
if in == nil {
return nil
}
out := new(PlacementDecision)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Policy) DeepCopyInto(out *Policy) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
if in.Properties != nil {
in, out := &in.Properties, &out.Properties
*out = new(runtime.RawExtension)
(*in).DeepCopyInto(*out)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Policy.
func (in *Policy) DeepCopy() *Policy {
if in == nil {
return nil
}
out := new(Policy)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *Policy) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
return nil
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PolicyList) DeepCopyInto(out *PolicyList) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ListMeta.DeepCopyInto(&out.ListMeta)
if in.Items != nil {
in, out := &in.Items, &out.Items
*out = make([]Policy, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyList.
func (in *PolicyList) DeepCopy() *PolicyList {
if in == nil {
return nil
}
out := new(PolicyList)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *PolicyList) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
return nil
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RefObjectsComponentSpec) DeepCopyInto(out *RefObjectsComponentSpec) {
*out = *in
if in.Objects != nil {
in, out := &in.Objects, &out.Objects
*out = make([]ObjectReferrer, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RefObjectsComponentSpec.
func (in *RefObjectsComponentSpec) DeepCopy() *RefObjectsComponentSpec {
if in == nil {
return nil
}
out := new(RefObjectsComponentSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ResourcePolicyRuleSelector) DeepCopyInto(out *ResourcePolicyRuleSelector) {
*out = *in
if in.CompNames != nil {
in, out := &in.CompNames, &out.CompNames
*out = make([]string, len(*in))
copy(*out, *in)
}
if in.CompTypes != nil {
in, out := &in.CompTypes, &out.CompTypes
*out = make([]string, len(*in))
copy(*out, *in)
}
if in.OAMResourceTypes != nil {
in, out := &in.OAMResourceTypes, &out.OAMResourceTypes
*out = make([]string, len(*in))
copy(*out, *in)
}
if in.TraitTypes != nil {
in, out := &in.TraitTypes, &out.TraitTypes
*out = make([]string, len(*in))
copy(*out, *in)
}
if in.ResourceTypes != nil {
in, out := &in.ResourceTypes, &out.ResourceTypes
*out = make([]string, len(*in))
copy(*out, *in)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourcePolicyRuleSelector.
func (in *ResourcePolicyRuleSelector) DeepCopy() *ResourcePolicyRuleSelector {
if in == nil {
return nil
}
out := new(ResourcePolicyRuleSelector)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TopologyPolicySpec) DeepCopyInto(out *TopologyPolicySpec) {
*out = *in
in.Placement.DeepCopyInto(&out.Placement)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologyPolicySpec.
func (in *TopologyPolicySpec) DeepCopy() *TopologyPolicySpec {
if in == nil {
return nil
}
out := new(TopologyPolicySpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Workflow) DeepCopyInto(out *Workflow) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
if in.Steps != nil {
in, out := &in.Steps, &out.Steps
*out = make([]common.WorkflowStep, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Workflow.
func (in *Workflow) DeepCopy() *Workflow {
if in == nil {
return nil
}
out := new(Workflow)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *Workflow) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
return nil
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *WorkflowList) DeepCopyInto(out *WorkflowList) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ListMeta.DeepCopyInto(&out.ListMeta)
if in.Items != nil {
in, out := &in.Items, &out.Items
*out = make([]Workflow, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowList.
func (in *WorkflowList) DeepCopy() *WorkflowList {
if in == nil {
return nil
}
out := new(WorkflowList)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *WorkflowList) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
return nil
}

View File

@@ -0,0 +1,123 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
package v1alpha2
import (
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"github.com/oam-dev/kubevela/apis/core.oam.dev/common"
"github.com/oam-dev/kubevela/apis/standard.oam.dev/v1alpha1"
)
// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN!
// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized.
// AppStatus defines the observed state of Application
type AppStatus struct {
// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
// Important: Run "make" to regenerate code after modifying this file
v1alpha1.RolloutStatus `json:",inline"`
Phase common.ApplicationPhase `json:"status,omitempty"`
// Components record the related Components created by Application Controller
Components []corev1.ObjectReference `json:"components,omitempty"`
// Services record the status of the application services
Services []common.ApplicationComponentStatus `json:"services,omitempty"`
// ResourceTracker record the status of the ResourceTracker
ResourceTracker *corev1.ObjectReference `json:"resourceTracker,omitempty"`
// LatestRevision of the application configuration it generates
// +optional
LatestRevision *common.Revision `json:"latestRevision,omitempty"`
}
// ApplicationTrait defines the trait of application
type ApplicationTrait struct {
Name string `json:"name"`
// +kubebuilder:pruning:PreserveUnknownFields
Properties *runtime.RawExtension `json:"properties,omitempty"`
}
// ApplicationComponent describe the component of application
type ApplicationComponent struct {
Name string `json:"name"`
WorkloadType string `json:"type"`
// +kubebuilder:pruning:PreserveUnknownFields
Settings runtime.RawExtension `json:"settings,omitempty"`
// Traits define the trait of one component, the type must be array to keep the order.
Traits []ApplicationTrait `json:"traits,omitempty"`
// +kubebuilder:pruning:PreserveUnknownFields
// scopes in ApplicationComponent defines the component-level scopes
// the format is <scope-type:scope-instance-name> pairs, the key represents type of `ScopeDefinition` while the value represent the name of scope instance.
Scopes map[string]string `json:"scopes,omitempty"`
}
// ApplicationSpec is the spec of Application
type ApplicationSpec struct {
Components []ApplicationComponent `json:"components"`
// TODO(wonderflow): we should have application level scopes supported here
// RolloutPlan is the details on how to rollout the resources
// The controller simply replace the old resources with the new one if there is no rollout plan involved
// +optional
RolloutPlan *v1alpha1.RolloutPlan `json:"rolloutPlan,omitempty"`
}
// Application is the Schema for the applications API
// +kubebuilder:object:root=true
// +kubebuilder:resource:categories={oam},shortName={app,velaapp}
// +kubebuilder:subresource:status
// +kubebuilder:printcolumn:name="COMPONENT",type=string,JSONPath=`.spec.components[*].name`
// +kubebuilder:printcolumn:name="TYPE",type=string,JSONPath=`.spec.components[*].type`
// +kubebuilder:printcolumn:name="PHASE",type=string,JSONPath=`.status.status`
// +kubebuilder:printcolumn:name="HEALTHY",type=boolean,JSONPath=`.status.services[*].healthy`
// +kubebuilder:printcolumn:name="STATUS",type=string,JSONPath=`.status.services[*].message`
// +kubebuilder:printcolumn:name="AGE",type=date,JSONPath=".metadata.creationTimestamp"
type Application struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ApplicationSpec `json:"spec,omitempty"`
Status common.AppStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// ApplicationList contains a list of Application
type ApplicationList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Application `json:"items"`
}
// GetComponent get the component from the application based on its workload type
func (app *Application) GetComponent(workloadType string) *ApplicationComponent {
for _, c := range app.Spec.Components {
if c.WorkloadType == workloadType {
return &c
}
}
return nil
}

View File

@@ -0,0 +1,68 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
package v1alpha2
import (
"reflect"
"testing"
)
func TestApplicationGetComponent(t *testing.T) {
ac1 := ApplicationComponent{
Name: "ac1",
WorkloadType: "type1",
}
ac2 := ApplicationComponent{
Name: "ac2",
WorkloadType: "type2",
}
tests := map[string]struct {
app *Application
componentName string
want *ApplicationComponent
}{
"test get one": {
app: &Application{
Spec: ApplicationSpec{
Components: []ApplicationComponent{
ac1, ac2,
},
},
},
componentName: ac1.WorkloadType,
want: &ac1,
},
"test get none": {
app: &Application{
Spec: ApplicationSpec{
Components: []ApplicationComponent{
ac2,
},
},
},
componentName: ac1.WorkloadType,
want: nil,
},
}
for name, tt := range tests {
t.Run(name, func(t *testing.T) {
if got := tt.app.GetComponent(tt.componentName); !reflect.DeepEqual(got, tt.want) {
t.Errorf("GetComponent() = %v, want %v", got, tt.want)
}
})
}
}

View File

@@ -0,0 +1,73 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
package v1alpha2
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"github.com/oam-dev/kubevela/apis/core.oam.dev/common"
)
// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized.
// ApplicationRevisionSpec is the spec of ApplicationRevision
type ApplicationRevisionSpec struct {
// Application records the snapshot of the created/modified Application
Application Application `json:"application"`
// ComponentDefinitions records the snapshot of the componentDefinitions related with the created/modified Application
ComponentDefinitions map[string]ComponentDefinition `json:"componentDefinitions,omitempty"`
// WorkloadDefinitions records the snapshot of the workloadDefinitions related with the created/modified Application
WorkloadDefinitions map[string]WorkloadDefinition `json:"workloadDefinitions,omitempty"`
// TraitDefinitions records the snapshot of the traitDefinitions related with the created/modified Application
TraitDefinitions map[string]TraitDefinition `json:"traitDefinitions,omitempty"`
// ScopeDefinitions records the snapshot of the scopeDefinitions related with the created/modified Application
ScopeDefinitions map[string]ScopeDefinition `json:"scopeDefinitions,omitempty"`
// Components records the rendered components from Application, it will contains the whole K8s CR of workload in it.
Components []common.RawComponent `json:"components,omitempty"`
// ApplicationConfiguration records the rendered applicationConfiguration from Application,
// it will contains the whole K8s CR of trait and the reference component in it.
// +kubebuilder:validation:EmbeddedResource
// +kubebuilder:pruning:PreserveUnknownFields
ApplicationConfiguration runtime.RawExtension `json:"applicationConfiguration"`
}
// ApplicationRevision is the Schema for the ApplicationRevision API
// +kubebuilder:object:root=true
// +kubebuilder:resource:categories={oam},shortName=apprev
// +kubebuilder:printcolumn:name="AGE",type=date,JSONPath=".metadata.creationTimestamp"
type ApplicationRevision struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ApplicationRevisionSpec `json:"spec,omitempty"`
}
// ApplicationRevisionList contains a list of ApplicationRevision
// +kubebuilder:object:root=true
type ApplicationRevisionList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ApplicationRevision `json:"items"`
}

View File

@@ -0,0 +1,103 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
package v1alpha2
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"github.com/oam-dev/kubevela/apis/core.oam.dev/condition"
"github.com/oam-dev/kubevela/apis/core.oam.dev/common"
)
// ComponentDefinitionSpec defines the desired state of ComponentDefinition
type ComponentDefinitionSpec struct {
// Workload is a workload type descriptor
Workload common.WorkloadTypeDescriptor `json:"workload"`
// ChildResourceKinds are the list of GVK of the child resources this workload generates
ChildResourceKinds []common.ChildResourceKind `json:"childResourceKinds,omitempty"`
// RevisionLabel indicates which label for underlying resources(e.g. pods) of this workload
// can be used by trait to create resource selectors(e.g. label selector for pods).
// +optional
RevisionLabel string `json:"revisionLabel,omitempty"`
// PodSpecPath indicates where/if this workload has K8s podSpec field
// if one workload has podSpec, trait can do lot's of assumption such as port, env, volume fields.
// +optional
PodSpecPath string `json:"podSpecPath,omitempty"`
// Status defines the custom health policy and status message for workload
// +optional
Status *common.Status `json:"status,omitempty"`
// Schematic defines the data format and template of the encapsulation of the workload
// +optional
Schematic *common.Schematic `json:"schematic,omitempty"`
// Extension is used for extension needs by OAM platform builders
// +optional
// +kubebuilder:pruning:PreserveUnknownFields
Extension *runtime.RawExtension `json:"extension,omitempty"`
}
// ComponentDefinitionStatus is the status of ComponentDefinition
type ComponentDefinitionStatus struct {
// ConditionedStatus reflects the observed status of a resource
condition.ConditionedStatus `json:",inline"`
// ConfigMapRef refer to a ConfigMap which contains OpenAPI V3 JSON schema of Component parameters.
ConfigMapRef string `json:"configMapRef,omitempty"`
// LatestRevision of the component definition
// +optional
LatestRevision *common.Revision `json:"latestRevision,omitempty"`
}
// +kubebuilder:object:root=true
// ComponentDefinition is the Schema for the componentdefinitions API
// +kubebuilder:resource:scope=Namespaced,categories={oam},shortName=comp
// +kubebuilder:subresource:status
// +kubebuilder:printcolumn:name="WORKLOAD-KIND",type=string,JSONPath=".spec.workload.definition.kind"
// +kubebuilder:printcolumn:name="DESCRIPTION",type=string,JSONPath=".metadata.annotations.definition\\.oam\\.dev/description"
type ComponentDefinition struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ComponentDefinitionSpec `json:"spec,omitempty"`
Status ComponentDefinitionStatus `json:"status,omitempty"`
}
// SetConditions set condition for WorkloadDefinition
func (cd *ComponentDefinition) SetConditions(c ...condition.Condition) {
cd.Status.SetConditions(c...)
}
// GetCondition gets condition from WorkloadDefinition
func (cd *ComponentDefinition) GetCondition(conditionType condition.ConditionType) condition.Condition {
return cd.Status.GetCondition(conditionType)
}
// +kubebuilder:object:root=true
// ComponentDefinitionList contains a list of ComponentDefinition
type ComponentDefinitionList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ComponentDefinition `json:"items"`
}

View File

@@ -0,0 +1,139 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
package v1alpha2
import (
"fmt"
"reflect"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/klog/v2"
"sigs.k8s.io/controller-runtime/pkg/conversion"
"github.com/oam-dev/kubevela/apis/core.oam.dev/common"
"github.com/oam-dev/kubevela/apis/core.oam.dev/v1beta1"
)
// ApplicationV1alpha2ToV1beta1 will convert v1alpha2 to v1beta1
func ApplicationV1alpha2ToV1beta1(v1a2 *Application, v1b1 *v1beta1.Application) {
// 1) convert metav1.TypeMeta
// apiVersion and Kind automatically converted
// 2) convert metav1.ObjectMeta
v1b1.ObjectMeta = *v1a2.ObjectMeta.DeepCopy()
// 3) convert Spec ApplicationSpec
// 3.1) convert Spec.Components
for _, comp := range v1a2.Spec.Components {
// convert trait, especially for `.name` -> `.type`
var traits = make([]common.ApplicationTrait, len(comp.Traits))
for j, trait := range comp.Traits {
traits[j] = common.ApplicationTrait{
Type: trait.Name,
Properties: trait.Properties.DeepCopy(),
}
}
// deep copy scopes
scopes := make(map[string]string)
for k, v := range comp.Scopes {
scopes[k] = v
}
// convert component
// `.settings` -> `.properties`
v1b1.Spec.Components = append(v1b1.Spec.Components, common.ApplicationComponent{
Name: comp.Name,
Type: comp.WorkloadType,
Properties: comp.Settings.DeepCopy(),
Traits: traits,
Scopes: scopes,
})
}
// 4) convert Status common.AppStatus
v1b1.Status = *v1a2.Status.DeepCopy()
}
// ConvertTo converts this Application to the Hub version (v1beta1 only for now).
func (app *Application) ConvertTo(dst conversion.Hub) error {
switch convertedApp := dst.(type) {
case *v1beta1.Application:
klog.Infof("convert *v1alpha2.Application [%s] to *v1beta1.Application", app.Name)
ApplicationV1alpha2ToV1beta1(app, convertedApp)
return nil
default:
}
return fmt.Errorf("unsupported convertTo object %v", reflect.TypeOf(dst))
}
// ConvertFrom converts from the Hub version (v1beta1) to this version (v1alpha2).
func (app *Application) ConvertFrom(src conversion.Hub) error {
switch sourceApp := src.(type) {
case *v1beta1.Application:
klog.Infof("convert *v1alpha2.Application from *v1beta1.Application [%s]", sourceApp.Name)
// 1) convert metav1.TypeMeta
// apiVersion and Kind automatically converted
// 2) convert metav1.ObjectMeta
app.ObjectMeta = *sourceApp.ObjectMeta.DeepCopy()
// 3) convert Spec ApplicationSpec
// 3.1) convert Spec.Components
for _, comp := range sourceApp.Spec.Components {
// convert trait, especially for `.type` -> `.name`
var traits = make([]ApplicationTrait, len(comp.Traits))
for j, trait := range comp.Traits {
traits[j] = ApplicationTrait{
Name: trait.Type,
Properties: trait.Properties.DeepCopy(),
}
}
// deep copy scopes
scopes := make(map[string]string)
for k, v := range comp.Scopes {
scopes[k] = v
}
// convert component
// `.properties` -> `.settings`
var compProperties runtime.RawExtension
if comp.Properties != nil {
compProperties = *comp.Properties.DeepCopy()
}
app.Spec.Components = append(app.Spec.Components, ApplicationComponent{
Name: comp.Name,
WorkloadType: comp.Type,
Settings: compProperties,
Traits: traits,
Scopes: scopes,
})
}
// 4) convert Status common.AppStatus
app.Status = *sourceApp.Status.DeepCopy()
return nil
default:
}
return fmt.Errorf("unsupported ConvertFrom object %v", reflect.TypeOf(src))
}

View File

@@ -0,0 +1,117 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
package v1alpha2
import (
"fmt"
"testing"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"github.com/stretchr/testify/require"
"github.com/oam-dev/kubevela/apis/core.oam.dev/common"
"github.com/oam-dev/kubevela/apis/core.oam.dev/v1beta1"
)
var app = Application{
Spec: ApplicationSpec{
Components: []ApplicationComponent{{
Name: "test-component",
WorkloadType: "worker",
Traits: []ApplicationTrait{},
Scopes: map[string]string{},
}},
},
}
type errType struct {
}
func (*errType) Hub() {}
func (*errType) DeepCopyObject() runtime.Object {
return nil
}
func (*errType) GetObjectKind() schema.ObjectKind {
return nil
}
func TestApplicationV1alpha2ToV1beta1(t *testing.T) {
r := require.New(t)
expected := &v1beta1.Application{}
ApplicationV1alpha2ToV1beta1(&app, expected)
r.Equal(expected, &v1beta1.Application{
Spec: v1beta1.ApplicationSpec{
Components: []common.ApplicationComponent{{
Name: "test-component",
Type: "worker",
Properties: &runtime.RawExtension{},
Traits: []common.ApplicationTrait{},
Scopes: map[string]string{},
}},
},
})
}
func TestConvertTo(t *testing.T) {
r := require.New(t)
expected := &v1beta1.Application{}
err := app.ConvertTo(expected)
r.NoError(err)
r.Equal(expected, &v1beta1.Application{
Spec: v1beta1.ApplicationSpec{
Components: []common.ApplicationComponent{{
Name: "test-component",
Type: "worker",
Properties: &runtime.RawExtension{},
Traits: []common.ApplicationTrait{},
Scopes: map[string]string{},
}},
},
})
errCase := &errType{}
err = app.ConvertTo(errCase)
r.Equal(err, fmt.Errorf("unsupported convertTo object *v1alpha2.errType"))
}
func TestConvertFrom(t *testing.T) {
r := require.New(t)
to := &Application{}
from := &v1beta1.Application{
Spec: v1beta1.ApplicationSpec{
Components: []common.ApplicationComponent{{
Name: "test-component",
Type: "worker",
Properties: &runtime.RawExtension{},
Traits: []common.ApplicationTrait{},
Scopes: map[string]string{},
}},
},
}
err := to.ConvertFrom(from)
r.NoError(err)
r.Equal(to.Spec, app.Spec)
errCase := &errType{}
err = app.ConvertFrom(errCase)
r.Equal(err, fmt.Errorf("unsupported ConvertFrom object *v1alpha2.errType"))
}

View File

@@ -0,0 +1,146 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
package v1alpha2
import (
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"github.com/oam-dev/kubevela/apis/core.oam.dev/condition"
"github.com/oam-dev/kubevela/pkg/oam"
)
// HealthStatus represents health status strings.
type HealthStatus string
const (
// StatusHealthy represents healthy status.
StatusHealthy HealthStatus = "HEALTHY"
// StatusUnhealthy represents unhealthy status.
StatusUnhealthy = "UNHEALTHY"
// StatusUnknown represents unknown status.
StatusUnknown = "UNKNOWN"
)
var _ oam.Scope = &HealthScope{}
// A HealthScopeSpec defines the desired state of a HealthScope.
type HealthScopeSpec struct {
// ProbeTimeout is the amount of time in seconds to wait when receiving a response before marked failure.
ProbeTimeout *int32 `json:"probe-timeout,omitempty"`
// ProbeInterval is the amount of time in seconds between probing tries.
ProbeInterval *int32 `json:"probe-interval,omitempty"`
// AppRefs records references of applications' components
AppRefs []AppReference `json:"appReferences,omitempty"`
// WorkloadReferences to the workloads that are in this scope.
// +deprecated
WorkloadReferences []corev1.ObjectReference `json:"workloadRefs"`
}
// AppReference records references of an application's components
type AppReference struct {
AppName string `json:"appName,omitempty"`
CompReferences []CompReference `json:"compReferences,omitempty"`
}
// CompReference records references of a component's resources
type CompReference struct {
CompName string `json:"compName,omitempty"`
Workload corev1.ObjectReference `json:"workload,omitempty"`
Traits []corev1.ObjectReference `json:"traits,omitempty"`
}
// A HealthScopeStatus represents the observed state of a HealthScope.
type HealthScopeStatus struct {
condition.ConditionedStatus `json:",inline"`
// ScopeHealthCondition represents health condition summary of the scope
ScopeHealthCondition ScopeHealthCondition `json:"scopeHealthCondition"`
// AppHealthConditions represents health condition of applications in the scope
AppHealthConditions []*AppHealthCondition `json:"appHealthConditions,omitempty"`
// WorkloadHealthConditions represents health condition of workloads in the scope
// Use AppHealthConditions to provide app level status
// +deprecated
WorkloadHealthConditions []*WorkloadHealthCondition `json:"healthConditions,omitempty"`
}
// AppHealthCondition represents health condition of an application
type AppHealthCondition struct {
AppName string `json:"appName"`
EnvName string `json:"envName,omitempty"`
Components []*WorkloadHealthCondition `json:"components,omitempty"`
}
// ScopeHealthCondition represents health condition summary of a scope.
type ScopeHealthCondition struct {
HealthStatus HealthStatus `json:"healthStatus"`
Total int64 `json:"total,omitempty"`
HealthyWorkloads int64 `json:"healthyWorkloads,omitempty"`
UnhealthyWorkloads int64 `json:"unhealthyWorkloads,omitempty"`
UnknownWorkloads int64 `json:"unknownWorkloads,omitempty"`
}
// WorkloadHealthCondition represents informative health condition of a workload.
type WorkloadHealthCondition struct {
// ComponentName represents the component name if target is a workload
ComponentName string `json:"componentName,omitempty"`
TargetWorkload corev1.ObjectReference `json:"targetWorkload,omitempty"`
HealthStatus HealthStatus `json:"healthStatus"`
Diagnosis string `json:"diagnosis,omitempty"`
// WorkloadStatus represents status of workloads whose HealthStatus is UNKNOWN.
WorkloadStatus string `json:"workloadStatus,omitempty"`
CustomStatusMsg string `json:"customStatusMsg,omitempty"`
Traits []*TraitHealthCondition `json:"traits,omitempty"`
}
// TraitHealthCondition represents informative health condition of a trait.
type TraitHealthCondition struct {
Type string `json:"type"`
Resource string `json:"resource"`
HealthStatus HealthStatus `json:"healthStatus"`
Diagnosis string `json:"diagnosis,omitempty"`
CustomStatusMsg string `json:"customStatusMsg,omitempty"`
}
// +kubebuilder:object:root=true
// A HealthScope determines an aggregate health status based of the health of components.
// +kubebuilder:resource:categories={oam}
// +kubebuilder:subresource:status
// +kubebuilder:printcolumn:JSONPath=".status.health",name=HEALTH,type=string
type HealthScope struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec HealthScopeSpec `json:"spec,omitempty"`
Status HealthScopeStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// HealthScopeList contains a list of HealthScope.
type HealthScopeList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []HealthScope `json:"items"`
}

View File

@@ -0,0 +1,65 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
package v1alpha2
import (
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"github.com/oam-dev/kubevela/apis/core.oam.dev/condition"
"github.com/oam-dev/kubevela/pkg/oam"
)
var _ oam.Trait = &ManualScalerTrait{}
// A ManualScalerTraitSpec defines the desired state of a ManualScalerTrait.
type ManualScalerTraitSpec struct {
// ReplicaCount of the workload this trait applies to.
ReplicaCount int32 `json:"replicaCount"`
// WorkloadReference to the workload this trait applies to.
WorkloadReference corev1.ObjectReference `json:"workloadRef"`
}
// A ManualScalerTraitStatus represents the observed state of a
// ManualScalerTrait.
type ManualScalerTraitStatus struct {
condition.ConditionedStatus `json:",inline"`
}
// +kubebuilder:object:root=true
// A ManualScalerTrait determines how many replicas a workload should have.
// +kubebuilder:resource:categories={oam}
// +kubebuilder:subresource:status
type ManualScalerTrait struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ManualScalerTraitSpec `json:"spec,omitempty"`
Status ManualScalerTraitStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// ManualScalerTraitList contains a list of ManualScalerTrait.
type ManualScalerTraitList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ManualScalerTrait `json:"items"`
}

View File

@@ -0,0 +1,673 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
package v1alpha2
import (
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/intstr"
"github.com/oam-dev/kubevela/apis/core.oam.dev/condition"
"github.com/oam-dev/kubevela/apis/core.oam.dev/common"
"github.com/oam-dev/kubevela/apis/types"
)
// A WorkloadDefinitionSpec defines the desired state of a WorkloadDefinition.
type WorkloadDefinitionSpec struct {
// Reference to the CustomResourceDefinition that defines this workload kind.
Reference common.DefinitionReference `json:"definitionRef"`
// ChildResourceKinds are the list of GVK of the child resources this workload generates
ChildResourceKinds []common.ChildResourceKind `json:"childResourceKinds,omitempty"`
// RevisionLabel indicates which label for underlying resources(e.g. pods) of this workload
// can be used by trait to create resource selectors(e.g. label selector for pods).
// +optional
RevisionLabel string `json:"revisionLabel,omitempty"`
// PodSpecPath indicates where/if this workload has K8s podSpec field
// if one workload has podSpec, trait can do lot's of assumption such as port, env, volume fields.
// +optional
PodSpecPath string `json:"podSpecPath,omitempty"`
// Status defines the custom health policy and status message for workload
// +optional
Status *common.Status `json:"status,omitempty"`
// Schematic defines the data format and template of the encapsulation of the workload
// +optional
Schematic *common.Schematic `json:"schematic,omitempty"`
// Extension is used for extension needs by OAM platform builders
// +optional
// +kubebuilder:pruning:PreserveUnknownFields
Extension *runtime.RawExtension `json:"extension,omitempty"`
}
// WorkloadDefinitionStatus is the status of WorkloadDefinition
type WorkloadDefinitionStatus struct {
condition.ConditionedStatus `json:",inline"`
}
// +kubebuilder:object:root=true
// A WorkloadDefinition registers a kind of Kubernetes custom resource as a
// valid OAM workload kind by referencing its CustomResourceDefinition. The CRD
// is used to validate the schema of the workload when it is embedded in an OAM
// Component.
// +kubebuilder:resource:scope=Namespaced,categories={oam},shortName=workload
// +kubebuilder:printcolumn:name="DEFINITION-NAME",type=string,JSONPath=".spec.definitionRef.name"
type WorkloadDefinition struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec WorkloadDefinitionSpec `json:"spec,omitempty"`
Status WorkloadDefinitionStatus `json:"status,omitempty"`
}
// SetConditions set condition for WorkloadDefinition
func (wd *WorkloadDefinition) SetConditions(c ...condition.Condition) {
wd.Status.SetConditions(c...)
}
// GetCondition gets condition from WorkloadDefinition
func (wd *WorkloadDefinition) GetCondition(conditionType condition.ConditionType) condition.Condition {
return wd.Status.GetCondition(conditionType)
}
// +kubebuilder:object:root=true
// WorkloadDefinitionList contains a list of WorkloadDefinition.
type WorkloadDefinitionList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []WorkloadDefinition `json:"items"`
}
// A TraitDefinitionSpec defines the desired state of a TraitDefinition.
type TraitDefinitionSpec struct {
// Reference to the CustomResourceDefinition that defines this trait kind.
Reference common.DefinitionReference `json:"definitionRef,omitempty"`
// Revision indicates whether a trait is aware of component revision
// +optional
RevisionEnabled bool `json:"revisionEnabled,omitempty"`
// WorkloadRefPath indicates where/if a trait accepts a workloadRef object
// +optional
WorkloadRefPath string `json:"workloadRefPath,omitempty"`
// PodDisruptive specifies whether using the trait will cause the pod to restart or not.
// +optional
PodDisruptive bool `json:"podDisruptive,omitempty"`
// AppliesToWorkloads specifies the list of workload kinds this trait
// applies to. Workload kinds are specified in kind.group/version format,
// e.g. server.core.oam.dev/v1alpha2. Traits that omit this field apply to
// all workload kinds.
// +optional
AppliesToWorkloads []string `json:"appliesToWorkloads,omitempty"`
// ConflictsWith specifies the list of traits(CRD name, Definition name, CRD group)
// which could not apply to the same workloads with this trait.
// Traits that omit this field can work with any other traits.
// Example rules:
// "service" # Trait definition name
// "services.k8s.io" # API resource/crd name
// "*.networking.k8s.io" # API group
// "labelSelector:foo=bar" # label selector
// labelSelector format: https://pkg.go.dev/k8s.io/apimachinery/pkg/labels#Parse
// +optional
ConflictsWith []string `json:"conflictsWith,omitempty"`
// Schematic defines the data format and template of the encapsulation of the trait
// +optional
Schematic *common.Schematic `json:"schematic,omitempty"`
// Status defines the custom health policy and status message for trait
// +optional
Status *common.Status `json:"status,omitempty"`
// Extension is used for extension needs by OAM platform builders
// +optional
// +kubebuilder:pruning:PreserveUnknownFields
Extension *runtime.RawExtension `json:"extension,omitempty"`
}
// TraitDefinitionStatus is the status of TraitDefinition
type TraitDefinitionStatus struct {
// ConditionedStatus reflects the observed status of a resource
condition.ConditionedStatus `json:",inline"`
// ConfigMapRef refer to a ConfigMap which contains OpenAPI V3 JSON schema of Component parameters.
ConfigMapRef string `json:"configMapRef,omitempty"`
// LatestRevision of the trait definition
// +optional
LatestRevision *common.Revision `json:"latestRevision,omitempty"`
}
// +kubebuilder:object:root=true
// A TraitDefinition registers a kind of Kubernetes custom resource as a valid
// OAM trait kind by referencing its CustomResourceDefinition. The CRD is used
// to validate the schema of the trait when it is embedded in an OAM
// ApplicationConfiguration.
// +kubebuilder:resource:scope=Namespaced,categories={oam},shortName=trait
// +kubebuilder:subresource:status
// +kubebuilder:printcolumn:name="APPLIES-TO",type=string,JSONPath=".spec.appliesToWorkloads"
// +kubebuilder:printcolumn:name="DESCRIPTION",type=string,JSONPath=".metadata.annotations.definition\\.oam\\.dev/description"
type TraitDefinition struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec TraitDefinitionSpec `json:"spec,omitempty"`
Status TraitDefinitionStatus `json:"status,omitempty"`
}
// SetConditions set condition for TraitDefinition
func (td *TraitDefinition) SetConditions(c ...condition.Condition) {
td.Status.SetConditions(c...)
}
// GetCondition gets condition from TraitDefinition
func (td *TraitDefinition) GetCondition(conditionType condition.ConditionType) condition.Condition {
return td.Status.GetCondition(conditionType)
}
// +kubebuilder:object:root=true
// TraitDefinitionList contains a list of TraitDefinition.
type TraitDefinitionList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []TraitDefinition `json:"items"`
}
// A ScopeDefinitionSpec defines the desired state of a ScopeDefinition.
type ScopeDefinitionSpec struct {
// Reference to the CustomResourceDefinition that defines this scope kind.
Reference common.DefinitionReference `json:"definitionRef"`
// WorkloadRefsPath indicates if/where a scope accepts workloadRef objects
WorkloadRefsPath string `json:"workloadRefsPath,omitempty"`
// AllowComponentOverlap specifies whether an OAM component may exist in
// multiple instances of this kind of scope.
AllowComponentOverlap bool `json:"allowComponentOverlap"`
// Extension is used for extension needs by OAM platform builders
// +optional
// +kubebuilder:pruning:PreserveUnknownFields
Extension *runtime.RawExtension `json:"extension,omitempty"`
}
// +kubebuilder:object:root=true
// A ScopeDefinition registers a kind of Kubernetes custom resource as a valid
// OAM scope kind by referencing its CustomResourceDefinition. The CRD is used
// to validate the schema of the scope when it is embedded in an OAM
// ApplicationConfiguration.
// +kubebuilder:printcolumn:JSONPath=".spec.definitionRef.name",name=DEFINITION-NAME,type=string
// +kubebuilder:resource:scope=Namespaced,categories={oam},shortName=scope
type ScopeDefinition struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ScopeDefinitionSpec `json:"spec,omitempty"`
}
// +kubebuilder:object:root=true
// ScopeDefinitionList contains a list of ScopeDefinition.
type ScopeDefinitionList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ScopeDefinition `json:"items"`
}
// A ComponentParameter defines a configurable parameter of a component.
type ComponentParameter struct {
// Name of this parameter. OAM ApplicationConfigurations will specify
// parameter values using this name.
Name string `json:"name"`
// FieldPaths specifies an array of fields within this Component's workload
// that will be overwritten by the value of this parameter. The type of the
// parameter (e.g. int, string) is inferred from the type of these fields;
// All fields must be of the same type. Fields are specified as JSON field
// paths without a leading dot, for example 'spec.replicas'.
FieldPaths []string `json:"fieldPaths"`
// +kubebuilder:default:=false
// Required specifies whether or not a value for this parameter must be
// supplied when authoring an ApplicationConfiguration.
// +optional
Required *bool `json:"required,omitempty"`
// Description of this parameter.
// +optional
Description *string `json:"description,omitempty"`
}
// A ComponentSpec defines the desired state of a Component.
type ComponentSpec struct {
// A Workload that will be created for each ApplicationConfiguration that
// includes this Component. Workload is an instance of a workloadDefinition.
// We either use the GVK info or a special "type" field in the workload to associate
// the content of the workload with its workloadDefinition
// +kubebuilder:validation:EmbeddedResource
// +kubebuilder:pruning:PreserveUnknownFields
Workload runtime.RawExtension `json:"workload"`
// HelmRelease records a Helm release used by a Helm module workload.
// +optional
Helm *common.Helm `json:"helm,omitempty"`
// Parameters exposed by this component. ApplicationConfigurations that
// reference this component may specify values for these parameters, which
// will in turn be injected into the embedded workload.
// +optional
Parameters []ComponentParameter `json:"parameters,omitempty"`
}
// A ComponentStatus represents the observed state of a Component.
type ComponentStatus struct {
// The generation observed by the component controller.
// +optional
ObservedGeneration int64 `json:"observedGeneration"`
condition.ConditionedStatus `json:",inline"`
// LatestRevision of component
// +optional
LatestRevision *common.Revision `json:"latestRevision,omitempty"`
// One Component should only be used by one AppConfig
}
// +kubebuilder:object:root=true
// A Component describes how an OAM workload kind may be instantiated.
// +kubebuilder:resource:categories={oam}
// +kubebuilder:subresource:status
// +kubebuilder:printcolumn:JSONPath=".spec.workload.kind",name=WORKLOAD-KIND,type=string
// +kubebuilder:printcolumn:name="age",type="date",JSONPath=".metadata.creationTimestamp"
type Component struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ComponentSpec `json:"spec,omitempty"`
Status ComponentStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// ComponentList contains a list of Component.
type ComponentList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Component `json:"items"`
}
// A ComponentParameterValue specifies a value for a named parameter. The
// associated component must publish a parameter with this name.
type ComponentParameterValue struct {
// Name of the component parameter to set.
Name string `json:"name"`
// Value to set.
Value intstr.IntOrString `json:"value"`
}
// A ComponentTrait specifies a trait that should be applied to a component.
type ComponentTrait struct {
// A Trait that will be created for the component
// +kubebuilder:validation:EmbeddedResource
// +kubebuilder:pruning:PreserveUnknownFields
Trait runtime.RawExtension `json:"trait"`
// DataOutputs specify the data output sources from this trait.
// +optional
DataOutputs []DataOutput `json:"dataOutputs,omitempty"`
// DataInputs specify the data input sinks into this trait.
// +optional
DataInputs []DataInput `json:"dataInputs,omitempty"`
}
// A ComponentScope specifies a scope in which a component should exist.
type ComponentScope struct {
// A ScopeReference must refer to an OAM scope resource.
ScopeReference corev1.ObjectReference `json:"scopeRef"`
}
// An ApplicationConfigurationComponent specifies a component of an
// ApplicationConfiguration. Each component is used to instantiate a workload.
type ApplicationConfigurationComponent struct {
// ComponentName specifies a component whose latest revision will be bind
// with ApplicationConfiguration. When the spec of the referenced component
// changes, ApplicationConfiguration will automatically migrate all trait
// affect from the prior revision to the new one. This is mutually exclusive
// with RevisionName.
// +optional
ComponentName string `json:"componentName,omitempty"`
// RevisionName of a specific component revision to which to bind
// ApplicationConfiguration. This is mutually exclusive with componentName.
// +optional
RevisionName string `json:"revisionName,omitempty"`
// DataOutputs specify the data output sources from this component.
DataOutputs []DataOutput `json:"dataOutputs,omitempty"`
// DataInputs specify the data input sinks into this component.
DataInputs []DataInput `json:"dataInputs,omitempty"`
// ParameterValues specify values for the the specified component's
// parameters. Any parameter required by the component must be specified.
// +optional
ParameterValues []ComponentParameterValue `json:"parameterValues,omitempty"`
// Traits of the specified component.
// +optional
Traits []ComponentTrait `json:"traits,omitempty"`
// Scopes in which the specified component should exist.
// +optional
Scopes []ComponentScope `json:"scopes,omitempty"`
}
// An ApplicationConfigurationSpec defines the desired state of a
// ApplicationConfiguration.
type ApplicationConfigurationSpec struct {
// Components of which this ApplicationConfiguration consists. Each
// component will be used to instantiate a workload.
Components []ApplicationConfigurationComponent `json:"components"`
}
// A TraitStatus represents the state of a trait.
type TraitStatus string
// A WorkloadTrait represents a trait associated with a workload and its status
type WorkloadTrait struct {
// Status is a place holder for a customized controller to fill
// if it needs a single place to summarize the status of the trait
Status TraitStatus `json:"status,omitempty"`
// Reference to a trait created by an ApplicationConfiguration.
Reference corev1.ObjectReference `json:"traitRef"`
// Message will allow controller to leave some additional information for this trait
Message string `json:"message,omitempty"`
// AppliedGeneration indicates the generation observed by the appConfig controller.
// The same field is also recorded in the annotations of traits.
// A trait is possible to be deleted from cluster after created.
// This field is useful to track the observed generation of traits after they are
// deleted.
AppliedGeneration int64 `json:"appliedGeneration,omitempty"`
// DependencyUnsatisfied notify does the trait has dependency unsatisfied
DependencyUnsatisfied bool `json:"dependencyUnsatisfied,omitempty"`
}
// A ScopeStatus represents the state of a scope.
type ScopeStatus string
// A WorkloadScope represents a scope associated with a workload and its status
type WorkloadScope struct {
// Status is a place holder for a customized controller to fill
// if it needs a single place to summarize the status of the scope
Status ScopeStatus `json:"status,omitempty"`
// Reference to a scope created by an ApplicationConfiguration.
Reference corev1.ObjectReference `json:"scopeRef"`
}
// A WorkloadStatus represents the status of a workload.
type WorkloadStatus struct {
// Status is a place holder for a customized controller to fill
// if it needs a single place to summarize the entire status of the workload
Status string `json:"status,omitempty"`
// ComponentName that produced this workload.
ComponentName string `json:"componentName,omitempty"`
// ComponentRevisionName of current component
ComponentRevisionName string `json:"componentRevisionName,omitempty"`
// DependencyUnsatisfied notify does the workload has dependency unsatisfied
DependencyUnsatisfied bool `json:"dependencyUnsatisfied,omitempty"`
// AppliedComponentRevision indicates the applied component revision name of this workload
AppliedComponentRevision string `json:"appliedComponentRevision,omitempty"`
// Reference to a workload created by an ApplicationConfiguration.
Reference corev1.ObjectReference `json:"workloadRef,omitempty"`
// Traits associated with this workload.
Traits []WorkloadTrait `json:"traits,omitempty"`
// Scopes associated with this workload.
Scopes []WorkloadScope `json:"scopes,omitempty"`
}
// HistoryWorkload contain the old component revision that are still running
type HistoryWorkload struct {
// Revision of this workload
Revision string `json:"revision,omitempty"`
// Reference to running workload.
Reference corev1.ObjectReference `json:"workloadRef,omitempty"`
}
// A ApplicationStatus represents the state of the entire application.
type ApplicationStatus string
// An ApplicationConfigurationStatus represents the observed state of a
// ApplicationConfiguration.
type ApplicationConfigurationStatus struct {
condition.ConditionedStatus `json:",inline"`
// Status is a place holder for a customized controller to fill
// if it needs a single place to summarize the status of the entire application
Status ApplicationStatus `json:"status,omitempty"`
Dependency DependencyStatus `json:"dependency,omitempty"`
// RollingStatus indicates what phase are we in the rollout phase
RollingStatus types.RollingStatus `json:"rollingStatus,omitempty"`
// Workloads created by this ApplicationConfiguration.
Workloads []WorkloadStatus `json:"workloads,omitempty"`
// The generation observed by the appConfig controller.
// +optional
ObservedGeneration int64 `json:"observedGeneration"`
// HistoryWorkloads will record history but still working revision workloads.
HistoryWorkloads []HistoryWorkload `json:"historyWorkloads,omitempty"`
}
// DependencyStatus represents the observed state of the dependency of
// an ApplicationConfiguration.
type DependencyStatus struct {
Unsatisfied []UnstaifiedDependency `json:"unsatisfied,omitempty"`
}
// UnstaifiedDependency describes unsatisfied dependency flow between
// one pair of objects.
type UnstaifiedDependency struct {
Reason string `json:"reason"`
From DependencyFromObject `json:"from"`
To DependencyToObject `json:"to"`
}
// DependencyFromObject represents the object that dependency data comes from.
type DependencyFromObject struct {
corev1.ObjectReference `json:",inline"`
FieldPath string `json:"fieldPath,omitempty"`
}
// DependencyToObject represents the object that dependency data goes to.
type DependencyToObject struct {
corev1.ObjectReference `json:",inline"`
FieldPaths []string `json:"fieldPaths,omitempty"`
}
// +kubebuilder:object:root=true
// An ApplicationConfiguration represents an OAM application.
// +kubebuilder:resource:shortName=appconfig,categories={oam}
// +kubebuilder:subresource:status
type ApplicationConfiguration struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ApplicationConfigurationSpec `json:"spec,omitempty"`
Status ApplicationConfigurationStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// ApplicationConfigurationList contains a list of ApplicationConfiguration.
type ApplicationConfigurationList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ApplicationConfiguration `json:"items"`
}
// DataOutput specifies a data output source from an object.
type DataOutput struct {
// Name is the unique name of a DataOutput in an ApplicationConfiguration.
Name string `json:"name,omitempty"`
// FieldPath refers to the value of an object's field.
FieldPath string `json:"fieldPath,omitempty"`
// Conditions specify the conditions that should be satisfied before emitting a data output.
// Different conditions are AND-ed together.
// If no conditions is specified, it is by default to check output value not empty.
// +optional
Conditions []ConditionRequirement `json:"conditions,omitempty"`
// OutputStore specifies the object used to store intermediate data generated by Operations
OutputStore StoreReference `json:"outputStore,omitempty"`
}
// StoreReference specifies the referenced object in DataOutput or DataInput
type StoreReference struct {
corev1.ObjectReference `json:",inline"`
// Operations specify the data processing operations
Operations []DataOperation `json:"operations,omitempty"`
}
// DataOperation defines the specific operation for data
type DataOperation struct {
// Type specifies the type of DataOperation
Type string `json:"type"`
// Operator specifies the operation under this DataOperation type
Operator DataOperator `json:"op"`
// ToFieldPath refers to the value of an object's field
ToFieldPath string `json:"toFieldPath"`
// ToDataPath refers to the value of an object's specfied by ToDataPath. For example the ToDataPath "redis" specifies "redis info" in '{"redis":"redis info"}'
ToDataPath string `json:"toDataPath,omitempty"`
// +optional
// Value specifies an expected value
// This is mutually exclusive with ValueFrom
Value string `json:"value,omitempty"`
// +optional
// ValueFrom specifies expected value from object such as workload and trait
// This is mutually exclusive with Value
ValueFrom ValueFrom `json:"valueFrom,omitempty"`
Conditions []ConditionRequirement `json:"conditions,omitempty"`
}
// DataOperator defines the type of Operator in DataOperation
type DataOperator string
const (
// AddOperator specifies the add operation for data passing
AddOperator DataOperator = "add"
// DeleteOperator specifies the delete operation for data passing
DeleteOperator DataOperator = "delete"
// ReplaceOperator specifies the replace operation for data passing
ReplaceOperator DataOperator = "replace"
)
// DataInput specifies a data input sink to an object.
// If input is array, it will be appended to the target field paths.
type DataInput struct {
// ValueFrom specifies the value source.
ValueFrom DataInputValueFrom `json:"valueFrom,omitempty"`
// ToFieldPaths specifies the field paths of an object to fill passed value.
ToFieldPaths []string `json:"toFieldPaths,omitempty"`
// StrategyMergeKeys specifies the merge key if the toFieldPaths target is an array.
// The StrategyMergeKeys is optional, by default, if the toFieldPaths target is an array, we will append.
// If StrategyMergeKeys specified, we will check the key in the target array.
// If any key exist, do update; if no key exist, append.
StrategyMergeKeys []string `json:"strategyMergeKeys,omitempty"`
// When the Conditions is satified, ToFieldPaths will be filled with passed value
Conditions []ConditionRequirement `json:"conditions,omitempty"`
// InputStore specifies the object used to read intermediate data genereted by DataOutput
InputStore StoreReference `json:"inputStore,omitempty"`
}
// DataInputValueFrom specifies the value source for a data input.
type DataInputValueFrom struct {
// DataOutputName matches a name of a DataOutput in the same AppConfig.
DataOutputName string `json:"dataOutputName"`
}
// ConditionRequirement specifies the requirement to match a value.
type ConditionRequirement struct {
Operator ConditionOperator `json:"op"`
// +optional
// Value specifies an expected value
// This is mutually exclusive with ValueFrom
Value string `json:"value,omitempty"`
// +optional
// ValueFrom specifies expected value from AppConfig
// This is mutually exclusive with Value
ValueFrom ValueFrom `json:"valueFrom,omitempty"`
// +optional
// FieldPath specifies got value from workload/trait object
FieldPath string `json:"fieldPath,omitempty"`
}
// ValueFrom gets value from AppConfig object by specifying a path
type ValueFrom struct {
FieldPath string `json:"fieldPath"`
}
// ConditionOperator specifies the operator to match a value.
type ConditionOperator string
const (
// ConditionEqual indicates equal to given value
ConditionEqual ConditionOperator = "eq"
// ConditionNotEqual indicates not equal to given value
ConditionNotEqual ConditionOperator = "notEq"
// ConditionNotEmpty indicates given value not empty
ConditionNotEmpty ConditionOperator = "notEmpty"
)

View File

@@ -0,0 +1,355 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
// Package v1alpha2
package v1alpha2
import (
"k8s.io/apimachinery/pkg/api/resource"
"k8s.io/apimachinery/pkg/util/intstr"
)
// An OperatingSystem required by a containerised workload.
type OperatingSystem string
// Supported operating system types.
const (
OperatingSystemLinux OperatingSystem = "linux"
OperatingSystemWindows OperatingSystem = "windows"
)
// A CPUArchitecture required by a containerised workload.
type CPUArchitecture string
// Supported architectures
const (
CPUArchitectureI386 CPUArchitecture = "i386"
CPUArchitectureAMD64 CPUArchitecture = "amd64"
CPUArchitectureARM CPUArchitecture = "arm"
CPUArchitectureARM64 CPUArchitecture = "arm64"
)
// A SecretKeySelector is a reference to a secret key in an arbitrary namespace.
type SecretKeySelector struct {
// The name of the secret.
Name string `json:"name"`
// The key to select.
Key string `json:"key"`
}
// TODO(negz): The OAM spec calls for float64 quantities in some cases, but this
// is incompatible with controller-gen and Kubernetes API conventions. We should
// reassess whether resource.Quantity is appropriate after resolving
// https://github.com/oam-dev/spec/issues/313
// CPUResources required by a container.
type CPUResources struct {
// Required CPU count. 1.0 represents one CPU core.
Required resource.Quantity `json:"required"`
}
// MemoryResources required by a container.
type MemoryResources struct {
// Required memory.
Required resource.Quantity `json:"required"`
}
// GPUResources required by a container.
type GPUResources struct {
// Required GPU count.
Required resource.Quantity `json:"required"`
}
// DiskResource required by a container.
type DiskResource struct {
// Required disk space.
Required resource.Quantity `json:"required"`
// Ephemeral specifies whether an external disk needs to be mounted.
// +optional
Ephemeral *bool `json:"ephemeral,omitempty"`
}
// A VolumeAccessMode determines how a volume may be accessed.
type VolumeAccessMode string
// Volume access modes.
const (
VolumeAccessModeRO VolumeAccessMode = "RO"
VolumeAccessModeRW VolumeAccessMode = "RW"
)
// A VolumeSharingPolicy determines how a volume may be shared.
type VolumeSharingPolicy string
// Volume sharing policies.
const (
VolumeSharingPolicyExclusive VolumeSharingPolicy = "Exclusive"
VolumeSharingPolicyShared VolumeSharingPolicy = "Shared"
)
// VolumeResource required by a container.
type VolumeResource struct {
// Name of this volume. Must be unique within its container.
Name string `json:"name"`
// MountPath at which this volume will be mounted within its container.
MountPath string `json:"mountPath"`
// TODO(negz): Use +kubebuilder:default marker to default AccessMode to RW
// and SharingPolicy to Exclusive once we're generating v1 CRDs.
// AccessMode of this volume; RO (read only) or RW (read and write).
// +optional
// +kubebuilder:validation:Enum=RO;RW
AccessMode *VolumeAccessMode `json:"accessMode,omitempty"`
// SharingPolicy of this volume; Exclusive or Shared.
// +optional
// +kubebuilder:validation:Enum=Exclusive;Shared
SharingPolicy *VolumeSharingPolicy `json:"sharingPolicy,omitempty"`
// Disk requirements of this volume.
// +optional
Disk *DiskResource `json:"disk,omitempty"`
}
// ExtendedResource required by a container.
type ExtendedResource struct {
// Name of the external resource. Resource names are specified in
// kind.group/version format, e.g. motionsensor.ext.example.com/v1.
Name string `json:"name"`
// Required extended resource(s), e.g. 8 or "very-cool-widget"
Required intstr.IntOrString `json:"required"`
}
// ContainerResources specifies a container's required compute resources.
type ContainerResources struct {
// CPU required by this container.
CPU CPUResources `json:"cpu"`
// Memory required by this container.
Memory MemoryResources `json:"memory"`
// GPU required by this container.
// +optional
GPU *GPUResources `json:"gpu,omitempty"`
// Volumes required by this container.
// +optional
Volumes []VolumeResource `json:"volumes,omitempty"`
// Extended resources required by this container.
// +optional
Extended []ExtendedResource `json:"extended,omitempty"`
}
// A ContainerEnvVar specifies an environment variable that should be set within
// a container.
type ContainerEnvVar struct {
// Name of the environment variable. Must be composed of valid Unicode
// letter and number characters, as well as _ and -.
// +kubebuilder:validation:Pattern=^[-_a-zA-Z0-9]+$
Name string `json:"name"`
// Value of the environment variable.
// +optional
Value *string `json:"value,omitempty"`
// FromSecret is a secret key reference which can be used to assign a value
// to the environment variable.
// +optional
FromSecret *SecretKeySelector `json:"fromSecret,omitempty"`
}
// A ContainerConfigFile specifies a configuration file that should be written
// within a container.
type ContainerConfigFile struct {
// Path within the container at which the configuration file should be
// written.
Path string `json:"path"`
// Value that should be written to the configuration file.
// +optional
Value *string `json:"value,omitempty"`
// FromSecret is a secret key reference which can be used to assign a value
// to be written to the configuration file at the given path in the
// container.
// +optional
FromSecret *SecretKeySelector `json:"fromSecret,omitempty"`
}
// A TransportProtocol represents a transport layer protocol.
type TransportProtocol string
// Transport protocols.
const (
TransportProtocolTCP TransportProtocol = "TCP"
TransportProtocolUDP TransportProtocol = "UDP"
)
// A ContainerPort specifies a port that is exposed by a container.
type ContainerPort struct {
// Name of this port. Must be unique within its container. Must be lowercase
// alphabetical characters.
// +kubebuilder:validation:Pattern=^[a-z]+$
Name string `json:"name"`
// Port number. Must be unique within its container.
Port int32 `json:"containerPort"`
// TODO(negz): Use +kubebuilder:default marker to default Protocol to TCP
// once we're generating v1 CRDs.
// Protocol used by the server listening on this port.
// +kubebuilder:validation:Enum=TCP;UDP
// +optional
Protocol *TransportProtocol `json:"protocol,omitempty"`
}
// An ExecProbe probes a container's health by executing a command.
type ExecProbe struct {
// Command to be run by this probe.
Command []string `json:"command"`
}
// A HTTPHeader to be passed when probing a container.
type HTTPHeader struct {
// Name of this HTTP header. Must be unique per probe.
Name string `json:"name"`
// Value of this HTTP header.
Value string `json:"value"`
}
// A HTTPGetProbe probes a container's health by sending an HTTP GET request.
type HTTPGetProbe struct {
// Path to probe, e.g. '/healthz'.
Path string `json:"path"`
// Port to probe.
Port int32 `json:"port"`
// HTTPHeaders to send with the GET request.
// +optional
HTTPHeaders []HTTPHeader `json:"httpHeaders,omitempty"`
}
// A TCPSocketProbe probes a container's health by connecting to a TCP socket.
type TCPSocketProbe struct {
// Port this probe should connect to.
Port int32 `json:"port"`
}
// A ContainerHealthProbe specifies how to probe the health of a container.
// Exactly one of Exec, HTTPGet, or TCPSocket must be specified.
type ContainerHealthProbe struct {
// Exec probes a container's health by executing a command.
// +optional
Exec *ExecProbe `json:"exec,omitempty"`
// HTTPGet probes a container's health by sending an HTTP GET request.
// +optional
HTTPGet *HTTPGetProbe `json:"httpGet,omitempty"`
// TCPSocketProbe probes a container's health by connecting to a TCP socket.
// +optional
TCPSocket *TCPSocketProbe `json:"tcpSocket,omitempty"`
// InitialDelaySeconds after a container starts before the first probe.
// +optional
InitialDelaySeconds *int32 `json:"initialDelaySeconds,omitempty"`
// TODO(negz): Use +kubebuilder:default marker to default PeriodSeconds,
// TimeoutSeconds, SuccessThreshold, and FailureThreshold to 10, 1, 1, and 3
// respectively once we're generating v1 CRDs.
// PeriodSeconds between probes.
// +optional
PeriodSeconds *int32 `json:"periodSeconds,omitempty"`
// TimeoutSeconds after which the probe times out.
// +optional
TimeoutSeconds *int32 `json:"timeoutSeconds,omitempty"`
// SuccessThreshold specifies how many consecutive probes must success in
// order for the container to be considered healthy.
// +optional
SuccessThreshold *int32 `json:"successThreshold,omitempty"`
// FailureThreshold specifies how many consecutive probes must fail in order
// for the container to be considered healthy.
// +optional
FailureThreshold *int32 `json:"failureThreshold,omitempty"`
}
// A Container represents an Open Containers Initiative (OCI) container.
type Container struct {
// Name of this container. Must be unique within its workload.
Name string `json:"name"`
// Image this container should run. Must be a path-like or URI-like
// representation of an OCI image. May be prefixed with a registry address
// and should be suffixed with a tag.
Image string `json:"image"`
// Resources required by this container
// +optional
Resources *ContainerResources `json:"resources,omitempty"`
// Command to be run by this container.
// +optional
Command []string `json:"command,omitempty"`
// Arguments to be passed to the command run by this container.
// +optional
Arguments []string `json:"args,omitempty"`
// Environment variables that should be set within this container.
// +optional
Environment []ContainerEnvVar `json:"env,omitempty"`
// ConfigFiles that should be written within this container.
// +optional
ConfigFiles []ContainerConfigFile `json:"config,omitempty"`
// Ports exposed by this container.
// +optional
Ports []ContainerPort `json:"ports,omitempty"`
// A LivenessProbe assesses whether this container is alive. Containers that
// fail liveness probes will be restarted.
// +optional
LivenessProbe *ContainerHealthProbe `json:"livenessProbe,omitempty"`
// A ReadinessProbe assesses whether this container is ready to serve
// requests. Containers that fail readiness probes will be withdrawn from
// service.
// +optional
ReadinessProbe *ContainerHealthProbe `json:"readinessProbe,omitempty"`
// TODO(negz): Ideally the key within this secret would be configurable, but
// the current OAM spec allows only a secret name.
// ImagePullSecret specifies the name of a Secret from which the
// credentials required to pull this container's image can be loaded.
// +optional
ImagePullSecret *string `json:"imagePullSecret,omitempty"`
}

View File

@@ -0,0 +1,22 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
// Package v1alpha2 contains resources relating to the Open Application Model.
// See https://github.com/oam-dev/spec for more details.
// +kubebuilder:object:generate=true
// +groupName=core.oam.dev
// +versionName=v1alpha2
package v1alpha2

View File

@@ -0,0 +1,85 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
// This code is manually implemented, but should be generated in the future.
package v1alpha2
import (
corev1 "k8s.io/api/core/v1"
"github.com/oam-dev/kubevela/apis/core.oam.dev/condition"
)
// GetCondition of this ManualScalerTrait.
func (tr *ManualScalerTrait) GetCondition(ct condition.ConditionType) condition.Condition {
return tr.Status.GetCondition(ct)
}
// SetConditions of this ManualScalerTrait.
func (tr *ManualScalerTrait) SetConditions(c ...condition.Condition) {
tr.Status.SetConditions(c...)
}
// GetWorkloadReference of this ManualScalerTrait.
func (tr *ManualScalerTrait) GetWorkloadReference() corev1.ObjectReference {
return tr.Spec.WorkloadReference
}
// SetWorkloadReference of this ManualScalerTrait.
func (tr *ManualScalerTrait) SetWorkloadReference(r corev1.ObjectReference) {
tr.Spec.WorkloadReference = r
}
// GetCondition of this ApplicationConfiguration.
func (ac *ApplicationConfiguration) GetCondition(ct condition.ConditionType) condition.Condition {
return ac.Status.GetCondition(ct)
}
// SetConditions of this ApplicationConfiguration.
func (ac *ApplicationConfiguration) SetConditions(c ...condition.Condition) {
ac.Status.SetConditions(c...)
}
// GetCondition of this Component.
func (cm *Component) GetCondition(ct condition.ConditionType) condition.Condition {
return cm.Status.GetCondition(ct)
}
// SetConditions of this Component.
func (cm *Component) SetConditions(c ...condition.Condition) {
cm.Status.SetConditions(c...)
}
// GetCondition of this HealthScope.
func (hs *HealthScope) GetCondition(ct condition.ConditionType) condition.Condition {
return hs.Status.GetCondition(ct)
}
// SetConditions of this HealthScope.
func (hs *HealthScope) SetConditions(c ...condition.Condition) {
hs.Status.SetConditions(c...)
}
// GetWorkloadReferences to get all workload references for scope.
func (hs *HealthScope) GetWorkloadReferences() []corev1.ObjectReference {
return hs.Spec.WorkloadReferences
}
// AddWorkloadReference to add a workload reference to this scope.
func (hs *HealthScope) AddWorkloadReference(r corev1.ObjectReference) {
hs.Spec.WorkloadReferences = append(hs.Spec.WorkloadReferences, r)
}

View File

@@ -0,0 +1,133 @@
/*
Copyright 2021 The KubeVela Authors.
Licensed 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.
*/
package v1alpha2
import (
"reflect"
"k8s.io/apimachinery/pkg/runtime/schema"
"sigs.k8s.io/controller-runtime/pkg/scheme"
"github.com/oam-dev/kubevela/apis/core.oam.dev/common"
)
// Package type metadata.
const (
Group = common.Group
Version = "v1alpha2"
)
var (
// SchemeGroupVersion is group version used to register these objects
SchemeGroupVersion = schema.GroupVersion{Group: Group, Version: Version}
// SchemeBuilder is used to add go types to the GroupVersionKind scheme
SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}
)
// ComponentDefinition type metadata.
var (
ComponentDefinitionKind = reflect.TypeOf(ComponentDefinition{}).Name()
ComponentDefinitionGroupKind = schema.GroupKind{Group: Group, Kind: ComponentDefinitionKind}.String()
ComponentDefinitionKindAPIVersion = ComponentDefinitionKind + "." + SchemeGroupVersion.String()
ComponentDefinitionGroupVersionKind = SchemeGroupVersion.WithKind(ComponentDefinitionKind)
)
// WorkloadDefinition type metadata.
var (
WorkloadDefinitionKind = reflect.TypeOf(WorkloadDefinition{}).Name()
WorkloadDefinitionGroupKind = schema.GroupKind{Group: Group, Kind: WorkloadDefinitionKind}.String()
WorkloadDefinitionKindAPIVersion = WorkloadDefinitionKind + "." + SchemeGroupVersion.String()
WorkloadDefinitionGroupVersionKind = SchemeGroupVersion.WithKind(WorkloadDefinitionKind)
)
// TraitDefinition type metadata.
var (
TraitDefinitionKind = reflect.TypeOf(TraitDefinition{}).Name()
TraitDefinitionGroupKind = schema.GroupKind{Group: Group, Kind: TraitDefinitionKind}.String()
TraitDefinitionKindAPIVersion = TraitDefinitionKind + "." + SchemeGroupVersion.String()
TraitDefinitionGroupVersionKind = SchemeGroupVersion.WithKind(TraitDefinitionKind)
)
// ScopeDefinition type metadata.
var (
ScopeDefinitionKind = reflect.TypeOf(ScopeDefinition{}).Name()
ScopeDefinitionGroupKind = schema.GroupKind{Group: Group, Kind: ScopeDefinitionKind}.String()
ScopeDefinitionKindAPIVersion = ScopeDefinitionKind + "." + SchemeGroupVersion.String()
ScopeDefinitionGroupVersionKind = SchemeGroupVersion.WithKind(ScopeDefinitionKind)
)
// Component type metadata.
var (
ComponentKind = reflect.TypeOf(Component{}).Name()
ComponentGroupKind = schema.GroupKind{Group: Group, Kind: ComponentKind}.String()
ComponentKindAPIVersion = ComponentKind + "." + SchemeGroupVersion.String()
ComponentGroupVersionKind = SchemeGroupVersion.WithKind(ComponentKind)
)
// ApplicationConfiguration type metadata.
var (
ApplicationConfigurationKind = reflect.TypeOf(ApplicationConfiguration{}).Name()
ApplicationConfigurationGroupKind = schema.GroupKind{Group: Group, Kind: ApplicationConfigurationKind}.String()
ApplicationConfigurationKindAPIVersion = ApplicationConfigurationKind + "." + SchemeGroupVersion.String()
ApplicationConfigurationGroupVersionKind = SchemeGroupVersion.WithKind(ApplicationConfigurationKind)
)
// ManualScalerTrait type metadata.
var (
ManualScalerTraitKind = reflect.TypeOf(ManualScalerTrait{}).Name()
ManualScalerTraitGroupKind = schema.GroupKind{Group: Group, Kind: ManualScalerTraitKind}.String()
ManualScalerTraitKindAPIVersion = ManualScalerTraitKind + "." + SchemeGroupVersion.String()
ManualScalerTraitGroupVersionKind = SchemeGroupVersion.WithKind(ManualScalerTraitKind)
)
// HealthScope type metadata.
var (
HealthScopeKind = reflect.TypeOf(HealthScope{}).Name()
HealthScopeGroupKind = schema.GroupKind{Group: Group, Kind: HealthScopeKind}.String()
HealthScopeKindAPIVersion = HealthScopeKind + "." + SchemeGroupVersion.String()
HealthScopeGroupVersionKind = SchemeGroupVersion.WithKind(HealthScopeKind)
)
// Application type metadata.
var (
ApplicationKind = reflect.TypeOf(Application{}).Name()
ApplicationGroupKind = schema.GroupKind{Group: Group, Kind: ApplicationKind}.String()
ApplicationKindAPIVersion = ApplicationKind + "." + SchemeGroupVersion.String()
ApplicationKindVersionKind = SchemeGroupVersion.WithKind(ApplicationKind)
)
// ApplicationRevision type metadata
var (
ApplicationRevisionKind = reflect.TypeOf(ApplicationRevision{}).Name()
ApplicationRevisionGroupKind = schema.GroupKind{Group: Group, Kind: ApplicationRevisionKind}.String()
ApplicationRevisionKindAPIVersion = ApplicationRevisionKind + "." + SchemeGroupVersion.String()
ApplicationRevisionGroupVersionKind = SchemeGroupVersion.WithKind(ApplicationRevisionKind)
)
func init() {
SchemeBuilder.Register(&ComponentDefinition{}, &ComponentDefinitionList{})
SchemeBuilder.Register(&WorkloadDefinition{}, &WorkloadDefinitionList{})
SchemeBuilder.Register(&TraitDefinition{}, &TraitDefinitionList{})
SchemeBuilder.Register(&ScopeDefinition{}, &ScopeDefinitionList{})
SchemeBuilder.Register(&Component{}, &ComponentList{})
SchemeBuilder.Register(&ApplicationConfiguration{}, &ApplicationConfigurationList{})
SchemeBuilder.Register(&ManualScalerTrait{}, &ManualScalerTraitList{})
SchemeBuilder.Register(&HealthScope{}, &HealthScopeList{})
SchemeBuilder.Register(&Application{}, &ApplicationList{})
SchemeBuilder.Register(&ApplicationRevision{}, &ApplicationRevisionList{})
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,163 @@
/*
Copyright 2021. The KubeVela Authors.
Licensed 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.
*/
package v1beta1
import (
"encoding/json"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/runtime"
"github.com/oam-dev/kubevela/apis/core.oam.dev/common"
"github.com/oam-dev/kubevela/apis/core.oam.dev/condition"
)
const (
// TypeHealthy application are believed to be determined as healthy by a health scope.
TypeHealthy condition.ConditionType = "Healthy"
)
// Reasons an application is or is not healthy
const (
ReasonHealthy condition.ConditionReason = "AllComponentsHealthy"
ReasonUnhealthy condition.ConditionReason = "UnhealthyOrUnknownComponents"
ReasonHealthCheckErr condition.ConditionReason = "HealthCheckeError"
)
// AppPolicy defines a global policy for all components in the app.
type AppPolicy struct {
// Name is the unique name of the policy.
Name string `json:"name"`
Type string `json:"type"`
// +kubebuilder:pruning:PreserveUnknownFields
Properties *runtime.RawExtension `json:"properties,omitempty"`
}
// WorkflowStep defines how to execute a workflow step.
type WorkflowStep common.WorkflowStep
// Workflow defines workflow steps and other attributes
type Workflow struct {
Ref string `json:"ref,omitempty"`
Steps []WorkflowStep `json:"steps,omitempty"`
}
// ApplicationSpec is the spec of Application
type ApplicationSpec struct {
Components []common.ApplicationComponent `json:"components"`
// Policies defines the global policies for all components in the app, e.g. security, metrics, gitops,
// multi-cluster placement rules, etc.
// Policies are applied after components are rendered and before workflow steps are executed.
Policies []AppPolicy `json:"policies,omitempty"`
// Workflow defines how to customize the control logic.
// If workflow is specified, Vela won't apply any resource, but provide rendered output in AppRevision.
// Workflow steps are executed in array order, and each step:
// - will have a context in annotation.
// - should mark "finish" phase in status.conditions.
Workflow *Workflow `json:"workflow,omitempty"`
// TODO(wonderflow): we should have application level scopes supported here
}
// +kubebuilder:object:root=true
// Application is the Schema for the applications API
// +kubebuilder:storageversion
// +kubebuilder:subresource:status
// +kubebuilder:resource:categories={oam},shortName={app,velaapp}
// +kubebuilder:printcolumn:name="COMPONENT",type=string,JSONPath=`.spec.components[*].name`
// +kubebuilder:printcolumn:name="TYPE",type=string,JSONPath=`.spec.components[*].type`
// +kubebuilder:printcolumn:name="PHASE",type=string,JSONPath=`.status.status`
// +kubebuilder:printcolumn:name="HEALTHY",type=boolean,JSONPath=`.status.services[*].healthy`
// +kubebuilder:printcolumn:name="STATUS",type=string,JSONPath=`.status.services[*].message`
// +kubebuilder:printcolumn:name="AGE",type=date,JSONPath=".metadata.creationTimestamp"
// +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
type Application struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ApplicationSpec `json:"spec,omitempty"`
Status common.AppStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// ApplicationList contains a list of Application
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
type ApplicationList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Application `json:"items"`
}
// SetConditions set condition to application
func (app *Application) SetConditions(c ...condition.Condition) {
app.Status.SetConditions(c...)
}
// GetCondition get condition by given condition type
func (app *Application) GetCondition(t condition.ConditionType) condition.Condition {
return app.Status.GetCondition(t)
}
// GetComponent get the component from the application based on its workload type
func (app *Application) GetComponent(workloadType string) *common.ApplicationComponent {
for _, c := range app.Spec.Components {
if c.Type == workloadType {
return &c
}
}
return nil
}
// Unstructured convert application to unstructured.Unstructured.
func (app *Application) Unstructured() (*unstructured.Unstructured, error) {
var obj = &unstructured.Unstructured{}
app.SetGroupVersionKind(ApplicationKindVersionKind)
bt, err := json.Marshal(app)
if err != nil {
return nil, err
}
if err := obj.UnmarshalJSON(bt); err != nil {
return nil, err
}
if app.Status.Services == nil {
if err := unstructured.SetNestedSlice(obj.Object, []interface{}{}, "status", "services"); err != nil {
return nil, err
}
}
if app.Status.AppliedResources == nil {
if err := unstructured.SetNestedSlice(obj.Object, []interface{}{}, "status", "appliedResources"); err != nil {
return nil, err
}
}
if wfStatus := app.Status.Workflow; wfStatus != nil && wfStatus.Steps == nil {
if err := unstructured.SetNestedSlice(obj.Object, []interface{}{}, "status", "workflow", "steps"); err != nil {
return nil, err
}
}
return obj, nil
}

View File

@@ -0,0 +1,100 @@
/*
Copyright 2021. The KubeVela Authors.
Licensed 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.
*/
package v1beta1
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"github.com/oam-dev/kubevela/apis/core.oam.dev/common"
"github.com/oam-dev/kubevela/apis/core.oam.dev/v1alpha1"
)
// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized.
// ApplicationRevisionSpec is the spec of ApplicationRevision
type ApplicationRevisionSpec struct {
// Application records the snapshot of the created/modified Application
Application Application `json:"application"`
// ComponentDefinitions records the snapshot of the componentDefinitions related with the created/modified Application
ComponentDefinitions map[string]ComponentDefinition `json:"componentDefinitions,omitempty"`
// WorkloadDefinitions records the snapshot of the workloadDefinitions related with the created/modified Application
WorkloadDefinitions map[string]WorkloadDefinition `json:"workloadDefinitions,omitempty"`
// TraitDefinitions records the snapshot of the traitDefinitions related with the created/modified Application
TraitDefinitions map[string]TraitDefinition `json:"traitDefinitions,omitempty"`
// ScopeDefinitions records the snapshot of the scopeDefinitions related with the created/modified Application
ScopeDefinitions map[string]ScopeDefinition `json:"scopeDefinitions,omitempty"`
// PolicyDefinitions records the snapshot of the PolicyDefinitions related with the created/modified Application
PolicyDefinitions map[string]PolicyDefinition `json:"policyDefinitions,omitempty"`
// WorkflowStepDefinitions records the snapshot of the WorkflowStepDefinitions related with the created/modified Application
WorkflowStepDefinitions map[string]WorkflowStepDefinition `json:"workflowStepDefinitions,omitempty"`
// ScopeGVK records the apiVersion to GVK mapping
ScopeGVK map[string]metav1.GroupVersionKind `json:"scopeGVK,omitempty"`
// Policies records the external policies
Policies map[string]v1alpha1.Policy `json:"policies,omitempty"`
// Workflow records the external workflow
Workflow *v1alpha1.Workflow `json:"workflow,omitempty"`
// ReferredObjects records the referred objects used in the ref-object typed components
// +kubebuilder:pruning:PreserveUnknownFields
ReferredObjects []common.ReferredObject `json:"referredObjects,omitempty"`
}
// ApplicationRevisionStatus is the status of ApplicationRevision
type ApplicationRevisionStatus struct {
// Succeeded records if the workflow finished running with success
Succeeded bool `json:"succeeded"`
// Workflow the running status of the workflow
Workflow *common.WorkflowStatus `json:"workflow,omitempty"`
}
// +kubebuilder:object:root=true
// ApplicationRevision is the Schema for the ApplicationRevision API
// +kubebuilder:storageversion
// +kubebuilder:resource:categories={oam},shortName=apprev
// +kubebuilder:subresource:status
// +kubebuilder:printcolumn:name="AGE",type=date,JSONPath=".metadata.creationTimestamp"
// +kubebuilder:printcolumn:name="PUBLISH_VERSION",type=string,JSONPath=`.metadata.annotations['app\.oam\.dev\/publishVersion']`
// +kubebuilder:printcolumn:name="SUCCEEDED",type=string,JSONPath=`.status.succeeded`
// +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
type ApplicationRevision struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ApplicationRevisionSpec `json:"spec,omitempty"`
Status ApplicationRevisionStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// ApplicationRevisionList contains a list of ApplicationRevision
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
type ApplicationRevisionList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ApplicationRevision `json:"items"`
}

View File

@@ -0,0 +1,107 @@
/*
Copyright 2021. The KubeVela Authors.
Licensed 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.
*/
package v1beta1
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"github.com/oam-dev/kubevela/apis/core.oam.dev/condition"
"github.com/oam-dev/kubevela/apis/core.oam.dev/common"
)
// ComponentDefinitionSpec defines the desired state of ComponentDefinition
type ComponentDefinitionSpec struct {
// Workload is a workload type descriptor
Workload common.WorkloadTypeDescriptor `json:"workload"`
// ChildResourceKinds are the list of GVK of the child resources this workload generates
ChildResourceKinds []common.ChildResourceKind `json:"childResourceKinds,omitempty"`
// RevisionLabel indicates which label for underlying resources(e.g. pods) of this workload
// can be used by trait to create resource selectors(e.g. label selector for pods).
// +optional
RevisionLabel string `json:"revisionLabel,omitempty"`
// PodSpecPath indicates where/if this workload has K8s podSpec field
// if one workload has podSpec, trait can do lot's of assumption such as port, env, volume fields.
// +optional
PodSpecPath string `json:"podSpecPath,omitempty"`
// Status defines the custom health policy and status message for workload
// +optional
Status *common.Status `json:"status,omitempty"`
// Schematic defines the data format and template of the encapsulation of the workload
// +optional
Schematic *common.Schematic `json:"schematic,omitempty"`
// Extension is used for extension needs by OAM platform builders
// +optional
// +kubebuilder:pruning:PreserveUnknownFields
Extension *runtime.RawExtension `json:"extension,omitempty"`
}
// ComponentDefinitionStatus is the status of ComponentDefinition
type ComponentDefinitionStatus struct {
// ConditionedStatus reflects the observed status of a resource
condition.ConditionedStatus `json:",inline"`
// ConfigMapRef refer to a ConfigMap which contains OpenAPI V3 JSON schema of Component parameters.
ConfigMapRef string `json:"configMapRef,omitempty"`
// LatestRevision of the component definition
// +optional
LatestRevision *common.Revision `json:"latestRevision,omitempty"`
}
// +kubebuilder:object:root=true
// ComponentDefinition is the Schema for the componentdefinitions API
// +kubebuilder:resource:scope=Namespaced,categories={oam},shortName=comp
// +kubebuilder:storageversion
// +kubebuilder:subresource:status
// +kubebuilder:printcolumn:name="WORKLOAD-KIND",type=string,JSONPath=".spec.workload.definition.kind"
// +kubebuilder:printcolumn:name="DESCRIPTION",type=string,JSONPath=".metadata.annotations.definition\\.oam\\.dev/description"
// +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
type ComponentDefinition struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ComponentDefinitionSpec `json:"spec,omitempty"`
Status ComponentDefinitionStatus `json:"status,omitempty"`
}
// SetConditions set condition for ComponentDefinition
func (cd *ComponentDefinition) SetConditions(c ...condition.Condition) {
cd.Status.SetConditions(c...)
}
// GetCondition gets condition from ComponentDefinition
func (cd *ComponentDefinition) GetCondition(conditionType condition.ConditionType) condition.Condition {
return cd.Status.GetCondition(conditionType)
}
// +kubebuilder:object:root=true
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// ComponentDefinitionList contains a list of ComponentDefinition
type ComponentDefinitionList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ComponentDefinition `json:"items"`
}

View File

@@ -0,0 +1,20 @@
/*
Copyright 2021. The KubeVela Authors.
Licensed 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.
*/
package v1beta1
// Hub marks this type as a conversion hub.
func (*Application) Hub() {}

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