tflint-helper

module
v0.0.0-...-d97564e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 10, 2024 License: MIT

README

tflint-helper

A go project containing convenience functions for writing tflint rules.

modulecontent

The modulecontent package contains functions for extracting information from Terraform modules. It supports evaluation of all expressions and can be used to extract blocks and attributes according to the supplied inputs.

The blocks and attributes provided by this package can be evaluated using the supplied *terraform.Evaluator EvaluateExpr(). Use the FetchBlocks() and FetchAttributes() functions to extract the blocks and attributes from the module.

You can use the resulting cty.Value in the blockquery package.

blockquery

This package queries the cty.Value returned by the modulecontent package. The query language based on gjson, but is not as advanced.

Queries are in dotted string notation, with numeric values used to access list members and a hash symbol for a wildcard.

Use the Query() function to return a cty.Value. You can then use one of the comparison functions , e.g. IsOneOf() to check the result against a set of expected values.

rules

These contain template rules for common use cases.

AzAPI Rule

Use NewAzApiRule() to create a rule that checks for specific body properties for a given resource type and API version:

NewAzApiRuleQueryMustExist(
  "ruleName",                                // The rule name
  "https://link-to-rule-docs.com",           // The link to the rule documentation
  "Microsoft.Network/publicIPAddresses",     // The resource type
  "2023-05-01",                              // Minimum API version applicable
  "",                                        // No maximum API version applicable (use latest)
  "properties.sku.name",                     // The query
  blockquery.IsOneOf,                        // The comparison function
  blockquery.NewStringResults("Standard")... // The expected values
)

Directories

Path Synopsis
Package blockquery provides a simple interface to query block information from a HCL block.
Package blockquery provides a simple interface to query block information from a HCL block.
Package modulecontent provides a simple interface to extract the partial content from a Terraform module.
Package modulecontent provides a simple interface to extract the partial content from a Terraform module.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL