github.com/oam-dev/kubevela@v1.9.11/charts/vela-core/README.md (about) 1 <div style="text-align: center"> 2 <p align="center"> 3 <img src="https://raw.githubusercontent.com/kubevela/kubevela.io/main/docs/resources/KubeVela-03.png"> 4 <br><br> 5 <i>Make shipping applications more enjoyable.</i> 6 </p> 7 </div> 8 9  10 [](https://goreportcard.com/report/github.com/kubevela/kubevela) 11  12 [](https://codecov.io/gh/kubevela/kubevela) 13 [](/LICENSE) 14 [](https://github.com/kubevela/kubevela/releases) 15 [](https://www.tickgit.com/browse?repo=github.com/oam-dev/kubevela) 16 [](https://twitter.com/oam_dev) 17 [](https://artifacthub.io/packages/search?repo=kubevela) 18 [](https://bestpractices.coreinfrastructure.org/projects/4602) 19 20 # KubeVela helm chart 21 22 KubeVela is a modern application platform that makes it easier and faster to deliver and manage applications across hybrid, 23 multi-cloud environments. At the mean time, it is highly extensible and programmable, which can adapt to your needs as they grow. 24 25 ## TL;DR 26 27 ```bash 28 helm repo add kubevela https://kubevela.github.io/charts 29 helm repo update 30 helm install --create-namespace -n vela-system kubevela kubevela/vela-core --wait 31 ``` 32 33 ## Prerequisites 34 35 - Kubernetes >= v1.19 && < v1.22 36 37 ## Parameters 38 39 ### KubeVela core parameters 40 41 | Name | Description | Value | 42 | ----------------------------- | --------------------------------------------------------------------------------------------- | ----- | 43 | `systemDefinitionNamespace` | System definition namespace, if unspecified, will use built-in variable `.Release.Namespace`. | `nil` | 44 | `applicationRevisionLimit` | Application revision limit | `2` | 45 | `definitionRevisionLimit` | Definition revision limit | `2` | 46 | `concurrentReconciles` | concurrentReconciles is the concurrent reconcile number of the controller | `4` | 47 | `controllerArgs.reSyncPeriod` | The period for resync the applications | `5m` | 48 49 ### KubeVela workflow parameters 50 51 | Name | Description | Value | 52 | -------------------------------------- | ------------------------------------------------------ | ------- | 53 | `workflow.enableSuspendOnFailure` | Enable suspend on workflow failure | `false` | 54 | `workflow.backoff.maxTime.waitState` | The max backoff time of workflow in a wait condition | `60` | 55 | `workflow.backoff.maxTime.failedState` | The max backoff time of workflow in a failed condition | `300` | 56 | `workflow.step.errorRetryTimes` | The max retry times of a failed workflow step | `10` | 57 58 ### KubeVela controller parameters 59 60 | Name | Description | Value | 61 | --------------------------- | ------------------------------------ | ------------------ | 62 | `replicaCount` | KubeVela controller replica count | `1` | 63 | `imageRegistry` | Image registry | `""` | 64 | `image.repository` | Image repository | `oamdev/vela-core` | 65 | `image.tag` | Image tag | `latest` | 66 | `image.pullPolicy` | Image pull policy | `Always` | 67 | `resources.limits.cpu` | KubeVela controller's cpu limit | `500m` | 68 | `resources.limits.memory` | KubeVela controller's memory limit | `1Gi` | 69 | `resources.requests.cpu` | KubeVela controller's cpu request | `50m` | 70 | `resources.requests.memory` | KubeVela controller's memory request | `20Mi` | 71 | `webhookService.type` | KubeVela webhook service type | `ClusterIP` | 72 | `webhookService.port` | KubeVela webhook service port | `9443` | 73 | `healthCheck.port` | KubeVela health check port | `9440` | 74 75 ### KubeVela controller optimization parameters 76 77 | Name | Description | Value | 78 | ------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | 79 | `optimize.cachedGvks` | Optimize types of resources to be cached. | `""` | 80 | `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` | 81 | `optimize.disableComponentRevision` | Optimize componentRevision by disabling the creation and gc | `true` | 82 | `optimize.disableApplicationRevision` | Optimize ApplicationRevision by disabling the creation and gc. | `false` | 83 | `optimize.enableInMemoryWorkflowContext` | Optimize workflow by use in-memory context. | `false` | 84 | `optimize.disableResourceApplyDoubleCheck` | Optimize workflow by ignoring resource double check after apply. | `false` | 85 | `optimize.enableResourceTrackerDeleteOnlyTrigger` | Optimize resourcetracker by only trigger reconcile when resourcetracker is deleted. | `true` | 86 | `featureGates.gzipResourceTracker` | compress ResourceTracker using gzip (good) before being stored. This is reduces network throughput when dealing with huge ResourceTrackers. | `false` | 87 | `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` | 88 | `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` | 89 | `featureGates.multiStageComponentApply` | if enabled, the multiStageComponentApply feature will be combined with the stage field in TraitDefinition to complete the multi-stage apply. | `true` | 90 | `featureGates.gzipApplicationRevision` | compress apprev using gzip (good) before being stored. This is reduces network throughput when dealing with huge apprevs. | `false` | 91 | `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` | 92 | `featureGates.preDispatchDryRun` | enable dryrun before dispatching resources. Enable this flag can help prevent unsuccessful dispatch resources entering resourcetracker and improve the user experiences of gc but at the cost of increasing network requests. | `true` | 93 | `featureGates.validateComponentWhenSharding` | enable component validation in webhook when sharding mode enabled | `false` | 94 | `featureGates.disableWebhookAutoSchedule` | disable auto schedule for application mutating webhook when sharding enabled | `false` | 95 | `featureGates.disableBootstrapClusterInfo` | disable the cluster info bootstrap at the starting of the controller | `false` | 96 | `featureGates.informerCacheFilterUnnecessaryFields` | filter unnecessary fields for informer cache | `true` | 97 | `featureGates.sharedDefinitionStorageForApplicationRevision` | use definition cache to reduce duplicated definition storage for application revision, must be used with InformerCacheFilterUnnecessaryFields | `true` | 98 | `featureGates.disableWorkflowContextConfigMapCache` | disable the workflow context's configmap informer cache | `true` | 99 100 ### MultiCluster parameters 101 102 | Name | Description | Value | 103 | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------- | -------------------------------- | 104 | `multicluster.enabled` | Whether to enable multi-cluster | `true` | 105 | `multicluster.metrics.enabled` | Whether to enable multi-cluster metrics collect | `false` | 106 | `multicluster.clusterGateway.direct` | controller will connect to ClusterGateway directly instead of going to Kubernetes APIServer | `true` | 107 | `multicluster.clusterGateway.replicaCount` | ClusterGateway replica count | `1` | 108 | `multicluster.clusterGateway.port` | ClusterGateway port | `9443` | 109 | `multicluster.clusterGateway.image.repository` | ClusterGateway image repository | `oamdev/cluster-gateway` | 110 | `multicluster.clusterGateway.image.tag` | ClusterGateway image tag | `v1.9.0-alpha.2` | 111 | `multicluster.clusterGateway.image.pullPolicy` | ClusterGateway image pull policy | `IfNotPresent` | 112 | `multicluster.clusterGateway.resources.requests.cpu` | ClusterGateway cpu request | `50m` | 113 | `multicluster.clusterGateway.resources.requests.memory` | ClusterGateway memory request | `20Mi` | 114 | `multicluster.clusterGateway.resources.limits.cpu` | ClusterGateway cpu limit | `500m` | 115 | `multicluster.clusterGateway.resources.limits.memory` | ClusterGateway memory limit | `200Mi` | 116 | `multicluster.clusterGateway.secureTLS.enabled` | Whether to enable secure TLS | `true` | 117 | `multicluster.clusterGateway.secureTLS.certPath` | Path to the certificate file | `/etc/k8s-cluster-gateway-certs` | 118 | `multicluster.clusterGateway.secureTLS.certManager.enabled` | Whether to enable cert-manager | `false` | 119 120 ### Test parameters 121 122 | Name | Description | Value | 123 | --------------------- | ------------------- | -------------------- | 124 | `test.app.repository` | Test app repository | `oamdev/hello-world` | 125 | `test.app.tag` | Test app tag | `v1` | 126 | `test.k8s.repository` | Test k8s repository | `oamdev/alpine-k8s` | 127 | `test.k8s.tag` | Test k8s tag | `1.18.2` | 128 129 ### Common parameters 130 131 | Name | Description | Value | 132 | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------- | 133 | `imagePullSecrets` | Image pull secrets | `[]` | 134 | `nameOverride` | Override name | `""` | 135 | `fullnameOverride` | Fullname override | `""` | 136 | `serviceAccount.create` | Specifies whether a service account should be created | `true` | 137 | `serviceAccount.annotations` | Annotations to add to the service account | `{}` | 138 | `serviceAccount.name` | The name of the service account to use. If not set and create is true, a name is generated using the fullname template | `nil` | 139 | `nodeSelector` | Node selector | `{}` | 140 | `tolerations` | Tolerations | `[]` | 141 | `affinity` | Affinity | `{}` | 142 | `rbac.create` | Specifies whether a RBAC role should be created | `true` | 143 | `logDebug` | Enable debug logs for development purpose | `false` | 144 | `logFilePath` | If non-empty, write log files in this path | `""` | 145 | `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` | 146 | `kubeClient.qps` | The qps for reconcile clients | `400` | 147 | `kubeClient.burst` | The burst for reconcile clients | `600` | 148 | `authentication.enabled` | Enable authentication for application | `false` | 149 | `authentication.withUser` | Application authentication will impersonate as the request User | `true` | 150 | `authentication.defaultUser` | Application authentication will impersonate as the User if no user provided in Application | `kubevela:vela-core` | 151 | `authentication.groupPattern` | Application authentication will impersonate as the request Group that matches the pattern | `kubevela:*` | 152 | `sharding.enabled` | When sharding enabled, the controller will run as master mode. Refer to https://github.com/kubevela/kubevela/blob/master/design/vela-core/sharding.md for details. | `false` | 153 | `sharding.schedulableShards` | The shards available for scheduling. If empty, dynamic discovery will be used. | `""` | 154 155 156 ## Uninstallation 157 158 ### Vela CLI 159 160 To uninstall KubeVela, you can just run the following command by vela CLI: 161 162 ```shell 163 vela uninstall --force 164 ``` 165 166 ### Helm CLI 167 168 **Notice**: You must disable all the addons before uninstallation, this is a script for convenience. 169 170 ```shell 171 #! /bin/sh 172 addon=$(vela addon list|grep enabled|awk {'print $1'}) 173 174 fluxcd=false 175 for var in ${addon[*]} 176 do 177 if [ $var == "fluxcd" ]; then 178 fluxcd=true 179 continue 180 else 181 vela addon disable $var 182 fi 183 done 184 if [ $fluxcd ]; then 185 vela addon disable fluxcd 186 fi 187 ``` 188 189 Make sure all existing KubeVela resources deleted before uninstallation: 190 ```shell 191 kubectl delete applicationrevisions.core.oam.dev --all 192 kubectl delete applications.core.oam.dev --all 193 kubectl delete componentdefinitions.core.oam.dev --all 194 kubectl delete definitionrevisions.core.oam.dev --all 195 kubectl delete policies.core.oam.dev --all 196 kubectl delete policydefinitions.core.oam.dev --all 197 kubectl delete resourcetrackers.core.oam.dev --all 198 kubectl delete traitdefinitions.core.oam.dev --all 199 kubectl delete workflows.core.oam.dev --all 200 kubectl delete workflowstepdefinitions.core.oam.dev --all 201 kubectl delete workloaddefinitions.core.oam.dev --all 202 ``` 203 204 To uninstall the KubeVela helm release: 205 206 ```shell 207 $ helm uninstall -n vela-system kubevela 208 ``` 209 210 Finally, this command will remove all the Kubernetes resources associated with KubeVela and remove this chart release.