Giter VIP home page Giter VIP logo

voyager's Introduction

Go Report Card

WebsiteSlackTwitter

voyager

Voyager is a HAProxy backed secure L7 and L4 ingress controller for Kubernetes developed by AppsCode. This can be used with any Kubernetes cloud providers including aws, gce, gke, azure, acs. This can also be used with bare metal Kubernetes clusters.

Ingress

Voyager provides L7 and L4 loadbalancing using a custom Kubernetes Ingress resource. This is built on top of the HAProxy to support high availability, sticky sessions, name and path-based virtual hosting. This also support configurable application ports with all the options available in a standard Kubernetes Ingress. Here is a complex ingress example that shows how various features can be used. You can find the generated HAProxy Configuration here.

Features

Comparison with Kubernetes

Feauture Kube Ingress AppsCode Ingress
HTTP Loadbalancing
TCP Loadbalancing
TLS Termination
Name and Path based virtual hosting
Cross Namespace service support
URL and Header rewriting
Wildcard name virtual hosting
Loadbalancer statistics
Route Traffic to StatefulSet Pods Based on Host Name
Weighted Loadbalancing for Canary Deployment
Supports Loadbalancer Source Range
Supports redirects/DNS resolve for ExternalName type service
Expose HAProxy stats for Prometheus
Supports AWS certificate manager

Certificate

Voyager can automaticallty provision and refresh SSL certificates issued from Let's Encrypt using a custom Kubernetes Certificate resource.

Feautures

  • Provision free TLS certificates from Let's Encrypt,
  • Manage issued certificates using a Kubernetes Third Party Resource,
  • Domain validation using ACME dns-01 challenges,
  • Support for multiple DNS providers,
  • Auto Renew Certificates,
  • Use issued Certificates with Ingress to Secure Communications.

Supported Domain Providers

Read more about supported DNS Providers here

Supported Versions

Please pick a version of Voyager that matches your Kubernetes installation.

Voyager Version Docs Kubernetes Version Prometheus operator Version
5.0.0-rc.3 (uses CRD) User Guide 1.7.x+ 0.12.0+
3.2.2 (uses TPR) User Guide 1.5.x - 1.7.x < 0.12.0

User Guide

To deploy voyager in Kubernetes follow this guide. In short this contains those two steps

  1. Create ingress.voyager.appscode.com and certificate.voyager.appscode.com Third Party Resource
  2. Deploy voyager to kubernetes.

Running voyager alongside with other ingress controller

Voyager can be configured to handle default kubernetes ingress or only ingress.appscode.com. voyager can also be run along side with other controllers.

  --ingress-class
  // this flag can be set to 'voyager' to handle only ingress
  // with annotation kubernetes.io/ingress.class=voyager.

  // If unset, voyager will also handle ingress without ingress-class annotation.

Developer Guide

Want to learn whats happening under the hood, read the developer guide.

Contribution

If you're interested in being a contributor, read the contribution guide.

Building voyager

Read Build Instructions to build voyager.

Versioning Policy

There are 2 parts to versioning policy:

  • Operator version: Voyager does not follow semver, rather the major version of operator points to the Kubernetes client-go version. You can verify this from the glide.yaml file. This means there might be breaking changes between point releases of the operator. This generally manifests as changed annotation keys or their meaning. Please always check the release notes for upgrade instructions.
  • TPR version: appscode.com/v1beta1 is considered in beta. This means any changes to the YAML format will be backward compatible among different versions of the operator.

The voyager operator collects anonymous usage statistics to help us learn how the software is being used and how we can improve it. To disable stats collection, run the operator with the flag --analytics=false.


Acknowledgement

Support

If you have any questions, you can reach out to us.

voyager's People

Contributors

tamalsaha avatar sadlil avatar diptadas avatar julianvmodesto avatar ashiquzzaman33 avatar rstuven avatar saumanbiswas avatar pierreozoux avatar deuill avatar ben-st avatar drf avatar jipperinbham avatar jakeaustwick avatar sunkuet02 avatar nstott avatar xcompass avatar aimof avatar leprechaun avatar mirshahriar avatar

Watchers

James Cloos avatar Isman Usoh avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.