Git Product home page Git Product logo

amazonroute53-ingress-controller's Introduction

Amazon Route53 Ingress Controller

This Controller watches for new ingress resources and if they define the specified annotations as true, it will create an Amazon Route53 record set.

Ingress example can be found here.

Annotations

ingress.net/route53 with values: "true" or "false"

ingress.net/load-balancer-name: "load-balancer-name": Specify load balancer name. Created Amazon Route53 record will have an alias pointing to provided loadbalancer. As of now ELB and ALB are supported.

Note

Mentioned "true" values can be also specified with: "1", "t", "T", "true", "TRUE", "True"

Mentioned "false" values can be also specified with: "0", "f", "F", "false", "FALSE", "False"

Usage

--run-outside-cluster # Uses ~/.kube/config rather than in cluster configuration
--log-level # desired log level, one of: [debug, info, warn, error]
--log-format # desired log format, one of: [json, logfmt]
--whitelist-prefix # comma sperated list with Amazon Route53 record name prefixes, which has to be matched, before update/delete Amazon Route53 record sets 
--whitelist-suffix # comma sperated list with Amazon Route53 record name suffixes, which has to be matched, before update/delete Amazon Route53 record sets 
--delete-alias # if true, recordset type alias will be deleted before other recordset type being created.
--delete-cname # if true, recordset type cname will be deleted before other recordset type being created.
--dns-type # DNS Record Type(alias / cname), default cname

Example: ./bin/AmazonRoute53-ingress-controller --run-outside-cluster --log-level=info --whitelist-suffix=example.local,test.local --whitelist-prefix=app-

For example, with provided whitelist the following Amazon Route53 records could be created/updated/deleted:

  • test.example.local
  • example-test.local
  • app-domain.local

For example, with provided whitelist the following Amazon Route53 records could not be created/updated/deleted:

  • app.domain.local
  • apps-test.local

Access

The Amazon Route53 Ingress Controller needs to know, in which AWS region you are operating it. Please set your AWS region as environment variable, e.g.:

  • export AWS_REGION=eu-central-1

For authentification with the Amazon Route53 API you can either use IAM roles, attached to your nodes, or you have to provide two additional environment variables:

  • export AWS_ACCESS_KEY_ID=XXX
  • export AWS_SECRET_ACCESS_KEY=XXX

Or run aws configure, if you have installed the aws-cli.

If you want to deploy the controller via Helm, all three variables can be provided in values.yaml, see example installation at our Helm directory within this repo.

Development

Build

CGO_ENABLED=0 go build -v -i -o ./bin/AmazonRoute53-ingress-controller ./cmd # on Linux
GOOS=linux CGO_ENABLED=0 go build -v -i -o ./bin/AmazonRoute53-ingress-controller ./cmd # on macOS/Windows

Run outside kubernetes

export AWS_REGION=eu-central-1 #make sure AWS_REGION is set
./bin/AmazonRoute53-ingress-controller --run-outside-cluster --log-level=debug

Deployment

Our preferred way to install AmazonRoute53-ingress-controller is Helm. See example installation at our Helm directory within this repo.

amazonroute53-ingress-controller's People

Contributors

dbluxo avatar kirchen99 avatar

Watchers

James Cloos 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.