terraform/ecc-openstack-005-volume_not_encrypted/green/block_storage.tf (34 lines of code) (raw):
# Prerequisites: https://docs.openstack.org/cinder/2023.2/configuration/block-storage/volume-encryption.html
locals {
volume_type_name = "005-volume-type-green"
}
resource "openstack_blockstorage_volume_v3" "this" {
name = "005-volume-green"
volume_type = local.volume_type_name
size = 1
description = <<EOT
CustodianRule = ecc-openstack-005-volume_not_encrypted
ComplianceStatus = Green
EOT
depends_on = [null_resource.this]
}
resource "null_resource" "this" {
triggers = {
profile = var.profile
volume_type_name = local.volume_type_name
}
provisioner "local-exec" {
command = <<CMD
export OS_CLOUD=${var.profile}
openstack volume type create --encryption-provider luks --encryption-cipher aes-xts-plain64 --encryption-key-size 256 --encryption-control-location front-end ${local.volume_type_name} --description "CustodianRule = ecc-openstack-005-volume_not_encrypted, ComplianceStatus = Green" --private &> /dev/null
CMD
interpreter = ["/bin/bash", "-c"]
}
provisioner "local-exec" {
when = destroy
command = <<CMD
export OS_CLOUD=${self.triggers.profile}
openstack volume type delete ${self.triggers.volume_type_name}
CMD
interpreter = ["/bin/bash", "-c"]
}
}