diff --git a/charts/vela-core/README.md b/charts/vela-core/README.md index 27faf143e..7660c7bef 100644 --- a/charts/vela-core/README.md +++ b/charts/vela-core/README.md @@ -78,6 +78,22 @@ helm install --create-namespace -n vela-system kubevela kubevela/vela-core --wai | `healthCheck.port` | KubeVela health check port | `9440` | +### KubeVela controller optimization parameters + +| Name | Description | Value | +| ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | +| `optimize.optimizeCachedGvks` | Optimize types of resources to be cached. | `nil` | +| `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.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.disableApplicationRevision` | Optimize ApplicationRevision 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.disableResourceApplyDoubleCheck` | Optimize workflow by ignoring resource double check after apply. | `false` | +| `optimize.enableResourceTrackerDeleteOnlyTrigger` | Optimize resourcetracker by only trigger reconcile when resourcetracker is deleted. | `true` | + + ### MultiCluster parameters | Name | Description | Value | @@ -164,10 +180,4 @@ To uninstall the KubeVela helm release: $ helm uninstall -n vela-system kubevela ``` -Finally, this command will remove all the Kubernetes resources associated with KubeVela and remove this chart release. - - - - - - +Finally, this command will remove all the Kubernetes resources associated with KubeVela and remove this chart release. \ No newline at end of file diff --git a/charts/vela-core/templates/kubevela-controller.yaml b/charts/vela-core/templates/kubevela-controller.yaml index c19fd389b..1f2c25b58 100644 --- a/charts/vela-core/templates/kubevela-controller.yaml +++ b/charts/vela-core/templates/kubevela-controller.yaml @@ -121,6 +121,36 @@ spec: - "--webhook-port={{ .Values.webhookService.port }}" - "--webhook-cert-dir={{ .Values.admissionWebhooks.certificate.mountPath }}" {{ end }} + {{ if ne .Values.optimize.cachedGvks "" }} + - "--optimize-cached-gvks={{ .Values.optimize.cachedGvks }}" + {{ end }} + {{ if not .Values.optimize.resourceTrackerListOp }} + - "--optimize-resource-tracker-list-op=false" + {{ end }} + {{ if .Values.optimize.controllerReconcileLoopReduction }} + - "--optimize-controller-reconcile-loop-reduction" + {{ end }} + {{ if .Values.optimize.markWithProb }} + - "--optimize-mark-with-prob={{ .Values.optimize.markWithProb }}" + {{ end }} + {{ if .Values.optimize.disableComponentRevision }} + - "--optimize-disable-component-revision" + {{ end }} + {{ if .Values.optimize.disableApplicationRevision }} + - "--optimize-disable-application-revision" + {{ end }} + {{ if .Values.optimize.disableWorkflowRecorder }} + - "--optimize-disable-workflow-recorder" + {{ end }} + {{ if .Values.optimize.enableInMemoryWorkflowContext }} + - "--optimize-enable-in-memory-workflow-context" + {{ end }} + {{ if .Values.optimize.disableResourceApplyDoubleCheck }} + - "--optimize-disable-resource-apply-double-check" + {{ end }} + {{ if not .Values.optimize.enableResourceTrackerDeleteOnlyTrigger }} + - "--optimize-enable-resource-tracker-delete-only-trigger=false" + {{ end }} - "--health-addr=:{{ .Values.healthCheck.port }}" {{ if ne .Values.disableCaps "" }} - "--disable-caps={{ .Values.disableCaps }}" @@ -186,4 +216,4 @@ spec: {{- with .Values.tolerations }} tolerations: {{- toYaml . | nindent 8 }} - {{- end }} \ No newline at end of file + {{- end }} diff --git a/charts/vela-core/values.yaml b/charts/vela-core/values.yaml index 669f3d1f5..a0caefbf6 100644 --- a/charts/vela-core/values.yaml +++ b/charts/vela-core/values.yaml @@ -84,6 +84,28 @@ webhookService: healthCheck: port: 9440 +## @section KubeVela controller optimization parameters +##@param optimize.optimizeCachedGvks Optimize types of resources to be cached. +##@param optimize.resourceTrackerListOp Optimize ResourceTracker List Op by adding index. +##@param optimize.controllerReconcileLoopReduction Optimize ApplicationController reconcile by reducing the number of loops to reconcile application. +##@param optimize.markWithProb Optimize ResourceTracker GC by only run mark with probability. Side effect: outdated ResourceTracker might not be able to be removed immediately. +##@param optimize.disableComponentRevision Optimize componentRevision by disabling the creation and gc +##@param optimize.disableApplicationRevision Optimize ApplicationRevision by disabling the creation and gc. +##@param optimize.disableWorkflowRecorder Optimize workflow recorder by disabling the creation and gc. +##@param optimize.enableInMemoryWorkflowContext Optimize workflow by use in-memory context. +##@param optimize.disableResourceApplyDoubleCheck Optimize workflow by ignoring resource double check after apply. +##@param optimize.enableResourceTrackerDeleteOnlyTrigger Optimize resourcetracker by only trigger reconcile when resourcetracker is deleted. +optimize: + optimizeCachedGvks: + resourceTrackerListOp: true + controllerReconcileLoopReduction: false + markWithProb: 0.1 + disableComponentRevision: false + disableApplicationRevision: false + disableWorkflowRecorder: false + enableInMemoryWorkflowContext: false + disableResourceApplyDoubleCheck: false + enableResourceTrackerDeleteOnlyTrigger: true ## @section MultiCluster parameters