---
title: "Streamlining GitHub Organization Management with Terraform"
lang: "en"
author: "Mohammad Abu Mattar"
canonical: https://mkabumattar.com/post/streamlining-github-organization-management-with-terraform
---

![Blog post image for Streamlining GitHub Organization Management with Terraform - How to manage a large GitHub organization efficiently using Terraform, including the key Terraform resources for automating user access, team structures, and repository configurations.](/_astro/hero.DJ7g8CQA_HgXmm.webp)

[Home](/)›[Blog](/blog)›[All Categories](/blog/categories)›[DevOps](/blog/categories/devops)

Blog

[Prev in DevOpsHashiCorp Vault vs. AWS Secrets Manager vs. SOPS: Which One Fits Your Setup](/blog/post/secrets-management-vault-secrets-manager-sops)[Next in DevOpsTesting Terraform: Static Analysis, Native Tests, and Terratest](/blog/post/terraform-testing-terratest-native-tests)

[DevOps](/blog/categories/devops)[Infrastructure as Code](/blog/categories/infrastructure-as-code)[GitHub](/blog/categories/github)[Automation](/blog/categories/automation)[Terraform](/blog/categories/terraform)

# Streamlining GitHub Organization Management with Terraform

[Mohammad Abu Mattar](/authors/mohammad-abu-mattar)Published: 11 Jan 202505 Mins read11 Mins listen

[Markdown for AI(opens in a new tab)](/post/streamlining-github-organization-management-with-terraform/index.md "Open the plain-Markdown version of this page, for pasting into an AI tool")

TL;DR

How to manage a large GitHub organization efficiently using Terraform, including the key Terraform resources for automating user access, team structures, and repository configurations.

Series

[Mastering Terraform](/series/mastering-terraform)2/6

[PreviousDeploying Infrastructure with Terraform in CI/CD Pipelines](/blog/post/deploying-infrastructure-with-terraform-in-ci-cd-pipelines)[NextCompliance as Code: Making Security Easier with Terraform and InSpec](/blog/post/compliance-as-code-nist-iso-27001-gdpr-terraform-inspec)

All posts in this series (6)

Blog6

1.  [Deploying Infrastructure with Terraform in CI/CD Pipelines](/blog/post/deploying-infrastructure-with-terraform-in-ci-cd-pipelines)
2.  [Streamlining GitHub Organization Management with TerraformYou are here](/blog/post/streamlining-github-organization-management-with-terraform)
3.  [Compliance as Code: Making Security Easier with Terraform and InSpec](/blog/post/compliance-as-code-nist-iso-27001-gdpr-terraform-inspec)
4.  [Modular Terraform for Scalable Infrastructure as Code](/blog/post/modular-terraform-scalable-iac-guide)
5.  [Building Resilient Systems: Immutable Infrastructure with Packer and Terraform](/blog/post/immutable-infrastructure-packer-terraform-guide)
6.  [Testing Terraform: Static Analysis, Native Tests, and Terratest](/blog/post/terraform-testing-terratest-native-tests)

### Streamlining GitHub Organization Management with Terraform

Contents

[What is Terraform, and why use it for GitHub organization management?](#what-is-terraform-and-why-use-it-for-github-organization-management)[Why automate GitHub organization management?](#why-automate-github-organization-management)[The main Terraform resources for GitHub management](#the-main-terraform-resources-for-github-management)[1\. `github_membership`: managing organization members](#1-github_membership-managing-organization-members)[\# Scenario: automating onboarding for new engineers](#-scenario-automating-onboarding-for-new-engineers)[2\. `github_team_membership`: assigning users to teams](#2-github_team_membership-assigning-users-to-teams)[\# Scenario: adding developers to specialized teams](#-scenario-adding-developers-to-specialized-teams)[3\. `github_repository`: creating and configuring repositories](#3-github_repository-creating-and-configuring-repositories)[\# Scenario: launching a new microservice](#-scenario-launching-a-new-microservice)[4\. `github_team_repository`: managing team access to repositories](#4-github_team_repository-managing-team-access-to-repositories)[\# Scenario: granting the backend team access to the order-service repository](#-scenario-granting-the-backend-team-access-to-the-order-service-repository)[5\. `github_branch_protection`: enforcing branch protection rules](#5-github_branch_protection-enforcing-branch-protection-rules)[\# Scenario: enforcing branch protection on the main branch](#-scenario-enforcing-branch-protection-on-the-main-branch)[Using GitHub PRs and the `CODEOWNERS` feature for an approval flow](#using-github-prs-and-the-codeowners-feature-for-an-approval-flow)[\# Scenario: requiring backend team approval for critical code](#-scenario-requiring-backend-team-approval-for-critical-code)[How to get started with Terraform for GitHub](#how-to-get-started-with-terraform-for-github)[Step 1: Install Terraform](#step-1-install-terraform)[Step 2: Configure the GitHub provider](#step-2-configure-the-github-provider)[Step 3: Define your resources](#step-3-define-your-resources)[Step 4: Initialize Terraform](#step-4-initialize-terraform)[Step 5: Plan and apply the configuration](#step-5-plan-and-apply-the-configuration)[Step 6: Verify the changes](#step-6-verify-the-changes)[Step 7: Manage state](#step-7-manage-state)[Step 8: Update and destroy resources](#step-8-update-and-destroy-resources)[Pros and cons of using Terraform for GitHub management](#pros-and-cons-of-using-terraform-for-github-management)[Pros:](#pros)[Cons:](#cons)[Conclusion](#conclusion)[References](#references)

Managing a GitHub organization manually can become increasingly complex as teams grow and projects multiply. For DevOps and DevSecOps engineers, automation is how you keep things consistent and cut down human error. That’s where Terraform, a popular Infrastructure as Code (IaC) tool, helps. With Terraform you can automate the management of your GitHub organization, from user access to team structures and repository configurations. This article covers how Terraform simplifies GitHub organization management, with real-world examples.

## [What is Terraform, and why use it for GitHub organization management?](#what-is-terraform-and-why-use-it-for-github-organization-management)

**Terraform** is an open-source IaC tool that lets you define and manage infrastructure in a declarative configuration language. Traditionally used for cloud resources like AWS or Azure, Terraform also has providers for various platforms, including GitHub. By using the GitHub provider, you can automate the management of:

-   Repositories
-   Teams
-   Team memberships
-   User permissions

This approach aligns with DevOps principles: your infrastructure configurations, including your GitHub organization setup, become version-controlled, auditable, and reproducible.

## [Why automate GitHub organization management?](#why-automate-github-organization-management)

Automation reduces manual intervention, which:

-   Keeps things consistent across environments
-   Improves security and compliance
-   Minimizes the risk of human error
-   Speeds up onboarding and offboarding processes

By automating these tasks, you free up time for more strategic activities.

## [The main Terraform resources for GitHub management](#the-main-terraform-resources-for-github-management)

Here are the Terraform resources that matter most for managing a GitHub organization, with a scenario and an example for each.

### [1\. `github_membership`: managing organization members](#1-github_membership-managing-organization-members)

This resource manages whether a user is a member or an owner of a GitHub organization. It’s useful for automating user onboarding and setting the right access level.

#### [Scenario: automating onboarding for new engineers](#scenario-automating-onboarding-for-new-engineers)

Your team has onboarded a new engineer, Jane, who needs access to the organization as a member. Traditionally, you would manually add her, but Terraform can automate this process:

main.tf

```
1resource "github_membership" "jane_membership" {2  username = "jane-doe"3  role     = "member"4}
```

Apply this configuration and Jane is added as a member, the same way every time, without you clicking through the UI.

### [2\. `github_team_membership`: assigning users to teams](#2-github_team_membership-assigning-users-to-teams)

This resource lets you manage which users belong to specific teams within your organization.

#### [Scenario: adding developers to specialized teams](#scenario-adding-developers-to-specialized-teams)

Jane needs to be added to the backend-team. Here’s how you do that with Terraform:

main.tf

```
1resource "github_team" "backend_team" {2  name        = "backend-team"3  description = "Team responsible for backend services."4}5
6resource "github_team_membership" "jane_backend" {7  team_id  = github_team.backend_team.id8  username = "jane-doe"9  role     = "member"10}
```

Jane gets immediate access to the repositories and workflows tied to the backend team.

### [3\. `github_repository`: creating and configuring repositories](#3-github_repository-creating-and-configuring-repositories)

This resource manages the creation and configuration of GitHub repositories.

#### [Scenario: launching a new microservice](#scenario-launching-a-new-microservice)

Your team is tasked with developing a new microservice called order-service. With Terraform, you can automate repository creation:

main.tf

```
1resource "github_repository" "order_service" {2  name        = "order-service"3  description = "Handles order processing and management."4  visibility  = "private"5}
```

Every repository comes out with the same settings, and the setup takes seconds.

### [4\. `github_team_repository`: managing team access to repositories](#4-github_team_repository-managing-team-access-to-repositories)

This resource links teams to repositories and defines their access levels.

#### [Scenario: granting the backend team access to the order-service repository](#scenario-granting-the-backend-team-access-to-the-order-service-repository)

To give the backend team access to the order-service repository, use the following configuration:

main.tf

```
1resource "github_team_repository" "backend_order_access" {2  team_id    = github_team.backend_team.id3  repository = github_repository.order_service.name4  permission = "push"5}
```

The backend team now has the permissions it needs to contribute to the repository.

### [5\. `github_branch_protection`: enforcing branch protection rules](#5-github_branch_protection-enforcing-branch-protection-rules)

This resource manages branch protection rules to enforce policies on specific branches.

#### [Scenario: enforcing branch protection on the main branch](#scenario-enforcing-branch-protection-on-the-main-branch)

To protect the `main` branch of the order-service repository, you can configure branch protection as follows:

main.tf

```
1resource "github_branch_protection" "main_branch_protection" {2  repository_id = github_repository.order_service.name3  pattern       = "main"4
5  required_status_checks {6    strict   = true7    contexts = ["ci/circleci"]8  }9
10  enforce_admins = true11  required_pull_request_reviews {12    dismiss_stale_reviews           = true13    require_code_owner_reviews      = true14    required_approving_review_count = 215  }16}
```

Changes to the `main` branch now go through a rigorous review before anyone can merge them.

### [Using GitHub PRs and the `CODEOWNERS` feature for an approval flow](#using-github-prs-and-the-codeowners-feature-for-an-approval-flow)

You can improve your GitHub management workflow by combining the pull request process with the `CODEOWNERS` file. The `CODEOWNERS` file specifies which team members must approve changes to specific parts of a repository.

#### [Scenario: requiring backend team approval for critical code](#scenario-requiring-backend-team-approval-for-critical-code)

Define a `CODEOWNERS` file to require backend team approval for changes in the `src/backend/` directory:

CODEOWNERS

```
1# CODEOWNERS file2src/backend/ @backend-team
```

Any change to the `src/backend/` directory is now automatically flagged for review by the `@backend-team`, which helps with code quality and security.

## [How to get started with Terraform for GitHub](#how-to-get-started-with-terraform-for-github)

### [Step 1: Install Terraform](#step-1-install-terraform)

First, you need to install Terraform on your machine. You can download it from the [official Terraform website](https://www.terraform.io/downloads.html). Follow the installation instructions for your operating system.

### [Step 2: Configure the GitHub provider](#step-2-configure-the-github-provider)

Next, you need to configure the GitHub provider. Create a new directory for your Terraform configuration files and navigate to it. Then, create a `main.tf` file and add the following configuration:

provider.tf

```
1provider "github" {2  token = "your_github_token"3}
```

Replace `"your_github_token"` with a personal access token from GitHub. You can generate a token by going to your GitHub account settings, navigating to “Developer settings” > “Personal access tokens,” and creating a new token with the necessary scopes (e.g., `repo`, `admin:org`).

### [Step 3: Define your resources](#step-3-define-your-resources)

Write your Terraform configurations using the resources covered in this article. For example, to manage organization members, teams, and repositories, you can add the following configurations to your `main.tf` file:

main.tf

```
1resource "github_membership" "jane_membership" {2  username = "jane-doe"3  role     = "member"4}5
6resource "github_team" "backend_team" {7  name        = "backend-team"8  description = "Team responsible for backend services."9}10
11resource "github_team_membership" "jane_backend" {12  team_id  = github_team.backend_team.id13  username = "jane-doe"14  role     = "member"15}16
17resource "github_repository" "order_service" {18  name        = "order-service"19  description = "Handles order processing and management."20  visibility  = "private"21}22
23resource "github_team_repository" "backend_order_access" {24  team_id    = github_team.backend_team.id25  repository = github_repository.order_service.name26  permission = "push"27}28
29resource "github_branch_protection" "main_branch_protection" {30  repository_id = github_repository.order_service.name31  pattern       = "main"32
33  required_status_checks {34    strict   = true35    contexts = ["ci/circleci"]36  }37
38  enforce_admins = true39  required_pull_request_reviews {40    dismiss_stale_reviews           = true41    require_code_owner_reviews      = true42    required_approving_review_count = 243  }44}
```

### [Step 4: Initialize Terraform](#step-4-initialize-terraform)

Before applying your configuration, you need to initialize Terraform. This step downloads the necessary provider plugins and prepares your working directory:

Shell

```
1terraform init
```

### [Step 5: Plan and apply the configuration](#step-5-plan-and-apply-the-configuration)

Run the following commands to see a preview of the changes Terraform will make and then apply those changes:

Shell

```
1terraform plan2terraform apply
```

The `plan` command shows you the actions Terraform will take without making any changes. The `apply` command applies the changes to your GitHub organization.

### [Step 6: Verify the changes](#step-6-verify-the-changes)

After applying the configuration, verify that the changes have been made in your GitHub organization. Check that the new members, teams, repositories, and branch protection rules have been created as expected.

### [Step 7: Manage state](#step-7-manage-state)

Terraform keeps track of your infrastructure’s state in a file called `terraform.tfstate`. Terraform needs this file to manage your resources correctly. Make sure to store it securely and consider using a remote backend (e.g., AWS S3, Terraform Cloud) for better collaboration and state management.

### [Step 8: Update and destroy resources](#step-8-update-and-destroy-resources)

To update your resources, modify your `.tf` files and run `terraform plan` and `terraform apply` again. To destroy the resources managed by Terraform, run:

Shell

```
1terraform destroy
```

This command removes all the resources defined in your configuration.

By following these steps, you can manage your GitHub organization with Terraform and keep it consistent, secure, and able to grow.

## [Pros and cons of using Terraform for GitHub management](#pros-and-cons-of-using-terraform-for-github-management)

### [Pros:](#pros)

-   **Automation**: Saves time and keeps every repository and team consistent.
-   **Version control**: Tracks changes to your GitHub organization setup.
-   **Scalability**: Easily manage large organizations with multiple teams and repositories.
-   **Security**: Reduces human error and enforces compliance.

### [Cons:](#cons)

-   **Learning curve**: Requires knowledge of Terraform and HCL.
-   **Initial setup effort**: Setting up configurations can take time.
-   **Limited real-time feedback**: Debugging issues can be slower than manual updates.

## [Conclusion](#conclusion)

Using Terraform to manage your GitHub organization is a smart move for DevOps and DevSecOps engineers who want simpler workflows and stronger security. Whether you’re managing team memberships, repository settings, or user roles, Terraform gives you a solution that scales and leaves an audit trail.

By adopting Infrastructure as Code for GitHub management, you align your practices with modern DevOps principles, and the day-to-day operations get smoother.

## [References](#references)

1.  Terraform GitHub Provider Documentation, [https://registry.terraform.io/providers/integrations/github/latest/docs](https://registry.terraform.io/providers/integrations/github/latest/docs)
2.  Managing GitHub with Terraform - HashiCorp Learn, [https://learn.hashicorp.com/tutorials/terraform/github-actions](https://learn.hashicorp.com/tutorials/terraform/github-actions) (Note: While this link mentions GitHub Actions, HashiCorp Learn often has broader GitHub management tutorials.)
3.  Official Terraform Documentation, [https://www.terraform.io/docs/index.html](https://www.terraform.io/docs/index.html)
4.  GitHub Help: Managing organization security, [https://docs.github.com/en/organizations/keeping-your-organization-secure](https://docs.github.com/en/organizations/keeping-your-organization-secure)
5.  GitHub Help: About CODEOWNERS, [https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners)
6.  Infrastructure as Code: A Guide by HashiCorp, [https://www.hashicorp.com/resources/what-is-infrastructure-as-code](https://www.hashicorp.com/resources/what-is-infrastructure-as-code)
7.  `github_membership` resource - Terraform Registry, [https://registry.terraform.io/providers/integrations/github/latest/docs/resources/membership](https://registry.terraform.io/providers/integrations/github/latest/docs/resources/membership)
8.  `github_team_repository` resource - Terraform Registry, [https://registry.terraform.io/providers/integrations/github/latest/docs/resources/team\_repository](https://registry.terraform.io/providers/integrations/github/latest/docs/resources/team_repository)
9.  `github_branch_protection` resource - Terraform Registry, [https://registry.terraform.io/providers/integrations/github/latest/docs/resources/branch\_protection](https://registry.terraform.io/providers/integrations/github/latest/docs/resources/branch_protection)

Was this useful?

## Tags

[#Terraform](/blog/tags/terraform)[#GitHub](/blog/tags/github)[#IaC](/blog/tags/iac)[#DevOps](/blog/tags/devops)[#Automation](/blog/tags/automation)[#GitHub Organization](/blog/tags/github-organization)[#GitOps](/blog/tags/gitops)[#DevSecOps](/blog/tags/devsecops)[#Access Management](/blog/tags/access-management)[#Repository Management](/blog/tags/repository-management)

## Share

[Facebook](https://facebook.com/sharer/sharer.php?u=https%3A%2F%2Fmkabumattar.com%2Fblog%2Fpost%2Fstreamlining-github-organization-management-with-terraform "Share on Facebook")[Twitter](https://twitter.com/intent/tweet/?text=Streamlining%20GitHub%20Organization%20Management%20with%20Terraform&url=https%3A%2F%2Fmkabumattar.com%2Fblog%2Fpost%2Fstreamlining-github-organization-management-with-terraform "Share on Twitter")[LinkedIn](https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fmkabumattar.com%2Fblog%2Fpost%2Fstreamlining-github-organization-management-with-terraform&title=Streamlining%20GitHub%20Organization%20Management%20with%20Terraform&summary=How%20to%20manage%20a%20large%20GitHub%20organization%20efficiently%20using%20Terraform%2C%20including%20the%20key%20Terraform%20resources%20for%20automating%20user%20access%2C%20team%20structures%2C%20and%20repository%20configurations.&source=https://mkabumattar.com "Share on LinkedIn")[WhatsApp](https://wa.me/?text=Streamlining%20GitHub%20Organization%20Management%20with%20Terraform%20https%3A%2F%2Fmkabumattar.com%2Fblog%2Fpost%2Fstreamlining-github-organization-management-with-terraform "Share on WhatsApp")[Telegram](https://t.me/share/url?url=https%3A%2F%2Fmkabumattar.com%2Fblog%2Fpost%2Fstreamlining-github-organization-management-with-terraform&text=Streamlining%20GitHub%20Organization%20Management%20with%20Terraform "Share on Telegram")[Reddit](https://www.reddit.com/submit?url=https%3A%2F%2Fmkabumattar.com%2Fblog%2Fpost%2Fstreamlining-github-organization-management-with-terraform&title=Streamlining%20GitHub%20Organization%20Management%20with%20Terraform "Share on Reddit")[Hacker News](http://news.ycombinator.com/submitlink?u=https%3A%2F%2Fmkabumattar.com%2Fblog%2Fpost%2Fstreamlining-github-organization-management-with-terraform&t=Streamlining%20GitHub%20Organization%20Management%20with%20Terraform "Share on Hacker News")[Pinterest](https://pinterest.com/pin/create/button/?url=https%3A%2F%2Fmkabumattar.com%2Fblog%2Fpost%2Fstreamlining-github-organization-management-with-terraform&media=&description=How%20to%20manage%20a%20large%20GitHub%20organization%20efficiently%20using%20Terraform%2C%20including%20the%20key%20Terraform%20resources%20for%20automating%20user%20access%2C%20team%20structures%2C%20and%20repository%20configurations. "Share on Pinterest")[Email](<mailto:?subject=Streamlining%20GitHub%20Organization%20Management%20with%20Terraform&body=Check out this article: https%3A%2F%2Fmkabumattar.com%2Fblog%2Fpost%2Fstreamlining-github-organization-management-with-terraform>)

## Comments

## You might also enjoy

More posts on similar topics

[![Modular Terraform for Scalable Infrastructure as Code](/_astro/hero.kBsnpbcJ_1mG2Sh.webp)](/blog/post/modular-terraform-scalable-iac-guide)

## [Modular Terraform for Scalable Infrastructure as Code](/blog/post/modular-terraform-scalable-iac-guide)

-   [Mohammad Abu Mattar](/authors/mohammad-abu-mattar)
-   [Infrastructure as Code](/blog/categories/infrastructure-as-code)
-   [Terraform](/blog/categories/terraform)
-   [DevOps](/blog/categories/devops)
-   [Cloud Engineering](/blog/categories/cloud-engineering)
-   [Automation](/blog/categories/automation)

Businesses need infrastructure that's flexible and can grow fast, and managing it by hand doesn't scale. Infrastructure as Code, or IaC, changed how we build and manage those digital foundations. IaC

[#Terraform](/blog/tags/terraform)[#Infrastructure as Code](/blog/tags/infrastructure-as-code)[#IaC](/blog/tags/iac)+12 tags

[read more](/blog/post/modular-terraform-scalable-iac-guide)

[![Deploying Infrastructure with Terraform in CI/CD Pipelines](/_astro/hero.NEjisJ89_1o5LmS.webp)](/blog/post/deploying-infrastructure-with-terraform-in-ci-cd-pipelines)

## [Deploying Infrastructure with Terraform in CI/CD Pipelines](/blog/post/deploying-infrastructure-with-terraform-in-ci-cd-pipelines)

-   [Mohammad Abu Mattar](/authors/mohammad-abu-mattar)
-   [DevOps](/blog/categories/devops)
-   [Infrastructure as Code](/blog/categories/infrastructure-as-code)
-   [CI/CD](/blog/categories/cicd)
-   [Terraform](/blog/categories/terraform)
-   [Cloud Automation](/blog/categories/cloud-automation)

In fast-paced DevOps environments, Infrastructure as Code (IaC) has become a cornerstone for managing and scaling infrastructure efficiently. Terraform, a leading open-source IaC tool, is widely a

[#Terraform](/blog/tags/terraform)[#CI/CD Pipelines](/blog/tags/cicd-pipelines)[#DevOps](/blog/tags/devops)+7 tags

[read more](/blog/post/deploying-infrastructure-with-terraform-in-ci-cd-pipelines)

[![Building Resilient Systems: Immutable Infrastructure with Packer and Terraform](/_astro/hero.C1--9UB8_ZaNEHL.webp)](/blog/post/immutable-infrastructure-packer-terraform-guide)

## [Building Resilient Systems: Immutable Infrastructure with Packer and Terraform](/blog/post/immutable-infrastructure-packer-terraform-guide)

-   [Mohammad Abu Mattar](/authors/mohammad-abu-mattar)
-   [DevOps](/blog/categories/devops)
-   [Infrastructure as Code](/blog/categories/infrastructure-as-code)
-   [Cloud Computing](/blog/categories/cloud-computing)

What is immutable infrastructure? The way we manage IT infrastructure has really changed. We're moving from old-school, changeable setups to more modern, "immutable" ones. Understanding this big s

[#Packer](/blog/tags/packer)[#Terraform](/blog/tags/terraform)[#Immutable Infrastructure](/blog/tags/immutable-infrastructure)+3 tags

[read more](/blog/post/immutable-infrastructure-packer-terraform-guide)

[![Testing Terraform: Static Analysis, Native Tests, and Terratest](/_astro/hero.QFNhZZd9_Z1MKEy5.webp)](/blog/post/terraform-testing-terratest-native-tests)

## [Testing Terraform: Static Analysis, Native Tests, and Terratest](/blog/post/terraform-testing-terratest-native-tests)

-   [Mohammad Abu Mattar](/authors/mohammad-abu-mattar)
-   [Infrastructure as Code](/blog/categories/infrastructure-as-code)
-   [DevOps](/blog/categories/devops)
-   [Testing](/blog/categories/testing)

If you treat infrastructure as code, you have to test it like code. Most of us have lived the alternative. You change one input on a shared module, run a quick plan against staging, and merge. A few h

[#Terraform](/blog/tags/terraform)[#Terratest](/blog/tags/terratest)[#CI/CD](/blog/tags/cicd)+4 tags

[read more](/blog/post/terraform-testing-terratest-native-tests)

[![Compliance as Code: Making Security Easier with Terraform and InSpec](/_astro/hero.CuKP9d1A_ZJUUcq.webp)](/blog/post/compliance-as-code-nist-iso-27001-gdpr-terraform-inspec)

## [Compliance as Code: Making Security Easier with Terraform and InSpec](/blog/post/compliance-as-code-nist-iso-27001-gdpr-terraform-inspec)

-   [Mohammad Abu Mattar](/authors/mohammad-abu-mattar)
-   [Compliance as Code](/blog/categories/compliance-as-code)
-   [Security](/blog/categories/security)
-   [DevSecOps](/blog/categories/devsecops)
-   [Terraform](/blog/categories/terraform)
-   [InSpec](/blog/categories/inspec)
-   [Cloud](/blog/categories/cloud)
-   [Governance](/blog/categories/governance)

Hey, so you know how keeping our tech stuff secure and following all the rules can be a real headache these days? With everything moving to the cloud and so many regulations popping up, it's tough to

[#Compliance](/blog/tags/compliance)[#NIST](/blog/tags/nist)[#ISO 27001](/blog/tags/iso-27001)+7 tags

[read more](/blog/post/compliance-as-code-nist-iso-27001-gdpr-terraform-inspec)

[![GitOps vs. Traditional IaC for Kubernetes: A Comparative Analysis](/_astro/hero.B-RmFsqr_57hBt.webp)](/blog/post/gitops-vs-traditional-iac-kubernetes-deployment)

## [GitOps vs. Traditional IaC for Kubernetes: A Comparative Analysis](/blog/post/gitops-vs-traditional-iac-kubernetes-deployment)

-   [Mohammad Abu Mattar](/authors/mohammad-abu-mattar)
-   [DevOps](/blog/categories/devops)
-   [Infrastructure as Code](/blog/categories/infrastructure-as-code)
-   [GitOps](/blog/categories/gitops)
-   [Kubernetes](/blog/categories/kubernetes)
-   [Cloud Native](/blog/categories/cloud-native)

If you're managing modern cloud-native applications, especially with Kubernetes, you know it can be a real puzzle. Getting containers to work together, handling all those configurations, and scaling t

[#GitOps](/blog/tags/gitops)[#Infrastructure as Code](/blog/tags/infrastructure-as-code)[#IaC](/blog/tags/iac)+9 tags

[read more](/blog/post/gitops-vs-traditional-iac-kubernetes-deployment)

6 related posts
