Installing by helm-charts #

You can use one of the following official helm-charts with vmoperator:

For installing VictoriaMetrics operator with helm-chart follow the instructions from README of the corresponding helm-chart (this or this).

in addition, you can use quickstart guide for installing VictoriaMetrics operator with helm-chart.

Installing by Manifest #

Obtain release from releases page: https://github.com/VictoriaMetrics/operator/releases

We suggest use the latest release.

# Get latest release version from https://github.com/VictoriaMetrics/operator/releases/latest
export VM_VERSION=`basename $(curl -fs -o/dev/null -w %{redirect_url} https://github.com/VictoriaMetrics/operator/releases/latest)`

# Download manifest with webhook (requires CertManager to be preinstalled)
wget -O install.yaml https://github.com/VictoriaMetrics/operator/releases/download/$VM_VERSION/install-with-webhook.yaml

# Or download manifest without webhook
wget -O install.yaml https://github.com/VictoriaMetrics/operator/releases/download/$VM_VERSION/install-without-webhook.yaml

Operator use vm namespace, but you can install it to specific namespace with command:

sed -i "s/namespace: vm/namespace: YOUR_NAMESPACE/g" install.yaml

and apply it:

kubectl apply -f install.yaml

Check the status of operator

kubectl get pods -n YOUR_NAMESPACE

#NAME                           READY   STATUS    RESTARTS   AGE
#vm-operator-667dfbff55-cbvkf   1/1     Running   0          101s

Installing by Kustomize #

You can install operator using Kustomize by pointing to the remote kustomization file.

# Get latest release version from https://github.com/VictoriaMetrics/operator/releases/latest
export VM_VERSION=`basename $(curl -fs -o/dev/null -w %{redirect_url} https://github.com/VictoriaMetrics/operator/releases/latest)`
export NAMESPACE="whatever-namespace"

# Overlay "base-with-webhook" installs operator with webhook (requires CertManager to be preinstalled). Replace "base-with-webhook" with "default"
export OVERLAY="base-with-webhook"

cat << EOF > kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- github.com/VictoriaMetrics/operator/config/${OVERLAY}?ref=${VM_VERSION}

namespace: ${NAMESPACE}

images:
- name: manager
  newName: victoriametrics/operator
  newTag: ${VM_VERSION}
EOF

You can change operator configuration, or use your custom namespace see kustomize-example.

Build template

kustomize build . -o monitoring.yaml

Apply manifests

kubectl apply -f monitoring.yaml

Check the status of operator

kubectl get pods -n whatever-namespace

#NAME                           READY   STATUS    RESTARTS   AGE
#vm-operator-667dfbff55-cbvkf   1/1     Running   0          101s

Installing by OLM #

Installing to K8s #

VictoriaMetrics operator OLM package is available at OperatorHub. Installation instructions are available there.

Installing to Openshift #

Create Subscription manifest with installPlanApproval set to Manual to prevent unexpected upgrades.

apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
  name: victoriametrics-operator
  namespace: vm
spec:
  channel: beta
  installPlanApproval: Manual
  name: victoriametrics-operator
  source: community-operators
  sourceNamespace: openshift-marketplace
  startingCSV: victoriametrics-operator.v0.46.4

Apply manifest

oc apply -f manifest.yaml

After some time operator should be up and running in vm namespace

oc get pods -n vm

Run locally #

It’s possible to build and run OLM package locally on Kind K8s cluster using make deploy-kind-olm. Command builds operator image, bundle and index images, runs Kind with a local registry and deploys OLM package to Kind.

Installing to ARM #

There is no need in an additional configuration for ARM. Operator and VictoriaMetrics have full support for it.

Configuring #

You can read detailed instructions about operator configuring in this document.