diff --git a/.github/workflows/readme.yml b/.github/workflows/readme.yml
index 5892dcc..d3cbfb6 100644
--- a/.github/workflows/readme.yml
+++ b/.github/workflows/readme.yml
@@ -51,5 +51,4 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # required
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_TERRAFORM }} # required
- if: always()
-
+ if: always()
\ No newline at end of file
diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index 26d3352..0000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index 639900d..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
+ + +
+ Terraform module to create firewall resource on AZURE. +
+ + + +list(object({| `[]` | no | +| app\_policy\_collection\_group | (optional) Name of app policy group | `string` | `"DefaultApplicationRuleCollectionGroup"` | no | +| application\_rule\_collection | One or more application\_rule\_collection blocks as defined below.. | `map` | `{}` | no | +| dnat-destination\_ip | Variable to specify that you have destination ip to attach to policy or not.(Destination ip is public ip that is attached to firewall) | `bool` | `false` | no | +| dns\_servers | DNS Servers to use with Azure Firewall. Using this also activate DNS Proxy. | `list(string)` | `null` | no | +| enabled | Set to false to prevent the module from creating any resources. | `bool` | `true` | no | +| environment | Environment (e.g. `prod`, `dev`, `staging`). | `string` | `""` | no | +| firewall\_private\_ip\_ranges | A list of SNAT private CIDR IP ranges, or the special string `IANAPrivateRanges`, which indicates Azure Firewall does not SNAT when the destination IP address is a private range per IANA RFC 1918. | `list(string)` | `null` | no | +| label\_order | Label order, e.g. sequence of application name and environment `name`,`environment`,'attribute' [`webserver`,`qa`,`devops`,`public`,] . | `list(any)` | `[]` | no | +| location | The location/region where the virtual network is created. Changing this forces a new resource to be created. | `string` | `""` | no | +| managedby | ManagedBy, eg ''. | `string` | `""` | no | +| name | Name (e.g. `app` or `cluster`). | `string` | `""` | no | +| nat\_policy\_collection\_group | (optional) Name of nat policy group | `string` | `"DefaultDnatRuleCollectionGroup"` | no | +| nat\_rule\_collection | One or more nat\_rule\_collection blocks as defined below. | `map` | `{}` | no | +| net\_policy\_collection\_group | (optional) Name of network policy group | `string` | `"DefaultNetworkRuleCollectionGroup"` | no | +| network\_rule\_collection | One or more network\_rule\_collection blocks as defined below. | `map` | `{}` | no | +| public\_ip\_allocation\_method | Defines the allocation method for this IP address. Possible values are Static or Dynamic | `string` | `"Static"` | no | +| public\_ip\_names | n/a | `list(string)` | `[]` | no | +| public\_ip\_sku | The SKU of the Public IP. Accepted values are Basic and Standard. Defaults to Basic | `string` | `"Standard"` | no | +| repository | Terraform current module repo | `string` | `""` | no | +| resource\_group\_name | A container that holds related resources for an Azure solution | `string` | `""` | no | +| sku\_name | (optional) describe your variable | `string` | `"AZFW_VNet"` | no | +| sku\_tier | Specifies the firewall sku tier | `string` | `"Standard"` | no | +| subnet\_id | Subnet ID | `string` | `""` | no | +| tags | A map of tags to add to all resources | `map(string)` | `{}` | no | +| threat\_intel\_mode | (Optional) The operation mode for threat intelligence-based filtering. Possible values are: Off, Alert, Deny. Defaults to Alert. | `string` | `"Alert"` | no | + +## Outputs + +| Name | Description | +|------|-------------| +| firewall\_id | Firewall generated id | +| firewall\_name | Firewall name | +| private\_ip\_address | Firewall private IP | + + + + +## Testing +In this module testing is performed with [terratest](https://github.com/gruntwork-io/terratest) and it creates a small piece of infrastructure, matches the output like ARN, ID and Tags name etc and destroy infrastructure in your AWS account. This testing is written in GO, so you need a [GO environment](https://golang.org/doc/install) in your system. + +You need to run the following command in the testing folder: +```hcl + go test -run Test +``` + + + +## Feedback +If you come accross a bug or have any feedback, please log it in our [issue tracker](https://github.com/clouddrove/terraform-azure-firewall/issues), or feel free to drop us an email at [hello@clouddrove.com](mailto:hello@clouddrove.com). + +If you have found it worth your time, go ahead and give us a ★ on [our GitHub](https://github.com/clouddrove/terraform-azure-firewall)! + +## About us + +At [CloudDrove][website], we offer expert guidance, implementation support and services to help organisations accelerate their journey to the cloud. Our services include docker and container orchestration, cloud migration and adoption, infrastructure automation, application modernisation and remediation, and performance engineering. + +
name = string,
public_ip_address_id = string
}))
We are The Cloud Experts!
+We ❤️ Open Source and you can check out our other modules to get help with your new Cloud ideas.
+ + [website]: https://clouddrove.com + [github]: https://github.com/clouddrove + [linkedin]: https://cpco.io/linkedin + [twitter]: https://twitter.com/clouddrove/ + [email]: https://clouddrove.com/contact-us.html + [terraform_modules]: https://github.com/clouddrove?utf8=%E2%9C%93&q=terraform-&type=&language= diff --git a/README.yaml b/README.yaml index d8282eb..61843ac 100644 --- a/README.yaml +++ b/README.yaml @@ -1,3 +1,5 @@ + + --- # # This is the canonical configuration for the `README.md` @@ -6,7 +8,7 @@ # Name of this project -name: Terraform AZURE FIREWALL +name: Terraform AZURE STORAGE # License of this project license: "APACHE" @@ -25,7 +27,7 @@ badges: # description of this project description: |- - Terraform module to create firewall resource on AZURE. + Terraform module to create storage resource on AZURE. # extra content include: - "terraform.md" @@ -36,14 +38,14 @@ usage: |- ### Simple Example Here is an example of how you can use this module in your inventory structure: ```hcl - module "firewall" { - depends_on = [module.name_specific_subnet] - source = "clouddrove/storage/azure" - name = "app" - environment = "test" - label_order = ["name", "environment"] - resource_group_name = module.resource_group.resource_group_name - location = module.resource_group.resource_group_location + module "storage" { + depends_on = [module.resource_group] + source = "clouddrove/storage/azure" + name = "app" + environment = "test" + label_order = ["name", "environment"] + resource_group_name = module.resource_group.resource_group_name + location = module.resource_group.resource_group_location storage_account_name = "storagestartac" account_kind = "StorageV2" account_tier = "Standard" @@ -53,28 +55,28 @@ usage: |- sftp_enabled = true network_rules = [ - { - default_action = "Deny" - ip_rules = ["0.0.0.0/0"] - bypass = ["AzureServices"] + { + default_action = "Deny" + ip_rules = ["0.0.0.0/0"] + bypass = ["AzureServices"] } - ] + ] - ## Storage Account Threat Protection + ## Storage Account Threat Protection enable_advanced_threat_protection = true - ## Storage Container + ## Storage Container containers_list = [ - { name = "app-test", access_type = "private" }, - ] + { name = "app-test", access_type = "private" }, + ] - ## Storage File Share + ## Storage File Share file_shares = [ - { name = "fileshare1", quota = 5 }, - ] + { name = "fileshare1", quota = 5 }, + ] - ## Storage Tables + ## Storage Tables tables = ["table1"] ## Storage Queues @@ -89,8 +91,6 @@ usage: |- snapshot_delete_after_days = 30 } ] - - } - ``` \ No newline at end of file + ``` diff --git a/_test/azure_storage_test.go b/_test/azure_firewall_test.go similarity index 88% rename from _test/azure_storage_test.go rename to _test/azure_firewall_test.go index cd31a9f..3121d5f 100644 --- a/_test/azure_storage_test.go +++ b/_test/azure_firewall_test.go @@ -24,11 +24,11 @@ func Test(t *testing.T) { defer terraform.Destroy(t, terraformOptions) // To get the value of an output variable, run 'terraform output' - Id := terraform.Output(t, terraformOptions, "storage_account_id") + Id := terraform.Output(t, terraformOptions, "firewall_id") Tags := terraform.OutputMap(t, terraformOptions, "tags") // Check that we get back the outputs that we expect - assert.Equal(t, "test-clouddrove-storage", Tags["Name"]) + assert.Equal(t, "test-clouddrove-firewall", Tags["Name"]) assert.Contains(t, Id, "/subscriptions") } } \ No newline at end of file diff --git a/version.tf b/versions.tf similarity index 89% rename from version.tf rename to versions.tf index 51d04a8..2a69bff 100644 --- a/version.tf +++ b/versions.tf @@ -1,4 +1,3 @@ -# Terraform version terraform { required_version = ">= 1.0.0" }