Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion assets/js/plugins.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ params:
rss_link: https://masterpoint.io/blog/index.xml
#google_analytics: UA-
sitewide_note: <strong>Masterpoint stands with Ukraine.</strong> Here’s how you can help Ukraine with just a few clicks. >
sitewide_note_link: /updates/supporting-ukraine/
get_in_touch: /contact
sitewide_note_link: /blog/supporting-ukraine/
get_in_touch: /contact/
outputs:
home:
- HTML
Expand Down
2 changes: 1 addition & 1 deletion content/blog/2023-07-17-hiring-july-2023.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ date: 2023-07-17
# date_modified: 2025-xx-xx Be sure to use this if you've updated the post as this helps with SEO and index freshness
description: We're hiring a Senior, US-based Platform Engineer ASAP. This is a full-time contract with option to grow into FTE if you're interested. Continue reading to learn more about the position!
image: /img/updates/hiring-july-2023.png
callout: "<p>👋 <b>Interested in platform engineering for your organization</b>, but not sure where to start? <a href='/contact'>Get in touch,</a> we're an expert team of platform engineers who deliver high-quality cloud platforms for startups and SMBs looking to scale. We enable your application engineers to focus on your product and in turn generate more value for your business.</p><a href='/contact' class='button'>Get In Touch &rsaquo;</a>"
callout: "<p>👋 <b>Interested in platform engineering for your organization</b>, but not sure where to start? <a href='/contact/'>Get in touch,</a> we're an expert team of platform engineers who deliver high-quality cloud platforms for startups and SMBs looking to scale. We enable your application engineers to focus on your product and in turn generate more value for your business.</p><a href='/contact/' class='button'>Get In Touch &rsaquo;</a>"
---

Come join us at Masterpoint as we build **awesome** cloud platforms for our clients! We’re searching for our next great platform engineer to help us architect, implement, and improve our cloud platform pattern that is built on AWS, Terraform, and Containers. Our vision for both employees and contractors is to provide an open and inclusive work environment, strive for a proper work / life balance, and contribute to the open source ecosystems that we rely so heavily on.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ date: 2023-08-10
# date_modified: 2025-xx-xx Be sure to use this if you've updated the post as this helps with SEO and index freshness
description: "We dive into one of Terraform's most recent features to leverage infrastructure validation."
image: /img/updates/tf-check-blog-post.png
callout: "<p>👋 <b>Interested in platform engineering for your organization</b>, but not sure where to start? <a href='/contact'>Get in touch,</a> we're an expert team of platform engineers who deliver high-quality cloud platforms for startups and SMBs looking to scale. We enable your application engineers to focus on your product and in turn generate more value for your business.</p><a href='/contact' class='button'>Get In Touch &rsaquo;</a>"
callout: "<p>👋 <b>Interested in platform engineering for your organization</b>, but not sure where to start? <a href='/contact/'>Get in touch,</a> we're an expert team of platform engineers who deliver high-quality cloud platforms for startups and SMBs looking to scale. We enable your application engineers to focus on your product and in turn generate more value for your business.</p><a href='/contact/' class='button'>Get In Touch &rsaquo;</a>"
---

<h2>Table of Contents</h2>
Expand Down
4 changes: 2 additions & 2 deletions content/blog/2024-02-08-terraform-controller-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ date: 2024-02-08
# date_modified: 2025-xx-xx Be sure to use this if you've updated the post as this helps with SEO and index freshness
description: The post explores how Terraform Controller by Weaveworks can enable GitOps for infrastructure management.
image: /img/updates/terraform-controller-overview/tf_controller_0.png
callout: "<p>👋 <b>Interested in platform engineering for your organization</b>, but not sure where to start? <a href='/contact'>Get in touch,</a> we're an expert team of platform engineers who deliver high-quality cloud platforms for startups and SMBs looking to scale. We enable your application engineers to focus on your product and in turn generate more value for your business.</p><a href='/contact' class='button'>Get In Touch &rsaquo;</a>"
callout: "<p>👋 <b>Interested in platform engineering for your organization</b>, but not sure where to start? <a href='/contact/'>Get in touch,</a> we're an expert team of platform engineers who deliver high-quality cloud platforms for startups and SMBs looking to scale. We enable your application engineers to focus on your product and in turn generate more value for your business.</p><a href='/contact/' class='button'>Get In Touch &rsaquo;</a>"
---

<h2>Table of Contents</h2>
Expand Down Expand Up @@ -37,7 +37,7 @@ callout: "<p>👋 <b>Interested in platform engineering for your organization</b

In this post, we continue exploring effective tools for bridging the gap between Infrastructure as Code and GitOps. We aim to harness the optimal benefits of these practices as they are fundamental to our thoughts on building great platforms. One such tool that has gained our attention is [Terraform Controller](https://weaveworks.github.io/tf-controller/) by [Weaveworks](https://www.weave.works/), and we'd like to share our experience.

Before going into the details, we recommend reading our experience with a framework called [Crossplane](https://www.crossplane.io/), which we've passed on in our [previous blog post](https://masterpoint.io/updates/passing-on-crossplane/). While Crossplane offers deep Kubernetes integration, treating infrastructure management as a native Kubernetes operation, it also brings certain complexities and limitations. In contrast, Terraform Controller interconnects the Kubernetes ecosystem with Terraform's robust infrastructure management capabilities.
Before going into the details, we recommend reading our experience with a framework called [Crossplane](https://www.crossplane.io/), which we've passed on in our [previous blog post](https://masterpoint.io/blog/passing-on-crossplane/). While Crossplane offers deep Kubernetes integration, treating infrastructure management as a native Kubernetes operation, it also brings certain complexities and limitations. In contrast, Terraform Controller interconnects the Kubernetes ecosystem with Terraform's robust infrastructure management capabilities.
A key distinction lies in their operational models - Terraform Controller builds upon Terraform's established state management and operational principles. For those already well-acquainted with Terraform, this offers a certain familiarity, reliability, and feature completeness.

## In a Nutshell
Expand Down
2 changes: 1 addition & 1 deletion content/blog/2024-03-05-terraform-null-label-advanced.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ description: "A post highlighting some advanced usage of the terraform-null-labe
image: /img/updates/terraform-null-label-part2.png
---

Following up from our last article on the `terraform-null-label` module, (if you haven’t read that already, [be sure to here](https://masterpoint.io/updates/terraform-null-label/)) we want to talk about some advanced usage scenarios. This module effectively helps to maintain consistent naming and tagging practices, but it can still be cumbersome to implement when you need to create lots of variables that implement the label interface. In that case, why not borrow a little bit from object-oriented programming (OOP) with [the concept of a "mixin"](https://en.wikipedia.org/wiki/Mixin)? The module has this capability through the drop-in `context.tf` file. It provides a great framework to implement naming and tagging, especially in scenarios where there’s lots of nesting and module dependencies. In this follow-up, we’ll explore mixins, and provide some code examples to help understand how to get the most out of `terraform-null-label`.
Following up from our last article on the `terraform-null-label` module, (if you haven’t read that already, [be sure to here](https://masterpoint.io/blog/terraform-null-label/)) we want to talk about some advanced usage scenarios. This module effectively helps to maintain consistent naming and tagging practices, but it can still be cumbersome to implement when you need to create lots of variables that implement the label interface. In that case, why not borrow a little bit from object-oriented programming (OOP) with [the concept of a "mixin"](https://en.wikipedia.org/wiki/Mixin)? The module has this capability through the drop-in `context.tf` file. It provides a great framework to implement naming and tagging, especially in scenarios where there’s lots of nesting and module dependencies. In this follow-up, we’ll explore mixins, and provide some code examples to help understand how to get the most out of `terraform-null-label`.

## Background

Expand Down
2 changes: 1 addition & 1 deletion content/blog/2024-05-13-terraform-use-cases.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ date: 2024-05-13
slug: terraform-use-cases
description: "Engineering orgs that use IaC tools like Terraform aren’t typically maximizing their leverage. This article highlights at least three uses of Terraform and IaC automation that don’t necessarily center around traditional application workload infrastructure."
image: /img/updates/tf-use-cases.jpeg
callout: <p>👋 <b>If you're ready to take your infrastructure to the next level, we're here to help. We love to work together with engineering teams to help them build well-documented, scalable, automated IaC that make their jobs easier. <a href='/contact'>Get in touch!</a>
callout: <p>👋 <b>If you're ready to take your infrastructure to the next level, we're here to help. We love to work together with engineering teams to help them build well-documented, scalable, automated IaC that make their jobs easier. <a href='/contact/'>Get in touch!</a>
---

One of the main themes we’ve noticed is that platform teams often struggle when embracing the "as code" philosophy. Sure, they'll use OpenTofu or Terraform (collectively referred to from here on out as “TF”) to manage compute and other cloud resources, but they tend to stop short of applying the same principles to _everything_ in their operational domain.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ date: 2024-08-22
description: This article explores the challenges and pitfalls of Terralith, a monolithic Terraform architecture in Infrastructure as Code, and uncovers why a Terralith is not a good practice.
image: /img/updates/terralith/terralith-article.png
preview_image: /img/updates/terralith/terralith-preview-image.png # Use preview_image to prevent image overflow, best aspect ratios 270x355 or 600x700
callout: <p>👋 <b>If you're ready to take your infrastructure to the next level, we're here to help. We love to work together with engineering teams to help them build well-documented, scalable, automated IaC that make their jobs easier. <a href='/contact'>Get in touch!</a></p>
callout: <p>👋 <b>If you're ready to take your infrastructure to the next level, we're here to help. We love to work together with engineering teams to help them build well-documented, scalable, automated IaC that make their jobs easier. <a href='/contact/'>Get in touch!</a></p>
---

<h2>Table of Contents</h2>
Expand Down
2 changes: 1 addition & 1 deletion content/blog/2024-10-10-migrate-off-tfc.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ date: 2024-10-10
description: "Need to to migrate off Terraform Cloud? We're happy to share some tips about preparation, pitfalls, and the process itself based on Masterpoint's experience."
image: /img/updates/migrate-off-tfc/main.webp
preview_image: /img/updates/migrate-off-tfc/preview.webp
callout: <p>👋 <b>If you're ready to take your infrastructure to the next level, we're here to help. We love to work together with engineering teams to help them build well-documented, scalable, automated IaC that make their jobs easier. <a href='/contact'>Get in touch!</a>
callout: <p>👋 <b>If you're ready to take your infrastructure to the next level, we're here to help. We love to work together with engineering teams to help them build well-documented, scalable, automated IaC that make their jobs easier. <a href='/contact/'>Get in touch!</a>
---

# Introduction
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ date: 2025-02-06
date_modified: 2026-06-03 # Be sure to use this if you've updated the post as this helps with SEO and index freshness
description: Discover why cloud object storage services are the gold standard for Terraform or OpenTofu’s remote state and backend, including the benefits and an example using AWS S3 with native state locking.
image: /img/updates/cloud-object-storage-terraform-remote-backend/cloud-object-storage-for-terraform-remote-backend.webp
callout: <p>👋 <b>If you're ready to take your infrastructure to the next level, we're here to help. We love to work together with engineering teams to help them build well-documented, scalable, automated IaC that make their jobs easier. <a href='/contact'>Get in touch!</a></p>
callout: <p>👋 <b>If you're ready to take your infrastructure to the next level, we're here to help. We love to work together with engineering teams to help them build well-documented, scalable, automated IaC that make their jobs easier. <a href='/contact/'>Get in touch!</a></p>
---

<h2>Table of Contents</h2>
Expand Down Expand Up @@ -48,7 +48,7 @@ Now you might be wondering, "Okay, remote state sounds great, but where should I
Cloud service object storage such as Amazon Web Service’s (AWS) S3 is a particularly great choice for the backend for remote state. Here’s why:

1. **Battle-Tested & Reliable**: Cloud object storage solutions are already used by countless organizations for a variety of different use cases. By choosing this route, you’re benefitting from a battle-tested and community approved approach. Object storage solutions have been around for decades. Your backend and remote state for IaC will be as resilient as the infrastructure they represent - [S3 is designed for 99.99% availability](https://docs.aws.amazon.com/AmazonS3/latest/userguide/DataDurability.html)!
2. **Avoid Tooling & Vendor Lock-In**: Unlike proprietary IaC management platforms, object storage services have a shared API, allowing you to migrate between them if needed. [While platforms such as Terraform Cloud offer remote state storage solutions, it’s not as easy to migrate off of these backends](https://masterpoint.io/updates/how-to-migrate-off-tfc/) because each service has their own implementations. If you ever need to switch IaC automation providers, which is more likely than migrating your cloud infrastructure, you can easily do so. Your state and backend are universal and unchanged, remaining on AWS S3 or your chosen cloud object store.
2. **Avoid Tooling & Vendor Lock-In**: Unlike proprietary IaC management platforms, object storage services have a shared API, allowing you to migrate between them if needed. [While platforms such as Terraform Cloud offer remote state storage solutions, it’s not as easy to migrate off of these backends](https://masterpoint.io/blog/how-to-migrate-off-tfc/) because each service has their own implementations. If you ever need to switch IaC automation providers, which is more likely than migrating your cloud infrastructure, you can easily do so. Your state and backend are universal and unchanged, remaining on AWS S3 or your chosen cloud object store.
3. **Portability**: As mentioned above, organizations are unlikely to switch cloud providers, but in the case that it does happen, the transition is smooth. Object storage APIs are standard, making provider switches a walk in the park. It’s as easy as changing a few lines in your backend configuration to point to the new storage (of course, you’d also have to actually migrate the state files to the new provider as well, [which is handled during reinitialization](https://developer.hashicorp.com/terraform/language/backend#change-configuration)).
4. **Familiarity with Cloud Services**: If you’re dealing with IaC, you are likely already working with cloud services such as AWS and Google Cloud (GCP). Using object storage for your remote state means that you can leverage your existing cloud infrastructure functionality, such as [versioning](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html), [encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html), and your cloud’s [IAM permission system for RBAC](https://docs.aws.amazon.com/prescriptive-guidance/latest/saas-multitenant-api-access-authorization/access-control-types.html#rbac).

Expand Down
6 changes: 3 additions & 3 deletions content/blog/2025-03-06-steps-to-break-up-a-terralith.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ date: 2025-03-06
description: In this follow-up to our "What Is a Terralith?" article, we shift the focus from describing the problem to providing a detailed migration plan, practical guidance, and a handy checklist for breaking up a Terralith into smaller, more manageable root modules.
image: /img/updates/steps-to-break-up-a-terralith/main.png
preview_image: /img/updates/steps-to-break-up-a-terralith/preview.png
callout: <p>👋 <b>If you're ready to take your infrastructure to the next level</b>, we're here to help. We love to work together with engineering teams to help them build well-documented, scalable, automated IaC that make their jobs easier. <a href='/contact'>Get in touch!</a></p>
callout: <p>👋 <b>If you're ready to take your infrastructure to the next level</b>, we're here to help. We love to work together with engineering teams to help them build well-documented, scalable, automated IaC that make their jobs easier. <a href='/contact/'>Get in touch!</a></p>
---

<h2>Table of Contents</h2>
Expand Down Expand Up @@ -37,7 +37,7 @@ callout: <p>👋 <b>If you're ready to take your infrastructure to the next leve

Do you manage your infrastructure with Terraform or OpenTofu (collectively referred to from here on out as TF)? Have you noticed long `plan` and `apply` durations? Or are you concerned about the blast radius of changes? If so, you might be dealing with a **Terralith**. “Terralith” refers to a monolithic TF architecture where all your resources are managed within a single root module and state file. This setup leads to inefficiencies and increased risk when making changes.

In our previous article, [“What Is a Terralith?”](https://masterpoint.io/updates/terralith-monolithic-terraform-architecture/), we explored the challenges associated with Terraliths and why it’s beneficial to break them into smaller, manageable pieces.
In our previous article, [“What Is a Terralith?”](https://masterpoint.io/blog/terralith-monolithic-terraform-architecture/), we explored the challenges associated with Terraliths and why it’s beneficial to break them into smaller, manageable pieces.

In this guide, we’ll walk you through the steps to break up a Terralith, helping you improve your infrastructure’s maintainability, and overall performance.

Expand Down Expand Up @@ -121,7 +121,7 @@ You can do this by:

Plan how you’ll manage multiple state files and keep them consistent. The organization of these files may differ based on your needs. We recommend storing your TF state in a reliable cloud storage solution. For example, on AWS, use an S3 bucket in the root or shared-services account as your backend, with DynamoDB for state locking. This solution offers versioning, encryption and enforces access control using IAM. A resource to help you set up state management on S3 is the open-source child module [cloudposse/terraform-aws-tfstate-backend](https://github.com/cloudposse/terraform-aws-tfstate-backend).

We explore this topic in detail in our blog post on [why cloud object storage is the best option for a Terraform remote state and backend](https://masterpoint.io/updates/why-use-cloud-object-storage-terraform-remote-backend/).
We explore this topic in detail in our blog post on [why cloud object storage is the best option for a Terraform remote state and backend](https://masterpoint.io/blog/why-use-cloud-object-storage-terraform-remote-backend/).

### Key Organizational and Team Questions

Expand Down
Loading