Puppet and Google Cloud Platform: a year in review
Nelson Araujo
Software Engineer
Here at Google Cloud, our goal is to build a great environment in which to use your favorite management tools, including popular automation and change management software like Puppet. Over the past year, we’ve worked hard to dramatically improve support for Google Cloud in Puppet, and with PuppetConf 2017 behind us, we thought it’d be fun to take a walk down memory lane and recap how far we’ve come.
Our journey to support Puppet-based managed systems started well over a year ago, long before PuppetConf 2016. But that’s where we announced the effort and demoed the proposed model, which described a complete Google Cloud Platform (GCP) infrastructure using Puppet. We collected customer feedback and got busy.
The first wave of integration
Fast forward to this August, when we jointly announced support for the first GCP products on Puppet Forge (Google announcement and Puppet announcement), including:- Compute Engine
- Kubernetes Engine
- Cloud SQL
- Cloud DNS
- Cloud Storage
- Unified authentication mechanism
The reception from the community has been great, and these modules have garnered over 1,300 downloads at the time of this writing.
Migrating workloads to Google Cloud Platform
In September, we held a webinar with Puppet to demonstrate how to migrate a Puppet managed application from on-premise (or other cloud provider) to GCP without service interruption.PuppetConf 2017
The biggest news for GCP and Puppet to come out of PuppetConf 2017 was a formal partnership between the two companies focused on increasing the strength of current and future contributions.We also announced a second wave of integrations and updates:
- Cloud Spanner
- Cloud Pub/Sub
- Stackdriver Logging Agent
- Improvements on Compute Engine to support load-balanced / clustered configurations
https://forge.puppet.com/google/cloud
and detailed product specific references, usage and examples for the respective module at Google @ Puppet Forge.
We also gave a number of talks:
- From nothing to production in 10 minutes (scalable in 30)
- Kubernetes in the Cloud with Puppet and Google Kubernetes Engine
Bolt / Tasks Support
We worked with Puppet to add Bolt support to GCP modules, allowing you to run non-idempotent actions that historically did not fit well in Puppet’s model, e.g., restarting a VM. We added a number of tasks to these modules. You can find them in the tasks/ folder of the respective module. We’ve been supporting Bolt since day 1 and will continue doing so in the future.
Puppet Discovery
Puppet unveiled Puppet Discovery during the conference and we're working together to quickly add GCP resource discovery to the Puppet Discovery platform.
What’s next?
We're far from done, and are working on a variety of integration efforts for Puppet, notably:- GCP support for Puppet Discovery
- Support for Cloud IAM
- Support for Cloud Resource Manager
- Improvements on Cloud Storage module
- Support for Regional Managed Instance Groups (MIG)
- Autoscaling of MIGs