mirror of https://github.com/kubevela/kubevela.git
Feat: optimize controller default value for better performance (#5194)
* Feat: optimize controller default value for better performance Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com> * try to fix rollout e2e-test Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com> try 2 fix Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com> fix e2e test Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com> fix e2e test Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com> fix e2e tests Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com> fix e2e tests Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com> Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com> Signed-off-by: 楚岳 <wangyike.wyk@alibaba-inc.com> Co-authored-by: 楚岳 <wangyike.wyk@alibaba-inc.com>
This commit is contained in:
parent
2b3da03da8
commit
c94fa21c28
|
@ -205,7 +205,6 @@ func TestResourceTrackerCompression(t *testing.T) {
|
||||||
"../../../charts/vela-core/crds/core.oam.dev_componentdefinitions.yaml",
|
"../../../charts/vela-core/crds/core.oam.dev_componentdefinitions.yaml",
|
||||||
"../../../charts/vela-core/crds/core.oam.dev_workloaddefinitions.yaml",
|
"../../../charts/vela-core/crds/core.oam.dev_workloaddefinitions.yaml",
|
||||||
"../../../charts/vela-core/crds/standard.oam.dev_rollouts.yaml",
|
"../../../charts/vela-core/crds/standard.oam.dev_rollouts.yaml",
|
||||||
"../../../charts/vela-core/templates/addon/fluxcd.yaml",
|
|
||||||
"../../../charts/vela-core/templates/kubevela-controller.yaml",
|
"../../../charts/vela-core/templates/kubevela-controller.yaml",
|
||||||
"../../../charts/vela-core/README.md",
|
"../../../charts/vela-core/README.md",
|
||||||
"../../../pkg/velaql/providers/query/testdata/machinelearning.seldon.io_seldondeployments.yaml",
|
"../../../pkg/velaql/providers/query/testdata/machinelearning.seldon.io_seldondeployments.yaml",
|
||||||
|
|
|
@ -41,13 +41,12 @@ helm install --create-namespace -n vela-system kubevela kubevela/vela-core --wai
|
||||||
| Name | Description | Value |
|
| Name | Description | Value |
|
||||||
| ----------------------------- | --------------------------------------------------------------------------------------------- | --------- |
|
| ----------------------------- | --------------------------------------------------------------------------------------------- | --------- |
|
||||||
| `systemDefinitionNamespace` | System definition namespace, if unspecified, will use built-in variable `.Release.Namespace`. | `nil` |
|
| `systemDefinitionNamespace` | System definition namespace, if unspecified, will use built-in variable `.Release.Namespace`. | `nil` |
|
||||||
| `applicationRevisionLimit` | Application revision limit | `10` |
|
| `applicationRevisionLimit` | Application revision limit | `2` |
|
||||||
| `definitionRevisionLimit` | Definition revision limit | `20` |
|
| `definitionRevisionLimit` | Definition revision limit | `2` |
|
||||||
| `concurrentReconciles` | concurrentReconciles is the concurrent reconcile number of the controller | `4` |
|
| `concurrentReconciles` | concurrentReconciles is the concurrent reconcile number of the controller | `4` |
|
||||||
| `controllerArgs.reSyncPeriod` | The period for resync the applications | `5m` |
|
| `controllerArgs.reSyncPeriod` | The period for resync the applications | `5m` |
|
||||||
| `OAMSpecVer` | OAMSpecVer is the oam spec version controller want to setup | `v0.3` |
|
| `OAMSpecVer` | OAMSpecVer is the oam spec version controller want to setup | `v0.3` |
|
||||||
| `disableCaps` | Disable capability | `rollout` |
|
| `disableCaps` | Disable capability | `rollout` |
|
||||||
| `enableFluxcdAddon` | Whether to enable fluxcd addon | `false` |
|
|
||||||
| `dependCheckWait` | dependCheckWait is the time to wait for ApplicationConfiguration's dependent-resource ready | `30s` |
|
| `dependCheckWait` | dependCheckWait is the time to wait for ApplicationConfiguration's dependent-resource ready | `30s` |
|
||||||
|
|
||||||
|
|
||||||
|
@ -87,7 +86,7 @@ helm install --create-namespace -n vela-system kubevela kubevela/vela-core --wai
|
||||||
| `optimize.resourceTrackerListOp` | Optimize ResourceTracker List Op by adding index. | `true` |
|
| `optimize.resourceTrackerListOp` | Optimize ResourceTracker List Op by adding index. | `true` |
|
||||||
| `optimize.controllerReconcileLoopReduction` | Optimize ApplicationController reconcile by reducing the number of loops to reconcile application. | `false` |
|
| `optimize.controllerReconcileLoopReduction` | Optimize ApplicationController reconcile by reducing the number of loops to reconcile application. | `false` |
|
||||||
| `optimize.markWithProb` | Optimize ResourceTracker GC by only run mark with probability. Side effect: outdated ResourceTracker might not be able to be removed immediately. | `0.1` |
|
| `optimize.markWithProb` | Optimize ResourceTracker GC by only run mark with probability. Side effect: outdated ResourceTracker might not be able to be removed immediately. | `0.1` |
|
||||||
| `optimize.disableComponentRevision` | Optimize componentRevision by disabling the creation and gc | `false` |
|
| `optimize.disableComponentRevision` | Optimize componentRevision by disabling the creation and gc | `true` |
|
||||||
| `optimize.disableApplicationRevision` | Optimize ApplicationRevision by disabling the creation and gc. | `false` |
|
| `optimize.disableApplicationRevision` | Optimize ApplicationRevision by disabling the creation and gc. | `false` |
|
||||||
| `optimize.disableWorkflowRecorder` | Optimize workflow recorder by disabling the creation and gc. | `false` |
|
| `optimize.disableWorkflowRecorder` | Optimize workflow recorder by disabling the creation and gc. | `false` |
|
||||||
| `optimize.enableInMemoryWorkflowContext` | Optimize workflow by use in-memory context. | `false` |
|
| `optimize.enableInMemoryWorkflowContext` | Optimize workflow by use in-memory context. | `false` |
|
||||||
|
@ -95,11 +94,11 @@ helm install --create-namespace -n vela-system kubevela kubevela/vela-core --wai
|
||||||
| `optimize.enableResourceTrackerDeleteOnlyTrigger` | Optimize resourcetracker by only trigger reconcile when resourcetracker is deleted. | `true` |
|
| `optimize.enableResourceTrackerDeleteOnlyTrigger` | Optimize resourcetracker by only trigger reconcile when resourcetracker is deleted. | `true` |
|
||||||
| `featureGates.enableLegacyComponentRevision` | if disabled, only component with rollout trait will create component revisions | `false` |
|
| `featureGates.enableLegacyComponentRevision` | if disabled, only component with rollout trait will create component revisions | `false` |
|
||||||
| `featureGates.gzipResourceTracker` | compress ResourceTracker using gzip (good) before being stored. This is reduces network throughput when dealing with huge ResourceTrackers. | `false` |
|
| `featureGates.gzipResourceTracker` | compress ResourceTracker using gzip (good) before being stored. This is reduces network throughput when dealing with huge ResourceTrackers. | `false` |
|
||||||
| `featureGates.zstdResourceTracker` | compress ResourceTracker using zstd (fast and good) before being stored. This is reduces network throughput when dealing with huge ResourceTrackers. Note that zstd will be prioritized if you enable other compression options. | `false` |
|
| `featureGates.zstdResourceTracker` | compress ResourceTracker using zstd (fast and good) before being stored. This is reduces network throughput when dealing with huge ResourceTrackers. Note that zstd will be prioritized if you enable other compression options. | `true` |
|
||||||
| `featureGates.applyOnce` | if enabled, the apply-once feature will be applied to all applications, no state-keep and no resource data storage in ResourceTracker | `false` |
|
| `featureGates.applyOnce` | if enabled, the apply-once feature will be applied to all applications, no state-keep and no resource data storage in ResourceTracker | `false` |
|
||||||
| `featureGates.multiStageComponentApply` | if enabled, the multiStageComponentApply feature will be combined with the stage field in TraitDefinition to complete the multi-stage apply. | `false` |
|
| `featureGates.multiStageComponentApply` | if enabled, the multiStageComponentApply feature will be combined with the stage field in TraitDefinition to complete the multi-stage apply. | `false` |
|
||||||
| `featureGates.gzipApplicationRevision` | compress apprev using gzip (good) before being stored. This is reduces network throughput when dealing with huge apprevs. | `false` |
|
| `featureGates.gzipApplicationRevision` | compress apprev using gzip (good) before being stored. This is reduces network throughput when dealing with huge apprevs. | `false` |
|
||||||
| `featureGates.zstdApplicationRevision` | compress apprev using zstd (fast and good) before being stored. This is reduces network throughput when dealing with huge apprevs. Note that zstd will be prioritized if you enable other compression options. | `false` |
|
| `featureGates.zstdApplicationRevision` | compress apprev using zstd (fast and good) before being stored. This is reduces network throughput when dealing with huge apprevs. Note that zstd will be prioritized if you enable other compression options. | `true` |
|
||||||
|
|
||||||
|
|
||||||
### MultiCluster parameters
|
### MultiCluster parameters
|
||||||
|
@ -147,8 +146,8 @@ helm install --create-namespace -n vela-system kubevela kubevela/vela-core --wai
|
||||||
| `logDebug` | Enable debug logs for development purpose | `false` |
|
| `logDebug` | Enable debug logs for development purpose | `false` |
|
||||||
| `logFilePath` | If non-empty, write log files in this path | `""` |
|
| `logFilePath` | If non-empty, write log files in this path | `""` |
|
||||||
| `logFileMaxSize` | Defines the maximum size a log file can grow to. Unit is megabytes. If the value is 0, the maximum file size is unlimited. | `1024` |
|
| `logFileMaxSize` | Defines the maximum size a log file can grow to. Unit is megabytes. If the value is 0, the maximum file size is unlimited. | `1024` |
|
||||||
| `kubeClient.qps` | The qps for reconcile clients, default is 50 | `50` |
|
| `kubeClient.qps` | The qps for reconcile clients, default is 100 | `100` |
|
||||||
| `kubeClient.burst` | The burst for reconcile clients, default is 100 | `100` |
|
| `kubeClient.burst` | The burst for reconcile clients, default is 200 | `200` |
|
||||||
| `authentication.enabled` | Enable authentication for application | `false` |
|
| `authentication.enabled` | Enable authentication for application | `false` |
|
||||||
| `authentication.withUser` | Application authentication will impersonate as the request User | `false` |
|
| `authentication.withUser` | Application authentication will impersonate as the request User | `false` |
|
||||||
| `authentication.defaultUser` | Application authentication will impersonate as the User if no user provided in Application | `kubevela:vela-core` |
|
| `authentication.defaultUser` | Application authentication will impersonate as the User if no user provided in Application | `kubevela:vela-core` |
|
||||||
|
|
|
@ -1,270 +0,0 @@
|
||||||
{{- if .Values.enableFluxcdAddon -}}
|
|
||||||
apiVersion: core.oam.dev/v1beta1
|
|
||||||
kind: Application
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
addons.oam.dev/name: fluxcd-def
|
|
||||||
name: addon-fluxcd-def
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
annotations:
|
|
||||||
"helm.sh/resource-policy": keep
|
|
||||||
spec:
|
|
||||||
components:
|
|
||||||
- name: fluxc-def-resources
|
|
||||||
properties:
|
|
||||||
objects:
|
|
||||||
- apiVersion: core.oam.dev/v1beta1
|
|
||||||
kind: ComponentDefinition
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
definition.oam.dev/description: helm release is a group of K8s resources
|
|
||||||
from either git repository or helm repo
|
|
||||||
name: helm
|
|
||||||
namespace: {{.Values.systemDefinitionNamespace}}
|
|
||||||
spec:
|
|
||||||
schematic:
|
|
||||||
cue:
|
|
||||||
template: "output: {\n\tapiVersion: \"source.toolkit.fluxcd.io/v1beta1\"\n\tmetadata:
|
|
||||||
{\n\t\tname: context.name\n\t}\n\tif parameter.repoType == \"git\"
|
|
||||||
{\n\t\tkind: \"GitRepository\"\n\t\tspec: {\n\t\t\turl: parameter.url\n\t\t\tif
|
|
||||||
parameter.git.branch != _|_ {\n\t\t\t\tref: branch: parameter.git.branch\n\t\t\t}\n\t\t\t_secret\n\t\t\t_sourceCommonArgs\n\t\t}\n\t}\n\tif
|
|
||||||
parameter.repoType == \"oss\" {\n\t\tkind: \"Bucket\"\n\t\tspec: {\n\t\t\tendpoint:
|
|
||||||
\ parameter.url\n\t\t\tbucketName: parameter.oss.bucketName\n\t\t\tprovider:
|
|
||||||
\ parameter.oss.provider\n\t\t\tif parameter.oss.region != _|_ {\n\t\t\t\tregion:
|
|
||||||
parameter.oss.region\n\t\t\t}\n\t\t\t_secret\n\t\t\t_sourceCommonArgs\n\t\t}\n\t}\n\tif
|
|
||||||
parameter.repoType == \"helm\" {\n\t\tkind: \"HelmRepository\"\n\t\tspec:
|
|
||||||
{\n\t\t\turl: parameter.url\n\t\t\t_secret\n\t\t\t_sourceCommonArgs\n\t\t}\n\t}\n}\n\noutputs:
|
|
||||||
release: {\n\tapiVersion: \"helm.toolkit.fluxcd.io/v2beta1\"\n\tkind:
|
|
||||||
\ \"HelmRelease\"\n\tmetadata: {\n\t\tname: context.name\n\t}\n\tspec:
|
|
||||||
{\n\t\ttimeout: parameter.installTimeout\n\t\tinterval: parameter.interval\n\t\tchart:
|
|
||||||
{\n\t\t\tspec: {\n\t\t\t\tchart: parameter.chart\n\t\t\t\tversion:
|
|
||||||
parameter.version\n\t\t\t\tsourceRef: {\n\t\t\t\t\tif parameter.repoType
|
|
||||||
== \"git\" {\n\t\t\t\t\t\tkind: \"GitRepository\"\n\t\t\t\t\t}\n\t\t\t\t\tif
|
|
||||||
parameter.repoType == \"helm\" {\n\t\t\t\t\t\tkind: \"HelmRepository\"\n\t\t\t\t\t}\n\t\t\t\t\tif
|
|
||||||
parameter.repoType == \"oss\" {\n\t\t\t\t\t\tkind: \"Bucket\"\n\t\t\t\t\t}\n\t\t\t\t\tname:
|
|
||||||
\ context.name\n\t\t\t\t}\n\t\t\t\tinterval: parameter.interval\n\t\t\t}\n\t\t}\n\t\tif
|
|
||||||
parameter.targetNamespace != _|_ {\n\t\t\ttargetNamespace: parameter.targetNamespace\n\t\t}\n\t\tif
|
|
||||||
parameter.releaseName != _|_ {\n\t\t\treleaseName: parameter.releaseName\n\t\t}\n\t\tif
|
|
||||||
parameter.values != _|_ {\n\t\t\tvalues: parameter.values\n\t\t}\n\t}\n}\n\n_secret:
|
|
||||||
{\n\tif parameter.secretRef != _|_ {\n\t\tsecretRef: {\n\t\t\tname:
|
|
||||||
parameter.secretRef\n\t\t}\n\t}\n}\n\n_sourceCommonArgs: {\n\tinterval:
|
|
||||||
parameter.pullInterval\n\tif parameter.timeout != _|_ {\n\t\ttimeout:
|
|
||||||
parameter.timeout\n\t}\n}\n\nparameter: {\n\trepoType: *\"helm\" |
|
|
||||||
\"git\" | \"oss\"\n\t// +usage=The interval at which to check for
|
|
||||||
repository/bucket and relese updates, default to 5m\n\tpullInterval:
|
|
||||||
*\"5m\" | string\n // +usage=The Interval at which to reconcile
|
|
||||||
the Helm release, default to 30s\n interval: *\"30s\" | string\n\t//
|
|
||||||
+usage=The Git or Helm repository URL, OSS endpoint, accept HTTP/S
|
|
||||||
or SSH address as git url,\n\turl: string\n\t// +usage=The name of
|
|
||||||
the secret containing authentication credentials\n\tsecretRef?: string\n\t//
|
|
||||||
+usage=The timeout for operations like download index/clone repository,
|
|
||||||
optional\n\ttimeout?: string\n\t// +usage=The timeout for operation
|
|
||||||
`helm install`, optional\n\tinstallTimeout: *\"10m\" | string\n\n\tgit?:
|
|
||||||
{\n\t\t// +usage=The Git reference to checkout and monitor for changes,
|
|
||||||
defaults to master branch\n\t\tbranch: string\n\t}\n\toss?: {\n\t\t//
|
|
||||||
+usage=The bucket's name, required if repoType is oss\n\t\tbucketName:
|
|
||||||
string\n\t\t// +usage=\"generic\" for Minio, Amazon S3, Google Cloud
|
|
||||||
Storage, Alibaba Cloud OSS, \"aws\" for retrieve credentials from
|
|
||||||
the EC2 service when credentials not specified, default \"generic\"\n\t\tprovider:
|
|
||||||
*\"generic\" | \"aws\"\n\t\t// +usage=The bucket region, optional\n\t\tregion?:
|
|
||||||
string\n\t}\n\n\t// +usage=1.The relative path to helm chart for git/oss
|
|
||||||
source. 2. chart name for helm resource 3. relative path for chart
|
|
||||||
package(e.g. ./charts/podinfo-1.2.3.tgz)\n\tchart: string\n\t// +usage=Chart
|
|
||||||
version\n\tversion: *\"*\" | string\n\t// +usage=The namespace for
|
|
||||||
helm chart, optional\n\ttargetNamespace?: string\n\t// +usage=The
|
|
||||||
release name\n\treleaseName?: string\n\t// +usage=Chart values\n\tvalues?:
|
|
||||||
#nestedmap\n}\n\n#nestedmap: {\n\t...\n}\n"
|
|
||||||
status:
|
|
||||||
customStatus: "repoMessage: string\nreleaseMessage: string\nif context.output.status
|
|
||||||
== _|_ {\n\trepoMessage: \"Fetching repository\"\n\treleaseMessage:
|
|
||||||
\"Wating repository ready\"\n}\nif context.output.status != _|_ {\n\trepoStatus:
|
|
||||||
context.output.status\n\tif repoStatus.conditions[0][\"type\"] != \"Ready\"
|
|
||||||
{\n\t\trepoMessage: \"Fetch repository fail\"\n\t}\n\tif repoStatus.conditions[0][\"type\"]
|
|
||||||
== \"Ready\" {\n\t\trepoMessage: \"Fetch repository successfully\"\n\t}\n\n\tif
|
|
||||||
context.outputs.release.status == _|_ {\n\t\treleaseMessage: \"Creating
|
|
||||||
helm release\"\n\t}\n\tif context.outputs.release.status != _|_ {\n\t\tif
|
|
||||||
context.outputs.release.status.conditions[0][\"message\"] == \"Release
|
|
||||||
reconciliation succeeded\" {\n\t\t\treleaseMessage: \"Create helm release
|
|
||||||
successfully\"\n\t\t}\n\t\tif context.outputs.release.status.conditions[0][\"message\"]
|
|
||||||
!= \"Release reconciliation succeeded\" {\n\t\t\treleaseBasicMessage:
|
|
||||||
\"Delivery helm release in progress, message: \" + context.outputs.release.status.conditions[0][\"message\"]\n\t\t\tif
|
|
||||||
len(context.outputs.release.status.conditions) == 1 {\n\t\t\t\treleaseMessage:
|
|
||||||
releaseBasicMessage\n\t\t\t}\n\t\t\tif len(context.outputs.release.status.conditions)
|
|
||||||
> 1 {\n\t\t\t\treleaseMessage: releaseBasicMessage + \", \" + context.outputs.release.status.conditions[1][\"message\"]\n\t\t\t}\n\t\t}\n\t}\n\n}\nmessage:
|
|
||||||
repoMessage + \", \" + releaseMessage"
|
|
||||||
healthPolicy: 'isHealth: len(context.outputs.release.status.conditions)
|
|
||||||
!= 0 && context.outputs.release.status.conditions[0]["status"]=="True"'
|
|
||||||
workload:
|
|
||||||
type: autodetects.core.oam.dev
|
|
||||||
- apiVersion: core.oam.dev/v1beta1
|
|
||||||
kind: TraitDefinition
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
definition.oam.dev/description: A list of JSON6902 patch to selected target
|
|
||||||
name: kustomize-json-patch
|
|
||||||
namespace: {{.Values.systemDefinitionNamespace}}
|
|
||||||
spec:
|
|
||||||
schematic:
|
|
||||||
cue:
|
|
||||||
template: "patch: {\n\tspec: {\n\t\tpatchesJson6902: parameter.patchesJson\n\t}\n}\n\nparameter:
|
|
||||||
{\n\t// +usage=A list of JSON6902 patch.\n\tpatchesJson: [...#jsonPatchItem]\n}\n\n//
|
|
||||||
+usage=Contains a JSON6902 patch\n#jsonPatchItem: {\n\ttarget: #selector\n\tpatch:
|
|
||||||
[...{\n\t\t// +usage=operation to perform\n\t\top: string | \"add\"
|
|
||||||
| \"remove\" | \"replace\" | \"move\" | \"copy\" | \"test\"\n\t\t//
|
|
||||||
+usage=operate path e.g. /foo/bar\n\t\tpath: string\n\t\t// +usage=specify
|
|
||||||
source path when op is copy/move\n\t\tfrom?: string\n\t\t// +usage=specify
|
|
||||||
opraation value when op is test/add/replace\n\t\tvalue?: string\n\t}]\n}\n\n//
|
|
||||||
+usage=Selector specifies a set of resources\n#selector: {\n\tgroup?:
|
|
||||||
\ string\n\tversion?: string\n\tkind?: string\n\tnamespace?:
|
|
||||||
\ string\n\tname?: string\n\tannotationSelector?:
|
|
||||||
string\n\tlabelSelector?: string\n}\n"
|
|
||||||
- apiVersion: core.oam.dev/v1beta1
|
|
||||||
kind: TraitDefinition
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
definition.oam.dev/description: A list of StrategicMerge or JSON6902 patch
|
|
||||||
to selected target
|
|
||||||
name: kustomize-patch
|
|
||||||
namespace: {{.Values.systemDefinitionNamespace}}
|
|
||||||
spec:
|
|
||||||
schematic:
|
|
||||||
cue:
|
|
||||||
template: "patch: {\n\tspec: {\n\t\tpatches: parameter.patches\n\t}\n}\nparameter:
|
|
||||||
{\n\t// +usage=a list of StrategicMerge or JSON6902 patch to selected
|
|
||||||
target\n\tpatches: [...#patchItem]\n}\n\n// +usage=Contains a strategicMerge
|
|
||||||
or JSON6902 patch\n#patchItem: {\n\t// +usage=Inline patch string,
|
|
||||||
in yaml style\n\tpatch: string\n\t// +usage=Specify the target the
|
|
||||||
patch should be applied to\n\ttarget: #selector\n}\n\n// +usage=Selector
|
|
||||||
specifies a set of resources\n#selector: {\n\tgroup?: string\n\tversion?:
|
|
||||||
\ string\n\tkind?: string\n\tnamespace?: string\n\tname?:
|
|
||||||
\ string\n\tannotationSelector?: string\n\tlabelSelector?:
|
|
||||||
\ string\n}\n"
|
|
||||||
- apiVersion: core.oam.dev/v1beta1
|
|
||||||
kind: ComponentDefinition
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
definition.oam.dev/description: kustomize can fetching, building, updating
|
|
||||||
and applying Kustomize manifests from git repo.
|
|
||||||
name: kustomize
|
|
||||||
namespace: {{.Values.systemDefinitionNamespace}}
|
|
||||||
spec:
|
|
||||||
schematic:
|
|
||||||
cue:
|
|
||||||
template: "output: {\n\tapiVersion: \"kustomize.toolkit.fluxcd.io/v1beta1\"\n\tkind:
|
|
||||||
\ \"Kustomization\"\n\tmetadata: {\n\t\tname: context.name\n
|
|
||||||
\ namespace: context.namespace\n\t}\n\tspec: {\n\t\tinterval: parameter.pullInterval\n\t\tsourceRef:
|
|
||||||
{\n\t\t\tif parameter.repoType == \"git\" {\n\t\t\t\tkind: \"GitRepository\"\n\t\t\t}\n\t\t\tif
|
|
||||||
parameter.repoType == \"oss\" {\n\t\t\t\tkind: \"Bucket\"\n\t\t\t}\n\t\t\tname:
|
|
||||||
\ context.name\n\t\t\tnamespace: context.namespace\n\t\t}\n\t\tpath:
|
|
||||||
\ parameter.path\n\t\tprune: true\n\t\tvalidation: \"client\"\n\t}\n}\n\noutputs:
|
|
||||||
{\n repo: {\n\t apiVersion: \"source.toolkit.fluxcd.io/v1beta1\"\n\t
|
|
||||||
\ metadata: {\n\t\t name: context.name\n namespace: context.namespace\n\t
|
|
||||||
\ }\n\t if parameter.repoType == \"git\" {\n\t\t kind: \"GitRepository\"\n\t\t
|
|
||||||
\ spec: {\n\t\t\t url: parameter.url\n\t\t\t if parameter.git.branch
|
|
||||||
!= _|_ {\n\t\t\t\t ref: branch: parameter.git.branch\n\t\t\t }\n
|
|
||||||
\ if parameter.git.provider != _|_ {\n if parameter.git.provider
|
|
||||||
== \"GitHub\" {\n gitImplementation: \"go-git\"\n }\n
|
|
||||||
\ if parameter.git.provider == \"AzureDevOps\" {\n gitImplementation:
|
|
||||||
\"libgit2\"\n }\n }\n\t\t\t _secret\n\t\t\t _sourceCommonArgs\n\t\t
|
|
||||||
\ }\n\t }\n\t if parameter.repoType == \"oss\" {\n\t\t kind: \"Bucket\"\n\t\t
|
|
||||||
\ spec: {\n\t\t\t endpoint: parameter.url\n\t\t\t bucketName:
|
|
||||||
parameter.oss.bucketName\n\t\t\t provider: parameter.oss.provider\n\t\t\t
|
|
||||||
\ if parameter.oss.region != _|_ {\n\t\t\t\t region: parameter.oss.region\n\t\t\t
|
|
||||||
\ }\n\t\t\t _secret\n\t\t\t _sourceCommonArgs\n\t\t }\n\t }\n
|
|
||||||
\ }\n\n if parameter.imageRepository != _|_ {\n imageRepo: {\n
|
|
||||||
\ apiVersion: \"image.toolkit.fluxcd.io/v1beta1\"\n kind:
|
|
||||||
\"ImageRepository\"\n\t metadata: {\n\t\t name: context.name\n
|
|
||||||
\ namespace: context.namespace\n\t }\n spec: {\n image:
|
|
||||||
parameter.imageRepository.image\n interval: parameter.pullInterval\n
|
|
||||||
\ if parameter.imageRepository.secretRef != _|_ {\n secretRef:
|
|
||||||
name: parameter.imageRepository.secretRef\n }\n }\n }\n\n
|
|
||||||
\ imagePolicy: {\n apiVersion: \"image.toolkit.fluxcd.io/v1beta1\"\n
|
|
||||||
\ kind: \"ImagePolicy\"\n\t metadata: {\n\t\t name: context.name\n
|
|
||||||
\ namespace: context.namespace\n\t }\n spec: {\n imageRepositoryRef:
|
|
||||||
name: context.name\n policy: parameter.imageRepository.policy\n
|
|
||||||
\ if parameter.imageRepository.filterTags != _|_ {\n filterTags:
|
|
||||||
parameter.imageRepository.filterTags\n }\n }\n }\n\n
|
|
||||||
\ imageUpdate: {\n apiVersion: \"image.toolkit.fluxcd.io/v1beta1\"\n
|
|
||||||
\ kind: \"ImageUpdateAutomation\"\n\t metadata: {\n\t\t name:
|
|
||||||
context.name\n namespace: context.namespace\n\t }\n spec:
|
|
||||||
{\n interval: parameter.pullInterval\n sourceRef: {\n
|
|
||||||
\ kind: \"GitRepository\"\n name: context.name\n
|
|
||||||
\ }\n git: {\n checkout: ref: branch: parameter.git.branch\n
|
|
||||||
\ commit: {\n author: {\n email: \"kubevelabot@users.noreply.github.com\"\n
|
|
||||||
\ name: \"kubevelabot\"\n }\n if
|
|
||||||
parameter.imageRepository.commitMessage != _|_ {\n messageTemplate:
|
|
||||||
\"Update image automatically.\\n\" + parameter.imageRepository.commitMessage\n
|
|
||||||
\ }\n if parameter.imageRepository.commitMessage
|
|
||||||
== _|_ {\n messageTemplate: \"Update image automatically.\"\n
|
|
||||||
\ }\n }\n push: branch: parameter.git.branch\n
|
|
||||||
\ }\n update: {\n path:\tparameter.path\n strategy:
|
|
||||||
\"Setters\"\n }\n }\n }\n }\n}\n\n_secret: {\n\tif
|
|
||||||
parameter.secretRef != _|_ {\n\t\tsecretRef: {\n\t\t\tname: parameter.secretRef\n\t\t}\n\t}\n}\n\n_sourceCommonArgs:
|
|
||||||
{\n\tinterval: parameter.pullInterval\n\tif parameter.timeout != _|_
|
|
||||||
{\n\t\ttimeout: parameter.timeout\n\t}\n}\n\nparameter: {\n\trepoType:
|
|
||||||
*\"git\" | \"oss\"\n // +usage=The image repository for automatically
|
|
||||||
update image to git\n imageRepository?: {\n // +usage=The image
|
|
||||||
url\n image: string\n // +usage=The name of the secret containing
|
|
||||||
authentication credentials\n secretRef?: string\n // +usage=Policy
|
|
||||||
gives the particulars of the policy to be followed in selecting the
|
|
||||||
most recent image.\n policy: {\n // +usage=Alphabetical set
|
|
||||||
of rules to use for alphabetical ordering of the tags.\n alphabetical?:
|
|
||||||
{\n // +usage=Order specifies the sorting order of the tags.\n
|
|
||||||
\ // +usage=Given the letters of the alphabet as tags, ascending
|
|
||||||
order would select Z, and descending order would select A.\n order?:
|
|
||||||
\"asc\" | \"desc\"\n }\n // +usage=Numerical set of rules
|
|
||||||
to use for numerical ordering of the tags.\n numerical?: {\n
|
|
||||||
\ // +usage=Order specifies the sorting order of the tags.\n
|
|
||||||
\ // +usage=Given the integer values from 0 to 9 as tags, ascending
|
|
||||||
order would select 9, and descending order would select 0.\n order:
|
|
||||||
\"asc\" | \"desc\"\n }\n // +usage=SemVer gives a semantic
|
|
||||||
version range to check against the tags available.\n semver?:
|
|
||||||
{\n // +usage=Range gives a semver range for the image tag;
|
|
||||||
the highest version within the range that's a tag yields the latest
|
|
||||||
image.\n range: string\n }\n }\n // +usage=FilterTags
|
|
||||||
enables filtering for only a subset of tags based on a set of rules.
|
|
||||||
If no rules are provided, all the tags from the repository will be
|
|
||||||
ordered and compared.\n filterTags?: {\n // +usage=Extract
|
|
||||||
allows a capture group to be extracted from the specified regular
|
|
||||||
expression pattern, useful before tag evaluation.\n extract?:
|
|
||||||
string\n // +usage=Pattern specifies a regular expression pattern
|
|
||||||
used to filter for image tags.\n pattern?: string\n }\n //
|
|
||||||
+usage=The image url\n commitMessage?: string\n }\n\t// +usage=The
|
|
||||||
interval at which to check for repository/bucket and release updates,
|
|
||||||
default to 5m\n\tpullInterval: *\"5m\" | string\n\t// +usage=The Git
|
|
||||||
or Helm repository URL, OSS endpoint, accept HTTP/S or SSH address
|
|
||||||
as git url,\n\turl: string\n\t// +usage=The name of the secret containing
|
|
||||||
authentication credentials\n\tsecretRef?: string\n\t// +usage=The
|
|
||||||
timeout for operations like download index/clone repository, optional\n\ttimeout?:
|
|
||||||
string\n\tgit?: {\n\t\t// +usage=The Git reference to checkout and
|
|
||||||
monitor for changes, defaults to master branch\n\t\tbranch: string\n
|
|
||||||
\ // +usage=Determines which git client library to use. Defaults
|
|
||||||
to GitHub, it will pick go-git. AzureDevOps will pick libgit2.\n provider?:
|
|
||||||
*\"GitHub\" | \"AzureDevOps\"\n\t}\n\toss?: {\n\t\t// +usage=The bucket's
|
|
||||||
name, required if repoType is oss\n\t\tbucketName: string\n\t\t//
|
|
||||||
+usage=\"generic\" for Minio, Amazon S3, Google Cloud Storage, Alibaba
|
|
||||||
Cloud OSS, \"aws\" for retrieve credentials from the EC2 service when
|
|
||||||
credentials not specified, default \"generic\"\n\t\tprovider: *\"generic\"
|
|
||||||
| \"aws\"\n\t\t// +usage=The bucket region, optional\n\t\tregion?:
|
|
||||||
string\n\t}\n\t//+usage=Path to the directory containing the kustomization.yaml
|
|
||||||
file, or the set of plain YAMLs a kustomization.yaml should be generated
|
|
||||||
for.\n\tpath: string\n}"
|
|
||||||
workload:
|
|
||||||
type: autodetects.core.oam.dev
|
|
||||||
- apiVersion: core.oam.dev/v1beta1
|
|
||||||
kind: TraitDefinition
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
definition.oam.dev/description: A list of strategic merge to kustomize
|
|
||||||
config
|
|
||||||
name: kustomize-strategy-merge
|
|
||||||
namespace: {{.Values.systemDefinitionNamespace}}
|
|
||||||
spec:
|
|
||||||
schematic:
|
|
||||||
cue:
|
|
||||||
template: "patch: {\n\tspec: {\n\t\tpatchesStrategicMerge: parameter.patchesStrategicMerge\n\t}\n}\n\nparameter:
|
|
||||||
{\n\t// +usage=a list of strategicmerge, defined as inline yaml objects.\n\tpatchesStrategicMerge:
|
|
||||||
[...#nestedmap]\n}\n\n#nestedmap: {\n\t...\n}\n"
|
|
||||||
type: k8s-objects
|
|
||||||
|
|
||||||
{{- end }}
|
|
File diff suppressed because it is too large
Load Diff
|
@ -8,10 +8,10 @@
|
||||||
systemDefinitionNamespace:
|
systemDefinitionNamespace:
|
||||||
|
|
||||||
## @param applicationRevisionLimit Application revision limit
|
## @param applicationRevisionLimit Application revision limit
|
||||||
applicationRevisionLimit: 10
|
applicationRevisionLimit: 2
|
||||||
|
|
||||||
## @param definitionRevisionLimit Definition revision limit
|
## @param definitionRevisionLimit Definition revision limit
|
||||||
definitionRevisionLimit: 20
|
definitionRevisionLimit: 2
|
||||||
|
|
||||||
## @param concurrentReconciles concurrentReconciles is the concurrent reconcile number of the controller
|
## @param concurrentReconciles concurrentReconciles is the concurrent reconcile number of the controller
|
||||||
concurrentReconciles: 4
|
concurrentReconciles: 4
|
||||||
|
@ -26,9 +26,6 @@ OAMSpecVer: "v0.3"
|
||||||
## @param disableCaps Disable capability
|
## @param disableCaps Disable capability
|
||||||
disableCaps: "rollout"
|
disableCaps: "rollout"
|
||||||
|
|
||||||
## @param enableFluxcdAddon Whether to enable fluxcd addon
|
|
||||||
enableFluxcdAddon: false
|
|
||||||
|
|
||||||
## @param dependCheckWait dependCheckWait is the time to wait for ApplicationConfiguration's dependent-resource ready
|
## @param dependCheckWait dependCheckWait is the time to wait for ApplicationConfiguration's dependent-resource ready
|
||||||
dependCheckWait: 30s
|
dependCheckWait: 30s
|
||||||
|
|
||||||
|
@ -102,7 +99,7 @@ optimize:
|
||||||
resourceTrackerListOp: true
|
resourceTrackerListOp: true
|
||||||
controllerReconcileLoopReduction: false
|
controllerReconcileLoopReduction: false
|
||||||
markWithProb: 0.1
|
markWithProb: 0.1
|
||||||
disableComponentRevision: false
|
disableComponentRevision: true
|
||||||
disableApplicationRevision: false
|
disableApplicationRevision: false
|
||||||
disableWorkflowRecorder: false
|
disableWorkflowRecorder: false
|
||||||
enableInMemoryWorkflowContext: false
|
enableInMemoryWorkflowContext: false
|
||||||
|
@ -120,11 +117,11 @@ optimize:
|
||||||
featureGates:
|
featureGates:
|
||||||
enableLegacyComponentRevision: false
|
enableLegacyComponentRevision: false
|
||||||
gzipResourceTracker: false
|
gzipResourceTracker: false
|
||||||
zstdResourceTracker: false
|
zstdResourceTracker: true
|
||||||
applyOnce: false
|
applyOnce: false
|
||||||
multiStageComponentApply: false
|
multiStageComponentApply: false
|
||||||
gzipApplicationRevision: false
|
gzipApplicationRevision: false
|
||||||
zstdApplicationRevision: false
|
zstdApplicationRevision: true
|
||||||
|
|
||||||
## @section MultiCluster parameters
|
## @section MultiCluster parameters
|
||||||
|
|
||||||
|
@ -254,11 +251,11 @@ admissionWebhooks:
|
||||||
enabled: false
|
enabled: false
|
||||||
revisionHistoryLimit: 3
|
revisionHistoryLimit: 3
|
||||||
|
|
||||||
## @param kubeClient.qps The qps for reconcile clients, default is 50
|
## @param kubeClient.qps The qps for reconcile clients, default is 100
|
||||||
## @param kubeClient.burst The burst for reconcile clients, default is 100
|
## @param kubeClient.burst The burst for reconcile clients, default is 200
|
||||||
kubeClient:
|
kubeClient:
|
||||||
qps: 50
|
qps: 100
|
||||||
burst: 100
|
burst: 200
|
||||||
|
|
||||||
## @param authentication.enabled Enable authentication for application
|
## @param authentication.enabled Enable authentication for application
|
||||||
## @param authentication.withUser Application authentication will impersonate as the request User
|
## @param authentication.withUser Application authentication will impersonate as the request User
|
||||||
|
|
|
@ -66,7 +66,6 @@ helm install --create-namespace -n vela-system kubevela kubevela/vela-minimal --
|
||||||
| `OAMSpecVer` | OAMSpecVer is the oam spec version controller want to setup | `minimal` |
|
| `OAMSpecVer` | OAMSpecVer is the oam spec version controller want to setup | `minimal` |
|
||||||
| `disableCaps` | Disable capability | `envbinding,rollout` |
|
| `disableCaps` | Disable capability | `envbinding,rollout` |
|
||||||
| `applyOnceOnly` | Valid applyOnceOnly values: true/false/on/off/force | `off` |
|
| `applyOnceOnly` | Valid applyOnceOnly values: true/false/on/off/force | `off` |
|
||||||
| `enableFluxcdAddon` | Whether to enable fluxcd addon | `false` |
|
|
||||||
| `dependCheckWait` | dependCheckWait is the time to wait for ApplicationConfiguration's dependent-resource ready | `30s` |
|
| `dependCheckWait` | dependCheckWait is the time to wait for ApplicationConfiguration's dependent-resource ready | `30s` |
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -29,9 +29,6 @@ disableCaps: "envbinding,rollout"
|
||||||
## @param applyOnceOnly Valid applyOnceOnly values: true/false/on/off/force
|
## @param applyOnceOnly Valid applyOnceOnly values: true/false/on/off/force
|
||||||
applyOnceOnly: "off"
|
applyOnceOnly: "off"
|
||||||
|
|
||||||
## @param enableFluxcdAddon Whether to enable fluxcd addon
|
|
||||||
enableFluxcdAddon: false
|
|
||||||
|
|
||||||
## @param dependCheckWait dependCheckWait is the time to wait for ApplicationConfiguration's dependent-resource ready
|
## @param dependCheckWait dependCheckWait is the time to wait for ApplicationConfiguration's dependent-resource ready
|
||||||
dependCheckWait: 30s
|
dependCheckWait: 30s
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,7 @@ e2e-setup-core-wo-auth:
|
||||||
--set image.pullPolicy=IfNotPresent \
|
--set image.pullPolicy=IfNotPresent \
|
||||||
--set image.repository=vela-core-test \
|
--set image.repository=vela-core-test \
|
||||||
--set applicationRevisionLimit=5 \
|
--set applicationRevisionLimit=5 \
|
||||||
|
--set optimize.disableComponentRevision=false \
|
||||||
--set dependCheckWait=10s \
|
--set dependCheckWait=10s \
|
||||||
--set image.tag=$(GIT_COMMIT) \
|
--set image.tag=$(GIT_COMMIT) \
|
||||||
--wait kubevela ./charts/vela-core
|
--wait kubevela ./charts/vela-core
|
||||||
|
@ -38,6 +39,7 @@ e2e-setup-core-w-auth:
|
||||||
--set image.pullPolicy=IfNotPresent \
|
--set image.pullPolicy=IfNotPresent \
|
||||||
--set image.repository=vela-core-test \
|
--set image.repository=vela-core-test \
|
||||||
--set applicationRevisionLimit=5 \
|
--set applicationRevisionLimit=5 \
|
||||||
|
--set optimize.disableComponentRevision=false \
|
||||||
--set dependCheckWait=10s \
|
--set dependCheckWait=10s \
|
||||||
--set image.tag=$(GIT_COMMIT) \
|
--set image.tag=$(GIT_COMMIT) \
|
||||||
--wait kubevela \
|
--wait kubevela \
|
||||||
|
@ -61,6 +63,8 @@ setup-runtime-e2e-cluster:
|
||||||
--wait oam-rollout \
|
--wait oam-rollout \
|
||||||
--set image.repository=vela-runtime-rollout-test \
|
--set image.repository=vela-runtime-rollout-test \
|
||||||
--set image.tag=$(GIT_COMMIT) \
|
--set image.tag=$(GIT_COMMIT) \
|
||||||
|
--set applicationRevisionLimit=6 \
|
||||||
|
--set optimize.disableComponentRevision=false \
|
||||||
./runtime/rollout/charts
|
./runtime/rollout/charts
|
||||||
|
|
||||||
k3d cluster get $(RUNTIME_CLUSTER_NAME) && \
|
k3d cluster get $(RUNTIME_CLUSTER_NAME) && \
|
||||||
|
@ -71,7 +75,9 @@ setup-runtime-e2e-cluster:
|
||||||
--set image.pullPolicy=IfNotPresent \
|
--set image.pullPolicy=IfNotPresent \
|
||||||
--set image.repository=vela-runtime-rollout-test \
|
--set image.repository=vela-runtime-rollout-test \
|
||||||
--set image.tag=$(GIT_COMMIT) \
|
--set image.tag=$(GIT_COMMIT) \
|
||||||
|
--set applicationRevisionLimit=6 \
|
||||||
--wait vela-rollout \
|
--wait vela-rollout \
|
||||||
|
--set optimize.disableComponentRevision=false \
|
||||||
./runtime/rollout/charts || \
|
./runtime/rollout/charts || \
|
||||||
echo "no worker cluster" \
|
echo "no worker cluster" \
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue