PaloAltoNetworks / terraform-provider-cloudngfwaws

The Terraform provider for the Palo Alto Networks AWS cloud NGFW
Mozilla Public License 2.0
14 stars 14 forks source link
aws firewall ngfw paloaltonetworks panw terraform terraform-provider

Terraform Provider for Palo Alto Networks Cloud NGFW for AWS

NOTE: Breaking changes will be introduced during this BETA time period.

NOTE: This Terraform provider is currently available as BETA code. Once this is officially released, it will be available from the Terraform registry just like all other providers.

The Terraform provider for the Palo Alto Networks Cloud Next-Gen Firewall for AWS.

Requirements

Testing the Provider

In order to test the provider, you can use make test in order to run the acceptance tests for the provider.

Note: acceptance tests create real resources, and often cost money to run:

make test

Building the Provider

  1. Install GoLang

  2. Clone the repository:

git clone https://github.com/PaloAltoNetworks/terraform-provider-cloudngfwaws
  1. Build the provider
cd terraform-provider-cloudngfwaws
make
  1. Specify the dev_overrides configuration per the next section below. This tells Terraform where to find the provider you just built. The directory to specify is the full path to the cloned provider repo. For example: /home/myuser/cloudngfwaws-terraform/terraform-provider-cloudngfwaws

When using the provider, refer to the documentation in the ./docs directory for all resources and parameters.

Developing the Provider

With Terraform v0.14 and later, development overrides for provider developers can be leveraged in order to use the provider built from source.

To do this, populate a Terraform CLI configuration file (~/.terraformrc for all platforms other than Windows; terraform.rc in the %APPDATA% directory when using Windows) with at least the following options:

provider_installation {
  dev_overrides {
    "registry.terraform.io/paloaltonetworks-local/cloudngfwaws" = "/directory/containing/the/cloudngfwaws/binary/here"
  }

  direct {}
}

Then when referencing the locally built provider, use the local name in the provider block like so:

terraform {
    required_providers {
        cloudngfwaws = {
            source = "paloaltonetworks-local/cloudngfwaws"
            version = "1.0.0"
        }
    }
}