diff --git a/.lacework/config.yaml b/.lacework/config.yaml new file mode 100644 index 0000000..ffd12da --- /dev/null +++ b/.lacework/config.yaml @@ -0,0 +1,3 @@ +suppress: + - "ckv-aws-50" + - "ckv-gcp-20" diff --git a/.terraform.lock.hcl b/.terraform.lock.hcl new file mode 100644 index 0000000..e3c258e --- /dev/null +++ b/.terraform.lock.hcl @@ -0,0 +1,40 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/google" { + version = "4.27.0" + hashes = [ + "h1:ht3rMVVE/AHBadDIPoMGS5jcbgnRMcgPKvqKrRQ33CU=", + "zh:0ec41ae6810de7e1dbf8c8926523fb2cb6947f62932152c82c2c52ca2d9880be", + "zh:28349b499a631e15a02eb9603c659ec894cd50149be6b90c3b35b11980a234a2", + "zh:2fcbb1c4d3e6512a18330eb8141b2518acac2358fb7c05c374d32a6dcc435916", + "zh:4535e448bd794743fe14e8f9d1e640b28a0689b44341ea8fd5d9b229038693c8", + "zh:545ac27a491cb054ca4b7fbd83999a0b48e445036c06cb470c78afb9dcb5fb6f", + "zh:60df2a43c3791e1c919cdf9f1388dcf73cd4c9de4e266539b2c489eb8be9ec09", + "zh:756ea83635bc607e935cd0b9adaa3fc0f9528038766e1dba1f79d74c42556ffb", + "zh:7bf6c65359cc5fef8757787abe5f5f8ca786ce4de3045872226b54a7b51a5e29", + "zh:bbb0f05e4f080aae755752e68ca8b03240602d7af254a86af1e392c0dd5776b5", + "zh:c663bc5b18bc5015ccf763f6f6baea26319459e1e757af34a250b27cf689b80a", + "zh:da23872670199d3ce5448c1a75bf4ac9fbeafb92bad84a3e977de6c0a9dced08", + "zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c", + ] +} + +provider "registry.terraform.io/hashicorp/null" { + version = "3.1.1" + hashes = [ + "h1:Pctug/s/2Hg5FJqjYcTM0kPyx3AoYK1MpRWO0T9V2ns=", + "zh:063466f41f1d9fd0dd93722840c1314f046d8760b1812fa67c34de0afcba5597", + "zh:08c058e367de6debdad35fc24d97131c7cf75103baec8279aba3506a08b53faf", + "zh:73ce6dff935150d6ddc6ac4a10071e02647d10175c173cfe5dca81f3d13d8afe", + "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", + "zh:8fdd792a626413502e68c195f2097352bdc6a0df694f7df350ed784741eb587e", + "zh:976bbaf268cb497400fd5b3c774d218f3933271864345f18deebe4dcbfcd6afa", + "zh:b21b78ca581f98f4cdb7a366b03ae9db23a73dfa7df12c533d7c19b68e9e72e5", + "zh:b7fc0c1615dbdb1d6fd4abb9c7dc7da286631f7ca2299fb9cd4664258ccfbff4", + "zh:d1efc942b2c44345e0c29bc976594cb7278c38cfb8897b344669eafbc3cddf46", + "zh:e356c245b3cd9d4789bab010893566acace682d7db877e52d40fc4ca34a50924", + "zh:ea98802ba92fcfa8cf12cbce2e9e7ebe999afbf8ed47fa45fc847a098d89468b", + "zh:eff8872458806499889f6927b5d954560f3d74bf20b6043409edf94d26cd906f", + ] +} diff --git a/atlantis.yaml b/atlantis.yaml new file mode 100644 index 0000000..a0751be --- /dev/null +++ b/atlantis.yaml @@ -0,0 +1,16 @@ +--- +version: 3 +projects: + - dir: terraform-gcp + workflow: testing +workflows: + testing: + plan: + steps: + - run: "printf 'print getting started: $PLANFILE $WORKSPACE $DIR $HEAD_COMMIT $HEAD_BRANCH_NAME $PULL_NUM $PROJECT_NAME $HEAD_REPO_OWNER $HEAD_BRANCH_NAME $ATLANTIS_TERRAFORM_VERSION'" + - run: "echo $DIR, $WORKSPACE, $HEAD_COMMIT, $PULL_NUM, $PROJECT_NAME, $HEAD_BRANCH_NAME, $HEAD_REPO_NAME, $BASE_REPO_NAME, $HEAD_REPO_OWNER" + - init + - run: "terraform plan -input=false -refresh -out $PLANFILE" + - run: "terraform show -json $PLANFILE > $SHOWFILE" + - run: "soluble ea terraform-plan-scan --plan $SHOWFILE" + - run: "printf 'print meeee'" diff --git a/kubernetes.tf b/kubernetes.tf new file mode 100644 index 0000000..0bbe6b7 --- /dev/null +++ b/kubernetes.tf @@ -0,0 +1,43 @@ +data "google_compute_zones" "available" { +} + +# tfsec:ignore:GCP009: test comment +resource "google_container_cluster" "primary" { + name = var.cluster_name + location = "us-central1" + initial_node_count = 1 + + min_master_version = var.kubernetes_version + node_version = var.kubernetes_version + + monitoring_service = "monitoring.googleapis.com/kubernetes" + + master_auth { + client_certificate_config { + issue_client_certificate = false + } + } + + node_config { + # tfsec:ignore:AVD-GCP-0050 + oauth_scopes = [ + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/logging.write", + ] + + } + +} + +output "cluster_name" { + value = google_container_cluster.primary.name +} + +output "endpoint" { + value = google_container_cluster.primary.endpoint +} + +output "node_version" { + value = google_container_cluster.primary.node_version +} diff --git a/main.tf b/main.tf new file mode 100644 index 0000000..278796f --- /dev/null +++ b/main.tf @@ -0,0 +1,3 @@ +resource "null_resource" "example" { + +} diff --git a/provider.tf b/provider.tf new file mode 100644 index 0000000..87a293a --- /dev/null +++ b/provider.tf @@ -0,0 +1,4 @@ +provider "google" { + project = "soluble-ci" + region = var.region +} diff --git a/terraform-gcp/kubernetes.tf b/terraform-gcp/kubernetes.tf index f014f19..0bbe6b7 100644 --- a/terraform-gcp/kubernetes.tf +++ b/terraform-gcp/kubernetes.tf @@ -1,19 +1,21 @@ +data "google_compute_zones" "available" { +} + # tfsec:ignore:GCP009: test comment resource "google_container_cluster" "primary" { - name = var.cluster_name - location = data.google_compute_zones.available.names[0] - initial_node_count = 3 + name = var.cluster_name + location = "us-central1" + initial_node_count = 1 min_master_version = var.kubernetes_version node_version = var.kubernetes_version - node_locations = [ - data.google_compute_zones.available.names[1], - ] + monitoring_service = "monitoring.googleapis.com/kubernetes" master_auth { - username = var.username - password = var.password + client_certificate_config { + issue_client_certificate = false + } } node_config { @@ -22,23 +24,16 @@ resource "google_container_cluster" "primary" { "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/devstorage.read_only", "https://www.googleapis.com/auth/logging.write", - ] + } + } output "cluster_name" { value = google_container_cluster.primary.name } -output "primary_zone" { - value = google_container_cluster.primary.zone -} - -output "additional_zones" { - value = google_container_cluster.primary.additional_zones -} - output "endpoint" { value = google_container_cluster.primary.endpoint } diff --git a/terraform-gcp/provider.tf b/terraform-gcp/provider.tf index df5d667..6e7035c 100644 --- a/terraform-gcp/provider.tf +++ b/terraform-gcp/provider.tf @@ -1,3 +1,4 @@ provider "google" { + project = "soluble-ci" region = var.region } diff --git a/variables.tf b/variables.tf new file mode 100644 index 0000000..59d0de1 --- /dev/null +++ b/variables.tf @@ -0,0 +1,24 @@ +variable "region" { + type = string + default = "us-west-2" +} + +variable "kubernetes_version" { + default = "1.16.8" +} + +variable "username" { + type = string + default = "ubuntu" +} + +variable "password" { + type = string + #tfsec:ignore:GEN001 + default = "ubuntu" +} + +variable "cluster_name" { + type = string + default = "soluble-gcp-example-cluster" +}