All Projects → mineiros-io → terraform-aws-route53

mineiros-io / terraform-aws-route53

Licence: Apache-2.0 license
A Terraform module to create a Route53 Domain Name System (DNS) on Amazon Web Services (AWS). https://aws.amazon.com/route53/

Programming Languages

HCL
1544 projects
go
31211 projects - #10 most used programming language
Makefile
30231 projects
HTML
75241 projects

Projects that are alternatives of or similar to terraform-aws-route53

terraform-aws-lambda-function
A Terraform module for deploying and managing Lambda functions on Amazon Web Services (AWS). https://aws.amazon.com/lambda/
Stars: ✭ 37 (-5.13%)
Mutual labels:  iac, amazon-web-services, terraform-modules, terraform-aws, mineiros
terraform-aws-iam-user
A Terraform module to create and manage Identity and Access Management (IAM) Users on Amazon Web Services (AWS). https://aws.amazon.com/iam
Stars: ✭ 17 (-56.41%)
Mutual labels:  iac, amazon-web-services, terraform-modules, terraform-aws, mineiros
terraform-aws-cognito-user-pool
A Terraform module to create and manage Cognito User Pools (Simple and Secure User Sign-Up, Sign-In, and Access Control) on Amazon Web Services (AWS). https://aws.amazon.com/cognito
Stars: ✭ 46 (+17.95%)
Mutual labels:  iac, amazon-web-services, terraform-modules, terraform-aws, mineiros
terraform-aws-s3-bucket
A Terraform module to create a Simple Storage Service (S3) Bucket on Amazon Web Services (AWS). https://aws.amazon.com/s3/
Stars: ✭ 47 (+20.51%)
Mutual labels:  iac, amazon-web-services, terraform-modules, terraform-aws, mineiros
terraform-aws-account
🌳 A sustainable Terraform Package which creates Account & IAM resources on AWS
Stars: ✭ 18 (-53.85%)
Mutual labels:  iac, terraform-modules, terraform-aws
terraform-github-organization
A Terraform module to manage GitHub Organizations. https://github.com/
Stars: ✭ 53 (+35.9%)
Mutual labels:  iac, terraform-modules, mineiros
terraform-aws-acm-certificate
A Terraform module to create an Amazon Certificate Manager (ACM) certificate with Route 53 DNS validation.
Stars: ✭ 43 (+10.26%)
Mutual labels:  amazon-web-services, terraform-modules
terraform-modules
Reusable Terraform modules
Stars: ✭ 12 (-69.23%)
Mutual labels:  iac, terraform-modules
terraform-aws-route53-cluster-hostname
Terraform module to define a consistent AWS Route53 hostname
Stars: ✭ 44 (+12.82%)
Mutual labels:  route53, terraform-modules
terraform-modules
Terraform Modules by Peak
Stars: ✭ 16 (-58.97%)
Mutual labels:  iac, terraform-modules
terraform-oci-vcn
A reusable and extensible Terraform module that provisions a VCN on Oracle Cloud Infrastructure
Stars: ✭ 22 (-43.59%)
Mutual labels:  iac, terraform-modules
terramate
Terramate is a tool for managing multiple Terraform stacks that comes with support for change detection and code generation.
Stars: ✭ 271 (+594.87%)
Mutual labels:  iac, mineiros
terraform-aws-redis-elasticache
A Terraform module to create an Amazon Web Services (AWS) Redis ElastiCache cluster.
Stars: ✭ 33 (-15.38%)
Mutual labels:  amazon-web-services, terraform-modules
terraform-aws-route53-cluster-zone
Terraform module to easily define consistent cluster domains on Route53 (e.g. `prod.ourcompany.com`)
Stars: ✭ 42 (+7.69%)
Mutual labels:  route53, terraform-modules
polynimbus
Multi-cloud infrastructure inventory and management tool, supporting AWS, Google Cloud, Azure, Oracle Cloud, Rackspace Cloud, Hetzner Cloud, Alibaba Cloud, e24cloud.com, Linode, Cloudflare, GoDaddy and Backblaze B2.
Stars: ✭ 70 (+79.49%)
Mutual labels:  route53, amazon-web-services
terraform-aws-vpc
A Terraform module to create an Amazon Web Services (AWS) Virtual Private Cloud (VPC).
Stars: ✭ 24 (-38.46%)
Mutual labels:  amazon-web-services, terraform-modules
terraform-aws-mongodb
Simplify MongoDB provisioning on AWS using Terraform
Stars: ✭ 20 (-48.72%)
Mutual labels:  terraform-modules, terraform-aws
terraform-aws-ecs-web-service
A Terraform module to create an Amazon Web Services (AWS) EC2 Container Service (ECS) service associated with an Application Load Balancer (ALB).
Stars: ✭ 26 (-33.33%)
Mutual labels:  amazon-web-services, terraform-modules
terraform-aws-nat-instance
Terraform module to provision a NAT Instance using an Auto Scaling Group and Spot Instance from $1/month
Stars: ✭ 126 (+223.08%)
Mutual labels:  terraform-modules, terraform-aws
terraform-aws-cognito-user-pool
Terraform module to create Amazon Cognito User Pools, configure its attributes and resources such as app clients, domain, resource servers. Amazon Cognito User Pools provide a secure user directory that scales to hundreds of millions of users.
Stars: ✭ 65 (+66.67%)
Mutual labels:  terraform-modules

Build Status GitHub tag (latest SemVer) Terraform Version AWS Provider Version Join Slack

terraform-aws-route53

A Terraform module to create a scalable and highly available Amazon Route53 Domain Name System (DNS) on Amazon Web Services (AWS).

This module supports Terraform v1.x, v0.15, v0.14, v0.13 as well as v0.12.20 and above and is compatible with the terraform AWS provider v3 as well as v2.45 and above.

Module Features

This module offers a convenient way to create Route53 zones and records.

  • Zones: You can either create a single zone by passing a string (e.G. "mineiros.com") or multiple zones by passing a list of strings (e.G. ["mineiros.io", "mineiros.com]) as the name parameter. name = "mineiros.io". You can also share the same records among multiple zones. Please see the example for details.

  • Records: Records can be shared among zones or be defined for a single zone only. We support alias, weighted and failover records.

  • Default TTL for Records Per default set a TTL (time to live) of 3600 seconds ( 1 hour ) for non-alias records. You can overwrite this behavior for records by setting the ttl parameter. To adjust the default value for TTL, please use the default_ttl parameter. Please see the [examples] for details.

  • Delegation Set: This module will create a delegation set for every zone by default. The default behavior can be disabled by setting skip_delegation_set_creation to true. If skip_delegation_set_creation isn't set to true and multiple zones are being created, all created zones will share the same delegation set.

Getting Started

Most basic usage creating a Route53 zone and delegation set and a record for www pointing to localhost.

module "route53" {
  source  = "mineiros-io/route53/aws"
  version = "~> 0.6.0"

  name = "mineiros.io"

  records = [
    {
      name    = "www"
      type    = "A"
      records = ["127.0.0.1"]
    },
  ]
}

Examples

We offer a broad set of examples that can be used to quickly start using this module.

  1. Basic routing
  2. Private hosted zone
  3. Multiple domains with different records
  4. Multiple domains that share the same record set
  5. Delegation set
  6. Failover routing
  7. Weighted routing

Module Argument Reference

See variables.tf and examples/ for details and use-cases.

Top-level Arguments

Module Configuration

  • module_enabled: (Optional bool)

    Specifies whether resources in the module will be created.

    Default is true.

  • module_depends_on: (Optional list(dependency))

    A list of dependencies. Any object can be assigned to this list to define a hidden external dependency.

    Default is [].

Route53 Zone

  • name: (Required string)

    The name of the Hosted Zone. To create multiple Hosted Zones at once, pass a list of names ["zone1", "zone2"]. Forces new resource.

    Example:

    Single:   name = "example.com"
    Multiple: name = ["example.com", "example.io"]
  • records: (Optional list(record))

    A list of records to create in the Hosted Zone.

    Default is [].

    Each record object in the list accepts the following attributes:

    • name: (Required string)

      The name of the record.

    • type: (Required string)

      The record type. Valid values are A, AAAA, CAA, CNAME, MX, NAPTR, NS, PTR, SOA, SPF, SRV and TXT.

    • ttl: (Optional number)

      The TTL of the record.

      Default is 3600.

    • alias: (Optional object(alias))

      An alias block. Expects name, zone_id and evaluate_target_health to be defined. Conflicts with ttl & records.

      The alias object accepts the following attributes:

      • name: (Required string)

        DNS domain name for a CloudFront distribution, S3 bucket, ELB, or another resource record set in this hosted zone.

      • zone_id: (Required string)

        Hosted zone ID for a CloudFront distribution, S3 bucket, ELB, or Route 53 hosted zone.

      • evaluate_target_health: (Optional bool)

        Set to true if you want Route 53 to determine whether to respond to DNS queries using this resource record set by checking the health of the resource record set.

    • allow_overwrite: (Optional bool)

      Allow creation of this record in Terraform to overwrite an existing record, if any. This does not affect the ability to update the record in Terraform and does not prevent other resources within Terraform or manual Route 53 changes outside Terraform from overwriting this record. This configuration is not recommended for most environments.

      Default is false.

    • health_check_id: (Optional string)

      The health check the record should be associated with.

    • set_identifier: (Optional string)

      Unique identifier to differentiate records with routing policies from one another. Required if using failover, geolocation, latency, or weighted routing policies documented below.

    • weight: (Optional number)

      A numeric value indicating the relative weight of the record. Will turn the record into a weighted record. For details see http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-weighted

    • failover: (Optional number)

      The failover type of the record. Will turn the record into a failover record. Possible values are PRIMARY and SECONDARY. A PRIMARY record will be served if its healthcheck is passing, otherwise the SECONDARY will be served. For details see http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-configuring-options.html#dns-failover-failover-rrsets

  • tags: (Optional map(string))

    A map of tags to apply to all created resources that support tags.

    Default is {}.

  • allow_overwrite: (Optional bool)

    Default allow_overwrite value valid for all record sets.

    Default is false.

  • default_ttl: (Optional number)

    The default TTL ( Time to Live ) in seconds that will be used for all records that support the ttl parameter. Will be overwritten by the records ttl parameter if set.

    Default is 3600.

  • vpc_ids: (Optional list(string))

    A list of IDs of VPCs to associate with a private hosted zone. Conflicts with the delegation_set_id.

    Default is [].

  • delegation_set_id: (Optional string)

    The ID of the reusable delegation set whose NS records you want to assign to the hosted zone.

  • zone_id: (Optional string)

    A zone ID to create the records in.

  • comment: (Optional string)

    A comment for the hosted zone.

    Default is "Managed by Terraform".

  • force_destroy: (Optional bool)

    Whether to force destroy all records (possibly managed outside of Terraform) in the zone when destroying the zone.

    Default is false.

Route53 Delegation Set

  • reference_name: (Optional string)

    The reference name used in Caller Reference (helpful for identifying single delegation set amongst others).

  • skip_delegation_set_creation: (Optional bool)

    Whether or not to create a delegation set and associate with the created zone.

    Default is false.

Module Outputs

The following attributes are exported by the module:

  • zone: (list(zone))

    All aws_route53_zone objects.

  • records: (list(record))

    All aws_route53_record objects.

  • delegation_set: (object(delegation_set))

    The aws_route53_delegation_set object.

  • module_enabled: (bool)

    Whether this module is enabled.

External Documentation

AWS Documentation Route53

Terraform AWS Provider Documentation

Module Versioning

This Module follows the principles of Semantic Versioning (SemVer).

Given a version number MAJOR.MINOR.PATCH, we increment the:

  1. MAJOR version when we make incompatible changes,
  2. MINOR version when we add functionality in a backwards compatible manner, and
  3. PATCH version when we make backwards compatible bug fixes.

Backwards compatibility in 0.0.z and 0.y.z version

  • Backwards compatibility in versions 0.0.z is not guaranteed when z is increased. (Initial development)
  • Backwards compatibility in versions 0.y.z is not guaranteed when y is increased. (Pre-release)

About Mineiros

Mineiros is a DevOps as a Service company based in Berlin, Germany. We offer commercial support for all of our projects and encourage you to reach out if you have any questions or need help. Feel free to send us an email at [email protected] or join our Community Slack channel.

We can also help you with:

  • Terraform modules for all types of infrastructure such as VPCs, Docker clusters, databases, logging and monitoring, CI, etc.
  • Consulting & training on AWS, Terraform and DevOps

Reporting Issues

We use GitHub Issues to track community reported issues and missing features.

Contributing

Contributions are always encouraged and welcome! For the process of accepting changes, we use Pull Requests. If you'd like more information, please see our Contribution Guidelines.

Makefile Targets

This repository comes with a handy Makefile. Run make help to see details on each available target.

License

license

This module is licensed under the Apache License Version 2.0, January 2004. Please see LICENSE for full details.

Copyright © 2020-2022 Mineiros GmbH

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].