Public | Automated Build

Last pushed: 2 months ago
Short Description
Kubernetes => Route53 Mapping Service, published version of
Full Description

Kubernetes => Route53 Mapping Service

This is a Kubernetes service that polls Services and Ingresses on its cluster that are configured
and adds an entry to Route 53.

Services are configured with the label dns=route53 and annotation domainName=test-app.

Ingresses are configured with the annotation

The app requires the following environment variables to be set in order to run:

  • HOSTED_ZONE_ID=EXAMPLEID - The hosted zone ID of the route53 zone you wish the app to modify
  • AWS_REGION=ap-southeast-2 - The region of your hosted zone
  • ROUTE53_TTL=60 - Time to live sent in the API call to route53, defaults to 60
  • KUBERNETES_SERVICE_HOST= - IP of Kubernetes service API, should be in env by default
  • KUBERNETES_PORT_443_TCP_PORT=443 - Port of Kubernetes service API, should be in env by default
  • TOKEN_PATH=/var/run/secrets/ - path to token file for kube service account, set to path shown by default
  • - the address of the default ELB to use for Ingress based addresses, if not specified Ingresses will not be watched


For example, given the below Kubernetes service definition:

apiVersion: v1
kind: Service
  name: my-app
    app: my-app
    role: web
    dns: route53
    domainName: "test-app"
    app: my-app
    role: web
  - name: web
    port: 80
    protocol: TCP
    targetPort: web
  - name: web-ssl
    port: 443
    protocol: TCP
    targetPort: web-ssl
  type: LoadBalancer

A DNS CNAME record is created/modified for pointing to the Elastic Load Balancer
that is configured by Kubernetes.

IAM Actions Required

This service expects that it is running on a Kubernetes node on AWS and
that the IAM profile for that node is set up to allow the following,
along with the default permissions needed by Kubernetes:

    "Effect": "Allow",
    "Action": "route53:ListHostedZonesByName",
    "Resource": "*"
    "Effect": "Allow",
    "Action": [
    "Resource": "*"
Docker Pull Command
Source Repository