{"componentChunkName":"component---src-templates-blog-post-jsx","path":"/blog/introducing-the-digitalocean-terraform-provider/","result":{"data":{"prismic":{"blog":{"author":{"__typename":"PRISMIC_Author","_linkType":"Link.document","author_name":"Andrew Starr-Bochicchio","author_image":null,"_meta":{"uid":"asb"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"Squares and droplets illustration","copyright":null,"url":"https://images.prismic.io/www-static/9c52b92f36b36421056d9affc3d1d6f5815ff852_terraform_social_blog.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Introducing the DigitalOcean Terraform Provider","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"Terraform provides you with a safe and predictable way to create, change, and version your infrastructure. It has become an essential part of many DigitalOcean users' workflow, and we want to ensure it receives the support it deserves. That's why we were so excited to release version 1.0.0 of the DigitalOcean Terraform Provider. This release marks a major milestone: the first since DigitalOcean took ownership of the project and a declaration of our commitment to support its continued development.","spans":[{"start":298,"end":329,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.terraform.io/docs/providers/do/index.html"}}]},{"type":"paragraph","text":"The release is full of new features, improvements, and bug fixes. Here are some highlights:","spans":[]},{"type":"list-item","text":"New attachment resources for both volumes and floating IPs allowing you to better handle their life cycles separate from Droplets.","spans":[]},{"type":"list-item","text":"Ten new data sources allowing you to reference existing resources not managed by Terraform.","spans":[]},{"type":"list-item","text":"Support for recent DigitalOcean features like Let’s Encrypt certificates, auto-formatting for volumes, and CAA domain records.","spans":[]},{"type":"list-item","text":"And improvements to existing resources like volumes which now support resizing and creating from snapshots.","spans":[]},{"type":"paragraph","text":"You can find the full changelog here.","spans":[{"start":17,"end":36,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/terraform-providers/terraform-provider-digitalocean/blob/master/CHANGELOG.md#100-september-27-2018"}}]},{"type":"paragraph","text":"Special thanks to all the community contributors that helped make this release possible: Aaron (slapula), Arve Knudsen (aknuds1), Nikolai Zujev (jaymecd), Piotr Grzesik (pgrzesik), Justin (justinbarrick), jonnydford, and Leandro López (inkel).","spans":[{"start":96,"end":103,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/slapula"}},{"start":120,"end":127,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/aknuds1"}},{"start":145,"end":152,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/jaymecd"}},{"start":170,"end":178,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/pgrzesik"}},{"start":189,"end":202,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/justinbarrick"}},{"start":205,"end":215,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/jonnydford"}},{"start":236,"end":241,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/inkel"}}]},{"type":"heading3","text":"HashiConf 2018","spans":[]},{"type":"paragraph","text":"To keep up on all the latest Terraform developments and hear your feedback face-to-face, next week we’ll be attending HashiConf in San Francisco, October 22 to 24. Find me at our booth with the rest of the DigitalOcean crew.","spans":[{"start":118,"end":127,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.hashiconf.com/"}}]},{"type":"paragraph","text":"DigitalOcean’s Eddie Zaneski will be sharing some lessons learned in building a Terraform provider in his talk, “Creating a Terraform Provider for Just About Anything,” at 2:35 PM PST in the Gold Room on Tuesday, October 23.","spans":[{"start":113,"end":166,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.hashiconf.com/speakers#eddie-zaneski"}}]},{"type":"paragraph","text":"Terraform is an amazing tool that lets you define your infrastructure as code. Under the hood it's an incredibly powerful state machine that makes API requests and marshals resources. In this talk we'll dive into the inner workings of Terraform and examine all the elements of a provider — from the documentation to the test suite. You'll walk away with the knowledge of how to contribute to an existing provider or create your own from scratch. We'll also take a look at some of the things we encountered while working on the DigitalOcean provider and the lessons learned from the community.","spans":[{"start":0,"end":592,"type":"em"}]},{"type":"heading3","text":"Get Started with Terraform","spans":[]},{"type":"paragraph","text":"Whether you’re new to Terraform or looking to learn more, here are some recommended resources to dive into:","spans":[]},{"type":"list-item","text":"How To Use Terraform with DigitalOcean:\nLearn the basics of using Terraform in this tutorial on the DigitalOcean community site. It starts from square one and walks you through creating an infrastructure project consisting of two Nginx servers that are load balanced by an HAProxy server.","spans":[{"start":0,"end":38,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials/how-to-use-terraform-with-digitalocean#"}}]},{"type":"paragraph","text":"","spans":[{"start":0,"end":0,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.youtube.com/watch?v=FZjy5ZNIxvI"}}]},{"type":"image","url":"https://images.prismic.io/www-static/b79686e3e9005f6c2937110326efce867ea9b719_youtube.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":1122,"height":558}},{"type":"list-item","text":"Collaborating on Infrastructure:\nEarlier this year, HashiCorp Developer Advocate Nic Jackson joined us for TIDE NYC, a day of tech talks at DigitalOcean HQ. His talk focused on using Terraform for collaborating on infrastructure in a team setting, including bringing the GitFlow approach to your infrastructure and using DigitalOcean Spaces for keeping state.","spans":[{"start":0,"end":31,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.youtube.com/watch?v=FZjy5ZNIxvI"}},{"start":81,"end":92,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/@sheriffjackson"}},{"start":107,"end":155,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.youtube.com/playlist?list=PLseEp7p6EwibAnWVIxSp6NoVu9gFfECwm"}}]},{"type":"paragraph","text":"","spans":[{"start":0,"end":0,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.youtube.com/playlist?list=PLtK75qxsQaMIHQOaDd0Zl_jOuu1m3vcWO"}}]},{"type":"image","url":"https://images.prismic.io/www-static/c8c73d706d0cd634939a050da315369217ee216d_intro_to.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":1280,"height":720}},{"type":"list-item","text":"Terraform Basics: Dave C’s tutoriaLinux YouTube channel is home to some amazing DevOps and programing content including his five-part Terraform Mini-Course. These easy to follow videos are a great introduction to Terraform.","spans":[{"start":0,"end":16,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.youtube.com/playlist?list=PLtK75qxsQaMIHQOaDd0Zl_jOuu1m3vcWO"}},{"start":27,"end":55,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/tutorialinux"}}]},{"type":"list-item","text":"Zero Downtime Updates with HashiCorp Terraform: \nNic Jackson is back; this time with an introduction to managing the lifecycle of your infrastructure resources using the DigitalOcean Terraform provider. He’ll show us how to avoid downtime caused by updates and allow uninterrupted replacement of resources.","spans":[{"start":0,"end":46,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.hashicorp.com/blog/zero-downtime-updates-with-terraform"}}]},{"type":"list-item","text":"DigitalOcean Terraform Provider - Reference Documentation: \nFinally, check out the full reference documentation for all the details.","spans":[{"start":0,"end":57,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.terraform.io/docs/providers/do/index.html"}}]},{"type":"paragraph","text":"Andrew Starr-Bochicchio is an open source enthusiast and was DigitalOcean's first full-time community manager. Now he serves as a Product Manager in our Developer Experience group focused on our API. Follow Andrew on Twitter @astarrb.","spans":[{"start":0,"end":234,"type":"em"},{"start":225,"end":233,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.twitter.com/astarrb"}}]}],"blog_post_date":"2018-10-22","blog_meta_title":null,"blog_meta_description":null,"tags":[{"tag1":{"__typename":"PRISMIC_Tag","tag":"Product Updates","_linkType":"Link.document","_meta":{"uid":"product-updates"}}}],"_meta":{"firstPublicationDate":"2019-10-28T15:33:59+0000","uid":"introducing-the-digitalocean-terraform-provider"}}}},"pageContext":{"rootQuery":"\n  query BlogBySlug($uid: String!) {\n    prismic {\n      blog(lang: \"en-us\", uid: $uid) {\n        ...BlogFragment\n      }\n    }\n  }\n","id":"XbImURQAACUAXKHG","lang":"en-us","uid":"introducing-the-digitalocean-terraform-provider","type":"blog","alternateLanguages":[],"cursor":"YXJyYXljb25uZWN0aW9uOjMz","paginationPreviousMeta":{"id":"XbIifBQAACYAXJBZ","lang":"en-us","uid":"recap-an-introduction-to-marketplace-1-click-apps","type":"blog","alternateLanguages":[]},"paginationPreviousUid":"recap-an-introduction-to-marketplace-1-click-apps","paginationPreviousLang":"en-us","paginationNextMeta":{"id":"XbImURQAACUAXKHY","lang":"en-us","uid":"how-to-code-in-python-ebook","type":"blog","alternateLanguages":[]},"paginationNextUid":"how-to-code-in-python-ebook","paginationNextLang":"en-us","lastQueryChunkEndCursor":"YXJyYXljb25uZWN0aW9uOjE5"}}}