github voyagermesh/voyager 3.0.0

Voyager 3.0.0 is here with support for Azure and ability to create Prometheus Service Monitors! Most of the changes in this release are under the hood. Voyager now uses Kubernetes client-go package instead of client library from the main Kubernetes package. We have also changed the api group to from We recommend updating Voyager operator if you are using it currently. For new users, please follow the deployment guide here: . For existing users, please first read the Actions Required section below.

Download Docker images via:

docker pull appscode/voyager:3.0.0
docker pull appscode/haproxy:1.7.6-3.0.0

Notable Features:

  • Automatically creates Prometheus ServiceMonitor for side-car exporter
  • If Ingress's service is deleted, it is re-created if the origin Ingress exists.
  • TPR APIGroup changed to from (See Action Required section below).
  • Pass cloud config using --cloud-config flag for cloud provider azure or acs.
  • Uses pod anti-affinity for deployments so that HAProxy pods are spread out across nodes (for Kube 1.6+).
  • Voyager now opens both port 443 & 80 when AWS cert manager is in use.
  • 56789 & 56790 are the default ports for exposing stats and Prometheus metrics respectively.
  • DNS resolver health checks for ExternalName service can be disabled using dns-resovler-check-health annotation.
  • Released binaries are now reproducible.
  • Uses Kubernetes/client-go v3.0.0-beta.0 .
  • Uses HAProxy 1.7.6 by default.
  • Uses Kloader 3.0.0.
  • Format of labels & selectors applied to HAProxy pods & services are changed. Pods & services matching deprecated labels are deleted before starting operator 3.0.0.
  • Previously deprecated load balancer type name Daemon is removed. Use HostPort type for the same functionality.

Actions Required:
Voyager 3.0.0 includes a number of breaking changes from previous versions. These changes are in the following general category:

  • TPR APIGroup changed to from .
  • Format of labels & selectors applied to HAProxy pods & services are changed.
  • Previously deprecated load balancer type name Daemon is removed. Use HostPort type for same functionality.
  • Default stats port changed to 56789.

If you are using Voyager currently, please follow the steps below to upgrade:

  1. Delete the deployment and service used for Voyager operator.

    kubectl delete deployment voyager-operator --namespace=kube-system
    kubectl delete service voyager-operator  --namespace=kube-system
    1. Now, wait several seconds for Voyager to stop running. Run kubectl get pods --namespace=kube-system to confirm that Voyager operator pod(s) have stopped running.
    2. Get all your AppsCode Ingress objects.
      sh kubectl get --all-namespaces -o yaml > data.yaml
  2. Delete the old Ingress objects from all namespaces one by one. Please make sure you exported the existing Ingress correctly in Step 3.

    kubectl delete --all --cascade=false
  3. Delete the old TPR-registration.

    kubectl delete thirdpartyresource
    kubectl delete thirdpartyresource
    1. Create new TPR registration:
      sh kubectl apply -f kubectl apply -f
  4. Confirm that the new TPR group is registered.

    kubectl get thirdpartyresources
  5. Update your Ingress objects in data.yaml to use apiVersion: instead of apiVersion: .

  6. Recreate your new Ingress.

    kubectl create -f data.yaml
    1. Now install the Voyager 3.0.0 operator following the instructions here:
latest releases: v13.0.0-beta.1, v13.0.0-beta.0, v12.0.0...
3 years ago