Skip to content

Commit

Permalink
fix #21 (#41)
Browse files Browse the repository at this point in the history
  • Loading branch information
murggu committed Jan 2, 2023
1 parent 2668308 commit 2d6d41f
Show file tree
Hide file tree
Showing 8 changed files with 165 additions and 1 deletion.
77 changes: 77 additions & 0 deletions .github/workflows/log-analytics-cluster.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: Module:log-analytics-cluster
on:
workflow_dispatch:
pull_request:
branches:
- main
paths:
- '.github/workflows/log-analytics-cluster.yml'
- 'terraform/log-analytics/log-analytics-cluster/**'
- '.github/actions/**'

env:
terraform_workingdir: "terraform/log-analytics/log-analytics-cluster"
GH_TOKEN: ${{ secrets.GH_TOKEN }}
ARM_CLIENT_ID: ${{ secrets.ARM_CLIENT_ID }}
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
ARM_SUBSCRIPTION_ID: ${{ secrets.ARM_SUBSCRIPTION_ID }}
ARM_TENANT_ID: ${{ secrets.ARM_TENANT_ID }}

jobs:
terraform-lint:
name: Run Terraform lint
runs-on: ubuntu-latest
defaults:
run:
working-directory: "${{ env.terraform_workingdir }}"

steps:
- uses: actions/checkout@v3
- uses: hashicorp/setup-terraform@v2

- name: Terraform fmt
id: fmt
run: terraform fmt -check
continue-on-error: false

terraform-sec:
name: Run Terraform tfsec
needs:
- terraform-lint
runs-on: ubuntu-latest

steps:
- name: Check out code
uses: actions/checkout@main

- name: Run tfsec with reviewdog output on the PR
uses: ./.github/actions/run-terraform-sec

terratest:
name: Run Terratest
needs:
- terraform-sec
runs-on: ubuntu-latest

defaults:
run:
working-directory: "${{ env.terraform_workingdir }}/test"

steps:
- name: Check out code
uses: actions/checkout@v3

- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.18.2

- name: Setup Dependencies
run: go mod init test && go mod tidy
env:
GOPATH: "/home/runner/work/azure-labs-modules/azure-labs-modules/${{ env.terraform_workingdir }}"

- name: Unit-test
run: go test -v -timeout 45m
env:
GOPATH: "/home/runner/work/azure-labs-modules/azure-labs-modules/${{ env.terraform_workingdir }}"
7 changes: 7 additions & 0 deletions terraform/log-analytics/log-analytics-cluster/test/locals.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
locals {
tags = {
Project = "Azure/azure-data-labs-modules"
Module = "log-analytics-cluster"
Toolkit = "Terraform"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
module "log_analytics_cluster" {
source = "../"

basename = random_string.postfix.result
rg_name = module.local_rg.name
location = var.location

tags = {}
}

# Modules dependencies

module "local_rg" {
source = "../../../resource-group"

basename = random_string.postfix.result
location = var.location

tags = local.tags
}
Empty file.
20 changes: 20 additions & 0 deletions terraform/log-analytics/log-analytics-cluster/test/providers.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
terraform {
backend "azurerm" {
resource_group_name = "rg-adl-terraform-state"
storage_account_name = "stadltfstate"
container_name = "default"
key = "loganalyticscluster.terraform.tfstate"
}

required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "= 3.36.0"
}
}

}

provider "azurerm" {
features {}
}
30 changes: 30 additions & 0 deletions terraform/log-analytics/log-analytics-cluster/test/unit_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package test

import (
"testing"
"github.com/gruntwork-io/terratest/modules/terraform"
//"github.com/stretchr/testify/assert"
)

func TestModule(t *testing.T) {
t.Parallel()

terraformOptions := &terraform.Options{
TerraformDir: "./",
// VarFiles: []string{"terraform_unitest.tfvars"},
}

// At the end of the test, run `terraform destroy` to clean up any resources that were created
defer terraform.Destroy(t, terraformOptions)

// Is used mainly for debugging, fail early if plan is not possible
terraform.InitAndPlan(t, terraformOptions)

// This will run `terraform init` and `terraform apply` and fail the test if there are any errors
terraform.InitAndApply(t, terraformOptions)

// Check if the outputs exist
//assert := assert.New(t)
//id := terraform.Output(t, terraformOptions, "id")
//assert.NotNil(id)
}
10 changes: 10 additions & 0 deletions terraform/log-analytics/log-analytics-cluster/test/variables.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
resource "random_string" "postfix" {
length = 8
special = false
upper = false
}

variable "location" {
type = string
default = "North Europe"
}
2 changes: 1 addition & 1 deletion terraform/log-analytics/log-analytics-cluster/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,4 @@ variable "size_gb" {
description = "The capacity of the Log Analytics Cluster specified in GB/day."
type = number
default = 1000
}
}

0 comments on commit 2d6d41f

Please sign in to comment.