Skip to content

Commit

Permalink
Refactor tests and add shared helpers (#103)
Browse files Browse the repository at this point in the history
  • Loading branch information
brettcurtis authored Nov 15, 2024
1 parent afff62d commit c0f9fc7
Show file tree
Hide file tree
Showing 20 changed files with 51 additions and 152 deletions.
4 changes: 2 additions & 2 deletions .github/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ changelog:
labels:
- dependencies

- title: 🔩 Dependencies
- title: 🔩 Dependencies
labels:
- dependencies

# This file is managed by the osinfra-io/github-organization-management repository and should not be edited directly.
# This file is managed by the osinfra-io/github-organization-management repository and should not be edited directly.
6 changes: 4 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ repos:
- id: check-symlinks

- repo: https://github.com/antonbabenko/pre-commit-terraform
rev: v1.96.1
rev: v1.96.2
hooks:
- id: terraform_fmt

Expand All @@ -29,9 +29,11 @@ repos:
- id: terraform_docs

- repo: https://github.com/bridgecrewio/checkov.git
rev: 3.2.258
rev: 3.2.296
hooks:
- id: checkov
verbose: true
args:
- --skip-check
- "CKV_TF_1"
- --quiet
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ No requirements.

| Name | Version |
|------|---------|
| <a name="provider_google"></a> [google](#provider\_google) | 6.6.0 |
| <a name="provider_google"></a> [google](#provider\_google) | 6.11.1 |
| <a name="provider_random"></a> [random](#provider\_random) | 3.6.3 |

### Modules
Expand Down
1 change: 0 additions & 1 deletion locals.tf
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Local Values
# https://www.terraform.io/docs/language/values/locals.html


locals {
container_deployer_service_accounts = toset(distinct([
for k in values(var.namespaces) : k.google_service_account
Expand Down
6 changes: 4 additions & 2 deletions regional/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,14 @@ No requirements.

| Name | Version |
|------|---------|
| <a name="provider_google"></a> [google](#provider\_google) | 6.2.0 |
| <a name="provider_google"></a> [google](#provider\_google) | 6.11.1 |
| <a name="provider_random"></a> [random](#provider\_random) | 3.6.3 |

## Modules

No modules.
| Name | Source | Version |
|------|--------|---------|
| <a name="module_helpers"></a> [helpers](#module\_helpers) | github.com/osinfra-io/terraform-core-helpers//child | v0.1.2 |

## Resources

Expand Down
1 change: 1 addition & 0 deletions regional/helpers.tf
27 changes: 2 additions & 25 deletions regional/locals.tf
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,6 @@ locals {
}
] : []

environment = (
terraform.workspace == "default" ?
"mock-environment" :
regex(".*-(?P<environment>[^-]+)$", terraform.workspace)["environment"]
)

kms_crypto_keys = {
cluster-boot-disk-encryption = {

Expand All @@ -41,24 +35,7 @@ locals {
}
}

name = local.zone == null ? "${var.cluster_prefix}-${local.region}" : "${var.cluster_prefix}-${local.region}-${local.zone}"
name = module.helpers.zone == null ? "${var.cluster_prefix}-${module.helpers.region}" : "${var.cluster_prefix}-${module.helpers.region}-${module.helpers.zone}"
network = "projects/${var.vpc_host_project_id}/global/networks/${var.network}"

region = (
terraform.workspace == "default" ?
"mock-region" :
regex("^(?P<region>[^-]+-[^-]+)", terraform.workspace)["region"]
)

subnet = "projects/${var.vpc_host_project_id}/regions/${local.region}/subnetworks/${var.subnet}"

zone = (
terraform.workspace == "default" ?
"mock-zone" :
(
regex("^(?P<region>[^-]+-[^-]+)(?:-(?P<zone>[^-]+))?-.*$", terraform.workspace)["zone"] != "" ?
regex("^(?P<region>[^-]+-[^-]+)(?:-(?P<zone>[^-]+))?-.*$", terraform.workspace)["zone"] :
null
)
)
subnet = "projects/${var.vpc_host_project_id}/regions/${module.helpers.region}/subnetworks/${var.subnet}"
}
8 changes: 4 additions & 4 deletions regional/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ data "google_cloud_identity_group_lookup" "registry_readers" {

data "google_container_engine_versions" "this" {
project = var.project
location = local.region
location = module.helpers.region
}

# Google Project Data Source
Expand Down Expand Up @@ -140,7 +140,7 @@ resource "google_container_cluster" "this" {
services_secondary_range_name = var.services_secondary_range_name
}

location = local.region
location = module.helpers.region

maintenance_policy {
daily_maintenance_window {
Expand Down Expand Up @@ -183,7 +183,7 @@ resource "google_container_cluster" "this" {
# We intentionally support only a single zone for node locations. This is to ensure we do not see hot spots in the cluster
# when it comes to POD scheduling and locality based load balancing.

node_locations = local.zone != null ? ["${local.region}-${local.zone}"] : null
node_locations = module.helpers.zone != null ? ["${module.helpers.region}-${module.helpers.zone}"] : null
project = var.project

release_channel {
Expand Down Expand Up @@ -392,7 +392,7 @@ resource "google_kms_crypto_key_iam_member" "this" {
# https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/kms_key_ring

resource "google_kms_key_ring" "cluster_encryption" {
location = local.region
location = module.helpers.region
name = "${local.name}-cluster-encryption-${random_id.this.hex}"
project = var.project

Expand Down
6 changes: 4 additions & 2 deletions regional/onboarding/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,14 @@ No requirements.

| Name | Version |
|------|---------|
| <a name="provider_google"></a> [google](#provider\_google) | 6.6.0 |
| <a name="provider_google"></a> [google](#provider\_google) | 6.11.1 |
| <a name="provider_kubernetes"></a> [kubernetes](#provider\_kubernetes) | 2.33.0 |

## Modules

No modules.
| Name | Source | Version |
|------|--------|---------|
| <a name="module_helpers"></a> [helpers](#module\_helpers) | github.com/osinfra-io/terraform-core-helpers//child | v0.1.2 |

## Resources

Expand Down
1 change: 1 addition & 0 deletions regional/onboarding/helpers.tf
6 changes: 6 additions & 0 deletions shared/helpers.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Terraform Core Child Module Helpers (osinfra.io)
# https://github.com/osinfra-io/terraform-core-helpers

module "helpers" {
source = "github.com/osinfra-io/terraform-core-helpers//child?ref=v0.1.2"
}
1 change: 0 additions & 1 deletion tests/default.tftest.hcl
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ mock_provider "google" {
}
}

mock_provider "google-beta" {}
mock_provider "kubernetes" {}

mock_provider "terraform" {
Expand Down
12 changes: 0 additions & 12 deletions tests/fixtures/gke_fleet_host/regional/locals.tf

This file was deleted.

21 changes: 11 additions & 10 deletions tests/fixtures/gke_fleet_host/regional/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@ terraform {
google = {
source = "hashicorp/google"
}
google-beta = {
source = "hashicorp/google-beta"
}
}
}

Expand All @@ -20,15 +17,19 @@ module "test" {
enable_deletion_protection = false
enable_gke_hub_host = var.enable_gke_hub_host
gke_hub_memberships = var.gke_hub_memberships
labels = local.labels
network = "mock-network"
node_pools = var.node_pools
master_ipv4_cidr_block = var.master_ipv4_cidr_block
project = var.project

resource_labels = merge(local.labels, {
labels = {
"mock-key" = "mock-value"
}

network = "mock-network"
node_pools = var.node_pools
master_ipv4_cidr_block = var.master_ipv4_cidr_block
project = var.project

resource_labels = {
region = "mock-region"
})
}

services_secondary_range_name = "mock-secondary-services"
subnet = "mock-subnet"
Expand Down
7 changes: 0 additions & 7 deletions tests/fixtures/gke_fleet_host/regional_onboarding/locals.tf

This file was deleted.

27 changes: 0 additions & 27 deletions tests/fixtures/gke_fleet_host/regional_onboarding/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -12,24 +12,6 @@ terraform {
}
}

# Kubernetes Provider
# https://registry.terraform.io/providers/hashicorp/kubernetes/latest

provider "kubernetes" {
cluster_ca_certificate = base64decode(
local.regional.cluster_ca_certificate
)

host = "https://${local.regional.cluster_endpoint}"
token = data.google_client_config.current.access_token
}

# Google Client Config Data Source
# https://registry.terraform.io/providers/hashicorp/google/latest/docs/data-sources/client_config

data "google_client_config" "current" {
}

# Remote State Data Source
# https://www.terraform.io/language/state/remote-state-data

Expand All @@ -42,15 +24,6 @@ data "terraform_remote_state" "main" {
}
}

data "terraform_remote_state" "regional" {
backend = "gcs"
workspace = "mock"

config = {
bucket = "mock"
}
}

module "test" {
source = "../../../../regional/onboarding"

Expand Down
12 changes: 0 additions & 12 deletions tests/fixtures/gke_fleet_member/regional/locals.tf

This file was deleted.

21 changes: 11 additions & 10 deletions tests/fixtures/gke_fleet_member/regional/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@ terraform {
google = {
source = "hashicorp/google"
}
google-beta = {
source = "hashicorp/google-beta"
}
}
}

Expand All @@ -20,15 +17,19 @@ module "test" {
enable_deletion_protection = false
enable_gke_hub_host = var.enable_gke_hub_host
gke_hub_memberships = var.gke_hub_memberships
labels = local.labels
network = "mock-network"
node_pools = var.node_pools
master_ipv4_cidr_block = var.master_ipv4_cidr_block
project = var.project

resource_labels = merge(local.labels, {
labels = {
"mock-key" = "mock-value"
}

network = "mock-network"
node_pools = var.node_pools
master_ipv4_cidr_block = var.master_ipv4_cidr_block
project = var.project

resource_labels = {
region = "mock-region"
})
}

services_secondary_range_name = "mock-secondary-services"
subnet = "mock-subnet"
Expand Down
7 changes: 0 additions & 7 deletions tests/fixtures/gke_fleet_member/regional_onboarding/locals.tf

This file was deleted.

27 changes: 0 additions & 27 deletions tests/fixtures/gke_fleet_member/regional_onboarding/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -12,24 +12,6 @@ terraform {
}
}

# Kubernetes Provider
# https://registry.terraform.io/providers/hashicorp/kubernetes/latest

provider "kubernetes" {
cluster_ca_certificate = base64decode(
local.regional.cluster_ca_certificate
)

host = "https://${local.regional.cluster_endpoint}"
token = data.google_client_config.current.access_token
}

# Google Client Config Data Source
# https://registry.terraform.io/providers/hashicorp/google/latest/docs/data-sources/client_config

data "google_client_config" "current" {
}

# Remote State Data Source
# https://www.terraform.io/language/state/remote-state-data

Expand All @@ -42,15 +24,6 @@ data "terraform_remote_state" "main" {
}
}

data "terraform_remote_state" "regional" {
backend = "gcs"
workspace = "mock"

config = {
bucket = "mock"
}
}

module "test" {
source = "../../../../regional/onboarding"

Expand Down

0 comments on commit c0f9fc7

Please sign in to comment.