David Flanagan

David Flanagan

Staff Developer Advocate

EKS Blueprints for Pulumi

EKS Blueprints for Pulumi

With the launch of Amazon Elastic Kubernetes Service (EKS) in 2017, it is now easier than ever to build, secure, operate and maintain Kubernetes clusters in the cloud. Notably, EKS removed the need to manage and configure underlying compute resources and scaling for clusters. Further, EKS Anywhere brings many benefits to hybrid and on-premises deployments.

These developments have proved to be a huge leap forward in productivity for teams that manage cloud infrastructure, enabling them to focus their efforts on deploying applications to meet the needs of customers and stakeholders.

Read more →

Using Go Generics with Pulumi

Using Go Generics with Pulumi

March 15th, 2022… just two weeks ago. The Go team released Go 1.18 to the world. What seems like a trivial point release actually brings a huge new feature to the Go language: Generics.

In this article, I want to show you how you can use this new feature to build a great developer experience with your abstractions for your Pulumi programs.

Read more →

Introducing the Pulumiverse

Introducing the Pulumiverse

Today, we’re excited to announce that we’re working with the Pulumi community to provide a place to interact and collaborate on Pulumi-based libraries, projects, and educational materials: the Pulumiverse.

Read more →

My Pulumi: Managing My DNS

My Pulumi: Managing My DNS

Hello, my name is David Flanagan, and I own more domains than I need. The problem is I have too many ideas; and as we all know, ideas don’t become real until you buy the domain name. Unfortunately, more often than not, that’s about as far as my ideas go—because, life. That being said, I do try to keep my DNS records under control in the event that life affords me the time to follow-up on one of these ideas.

Read more →

Hierarchical Config: The Interim Solution

Hierarchical Config: The Interim Solution

A really common question that we receive on the Pulumi team is, “How can we set config at a project level, that can be used across all stacks?”. When I say “really common” … I mean really, really common. This issue was first open in 2018 and has received 52 votes from the community. Not only that, we’ve had plenty of similar issues created over the years too. Feature-Request: project-wide secrets #2445 Feature Request: Global Config Values How to share a config between projects Project-wide variables (not stack specific) #6719 This is clearly a feature that our community has asked for and we’re currently working on delivering it as soon as we can.

Read more →

Easier IaC adoption with improved `pulumi import` experience

Easier IaC adoption with improved `pulumi import` experience

Last year, we introduced a new Pulumi feature that allows you to import existing infrastructure into your Pulumi program. Not only did it bring the resource into the Pulumi state file, but it could generate the source code for your Pulumi program too. Today, we’re excited to announce that we’ve listened to feedback and delivered a plethora of updates and fixes to streamline the import experience; to make it more useful, more convenient, and more powerful.

Read more →

Executing Remote Commands with Pulumi

Executing Remote Commands with Pulumi

We recently announced in our release blog (66) a new package: Command. In this article, I want to show you a practical application of this that will allow us to deploy k3s to a DigitalOcean droplet. We’ll then leverage the Command package to run a remote command to fetch the kubeconfig, generated on the VM, and pull it down to create a Kubernetes provider to deploy nginx. So, let’s get started by deploying our Digital Ocean droplet.

Read more →

Kubernetes SDKs from the Pulumiverse

Kubernetes SDKs from the Pulumiverse

Pulumi provides an amazingly rich interface for developers and operators to define their Kubernetes workloads, providing typed access to recourses from the Kubernetes API and allowing our IDEs to provide code completion and refactoring opportunities through the native language plugins. As great as that is, it’s always gotten a little cumbersome when it comes to Custom Resource Definitions (CRDs), as the first option is to leverage the CustomResource escape-hatch that allows you to define any Kubernetes object you wish; however this does mean we lose the rich interface we’ve become accustomed to.

Read more →

Improving the GitOps Pipeline with the Pulumi Operator

Improving the GitOps Pipeline with the Pulumi Operator

This time last year, I presented Applying the Law of Demeter to GitOps at GitOps Days 2020. The Law of Demeter is a design principle, proposed in 1988, which encourages loose coupling between systems. During this session, I wanted the audience to understand and be able to identify when their applications and continuous delivery pipelines have too much knowledge of the platform in which they’re going to run. As an industry, we’re seeing a great deal of momentum towards Platform Engineering and with this comes a Broca divide, a strict division of responsibilities: to build a platform and to consume a platform.

Read more →