Installing in GKE Cluster

If you are installing Voyager on a GKE cluster, you will need cluster admin permissions to install Voyager operator. Run the following command to grant admin permission to the cluster.

$ kubectl create clusterrolebinding "cluster-admin-$(whoami)" \
  --clusterrole=cluster-admin                                 \
  --user="$(gcloud config get-value core/account)"

In addition, if your GKE cluster is a private cluster, you will need to either add an additional firewall rule that allows master nodes access port 8443/tcp on worker nodes, or change the existing rule that allows access to ports 443/tcp and 10250/tcp to also allow access to port 8443/tcp. The procedure to add or modify firewall rules is described in the official GKE documentation for private clusters mentioned before. See the links below for details:

Installing in kind

Voyager can be used in kind using --provider=kind. In kind, a LoadBalancer type ingress will only assigned a NodePort.

Installing in Baremetal Cluster

Voyager works great in baremetal cluster. To install, set --provider=baremetal. In baremetal cluster, LoadBalancer type ingress in not supported. You can use NodePort, HostPort or Internal ingress objects.

Installing in Baremetal Cluster with MetalLB

Follow the instructions for installing on baremetal cluster but specify metallb as provider. Then install MetalLB following the instructions here. Now, you can use LoadBalancer type ingress in baremetal clusters.

Installing in DigitalOcean Cluster

To use LoadBalancer type ingress in DigitalOcean cluster, install Kubernetes cloud controller manager for DigitalOcean. Otherwise set cloud provider to baremetal.

Installing in Linode Cluster

To use LoadBalancer type ingress in Linode cluster, install Kubernetes cloud controller manager for Linode. Otherwise set cloud provider to baremetal.

Detect Voyager version

To detect Voyager version, exec into the operator pod and run voyager version command.

$ POD_NAMESPACE=voyager
$ POD_NAME=$(kubectl get pods -n $POD_NAMESPACE -l app.kubernetes.io/name=voyager -o jsonpath={.items[0].metadata.name})
$ kubectl exec $POD_NAME -c operator -n $POD_NAMESPACE -- /voyager version

Version = v13.0.0
VersionStrategy = tag
GitTag = v13.0.0
GitBranch = HEAD
CommitHash = 2c9d9b810413c620c45ea028b84262704ebcea54
CommitTimestamp = 2021-09-16T01:59:11
GoVersion = go1.17.1
Compiler = gcc
Platform = linux/amd64