Skip to content

Commit 950a37e

Browse files
committed
implement vault_policy_name_reuse, fix build and readme
1 parent b68bdc3 commit 950a37e

14 files changed

+168
-548
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
tflint-ruleset-vault

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ build:
88

99
install: build
1010
mkdir -p ~/.tflint.d/plugins
11-
mv ./tflint-ruleset-template ~/.tflint.d/plugins
11+
mv ./tflint-ruleset-vault ~/.tflint.d/plugins

README.md

+49-18
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
# TFLint Ruleset Template
2-
[![Build Status](https://github.com/terraform-linters/tflint-ruleset-template/workflows/build/badge.svg?branch=main)](https://github.com/terraform-linters/tflint-ruleset-template/actions)
1+
# TFLint Vault Ruleset
32

4-
This is a template repository for building a custom ruleset. You can create a plugin repository from "Use this template". See also [Writing Plugins](https://github.com/terraform-linters/tflint/blob/master/docs/developer-guide/plugins.md).
3+
[![Build Status](https://github.com/joomcode/tflint-ruleset-vault/workflows/build/badge.svg?branch=main)](https://github.com/joomcode/tflint-ruleset-vault/actions)
4+
5+
This a small ruleset for TFLint that checks for some mistakes in HashiCorp Vault configurations.
56

67
## Requirements
78

@@ -10,35 +11,65 @@ This is a template repository for building a custom ruleset. You can create a pl
1011

1112
## Installation
1213

13-
TODO: This template repository does not contain release binaries, so this installation will not work. Please rewrite for your repository. See the "Building the plugin" section to get this template ruleset working.
14-
1514
You can install the plugin with `tflint --init`. Declare a config in `.tflint.hcl` as follows:
1615

1716
```hcl
18-
plugin "template" {
17+
plugin "vault" {
1918
enabled = true
2019
2120
version = "0.1.0"
22-
source = "github.com/terraform-linters/tflint-ruleset-template"
21+
source = "github.com/joomcode/tflint-ruleset-vault"
2322
2423
signing_key = <<-KEY
2524
-----BEGIN PGP PUBLIC KEY BLOCK-----
26-
mQINBGCqS2YBEADJ7gHktSV5NgUe08hD/uWWPwY07d5WZ1+F9I9SoiK/mtcNGz4P
27-
JLrYAIUTMBvrxk3I+kuwhp7MCk7CD/tRVkPRIklONgtKsp8jCke7FB3PuFlP/ptL
28-
SlbaXx53FCZSOzCJo9puZajVWydoGfnZi5apddd11Zw1FuJma3YElHZ1A1D2YvrF
29-
...
25+
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
61+
wYeMFkqSsluCjDEL47bGvq0=
62+
=hItF
63+
-----END PGP PUBLIC KEY BLOCK-----
3064
KEY
3165
}
3266
```
3367

3468
## Rules
3569

36-
|Name|Description|Severity|Enabled|Link|
37-
| --- | --- | --- | --- | --- |
38-
|aws_instance_example_type|Example rule for accessing and evaluating top-level attributes|ERROR|||
39-
|aws_s3_bucket_example_lifecycle_rule|Example rule for accessing top-level/nested blocks and attributes under the blocks|ERROR|||
40-
|google_compute_ssl_policy|Example rule with a custom rule config|WARNING|||
41-
|terraform_backend_type|Example rule for accessing other than resources|ERROR|||
70+
| Name | Description | Severity | Enabled | Link |
71+
| ----------------------- | ------------------------------------------------------------ | -------- | ------- | ---- |
72+
| vault_policy_name_reuse | Checks if multiple vault_policy resources have the same name | ERROR || |
4273

4374
## Building the plugin
4475

@@ -58,7 +89,7 @@ You can run the built plugin like the following:
5889

5990
```
6091
$ cat << EOS > .tflint.hcl
61-
plugin "template" {
92+
plugin "vault" {
6293
enabled = true
6394
}
6495
EOS

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module github.com/terraform-linters/tflint-ruleset-template
1+
module github.com/joomcode/tflint-ruleset-vault
22

33
go 1.22.2
44

main.go

+4-6
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,17 @@ package main
33
import (
44
"github.com/terraform-linters/tflint-plugin-sdk/plugin"
55
"github.com/terraform-linters/tflint-plugin-sdk/tflint"
6-
"github.com/terraform-linters/tflint-ruleset-template/rules"
6+
7+
"github.com/joomcode/tflint-ruleset-vault/rules"
78
)
89

910
func main() {
1011
plugin.Serve(&plugin.ServeOpts{
1112
RuleSet: &tflint.BuiltinRuleSet{
12-
Name: "template",
13+
Name: "vault",
1314
Version: "0.1.0",
1415
Rules: []tflint.Rule{
15-
rules.NewAwsInstanceExampleTypeRule(),
16-
rules.NewAwsS3BucketExampleLifecycleRule(),
17-
rules.NewGoogleComputeSSLPolicyRule(),
18-
rules.NewTerraformBackendTypeRule(),
16+
rules.NewVaultPolicyNameReuseRule(),
1917
},
2018
},
2119
})

rules/aws_instance_example_type.go

-75
This file was deleted.

rules/aws_s3_bucket_example_lifecycle_rule.go

-81
This file was deleted.

rules/aws_s3_bucket_example_lifecycle_rule_test.go

-74
This file was deleted.

0 commit comments

Comments
 (0)