* fix#5368, use the namespace specified in the resource if -n is not specified
Signed-off-by: Basuotian <basuoluomiu@gmail.com>
* add default namespace for the case missing namespace in resourceRef
Signed-off-by: Basuotian <basuoluomiu@gmail.com>
* add test case
Signed-off-by: Basuotian <basuoluomiu@gmail.com>
---------
Signed-off-by: Basuotian <basuoluomiu@gmail.com>
Error Details:
E0106 08:12:02.807341 1 controller.go:317] controller/application "msg"="Reconciler error" "error"="Application.core.oam.dev \"test\" is invalid: status.workflow.endTime: Invalid value: \"null\": status.workflow.endTime in body must be of type string: \"null\"" "name"="test" "namespace"="test" "reconciler group"="core.oam.dev" "reconciler kind"="Application"
If the workflow is not completed, the endtime should be null, and the deletion of the application will fail
Signed-off-by: old.prince <di7zhang@gmail.com>
Signed-off-by: old.prince <di7zhang@gmail.com>
* Fix: update cache to lru cache with expire time
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: add auto refresh to topology view and fix the refresh bug in resource view
Signed-off-by: HanMengnan <1448189829@qq.com>
Signed-off-by: HanMengnan <1448189829@qq.com>
* Chore: remove appdeployment examples as it's already deprecated
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Chore: remove approllout docs as it's already deprecated
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Chore: remove kubecon 2020 demo as it's not worked due to deprecation
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Chore: remove unused Observability Implementation
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Fix: fix the stuck problem and use lru cache to promote the speed of loading topology
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: reuse existing lru golang library
Signed-off-by: HanMengnan <1448189829@qq.com>
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: do not change the workflow after the env changed
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: change the test case
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: check app when deleting the target from a env
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Feat: Refer to the generation when checking the application status
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: add the test
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: the starting status overrided the deleting status
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Feat: add content to help view
Signed-off-by: HanMengnan <1448189829@qq.com>
* Feat: add the feature of viewing log of pod
Signed-off-by: HanMengnan <1448189829@qq.com>
* Feat: add the container view
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: add test case and fix some bugs
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: fix some bugs
Signed-off-by: HanMengnan <1448189829@qq.com>
Signed-off-by: HanMengnan <1448189829@qq.com>
* Feat: add content to help view
Signed-off-by: HanMengnan <1448189829@qq.com>
* Feat: add cluster data to pod view
Signed-off-by: HanMengnan <1448189829@qq.com>
* Feat: add the feature of viewing log of pod
Signed-off-by: HanMengnan <1448189829@qq.com>
Signed-off-by: HanMengnan <1448189829@qq.com>
* Feat: support to manage the integrations by the CLI and the workflow
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: remove the xml
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: add the unit test for the nacos writer
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Feat: add the integration API
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Feat: make the provider commands to be deprecated
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: make the unit test work
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Feat: rename the integration to the config
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: make the unit test cases work
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Feat: refactor the config commands
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Feat: add the distribution status for the config
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: sort the import packages
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: refine the code style
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: refine the code style
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: get the content format before render the content
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Feat: add some examples
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: the command test cases
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Feat: add the definitions of the workflow step
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: add some tests
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: add some tests
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: change the name
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: retry the CI
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: refine some words
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Feat: provide stage field for TraitDefinition
Signed-off-by: ZhongsJie <zhongsjie@gmail.com>
* Feat: Refactor the collect health status fn
Signed-off-by: ZhongsJie <zhongsjie@gmail.com>
Signed-off-by: ZhongsJie <zhongsjie@gmail.com>
* Feat: add some feature
1. add more column of application and managed resource
2. alter <ESC> to exist key and add <Q> as the back key
Signed-off-by: HanMengnan <1448189829@qq.com>
* Refactor: refactor the yaml view and help view with singleton design pattern
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: some small fix
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: some small fix
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: add test case
Signed-off-by: HanMengnan <1448189829@qq.com>
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: fix the bug of cluster list
Signed-off-by: HanMengnan <1448189829@qq.com>
* Feat: add some feature
1. add more column of application and managed resource
2. alter <ESC> to exist key and add <Q> as the back key
Signed-off-by: HanMengnan <1448189829@qq.com>
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: rename two interface name to make the name more specific
1. rename the ResourceListener to ViewListener
2. rename the Component to View
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: update the type of ”Main“ field in component.app
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: rename some functions of pageStack to make the name more readable
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: fix some name
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: add more test case
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: fix time format bug
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: fix test case in cluster_namespace_test.go
Signed-off-by: HanMengnan <1448189829@qq.com>
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: refactor the source of all kinds of views, use the "Factory Method" design patterns to rewrite the code to upgrade the quality of code
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: fix test case of the refactored code and some bugs
Signed-off-by: HanMengnan <1448189829@qq.com>
* Feat: highlight yaml text
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: fix the bug in table stop.
Signed-off-by: HanMengnan <1448189829@qq.com>
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: refactor the source of all kinds of views, use the "Factory Method" design patterns to rewrite the code to upgrade the quality of code
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: fix test case of the refactored code and some bugs
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: rename the interface of ResourceView
Signed-off-by: HanMengnan <1448189829@qq.com>
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: fix inconsistent menu hints
Signed-off-by: HanMengnan <1448189829@qq.com>
* Feat: add the feature that a new view of yaml was added and by it the user can load the yaml text of resource
Signed-off-by: HanMengnan <1448189829@qq.com>
Signed-off-by: HanMengnan <1448189829@qq.com>
* Feat: System Info & Diagnose
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
* Fix:1.misspelling 2.license
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
* Fix: pattern of imported package
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
* Fix: pattern of imported package
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
* Fix:1.return error instead of panic 2.get deployment by label instead of by namespace 3.when getting a single deployment, the result is displayed in multi rows. Feat: 1.the system info command displays the cpu and memory metrics 2.the system info command displays the numbers of ready pods and desired pods.
* Feat: 1.the system info command displays the environment variables
* Fix: Making syntax simple
* Feat(system info):1.ARGS多行展示2.指定名称时无须指定namespace3.优化界面展示,支持原始打印或者以wide/yaml形式打印4.指定名称时,打印更可读信息
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
* Feat:add comment
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
* Fix:syntactic redundancy
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
* Feat:Display all ARGS
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
* Feat:Display all ARGS
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
Add signoff
* Fix:1.return error instead of panic 2.get deployment by label instead of by namespace 3.when getting a single deployment, the result is displayed in multi rows. Feat: 1.the system info command displays the cpu and memory metrics 2.the system info command displays the numbers of ready pods and desired pods.
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
* Feat:System diagnose
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
* Feat:Diagnose cluster-gateway pod's status
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
* Feat: System Info & Diagnose
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
* Fix:1.misspelling 2.license
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
* Fix: pattern of imported package
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
* Fix: pattern of imported package
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
* Fix:1.return error instead of panic 2.get deployment by label instead of by namespace 3.when getting a single deployment, the result is displayed in multi rows. Feat: 1.the system info command displays the cpu and memory metrics 2.the system info command displays the numbers of ready pods and desired pods.
* Feat: 1.the system info command displays the environment variables
* Fix: Making syntax simple
* Feat(system info):1.ARGS多行展示2.指定名称时无须指定namespace3.优化界面展示,支持原始打印或者以wide/yaml形式打印4.指定名称时,打印更可读信息
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
* Feat:add comment
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
* Fix:syntactic redundancy
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
* Feat:Display all ARGS
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
* Feat:Display all ARGS
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
Add signoff
* Fix:1.return error instead of panic 2.get deployment by label instead of by namespace 3.when getting a single deployment, the result is displayed in multi rows. Feat: 1.the system info command displays the cpu and memory metrics 2.the system info command displays the numbers of ready pods and desired pods.
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
newly added system info including:
1. Cluster num
2. App running num
3. cpu and mem usage condition of vela-core
4. cpu and mem usage condition of vela-core cluster gateway
Signed-off-by: HanMengnan <1448189829@qq.com>
Signed-off-by: HanMengnan <1448189829@qq.com>
* Feat: when `vela top` launch, can specify the namespace of the presentation application
Signed-off-by: HanMengnan <1448189829@qq.com>
* Feat: add filtering function to the k8s object view of the `vela top` command, which can be filtered by cluster and cluster namespace
Signed-off-by: HanMengnan <1448189829@qq.com>
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: remove the cloudshell dockerfile
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: change the configmap name
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: change the way to get the namespace
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Feat: add the daemonset resource policy for building the tree
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: the import package
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: the unit test case
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: change some function and variable names
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Feat: add http status and code from http cmd run
Signed-off-by: suxiang <704427617@qq.com>
* Feat: fix unit test error
Signed-off-by: suxiang <704427617@qq.com>
* Feat: status is not necessary
Signed-off-by: suxiang <704427617@qq.com>
* Feat: make reviewable
Signed-off-by: suxiang <704427617@qq.com>
* Feat: add unit test
Signed-off-by: suxiang <704427617@qq.com>
* Feat: make reviewable
Signed-off-by: suxiang <704427617@qq.com>
* Feat: support set labels for env
Signed-off-by: codinghuang <codinghuang@qq.com>
* Refactor: Remove util.ParseLabelString
use k8s.io/apimachinery/pkg/labels
Signed-off-by: codinghuang <codinghuang@qq.com>
* Fix: failed to assign the default role for the users who log in from dex
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: cluster e2e test case
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: the ensure namespace error is ignored
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Feat: System Info & Diagnose
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
* Fix:1.misspelling 2.license
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
* Fix: pattern of imported package
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
* Fix: pattern of imported package
Signed-off-by: foursevenlove <foursevenlove@gmail.com>
* Fix:1.return error instead of panic 2.get deployment by label instead of by namespace 3.when getting a single deployment, the result is displayed in multi rows. Feat: 1.the system info command displays the cpu and memory metrics 2.the system info command displays the numbers of ready pods and desired pods.
* Feat: 1.the system info command displays the environment variables
* Fix: Making syntax simple
* Feat: support to query the alias of the project member
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: optimize the e2e test case
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: support to test login with dex
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: support to update the user when the login mode is dex
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: systemInfoService is nil
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Feat: support to init the roles of the user which login by dex
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: add the comment
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: make the sub string to lower
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Feat: support to sync the revision and the workflow status
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: pass the unit test and e2e test
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: e2e test case
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: update the component pod view
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: the pod struct does not match
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: optimize the e2e test case
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* feature: don't ask user confirmation when delete with --force or --yes
Signed-off-by: Sumit Tembe <sumit.tembe@outlook.com>
* added a new flag 'yes'
* don't skip user confirmation for --force
* skip user confirmation for --yes
* 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>
* fix: run make reviewable
Signed-off-by: jiangshantao <jiangshantao-dbg@qq.com>
Co-authored-by: jst <jst@meitu.com>
* Feat: search useful addon version automatically
Verify whether the current addon version meets the system version requirements according to the obtained specified version. There are two system version requirements: Vela core version, K8s version.
If meet the requirements and continue to perform the next task.
If the requirements are not met, obtain the highest version that meets the requirements
Refs #4181
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: Optimize function implementation and code order, and modify test cases
add more comments of function
optimize package import sequence
optimize user interaction logic and error information extraction logic
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: change template string of regular expression to const type string
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: provider can't be added since 1.4 as context abused
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Feat: add cache for remote terraform module in vela show
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Fix: add message for terraform resource in error state
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* 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>
* set printable type for {}
Signed-off-by: Zheng Xi Zhou <zhengxi.zzx@alibaba-inc.com>
* support WorkflowSteps and Policies
Signed-off-by: Zheng Xi Zhou <zhengxi.zzx@alibaba-inc.com>
Co-authored-by: Zheng Xi Zhou <zhengxi.zzx@alibaba-inc.com>
* Feat: add the API for querying the image info
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: the code style
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Feat: add the feature that views in addon are applied independently.(#3905)
separate the deployment of views in addon and deploy them separately instead of nested in application.
see the issue for details
Refs #3905
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: add test case of readViewFile.
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: add the apply method of yaml view.
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: add addon suit-test case
Signed-off-by: HanMengnan <1448189829@qq.com>
* Fix: ignore the error that the definition API schema is not exist
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: disable the cache when listing the definitions
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* 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>
* Fix: mongoDB datastore can't list special email user(#4104)
Signed-off-by: fengkang <fengkangb@digitalchina.com>
* 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>
* 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>
* Fix: mongoDB datastore can't list special email user(#4104)
optimize the test case
Signed-off-by: fengkang <fengkangb@digitalchina.com>
* 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>
* Fix: mongoDB datastore can't list special email user(#4104)
Signed-off-by: fengkang <fengkangb@digitalchina.com>
* Fix: mongoDB datastore can't list special email user(#4104)
Signed-off-by: fengkang <fengkangb@digitalchina.com>
Co-authored-by: Holger Protzek <3481523+hprotzek@users.noreply.github.com>
* Fix: split the image build process to make it faster
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Fix: bump oamdev/kube-webhook-certgen to v2.4.1 to support arm64
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Chore: change the key features and add the demo entrance
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Chore: reuse the Highlights
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Chore: remove the demo
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
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>
* 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>
* 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>
* 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>
* 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>
* 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>
* 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>
* 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>
* 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>
* 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>
* 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>
* 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>
* 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>
* 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>
* 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>
* 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>
* 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>
- 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>
* 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>
* 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>
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>
* 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>
* 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>
* 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>
* 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>
* 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>
* 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>
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>
* 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>
* 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>
* 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>
* 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>
* 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>
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>
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>
* 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>
* 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>
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>
* 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>
* 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>
* 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>
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>
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>
# 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
- [ ] Read and followed KubeVela's [contribution process](https://github.com/oam-dev/kubevela/blob/master/contribute/create-pull-request.md).
- [ ] [Related Docs](https://github.com/oam-dev/kubevela.io) updated properly. In a new feature or configuration option, an update to the documentation is necessary.
- [ ] 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.
The bot is configured via [issue-commands.json](https://github.com/oam-dev/kubevela/blob/master/.github/workflows/issue-commands.json)
and some other GitHub [workflows](https://github.com/oam-dev/kubevela/blob/master/.github/workflows).
The bot is configured via [issue-commands.json](https://github.com/kubevela/kubevela/blob/master/.github/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/oam-dev/kubevela/blob/master/.github/comment.userlist)
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:
@@ -14,7 +14,7 @@ Comment commands:
* 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/oam-dev/kubevela/blob/master/ISSUE_TRIAGE.md)
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)
1. Feature: support terraform/provider-azure addon #2402 by @zzxwill
## 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
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 here(https://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 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
KubeVela project is initialized and maintained by the cloud native community since day 0 with [bootstrapping contributors from 8+ different organizations](https://github.com/oam-dev/kubevela/graphs/contributors).
We intend for KubeVela to have an open governance since the very beginning and donate the project to neutral foundation as soon as it's released.
To help us create a safe and positive community experience for all, we require all participants to adhere to the [Code of Conduct](./CODE_OF_CONDUCT.md).
This document is a guide to help you through the process of contributing to KubeVela.
## Become a contributor
You can contribute to KubeVela in several ways. Here are some examples:
* Contribute to the KubeVela codebase.
* Contribute to the [KubeVela docs](https://github.com/oam-dev/kubevela.io).
* Report and triage bugs.
* Develop community CRD operators as workload or trait and contribute to [catalog](https://github.com/oam-dev/catalog).
* Write technical documentation and blog posts, for users and contributors.
* Organize meetups and user groups in your local area.
* Help others by answering questions about KubeVela.
For more ways to contribute, check out the [Open Source Guides](https://opensource.guide/how-to-contribute/).
### Report bugs
Before submitting a new issue, try to make sure someone hasn't already reported the problem.
Look through the [existing issues](https://github.com/oam-dev/kubevela/issues) for similar issues.
Report a bug by submitting a [bug report](https://github.com/oam-dev/kubevela/issues/new?assignees=&labels=kind%2Fbug&template=bug_report.md&title=).
Make sure that you provide as much information as possible on how to reproduce the bug.
Follow the issue template and add additional information that will help us replicate the problem.
#### Security issues
If you believe you've found a security vulnerability, please read our [security policy](https://github.com/oam-dev/kubevela/blob/master/SECURITY.md) for more details.
### Suggest enhancements
If you have an idea to improve KubeVela, submit an [feature request](https://github.com/oam-dev/kubevela/issues/new?assignees=&labels=kind%2Ffeature&template=feature_request.md&title=%5BFeature%5D).
### Triage issues
If you don't have the knowledge or time to code, consider helping with _issue triage_. The community will thank you for saving them time by spending some of yours.
Read more about the ways you can [Triage issues](/contribute/triage-issues.md).
### Answering questions
If you have a question and you can't find the answer in the [documentation](https://kubevela.io/docs/),
the next step is to ask it on the [github discussion](https://github.com/oam-dev/kubevela/discussions).
It's important to us to help these users, and we'd love your help. You can help other KubeVela users by answering [their questions](https://github.com/oam-dev/kubevela/discussions).
### Your first contribution
Unsure where to begin contributing to KubeVela? Start by browsing issues labeled `good first issue` or `help wanted`.
- [Good first issue](https://github.com/oam-dev/kubevela/labels/good%20first%20issue) issues are generally straightforward to complete.
- [Help wanted](https://github.com/oam-dev/kubevela/labels/help%20wanted) issues are problems we would like the community to help us with regardless of complexity.
If you're looking to make a code change, see how to set up your environment for [local development](contribute/developer-guide.md).
When you're ready to contribute, it's time to [Create a pull request](/contribute/create-pull-request.md).
Please refer to https://kubevela.io/docs/contributor/overview for details.
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
-o manager-${TARGETARCH}cmd/core/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`
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
-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`
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`
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.


## Highlights
KubeVela practices the "render, orchestrate, deploy" workflow with below highlighted values added to existing ecosystem:
- *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.
#### **Deployment as Code**
- *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.
Declare your deployment plan as workflow, run it automatically with any CI/CD or GitOps system, extend or re-program the workflow steps with [CUE](https://cuelang.org/).
No ad-hoc scripts, no dirty glue code, just deploy. The deployment workflow in KubeVela is powered by [Open Application Model](https://oam.dev/).
- *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.
#### **Built-in observability, multi-tenancy and security support**
Choose from the wide range of LDAP integrations we provided out-of-box, enjoy enhanced [multi-tenancy and multi-cluster authorization and authentication](https://kubevela.net/docs/platform-engineers/auth/advance),
pick and apply fine-grained RBAC modules and customize them per your own supply chain requirements.
All delivery process has fully [automated observability dashboards](https://kubevela.net/docs/platform-engineers/operations/observability).
#### **Multi-cloud/hybrid-environments app delivery as first-class citizen**
Natively supports multi-cluster/hybrid-cloud scenarios such as progressive rollout across test/staging/production environments,
automatic canary, blue-green and continuous verification, rich placement strategy across clusters and clouds,
along with automated cloud environments provision.
#### **Lightweight but highly extensible architecture**
Minimize your control plane deployment with only one pod and 0.5c1g resources to handle thousands of application delivery.
Glue and orchestrate all your infrastructure capabilities as reusable modules with a highly extensible architecture
and share the large growing community [addons](https://kubevela.net/docs/reference/addons/overview).
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).
### Contact Us
Reach out with any questions you may have and we'll make sure to answer them as soon as possible!
| 🎤 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)|
Check out [KubeVela videos](https://kubevela.io/videos/talks/en/oam-dapr) for these talks and conferences.
## Contributing
Check out [CONTRIBUTING](./CONTRIBUTING.md) to see how to develop with KubeVela.
Check out [CONTRIBUTING](https://kubevela.io/docs/contributor/overview) to see how to develop with KubeVela.
## Report Vulnerability
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 .
## Code of Conduct
KubeVela adopts [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).
// Traits define the trait of one component, the type must be array to keep the order.
Traits[]ApplicationTrait`json:"traits,omitempty"`
@@ -430,22 +398,10 @@ type ApplicationComponent struct {
// 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.
Scopesmap[string]string`json:"scopes,omitempty"`
}
// StepOutputs defines output variable of WorkflowStep
typeStepOutputs[]outputItem
// StepInputs defines variable input of WorkflowStep
typeStepInputs[]inputItem
typeinputItemstruct{
ParameterKeystring`json:"parameterKey"`
Fromstring`json:"from"`
}
typeoutputItemstruct{
ValueFromstring`json:"valueFrom"`
Namestring`json:"name"`
// ReplicaKey is not empty means the component is replicated. This field is designed so that it can't be specified in application directly.
// So we set the json tag as "-". Instead, this will be filled when using replication policy.
ReplicaKeystring`json:"-"`
}
// ClusterSelector defines the rules to select a Cluster resource.
@@ -474,14 +430,13 @@ type ClusterPlacement struct {
// ClusterVersion defines the Version info of managed clusters.
typeClusterVersionstruct{
Majorstring`json:"major"`
Minorstring`json:"minor"`
GitVersionstring`json:"gitVersion,omitempty"`
Platformstring`json:"platform,omitempty"`
}
// ControlPlaneClusterVersion will be the default value of cluster info if managed cluster version get error, it will have value when vela-core started.
description:A Component describes how an OAM workload kind may be instantiated.
properties:
apiVersion:
description:'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type:string
kind:
description:'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type:string
metadata:
type:object
spec:
description:A ComponentSpec defines the desired state of a Component.
properties:
helm:
description:HelmRelease records a Helm release used by a Helm module
workload.
properties:
release:
description:Release records a Helm release used by a Helm module
workload.
type:object
x-kubernetes-preserve-unknown-fields:true
repository:
description:HelmRelease records a Helm repository used by a Helm
module workload.
type:object
x-kubernetes-preserve-unknown-fields:true
required:
- release
- repository
type:object
parameters:
description: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.
items:
description:A ComponentParameter defines a configurable parameter
of a component.
properties:
description:
description:Description of this parameter.
type:string
fieldPaths:
description: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'.
items:
type:string
type:array
name:
description:Name of this parameter. OAM ApplicationConfigurations
will specify parameter values using this name.
type:string
required:
default:false
description:Required specifies whether or not a value for this
parameter must be supplied when authoring an ApplicationConfiguration.
type:boolean
required:
- fieldPaths
- name
type:object
type:array
workload:
description: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
type:object
x-kubernetes-embedded-resource:true
x-kubernetes-preserve-unknown-fields:true
required:
- workload
type:object
status:
description:A ComponentStatus represents the observed state of a Component.
properties:
conditions:
description:Conditions of the resource.
items:
description:A Condition that may apply to a resource.
properties:
lastTransitionTime:
description:LastTransitionTime is the last time this condition
transitioned from one status to another.
format:date-time
type:string
message:
description:A Message containing details about this condition's
last transition from one status to another, if any.
type:string
reason:
description:A Reason for this condition's last transition from
one status to another.
type:string
status:
description:Status of this condition; is it currently True,
False,or Unknown?
type:string
type:
description:Type of this condition. At most one of each condition
type may apply to a resource at any point in time.
type:string
required:
- lastTransitionTime
- reason
- status
- type
type:object
type:array
latestRevision:
description:LatestRevision of component
properties:
name:
type:string
revision:
format:int64
type:integer
revisionHash:
description:RevisionHash record the hash value of the spec of
ApplicationRevision object.
type:string
required:
- name
- revision
type:object
observedGeneration:
description:The generation observed by the component controller.
description:A HealthScope determines an aggregate health status based of
the health of components.
properties:
apiVersion:
description:'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type:string
kind:
description:'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type:string
metadata:
type:object
spec:
description:A HealthScopeSpec defines the desired state of a HealthScope.
properties:
appReferences:
description:AppRefs records references of applications' components
items:
description:AppReference records references of an application's
components
properties:
appName:
type:string
compReferences:
items:
description:CompReference records references of a component's
resources
properties:
compName:
type:string
traits:
items:
description:'ObjectReference contains enough information
to let you inspect or modify the referred object.
--- New uses of this type are discouraged because
of difficulty describing its usage when embedded in
APIs. 1. Ignored fields. It includes many fields
which are not generally honored. For instance, ResourceVersion
and FieldPath are both very rarely valid in actual
usage. 2. Invalid usage help. It is impossible to
add specific help for individual usage. In most embedded
usages, there are particular restrictions like,
"must refer only to types A and B" or "UID not honored"
or "name must be restricted". Those cannot be
well described when embedded. 3. Inconsistent validation. Because
the usages are different, the validation rules are
different by usage, which makes it hard for users
to predict what will happen. 4. The fields are both
imprecise and overly precise. Kind is not a precise
mapping to a URL. This can produce ambiguity during
interpretation and require a REST mapping. In most
cases, the dependency is on the group,resource tuple and
the version of the actual struct is irrelevant. 5.
We cannot easily change it. Because this type is
embedded in many locations, updates to this type will
affect numerous schemas. Don''t make new APIs embed
an underspecified API type they do not control. Instead
of using this type, create a locally provided and
used type that is well-focused on your reference.
For example, ServiceReferences for admission registration:
this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
type:string
uid:
description: 'UID of the referent. More info:https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
type:string
type:object
type:array
workload:
description:'ObjectReference contains enough information
to let you inspect or modify the referred object. ---
New uses of this type are discouraged because of difficulty
describing its usage when embedded in APIs. 1. Ignored
fields. It includes many fields which are not generally
honored. For instance, ResourceVersion and FieldPath
are both very rarely valid in actual usage. 2. Invalid
usage help. It is impossible to add specific help for
individual usage. In most embedded usages, there are
particular restrictions like, "must refer only to
types A and B" or "UID not honored" or "name must be
restricted". Those cannot be well described when
embedded. 3. Inconsistent validation. Because the
usages are different, the validation rules are different
by usage, which makes it hard for users to predict what
will happen. 4. The fields are both imprecise and overly
precise. Kind is not a precise mapping to a URL. This
can produce ambiguity during interpretation and
require a REST mapping. In most cases, the dependency
is on the group,resource tuple and the version of
the actual struct is irrelevant. 5. We cannot easily
change it. Because this type is embedded in many locations,
updates to this type will affect numerous schemas. Don''t
make new APIs embed an underspecified API type they
do not control. Instead of using this type, create a
locally provided and used type that is well-focused
on your reference. For example, ServiceReferences for
description:'Specific resourceVersion to which this
reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
type:string
uid:
description: 'UID of the referent. More info:https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
type:string
type:object
type:object
type:array
type:object
type:array
probe-interval:
description:ProbeInterval is the amount of time in seconds between
probing tries.
format:int32
type:integer
probe-timeout:
description:ProbeTimeout is the amount of time in seconds to wait
when receiving a response before marked failure.
format:int32
type:integer
workloadRefs:
description:WorkloadReferences to the workloads that are in this
scope.
items:
description:'ObjectReference contains enough information to let
you inspect or modify the referred object. --- New uses of this
type are discouraged because of difficulty describing its usage
when embedded in APIs. 1. Ignored fields. It includes many fields
which are not generally honored. For instance, ResourceVersion
and FieldPath are both very rarely valid in actual usage. 2.
Invalid usage help. It is impossible to add specific help for
individual usage. In most embedded usages, there are particular restrictions
like, "must refer only to types A and B" or "UID not honored"
or "name must be restricted". Those cannot be well described
when embedded. 3. Inconsistent validation. Because the usages
are different, the validation rules are different by usage, which
makes it hard for users to predict what will happen. 4. The fields
are both imprecise and overly precise. Kind is not a precise
mapping to a URL. This can produce ambiguity during interpretation
and require a REST mapping. In most cases, the dependency is
on the group,resource tuple and the version of the actual
struct is irrelevant. 5. We cannot easily change it. Because
this type is embedded in many locations, updates to this type will
affect numerous schemas. Don''t make new APIs embed an underspecified
API type they do not control. Instead of using this type, create
a locally provided and used type that is well-focused on your
reference. For example, ServiceReferences for admission registration:
description:'Specific resourceVersion to which this
reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
type:string
uid:
description: 'UID of the referent. More info:https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
description:A ManualScalerTrait determines how many replicas a workload should
have.
properties:
apiVersion:
description:'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type:string
kind:
description:'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type:string
metadata:
type:object
spec:
description:A ManualScalerTraitSpec defines the desired state of a ManualScalerTrait.
properties:
replicaCount:
description:ReplicaCount of the workload this trait applies to.
format:int32
type:integer
workloadRef:
description:WorkloadReference to the workload this trait applies
to.
properties:
apiVersion:
description:API version of the referent.
type:string
fieldPath:
description:'If referring to a piece of an object instead of
an entire object, this string should contain a valid JSON/Go
field access statement, such as desiredState.manifest.containers[2].
For example, if the object reference is to a container within
a pod, this would take on a value like: "spec.containers{name}"
(where "name" refers to the name of the container that triggered
the event) or if no container name is specified "spec.containers[2]"
(container with index 2 in this pod). This syntax is chosen
only to have some well-defined way of referencing a part of
an object. TODO: this design is not final and this field is
subject to change in the future.'
type:string
kind:
description: 'Kind of the referent. More info:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type:string
name:
description: 'Name of the referent. More info:https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type:string
namespace:
description: 'Namespace of the referent. More info:https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type:string
resourceVersion:
description:'Specific resourceVersion to which this reference
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
type:string
uid:
description: 'UID of the referent. More info:https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
type:string
type:object
required:
- replicaCount
- workloadRef
type:object
status:
description:A ManualScalerTraitStatus represents the observed state of
a ManualScalerTrait.
properties:
conditions:
description:Conditions of the resource.
items:
description:A Condition that may apply to a resource.
properties:
lastTransitionTime:
description:LastTransitionTime is the last time this condition
transitioned from one status to another.
format:date-time
type:string
message:
description:A Message containing details about this condition's
last transition from one status to another, if any.
type:string
reason:
description:A Reason for this condition's last transition from
one status to another.
type:string
status:
description:Status of this condition; is it currently True,
False,or Unknown?
type:string
type:
description:Type of this condition. At most one of each condition
type may apply to a resource at any point in time.
description: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.
properties:
apiVersion:
description:'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type:string
kind:
description:'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type:string
metadata:
type:object
spec:
description:A ScopeDefinitionSpec defines the desired state of a ScopeDefinition.
properties:
allowComponentOverlap:
description:AllowComponentOverlap specifies whether an OAM component
may exist in multiple instances of this kind of scope.
type:boolean
definitionRef:
description:Reference to the CustomResourceDefinition that defines
this scope kind.
properties:
name:
description:Name of the referenced CustomResourceDefinition.
type:string
version:
description:Version indicate which version should be used if
CRD has multiple versions by default it will use the first one
if not specified
type:string
required:
- name
type:object
extension:
description:Extension is used for extension needs by OAM platform
builders
type:object
x-kubernetes-preserve-unknown-fields:true
workloadRefsPath:
description:WorkloadRefsPath indicates if/where a scope accepts workloadRef
objects
type:string
required:
- allowComponentOverlap
- definitionRef
type:object
type:object
served:true
storage:false
subresources:{}
- additionalPrinterColumns:
- jsonPath:.spec.definitionRef.name
name:DEFINITION-NAME
type:string
name:v1beta1
schema:
openAPIV3Schema:
description: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.
properties:
apiVersion:
description:'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type:string
kind:
description:'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type:string
metadata:
type:object
spec:
description:A ScopeDefinitionSpec defines the desired state of a ScopeDefinition.
properties:
allowComponentOverlap:
description:AllowComponentOverlap specifies whether an OAM component
may exist in multiple instances of this kind of scope.
type:boolean
definitionRef:
description:Reference to the CustomResourceDefinition that defines
this scope kind.
properties:
name:
description:Name of the referenced CustomResourceDefinition.
type:string
version:
description:Version indicate which version should be used if
CRD has multiple versions by default it will use the first one
if not specified
type:string
required:
- name
type:object
extension:
description:Extension is used for extension needs by OAM platform
builders
type:object
x-kubernetes-preserve-unknown-fields:true
workloadRefsPath:
description:WorkloadRefsPath indicates if/where a scope accepts workloadRef
description: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.
properties:
apiVersion:
description:'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type:string
kind:
description:'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type:string
metadata:
type:object
spec:
description:A TraitDefinitionSpec defines the desired state of a TraitDefinition.
properties:
appliesToWorkloads:
description: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.
items:
type:string
type:array
conflictsWith:
description:'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"
description: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.
properties:
apiVersion:
description:'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type:string
kind:
description:'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type:string
metadata:
type:object
spec:
description:A TraitDefinitionSpec defines the desired state of a TraitDefinition.
properties:
appliesToWorkloads:
description: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.
items:
type:string
type:array
conflictsWith:
description:'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"
description: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.
properties:
apiVersion:
description:'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type:string
kind:
description:'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type:string
metadata:
type:object
spec:
description:A WorkloadDefinitionSpec defines the desired state of a WorkloadDefinition.
properties:
childResourceKinds:
description:ChildResourceKinds are the list of GVK of the child resources
this workload generates
items:
description:A ChildResourceKind defines a child Kubernetes resource
kind with a selector
properties:
apiVersion:
description:APIVersion of the child resource
type:string
kind:
description:Kind of the child resource
type:string
selector:
additionalProperties:
type:string
description:Selector to select the child resources that the
workload wants to expose to traits
type:object
required:
- apiVersion
- kind
type:object
type:array
definitionRef:
description:Reference to the CustomResourceDefinition that defines
this workload kind.
properties:
name:
description:Name of the referenced CustomResourceDefinition.
type:string
version:
description:Version indicate which version should be used if
CRD has multiple versions by default it will use the first one
if not specified
type:string
required:
- name
type:object
extension:
description:Extension is used for extension needs by OAM platform
builders
type:object
x-kubernetes-preserve-unknown-fields:true
podSpecPath:
description: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.
type:string
revisionLabel:
description: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).
type:string
schematic:
description:Schematic defines the data format and template of the
encapsulation of the workload
properties:
cue:
description:CUE defines the encapsulation in CUE format
properties:
template:
description: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.
type:string
required:
- template
type:object
helm:
description:A Helm represents resources used by a Helm module
properties:
release:
description:Release records a Helm release used by a Helm
module workload.
type:object
x-kubernetes-preserve-unknown-fields:true
repository:
description:HelmRelease records a Helm repository used by
a Helm module workload.
type:object
x-kubernetes-preserve-unknown-fields:true
required:
- release
- repository
type:object
kube:
description:Kube defines the encapsulation in raw Kubernetes
description: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.
properties:
apiVersion:
description:'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type:string
kind:
description:'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type:string
metadata:
type:object
spec:
description:A WorkloadDefinitionSpec defines the desired state of a WorkloadDefinition.
properties:
childResourceKinds:
description:ChildResourceKinds are the list of GVK of the child resources
this workload generates
items:
description:A ChildResourceKind defines a child Kubernetes resource
kind with a selector
properties:
apiVersion:
description:APIVersion of the child resource
type:string
kind:
description:Kind of the child resource
type:string
selector:
additionalProperties:
type:string
description:Selector to select the child resources that the
workload wants to expose to traits
type:object
required:
- apiVersion
- kind
type:object
type:array
definitionRef:
description:Reference to the CustomResourceDefinition that defines
this workload kind.
properties:
name:
description:Name of the referenced CustomResourceDefinition.
type:string
version:
description:Version indicate which version should be used if
CRD has multiple versions by default it will use the first one
if not specified
type:string
required:
- name
type:object
extension:
description:Extension is used for extension needs by OAM platform
builders
type:object
x-kubernetes-preserve-unknown-fields:true
podSpecPath:
description: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.
type:string
revisionLabel:
description: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).
type:string
schematic:
description:Schematic defines the data format and template of the
encapsulation of the workload
properties:
cue:
description:CUE defines the encapsulation in CUE format
properties:
template:
description: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.
type:string
required:
- template
type:object
helm:
description:A Helm represents resources used by a Helm module
properties:
release:
description:Release records a Helm release used by a Helm
module workload.
type:object
x-kubernetes-preserve-unknown-fields:true
repository:
description:HelmRelease records a Helm repository used by
a Helm module workload.
type:object
x-kubernetes-preserve-unknown-fields:true
required:
- release
- repository
type:object
kube:
description:Kube defines the encapsulation in raw Kubernetes
{{- if and .Values.admissionWebhooks.enabled .Values.admissionWebhooks.patch.enabled .Values.rbac.create (not .Values.admissionWebhooks.certManager.enabled) }}
{{- if and .Values.admissionWebhooks.enabled .Values.admissionWebhooks.patch.enabled .Values.rbac.create (not .Values.admissionWebhooks.certManager.enabled) }}
{{- if and .Values.admissionWebhooks.enabled .Values.admissionWebhooks.patch.enabled .Values.rbac.create (not .Values.admissionWebhooks.certManager.enabled) }}
{{- if and .Values.admissionWebhooks.enabled .Values.admissionWebhooks.patch.enabled .Values.rbac.create (not .Values.admissionWebhooks.certManager.enabled) }}
{{- if and .Values.admissionWebhooks.enabled .Values.admissionWebhooks.patch.enabled .Values.rbac.create (not .Values.admissionWebhooks.certManager.enabled) }}
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.