GithubHelp home page GithubHelp logo

isabella232 / consul-api-gateway Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hashicorp/consul-api-gateway

0.0 0.0 0.0 1.12 MB

The Consul API Gateway is a dedicated ingress solution for intelligently routing traffic to applications running on a Consul Service Mesh.

License: Mozilla Public License 2.0

Makefile 0.50% Dockerfile 0.31% Shell 0.91% Go 97.73% HCL 0.55%

consul-api-gateway's Introduction

Consul logo Consul API Gateway

CI Status Discuss

Overview

The Consul API Gateway is a dedicated ingress solution for intelligently routing traffic to applications running on a Consul Service Mesh. Currently it only runs on Kubernetes and is implemented as a Kubernetes Gateway Controller but, in future releases, it will work across multiple scheduler and runtime ecosystems.

Consul API Gateway implements the Kubernetes Gateway API Specification. This specification defines a set of custom resource definitions (CRD) that can create logical gateways and routes based on the path or protocol of a client request. Consul API Gateway solves two primary use cases:

  • Controlling access at the point of entry: Consul API Gateway allows users to set the protocols of external connection requests and provide clients with TLS certificates from trusted providers (e.g., Verisign, Let’s Encrypt).
  • Simplifying traffic management: The Consul API Gateway can load balance requests across services and route traffic to the appropriate service by matching one or more criteria, such as hostname, path, header presence or value, and HTTP Method type (e.g., GET, POST, PATCH).

Prerequisites

The Consul API Gateway must be installed on a Kubernetes cluster with the Consul K8s service mesh deployed on it. The installed version of Consul must be v1.11.2 or greater.

The Consul Helm chart must be used, with specific settings, to install Consul on the Kubernetes cluster. The Consul Helm chart must be version 0.41.1 or greater. See the Consul API Gateway documentation for the required settings.

Documentation

The primary documentation, including installation instructions, is available on the Consul documentation website.

Configuring and Deploying API Gateways

After Consul API Gateway has been installed, API Gateways are configured and deployed via the Kubernetes Gateway API standard. The Kubernetes Gateway API webite explains the design of the standard, examples of how to use it and the complete specification of the API.

The Consul API Gateway Beta supports the current version (v1alpha2) of the Gateway API.

Supported Features: Please see Supported Features for a list of K8s Gateway API features supported by the current release of Consul API Gateway.

Tutorial

We have a tutorial that walks you though installing and configuring Consul API Gateway to route traffic to multiple services of an example application. You can find it here: Consul API Gateway tutorial

Contributing

Thank you for your interest in contributing! Please refer to CONTRIBUTING.md for guidance.

For development, please see our Quick Start guide. Other documentation can be found inside our in-repo developer documentation.

consul-api-gateway's People

Contributors

99 avatar andrewstucki avatar claire-labry avatar david-yu avatar jeff-apple avatar mdeggies avatar mikemorris avatar nathancoleman avatar nickethier avatar preetapan avatar sarahalsmiller avatar sarahethompson 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.