mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-12-22 16:36:27 +01:00
42a67616ba
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
Signed-off-by: Github Actions <133988544+victoriametrics-bot@users.noreply.github.com>
Co-authored-by: AndrewChubatiuk <3162380+AndrewChubatiuk@users.noreply.github.com>
(cherry picked from commit 6a738e0b41
)
1058 lines
28 KiB
Markdown
1058 lines
28 KiB
Markdown
![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![Version: 0.35.4](https://img.shields.io/badge/Version-0.35.4-informational?style=flat-square)
|
|
[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/victoriametrics)](https://artifacthub.io/packages/helm/victoriametrics/victoria-metrics-operator)
|
|
|
|
Victoria Metrics Operator
|
|
|
|
## Prerequisites
|
|
|
|
* Install the follow packages: ``git``, ``kubectl``, ``helm``, ``helm-docs``. See this [tutorial](https://docs.victoriametrics.com/helm/requirements/).
|
|
* PV support on underlying infrastructure.
|
|
|
|
## ArgoCD issues
|
|
|
|
When running operator using ArgoCD without Cert Manager (`.Values.admissionWebhooks.certManager.enabled: false`) it will rerender webhook certificates
|
|
on each sync since Helm `lookup` function is not respected by ArgoCD. To prevent this please update you operator Application `spec.syncPolicy` and `spec.ignoreDifferences` with a following:
|
|
|
|
```yaml
|
|
apiVersion: argoproj.io/v1alpha1
|
|
kind: Application
|
|
...
|
|
spec:
|
|
...
|
|
syncPolicy:
|
|
syncOptions:
|
|
# https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/#respect-ignore-difference-configs
|
|
# argocd must also ignore difference during apply stage
|
|
# otherwise it ll silently override changes and cause a problem
|
|
- RespectIgnoreDifferences=true
|
|
ignoreDifferences:
|
|
- group: ""
|
|
kind: Secret
|
|
name: <fullname>-validation
|
|
namespace: kube-system
|
|
jsonPointers:
|
|
- /data
|
|
- group: admissionregistration.k8s.io
|
|
kind: ValidatingWebhookConfiguration
|
|
name: <fullname>-admission
|
|
jqPathExpressions:
|
|
- '.webhooks[]?.clientConfig.caBundle'
|
|
```
|
|
where `<fullname>` is output of `{{ include "vm-operator.fullname" }}` for your setup
|
|
|
|
## Upgrade guide
|
|
|
|
During release an issue with helm CRD was discovered. So for upgrade from version less then 0.1.3 you have to two options:
|
|
1) use helm management for CRD, enabled by default.
|
|
2) use own management system, need to add variable: --set createCRD=false.
|
|
|
|
If you choose helm management, following steps must be done before upgrade:
|
|
|
|
1) define namespace and helm release name variables
|
|
|
|
```
|
|
export NAMESPACE=default
|
|
export RELEASE_NAME=operator
|
|
```
|
|
|
|
execute kubectl commands:
|
|
|
|
```
|
|
kubectl get crd | grep victoriametrics.com | awk '{print $1 }' | xargs -i kubectl label crd {} app.kubernetes.io/managed-by=Helm --overwrite
|
|
kubectl get crd | grep victoriametrics.com | awk '{print $1 }' | xargs -i kubectl annotate crd {} meta.helm.sh/release-namespace="$NAMESPACE" meta.helm.sh/release-name="$RELEASE_NAME" --overwrite
|
|
```
|
|
|
|
run helm upgrade command.
|
|
|
|
## Chart Details
|
|
|
|
This chart will do the following:
|
|
|
|
* Rollout victoria metrics operator
|
|
|
|
## How to install
|
|
|
|
Access a Kubernetes cluster.
|
|
|
|
### Setup chart repository (can be omitted for OCI repositories)
|
|
|
|
Add a chart helm repository with follow commands:
|
|
|
|
```console
|
|
helm repo add vm https://victoriametrics.github.io/helm-charts/
|
|
|
|
helm repo update
|
|
```
|
|
List versions of `vm/victoria-metrics-operator` chart available to installation:
|
|
|
|
```console
|
|
helm search repo vm/victoria-metrics-operator -l
|
|
```
|
|
|
|
### Install `victoria-metrics-operator` chart
|
|
|
|
Export default values of `victoria-metrics-operator` chart to file `values.yaml`:
|
|
|
|
- For HTTPS repository
|
|
|
|
```console
|
|
helm show values vm/victoria-metrics-operator > values.yaml
|
|
```
|
|
- For OCI repository
|
|
|
|
```console
|
|
helm show values oci://ghcr.io/victoriametrics/helm-charts/victoria-metrics-operator > values.yaml
|
|
```
|
|
|
|
Change the values according to the need of the environment in ``values.yaml`` file.
|
|
|
|
Test the installation with command:
|
|
|
|
- For HTTPS repository
|
|
|
|
```console
|
|
helm install vmo vm/victoria-metrics-operator -f values.yaml -n NAMESPACE --debug --dry-run
|
|
```
|
|
|
|
- For OCI repository
|
|
|
|
```console
|
|
helm install vmo oci://ghcr.io/victoriametrics/helm-charts/victoria-metrics-operator -f values.yaml -n NAMESPACE --debug --dry-run
|
|
```
|
|
|
|
Install chart with command:
|
|
|
|
- For HTTPS repository
|
|
|
|
```console
|
|
helm install vmo vm/victoria-metrics-operator -f values.yaml -n NAMESPACE
|
|
```
|
|
|
|
- For OCI repository
|
|
|
|
```console
|
|
helm install vmo oci://ghcr.io/victoriametrics/helm-charts/victoria-metrics-operator -f values.yaml -n NAMESPACE
|
|
```
|
|
|
|
Get the pods lists by running this commands:
|
|
|
|
```console
|
|
kubectl get pods -A | grep 'vmo'
|
|
```
|
|
|
|
Get the application by running this command:
|
|
|
|
```console
|
|
helm list -f vmo -n NAMESPACE
|
|
```
|
|
|
|
See the history of versions of `vmo` application with command.
|
|
|
|
```console
|
|
helm history vmo -n NAMESPACE
|
|
```
|
|
|
|
## Validation webhook
|
|
|
|
Its possible to use validation of created resources with operator. For now, you need cert-manager to easily certificate management https://cert-manager.io/docs/
|
|
|
|
```yaml
|
|
admissionWebhooks:
|
|
enabled: true
|
|
# what to do in case, when operator not available to validate request.
|
|
certManager:
|
|
# enables cert creation and injection by cert-manager
|
|
enabled: true
|
|
```
|
|
|
|
## How to uninstall
|
|
|
|
Remove application with command.
|
|
|
|
```console
|
|
helm uninstall vmo -n NAMESPACE
|
|
```
|
|
|
|
## Documentation of Helm Chart
|
|
|
|
Install ``helm-docs`` following the instructions on this [tutorial](https://docs.victoriametrics.com/helm/requirements/).
|
|
|
|
Generate docs with ``helm-docs`` command.
|
|
|
|
```bash
|
|
cd charts/victoria-metrics-operator
|
|
|
|
helm-docs
|
|
```
|
|
|
|
The markdown generation is entirely go template driven. The tool parses metadata from charts and generates a number of sub-templates that can be referenced in a template file (by default ``README.md.gotmpl``). If no template file is provided, the tool has a default internal template that will generate a reasonably formatted README.
|
|
|
|
## Parameters
|
|
|
|
The following tables lists the configurable parameters of the chart and their default values.
|
|
|
|
Change the values according to the need of the environment in ``victoria-metrics-operator/values.yaml`` file.
|
|
|
|
<table class="helm-vars">
|
|
<thead>
|
|
<th class="helm-vars-key">Key</th>
|
|
<th class="helm-vars-type">Type</th>
|
|
<th class="helm-vars-default">Default</th>
|
|
<th class="helm-vars-description">Description</th>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>admissionWebhooks</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">certManager:
|
|
enabled: false
|
|
issuer: {}
|
|
enabled: true
|
|
enabledCRDValidation:
|
|
vlogs: true
|
|
vmagent: true
|
|
vmalert: true
|
|
vmalertmanager: true
|
|
vmalertmanagerconfig: true
|
|
vmauth: true
|
|
vmcluster: true
|
|
vmrule: true
|
|
vmsingle: true
|
|
vmuser: true
|
|
keepTLSSecret: true
|
|
policy: Fail
|
|
tls:
|
|
caCert: null
|
|
cert: null
|
|
key: null
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Configures resource validation</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>admissionWebhooks.certManager</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">enabled: false
|
|
issuer: {}
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Enables custom ca bundle, if you are not using cert-manager. In case of custom ca, you have to create secret - {chart-name}-validation with keys: tls.key, tls.crt, ca.crt</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>admissionWebhooks.certManager.enabled</td>
|
|
<td>bool</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">false
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Enables cert creation and injection by cert-manager.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>admissionWebhooks.certManager.issuer</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">{}
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>If needed, provide own issuer. Operator will create self-signed if empty.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>admissionWebhooks.enabled</td>
|
|
<td>bool</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">true
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Enables validation webhook.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>admissionWebhooks.policy</td>
|
|
<td>string</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">Fail
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>What to do in case, when operator not available to validate request.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>affinity</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">{}
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Pod affinity</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>annotations</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">{}
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Annotations to be added to the all resources</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>crd.cleanup.enabled</td>
|
|
<td>bool</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">false
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Tells helm to clean up all the vm resources under this release’s namespace when uninstalling</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>crd.cleanup.image</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">pullPolicy: IfNotPresent
|
|
repository: bitnami/kubectl
|
|
tag: ""
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Image configuration for CRD cleanup Job</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>crd.cleanup.resources</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">limits:
|
|
cpu: 500m
|
|
memory: 256Mi
|
|
requests:
|
|
cpu: 100m
|
|
memory: 56Mi
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Cleanup hook resources</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>crd.create</td>
|
|
<td>bool</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">true
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Enables CRD creation and management. With this option, if you remove this chart, all CRD resources will be deleted with it.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>env</td>
|
|
<td>list</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">[]
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Extra settings for the operator deployment. Full list <a href="https://docs.victoriametrics.com/operator/vars" target="_blank">here</a></p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>envFrom</td>
|
|
<td>list</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">[]
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Specify alternative source for env variables</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>extraArgs</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">{}
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Operator container additional commandline arguments</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>extraContainers</td>
|
|
<td>list</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">[]
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Extra containers to run in a pod with operator</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>extraHostPathMounts</td>
|
|
<td>list</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">[]
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Additional hostPath mounts</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>extraLabels</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">{}
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Labels to be added to the all resources</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>extraObjects</td>
|
|
<td>list</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">[]
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Add extra specs dynamically to this chart</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>extraVolumeMounts</td>
|
|
<td>list</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">[]
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Extra Volume Mounts for the container</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>extraVolumes</td>
|
|
<td>list</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">[]
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Extra Volumes for the pod</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>fullnameOverride</td>
|
|
<td>string</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">""
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Overrides the full name of server component</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>global.cluster.dnsDomain</td>
|
|
<td>string</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">cluster.local
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td></td>
|
|
</tr>
|
|
<tr>
|
|
<td>global.compatibility</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">openshift:
|
|
adaptSecurityContext: auto
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Openshift security context compatibility configuration</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>global.image.registry</td>
|
|
<td>string</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">""
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Image registry, that can be shared across multiple helm charts</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>global.imagePullSecrets</td>
|
|
<td>list</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">[]
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Image pull secrets, that can be shared across multiple helm charts</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>image</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">pullPolicy: IfNotPresent
|
|
registry: ""
|
|
repository: victoriametrics/operator
|
|
tag: ""
|
|
variant: ""
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>operator image configuration</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>image.pullPolicy</td>
|
|
<td>string</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">IfNotPresent
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Image pull policy</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>image.registry</td>
|
|
<td>string</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">""
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Image registry</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>image.repository</td>
|
|
<td>string</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">victoriametrics/operator
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Image repository</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>image.tag</td>
|
|
<td>string</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">""
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Image tag override Chart.AppVersion</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>imagePullSecrets</td>
|
|
<td>list</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">[]
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Secret to pull images</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>lifecycle</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">{}
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Operator lifecycle. See <a href="https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/" target="_blank">this article</a> for details.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>logLevel</td>
|
|
<td>string</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">info
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>VM operator log level. Possible values: info and error.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>nameOverride</td>
|
|
<td>string</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">""
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>VM operatror deployment name override</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>nodeSelector</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">{}
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Pod’s node selector. Details are <a href="https://kubernetes.io/docs/user-guide/node-selection/" target="_blank">here</a></p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>operator.disable_prometheus_converter</td>
|
|
<td>bool</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">false
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>By default, operator converts prometheus-operator objects.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>operator.enable_converter_ownership</td>
|
|
<td>bool</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">false
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Enables ownership reference for converted prometheus-operator objects, it will remove corresponding victoria-metrics objects in case of deletion prometheus one.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>operator.prometheus_converter_add_argocd_ignore_annotations</td>
|
|
<td>bool</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">false
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Compare-options and sync-options for prometheus objects converted by operator for properly use with ArgoCD</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>operator.useCustomConfigReloader</td>
|
|
<td>bool</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">false
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Enables custom config-reloader, bundled with operator. It should reduce vmagent and vmauth config sync-time and make it predictable.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>podDisruptionBudget</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">enabled: false
|
|
labels: {}
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>See <code>kubectl explain poddisruptionbudget.spec</code> for more or check <a href="https://kubernetes.io/docs/tasks/run-application/configure-pdb/" target="_blank">these docs</a></p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>podLabels</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">{}
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>extra Labels for Pods only</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>podSecurityContext</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">enabled: true
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Pod’s security context. Details are <a href="https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" target="_blank">here</a></p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>probe.liveness</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">failureThreshold: 3
|
|
initialDelaySeconds: 5
|
|
periodSeconds: 15
|
|
tcpSocket:
|
|
port: probe
|
|
timeoutSeconds: 5
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Liveness probe</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>probe.readiness</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">failureThreshold: 3
|
|
httpGet:
|
|
port: probe
|
|
initialDelaySeconds: 5
|
|
periodSeconds: 15
|
|
timeoutSeconds: 5
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Readiness probe</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>probe.startup</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">{}
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Startup probe</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>rbac.aggregatedClusterRoles</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">enabled: true
|
|
labels:
|
|
admin:
|
|
rbac.authorization.k8s.io/aggregate-to-admin: "true"
|
|
view:
|
|
rbac.authorization.k8s.io/aggregate-to-view: "true"
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Create aggregated clusterRoles for CRD readonly and admin permissions</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>rbac.aggregatedClusterRoles.labels</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">admin:
|
|
rbac.authorization.k8s.io/aggregate-to-admin: "true"
|
|
view:
|
|
rbac.authorization.k8s.io/aggregate-to-view: "true"
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Labels attached to according clusterRole</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>rbac.create</td>
|
|
<td>bool</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">true
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Specifies whether the RBAC resources should be created</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>replicaCount</td>
|
|
<td>int</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">1
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Number of operator replicas</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>resources</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">{}
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Resource object</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>securityContext</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">enabled: true
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Security context to be added to server pods</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>service.annotations</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">{}
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Service annotations</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>service.clusterIP</td>
|
|
<td>string</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">""
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Service ClusterIP</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>service.externalIPs</td>
|
|
<td>string</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">""
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Service external IPs. Check <a href="https://kubernetes.io/docs/user-guide/services/#external-ips" target="_blank">here</a> for details</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>service.externalTrafficPolicy</td>
|
|
<td>string</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">""
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Service external traffic policy. Check <a href="https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip" target="_blank">here</a> for details</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>service.healthCheckNodePort</td>
|
|
<td>string</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">""
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Health check node port for a service. Check <a href="https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip" target="_blank">here</a> for details</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>service.ipFamilies</td>
|
|
<td>list</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">[]
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>List of service IP families. Check <a href="https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services" target="_blank">here</a> for details.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>service.ipFamilyPolicy</td>
|
|
<td>string</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">""
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Service IP family policy. Check <a href="https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services" target="_blank">here</a> for details.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>service.labels</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">{}
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Service labels</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>service.loadBalancerIP</td>
|
|
<td>string</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">""
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Service load balacner IP</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>service.loadBalancerSourceRanges</td>
|
|
<td>list</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">[]
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Load balancer source range</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>service.servicePort</td>
|
|
<td>int</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">8080
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Service port</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>service.type</td>
|
|
<td>string</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">ClusterIP
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Service type</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>service.webhookPort</td>
|
|
<td>int</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">9443
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Service webhook port</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>serviceAccount.create</td>
|
|
<td>bool</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">true
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Specifies whether a service account should be created</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>serviceAccount.name</td>
|
|
<td>string</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">""
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>The name of the service account to use. If not set and create is true, a name is generated using the fullname template</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>serviceMonitor</td>
|
|
<td>object</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">annotations: {}
|
|
basicAuth: {}
|
|
enabled: false
|
|
extraLabels: {}
|
|
interval: ""
|
|
relabelings: []
|
|
scheme: ""
|
|
scrapeTimeout: ""
|
|
tlsConfig: {}
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Configures monitoring with serviceScrape. VMServiceScrape must be pre-installed</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>terminationGracePeriodSeconds</td>
|
|
<td>int</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="">
|
|
<code class="language-yaml">30
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Graceful pod termination timeout. See <a href="https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#hook-handler-execution" target="_blank">this article</a> for details.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>tolerations</td>
|
|
<td>list</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">[]
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Array of tolerations object. Spec is <a href="https://kubernetes.io/docs/concepts/configuration/assign-pod-node/" target="_blank">here</a></p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>topologySpreadConstraints</td>
|
|
<td>list</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">[]
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>Pod Topology Spread Constraints. Spec is <a href="https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/" target="_blank">here</a></p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>watchNamespaces</td>
|
|
<td>list</td>
|
|
<td><pre class="helm-vars-default-value" language-yaml" lang="plaintext">
|
|
<code class="language-yaml">[]
|
|
</code>
|
|
</pre>
|
|
</td>
|
|
<td><p>By default, the operator will watch all the namespaces If you want to override this behavior, specify the namespace. Operator supports multiple namespaces for watching.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|