这是indexloc提供的服务,不要输入任何密码
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
version: 2

terraform: &terraform
docker:
- image: hashicorp/terraform:latest
working_directory: /tmp/workspace/terraform

jobs:
validate:
<<: *terraform
steps:
- checkout
- run:
name: terraform init
command: find . -type f -name "*.tf" -exec dirname {} \;|sort -u | while read m; do (cd "$m" && terraform init -input=false -backend=false) || exit 1; done
- run:
name: Validate Terraform configurations
command: find . -name ".terraform" -prune -o -type f -name "*.tf" -exec dirname {} \;|sort -u | while read m; do (cd "$m" && terraform validate && echo "√ $m") || exit 1 ; done
environment:
VAULT_ADDR: http://localhost:8200
- run:
name: Check if Terraform configurations are properly formatted
command: if [[ -n "$(terraform fmt -write=false)" ]]; then echo "Some terraform files need be formatted, run 'terraform fmt' to fix"; exit 1; fi
- run:
name: Install tflint
command: wget -O /tmp/tflint.zip https://github.com/wata727/tflint/releases/download/v0.15.4/tflint_linux_amd64.zip && unzip /tmp/tflint.zip -d /usr/local/bin
- run:
name: Check Terraform configurations with tflint
command: tflint
- persist_to_workspace:
root: .
paths: .

workflows:
version: 2
build:
jobs:
- validate
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# terraform-vault-entities

[![misurellig](https://circleci.com/gh/misurellig/terraform-vault-identities.svg?style=svg)](https://circleci.com/gh/misurellig/workflows/terraform-vault-identities)

This module creates [Hashicorp Vault](https://www.vaultproject.io/) entities and internal groups as part of its [Identity Secrets Engine](https://www.vaultproject.io/docs/secrets/identity).

The main module includes the following submodules:
Expand Down
4 changes: 2 additions & 2 deletions examples/vault-entities/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ terraform {
}

provider "vault" {
address = "http://127.0.0.1:8200"
address = "http://127.0.0.1:8200"
}

module "entities" {
Expand All @@ -15,7 +15,7 @@ module "entities" {
policies = ["composer", "director"]
metadata = {
"category" = "Classical"
"level" = "genious"
"level" = "genious"
}
},
{
Expand Down
2 changes: 1 addition & 1 deletion examples/vault-group/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ terraform {
}

provider "vault" {
address = "http://127.0.0.1:8200"
address = "http://127.0.0.1:8200"
}

data "vault_identity_entity" "mozart" {
Expand Down
4 changes: 2 additions & 2 deletions main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ terraform {
}

provider "vault" {
address = var.vault_endpoint
address = var.vault_endpoint
}

module "vault_entities" {
source = "./modules/vault-identity-entities"

create_entity_aliases = var.create_vault_entity_aliases
entities = var.vault_entity_objects
entities = var.vault_entity_objects
}

module "vault_groups" {
Expand Down
4 changes: 2 additions & 2 deletions modules/vault-identity-entities/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ terraform {

data "vault_auth_backend" "backend" {
for_each = {
for alias in var.aliases:
for alias in var.aliases :
alias.name => alias
}
path = each.value.auth_path
Expand All @@ -22,7 +22,7 @@ resource "vault_identity_entity" "entity" {

resource "vault_identity_entity_alias" "alias" {
for_each = {
for alias in var.aliases:
for alias in var.aliases :
alias.name => alias
if var.create_entity_aliases
}
Expand Down
10 changes: 5 additions & 5 deletions modules/vault-identity-entities/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ variable "create_entity_aliases" {

variable "aliases" {
description = "List of objects defining the alias to entity and auth path match"
type = list(object({
name = string
entity = string
auth_path = string
type = list(object({
name = string
entity = string
auth_path = string
}))
default = []
default = []
}
12 changes: 6 additions & 6 deletions modules/vault-identity-groups/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ terraform {

resource "vault_identity_group" "group" {
for_each = {
for group in var.groups:
for group in var.groups :
group.name => group
}

name = each.key
type = each.value.type
policies = each.value.policies
member_group_ids = each.value.member_group_ids
name = each.key
type = each.value.type
policies = each.value.policies
member_group_ids = each.value.member_group_ids
member_entity_ids = each.value.member_entity_ids
metadata = each.value.metadata
metadata = each.value.metadata
}
4 changes: 2 additions & 2 deletions outputs.tf
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
output "vault_identity_entities" {
description = "Map of Vault entity created"
value = module.vault_entities.entities
value = module.vault_entities.entity
}

output "vault_identity_entity_alias" {
Expand All @@ -10,5 +10,5 @@ output "vault_identity_entity_alias" {

output "vault_identity_groups" {
description = "List of maps with relevant info for Vault created groups"
value = module.groups.identity_group
value = module.vault_groups.group
}