Giter Site home page Giter Site logo

ashishpundalik / godaddy-terraform Goto Github PK

View Code? Open in Web Editor NEW

This project forked from n3integration/terraform-provider-godaddy

0.0 0.0 0.0 131 KB

A terraform plugin for managing godaddy domain records

License: Apache License 2.0

Go 91.49% Shell 5.58% Makefile 2.27% Dockerfile 0.67%

godaddy-terraform's Introduction

terraform-godaddy

Terraform plugin for managing domain records

Codeship Status for n3integration/terraform-godaddy

Terraform v0.12.x
https://github.com/n3integration/terraform-godaddy/releases/tag/v1.7.3
Terraform v0.11.x
https://github.com/n3integration/terraform-godaddy/releases/tag/v1.6.4
Terraform v0.10.x
https://github.com/n3integration/terraform-godaddy/releases/tag/v1.5.0
Terraform v0.9.x
https://github.com/n3integration/terraform-godaddy/releases/tag/v1.3.0
Terraform v0.8.x
https://github.com/n3integration/terraform-godaddy/releases/tag/v1.2.3
Terraform v0.7.x
https://github.com/n3integration/terraform-godaddy/releases/tag/v1.0.0

Installation

bash <(curl -s https://raw.githubusercontent.com/n3integration/terraform-godaddy/master/install.sh)

Installation steps for Terraform Cloud

  1. Download latest release for linux_amd64 from https://github.com/n3integration/terraform-godaddy/releases
  2. Unpack to <Project Folder>/terraform.d/plugins/linux_amd64.
  3. Rename to match naming scheme: terraform-provider-<NAME>_vX.Y.Z https://www.terraform.io/docs/configuration/providers.html#third-party-plugins
  4. Run terraform init to make sure the provider works.

API Key

In order to leverage the GoDaddy APIs, an API key is required. The key pair can be optionally stored in environment variables.

export GODADDY_API_KEY=abc
export GODADDY_API_SECRET=123

Provider

If key and secret aren't provided under the godaddy provider, they are expected to be exposed as environment variables: GODADDY_API_KEY and GODADDY_API_SECRET.

provider "godaddy" {
  key = "abc"
  secret = "123"
}

Domain Record Resource

A godaddy_domain_record resource requires a domain. If the domain is not registered under the account that owns the key, an optional customer number can be specified. Additionally, one or more record instances are required. For each record, the name, type, and data attributes are required. MX records can optionally specify priority or will default to 0. Address and NameServer records can be defined using shorthand-notation as addresses = [""] or nameservers = [""], respectively unless you need to override the default time-to-live (3600). The available record types include:

  • A
  • AAAA
  • CAA
  • CNAME
  • MX
  • NS
  • SOA
  • SRV
  • TXT
resource "godaddy_domain_record" "gd-fancy-domain" {
  domain   = "fancy-domain.com"

  // required if provider key does not belong to customer
  customer = "1234"

  // specify zero or more record blocks
  // a record block allows you to configure A, or NS records with a custom time-to-live value
  // a record block also allow you to configure AAAA, CNAME, TXT, or MX records
  record {
    name = "www"
    type = "CNAME"
    data = "fancy.github.io"
    ttl = 3600
  }

  record {
    name = "@"
    type = "MX"
    data = "aspmx.l.google.com."
    ttl = 600
    priority = 1
  }

  record {
    name      = "@"
    type      = "SRV"
    data      = "host.example.com"
    ttl       = 3600
    service   = "_ldap"
    protocol  = "_tcp"
    port      = 389
  }

  // specify any A records associated with the domain
  addresses   = ["192.168.1.2", "192.168.1.3"]

  // specify any custom nameservers for your domain
  // note: godaddy now requires that the 'custom' nameservers are first supplied through the ui
  nameservers = ["ns7.domains.com", "ns6.domains.com"]
}

Building for Linux

make linux

Additional Information

If your zone contains existing data, please ensure that your Terraform resource configuration includes all existing records, otherwise they will be removed.

This plugin also supports Terraform's import feature. This will at least allow you to determine the changes introduced through terraform plan and update the resource configuration accordingly to preserve existing data. The supplied resource id to the terraform import command should be the name of the domain that you would like to import. Although this is currently a manual workaround, this plugin will be updated when Terraform includes support for fully automated imports.

License

Copyright 2020 [email protected]

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

godaddy-terraform's People

Contributors

n3integration avatar sherzberg avatar sigewuzhere avatar stevenaldinger avatar byt3bl33d3r avatar guessi 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.