0
0
mirror of https://github.com/bpg/terraform-provider-proxmox.git synced 2025-06-29 18:21:10 +00:00

fix: example and makefile issues

This commit is contained in:
Dan Petersen 2021-02-13 02:46:29 +01:00
parent 673875be84
commit 427db3d44a
37 changed files with 291 additions and 248 deletions

2
.gitignore vendored
View File

@ -8,6 +8,7 @@
autogenerated/
bin/
cache/
dist/
modules-dev/
@ -20,6 +21,7 @@ modules-dev/
*.dll
*.exe
*.iml
*.lock.hcl
*.log
*.test
*.tfplan

View File

@ -1,3 +1,10 @@
## v0.5.0 (UNRELEASED)
OTHER:
* provider/example: Remove support for Terraform v0.11 and older
* provider/makefile: Update to use plugin caching to support local builds
## v0.4.1
OTHER:

View File

@ -3,13 +3,13 @@ NAME=$$(grep TerraformProviderName proxmoxtf/version.go | grep -o -e 'terraform-
TARGETS=darwin linux windows
TERRAFORM_PLUGIN_EXTENSION=
VERSION=$$(grep TerraformProviderVersion proxmoxtf/version.go | grep -o -e '[0-9]\.[0-9]\.[0-9]')
VERSION_EXAMPLE=9999.0.0
ifeq ($(OS),Windows_NT)
TERRAFORM_CACHE_DIRECTORY=$$(cygpath -u "$(APPDATA)")/terraform.d/plugins
TERRAFORM_PLATFORM=windows_amd64
TERRAFORM_PLUGIN_CACHE_DIRECTORY=$$(cygpath -u "$(shell pwd -P)")/cache/plugins
TERRAFORM_PLUGIN_EXTENSION=.exe
else
TERRAFORM_CACHE_DIRECTORY=$(HOME)/terraform.d/plugins
UNAME_S=$$(shell uname -s)
ifeq ($(UNAME_S),Darwin)
@ -17,36 +17,58 @@ else
else
TERRAFORM_PLATFORM=linux_amd64
endif
TERRAFORM_PLUGIN_CACHE_DIRECTORY=$(shell pwd -P)/cache/plugins
endif
TERRAFORM_PLUGIN_DIRECTORY=$(TERRAFORM_CACHE_DIRECTORY)/terraform.danitso.com/provider/proxmox/$(VERSION)/$(TERRAFORM_PLATFORM)
TERRAFORM_PLUGIN_DIRECTORY=$(TERRAFORM_PLUGIN_CACHE_DIRECTORY)/registry.terraform.io/danitso/proxmox/$(VERSION)/$(TERRAFORM_PLATFORM)
TERRAFORM_PLUGIN_DIRECTORY_EXAMPLE=$(TERRAFORM_PLUGIN_CACHE_DIRECTORY)/registry.terraform.io/danitso/proxmox/$(VERSION_EXAMPLE)/$(TERRAFORM_PLATFORM)
TERRAFORM_PLUGIN_EXECUTABLE=$(TERRAFORM_PLUGIN_DIRECTORY)/$(NAME)_v$(VERSION)_x4$(TERRAFORM_PLUGIN_EXTENSION)
TERRAFORM_PLUGIN_EXECUTABLE_EXAMPLE=$(TERRAFORM_PLUGIN_DIRECTORY_EXAMPLE)/$(NAME)_v$(VERSION_EXAMPLE)_x4$(TERRAFORM_PLUGIN_EXTENSION)
default: build
build:
go build -o "bin/$(NAME)_v$(VERSION)-custom_x4"
example: example-init example-apply example-apply example-destroy
example-apply:
cd ./example && terraform apply -auto-approve
example-destroy:
cd ./example && terraform destroy -auto-approve
example-init:
rm -f "example/$(NAME)_v"*
go build -o "example/$(NAME)_v$(VERSION)-custom_x4"
mkdir -p "$(TERRAFORM_PLUGIN_DIRECTORY)"
rm -f "$(TERRAFORM_PLUGIN_EXECUTABLE)"
cp "example/$(NAME)_v$(VERSION)-custom_x4" "$(TERRAFORM_PLUGIN_EXECUTABLE)"
go build -o "$(TERRAFORM_PLUGIN_EXECUTABLE)"
cd ./example && terraform init
example: example-build example-init example-apply example-apply example-destroy
example-apply:
export TF_CLI_CONFIG_FILE="$(shell pwd -P)/example.tfrc" \
&& export TF_DISABLE_CHECKPOINT="true" \
&& export TF_PLUGIN_CACHE_DIR="$(TERRAFORM_PLUGIN_CACHE_DIRECTORY)" \
&& cd ./example \
&& terraform apply -auto-approve
example-build:
mkdir -p "$(TERRAFORM_PLUGIN_DIRECTORY_EXAMPLE)"
rm -f "$(TERRAFORM_PLUGIN_EXECUTABLE_EXAMPLE)"
go build -o "$(TERRAFORM_PLUGIN_EXECUTABLE_EXAMPLE)"
example-destroy:
export TF_CLI_CONFIG_FILE="$(shell pwd -P)/example.tfrc" \
&& export TF_DISABLE_CHECKPOINT="true" \
&& export TF_PLUGIN_CACHE_DIR="$(TERRAFORM_PLUGIN_CACHE_DIRECTORY)" \
&& cd ./example \
&& terraform destroy -auto-approve
example-init:
export TF_CLI_CONFIG_FILE="$(shell pwd -P)/example.tfrc" \
&& export TF_DISABLE_CHECKPOINT="true" \
&& export TF_PLUGIN_CACHE_DIR="$(TERRAFORM_PLUGIN_CACHE_DIRECTORY)" \
&& cd ./example \
&& rm -f .terraform.lock.hcl \
&& terraform init \
-verify-plugins=false
example-plan:
cd ./example && terraform plan
export TF_CLI_CONFIG_FILE="$(shell pwd -P)/example.tfrc" \
&& export TF_DISABLE_CHECKPOINT="true" \
&& export TF_PLUGIN_CACHE_DIR="$(TERRAFORM_PLUGIN_CACHE_DIRECTORY)" \
&& cd ./example \
&& terraform plan
fmt:
gofmt -s -w $(GOFMT_FILES)

9
example.tfrc Normal file
View File

@ -0,0 +1,9 @@
provider_installation {
filesystem_mirror {
path = "../cache/plugins"
include = ["registry.terraform.io/danitso/proxmox"]
}
direct {
exclude = ["registry.terraform.io/danitso/proxmox"]
}
}

View File

@ -1,7 +1,9 @@
data "proxmox_virtual_environment_cluster_alias" "example" {
name = "example"
depends_on = [proxmox_virtual_environment_cluster_alias.example]
name = proxmox_virtual_environment_cluster_alias.example.name
}
output "data_proxmox_virtual_environment_cluster_alias_example_cidr" {
value = proxmox_virtual_environment_cluster_alias.example.cidr
value = proxmox_virtual_environment_cluster_alias.example.cidr
}

View File

@ -1,9 +1,9 @@
data "proxmox_virtual_environment_cluster_aliases" "example" {
depends_on = ["proxmox_virtual_environment_cluster_alias.example"]
depends_on = [proxmox_virtual_environment_cluster_alias.example]
}
output "data_proxmox_virtual_environment_cluster_aliases" {
value = "${map(
"alias_ids", data.proxmox_virtual_environment_cluster_aliases.example.alias_ids,
)}"
value = {
"alias_ids" = data.proxmox_virtual_environment_cluster_aliases.example.alias_ids
}
}

View File

@ -1,43 +1,43 @@
data "proxmox_virtual_environment_datastores" "example" {
node_name = "${data.proxmox_virtual_environment_nodes.example.names[0]}"
node_name = data.proxmox_virtual_environment_nodes.example.names[0]
}
output "data_proxmox_virtual_environment_datastores_example_active" {
value = "${data.proxmox_virtual_environment_datastores.example.active}"
value = data.proxmox_virtual_environment_datastores.example.active
}
output "data_proxmox_virtual_environment_datastores_example_content_types" {
value = "${data.proxmox_virtual_environment_datastores.example.content_types}"
value = data.proxmox_virtual_environment_datastores.example.content_types
}
output "data_proxmox_virtual_environment_datastores_example_datastore_ids" {
value = "${data.proxmox_virtual_environment_datastores.example.datastore_ids}"
value = data.proxmox_virtual_environment_datastores.example.datastore_ids
}
output "data_proxmox_virtual_environment_datastores_example_enabled" {
value = "${data.proxmox_virtual_environment_datastores.example.enabled}"
value = data.proxmox_virtual_environment_datastores.example.enabled
}
output "data_proxmox_virtual_environment_datastores_example_node_name" {
value = "${data.proxmox_virtual_environment_datastores.example.node_name}"
value = data.proxmox_virtual_environment_datastores.example.node_name
}
output "data_proxmox_virtual_environment_datastores_example_shared" {
value = "${data.proxmox_virtual_environment_datastores.example.shared}"
value = data.proxmox_virtual_environment_datastores.example.shared
}
output "data_proxmox_virtual_environment_datastores_example_space_available" {
value = "${data.proxmox_virtual_environment_datastores.example.space_available}"
value = data.proxmox_virtual_environment_datastores.example.space_available
}
output "data_proxmox_virtual_environment_datastores_example_space_total" {
value = "${data.proxmox_virtual_environment_datastores.example.space_total}"
value = data.proxmox_virtual_environment_datastores.example.space_total
}
output "data_proxmox_virtual_environment_datastores_example_space_used" {
value = "${data.proxmox_virtual_environment_datastores.example.space_used}"
value = data.proxmox_virtual_environment_datastores.example.space_used
}
output "data_proxmox_virtual_environment_datastores_example_types" {
value = "${data.proxmox_virtual_environment_datastores.example.types}"
value = data.proxmox_virtual_environment_datastores.example.types
}

View File

@ -1,11 +1,11 @@
data "proxmox_virtual_environment_dns" "example" {
node_name = "${data.proxmox_virtual_environment_nodes.example.names[0]}"
node_name = data.proxmox_virtual_environment_nodes.example.names[0]
}
output "data_proxmox_virtual_environment_dns_example_domain" {
value = "${data.proxmox_virtual_environment_dns.example.domain}"
value = data.proxmox_virtual_environment_dns.example.domain
}
output "data_proxmox_virtual_environment_dns_example_servers" {
value = "${data.proxmox_virtual_environment_dns.example.servers}"
value = data.proxmox_virtual_environment_dns.example.servers
}

View File

@ -1,15 +1,15 @@
data "proxmox_virtual_environment_group" "example" {
group_id = "${proxmox_virtual_environment_group.example.id}"
group_id = proxmox_virtual_environment_group.example.id
}
output "data_proxmox_virtual_environment_group_example_acl" {
value = "${data.proxmox_virtual_environment_group.example.acl}"
value = data.proxmox_virtual_environment_group.example.acl
}
output "data_proxmox_virtual_environment_group_example_comment" {
value = "${data.proxmox_virtual_environment_group.example.comment}"
value = data.proxmox_virtual_environment_group.example.comment
}
output "data_proxmox_virtual_environment_group_example_members" {
value = "${data.proxmox_virtual_environment_group.example.members}"
value = data.proxmox_virtual_environment_group.example.members
}

View File

@ -1,10 +1,10 @@
data "proxmox_virtual_environment_groups" "example" {
depends_on = ["proxmox_virtual_environment_group.example"]
depends_on = [proxmox_virtual_environment_group.example]
}
output "data_proxmox_virtual_environment_groups_example" {
value = "${map(
value = map(
"comments", data.proxmox_virtual_environment_groups.example.comments,
"group_ids", data.proxmox_virtual_environment_groups.example.group_ids,
)}"
)
}

View File

@ -1,19 +1,19 @@
data "proxmox_virtual_environment_hosts" "example" {
node_name = "${data.proxmox_virtual_environment_nodes.example.names[0]}"
node_name = data.proxmox_virtual_environment_nodes.example.names[0]
}
output "data_proxmox_virtual_environment_hosts_example_addresses" {
value = "${data.proxmox_virtual_environment_hosts.example.addresses}"
value = data.proxmox_virtual_environment_hosts.example.addresses
}
output "data_proxmox_virtual_environment_hosts_example_digest" {
value = "${data.proxmox_virtual_environment_hosts.example.digest}"
value = data.proxmox_virtual_environment_hosts.example.digest
}
output "data_proxmox_virtual_environment_hosts_example_entries" {
value = "${data.proxmox_virtual_environment_hosts.example.entries}"
value = data.proxmox_virtual_environment_hosts.example.entries
}
output "data_proxmox_virtual_environment_hosts_example_hostnames" {
value = "${data.proxmox_virtual_environment_hosts.example.hostnames}"
value = data.proxmox_virtual_environment_hosts.example.hostnames
}

View File

@ -1,37 +1,37 @@
data "proxmox_virtual_environment_nodes" "example" {}
output "data_proxmox_virtual_environment_nodes_example_cpu_count" {
value = "${data.proxmox_virtual_environment_nodes.example.cpu_count}"
value = data.proxmox_virtual_environment_nodes.example.cpu_count
}
output "data_proxmox_virtual_environment_nodes_example_cpu_utilization" {
value = "${data.proxmox_virtual_environment_nodes.example.cpu_utilization}"
value = data.proxmox_virtual_environment_nodes.example.cpu_utilization
}
output "data_proxmox_virtual_environment_nodes_example_memory_available" {
value = "${data.proxmox_virtual_environment_nodes.example.memory_available}"
value = data.proxmox_virtual_environment_nodes.example.memory_available
}
output "data_proxmox_virtual_environment_nodes_example_memory_used" {
value = "${data.proxmox_virtual_environment_nodes.example.memory_used}"
value = data.proxmox_virtual_environment_nodes.example.memory_used
}
output "data_proxmox_virtual_environment_nodes_example_names" {
value = "${data.proxmox_virtual_environment_nodes.example.names}"
value = data.proxmox_virtual_environment_nodes.example.names
}
output "data_proxmox_virtual_environment_nodes_example_online" {
value = "${data.proxmox_virtual_environment_nodes.example.online}"
value = data.proxmox_virtual_environment_nodes.example.online
}
output "data_proxmox_virtual_environment_nodes_example_ssl_fingerprints" {
value = "${data.proxmox_virtual_environment_nodes.example.ssl_fingerprints}"
value = data.proxmox_virtual_environment_nodes.example.ssl_fingerprints
}
output "data_proxmox_virtual_environment_nodes_example_support_levels" {
value = "${data.proxmox_virtual_environment_nodes.example.support_levels}"
value = data.proxmox_virtual_environment_nodes.example.support_levels
}
output "data_proxmox_virtual_environment_nodes_example_uptime" {
value = "${data.proxmox_virtual_environment_nodes.example.uptime}"
value = data.proxmox_virtual_environment_nodes.example.uptime
}

View File

@ -1,15 +1,15 @@
data "proxmox_virtual_environment_pool" "example" {
pool_id = "${proxmox_virtual_environment_pool.example.id}"
pool_id = proxmox_virtual_environment_pool.example.id
}
output "data_proxmox_virtual_environment_pool_example_comment" {
value = "${data.proxmox_virtual_environment_pool.example.comment}"
value = data.proxmox_virtual_environment_pool.example.comment
}
output "data_proxmox_virtual_environment_pool_example_members" {
value = "${data.proxmox_virtual_environment_pool.example.members}"
value = data.proxmox_virtual_environment_pool.example.members
}
output "data_proxmox_virtual_environment_pool_example_pool_id" {
value = "${data.proxmox_virtual_environment_pool.example.id}"
value = data.proxmox_virtual_environment_pool.example.id
}

View File

@ -1,9 +1,9 @@
data "proxmox_virtual_environment_pools" "example" {
depends_on = ["proxmox_virtual_environment_pool.example"]
depends_on = [proxmox_virtual_environment_pool.example]
}
output "data_proxmox_virtual_environment_pools_example" {
value = "${map(
"pool_ids", data.proxmox_virtual_environment_pools.example.pool_ids,
)}"
value = {
pool_ids = data.proxmox_virtual_environment_pools.example.pool_ids
}
}

View File

@ -1,11 +1,11 @@
data "proxmox_virtual_environment_role" "example" {
role_id = "${proxmox_virtual_environment_role.example.id}"
role_id = proxmox_virtual_environment_role.example.id
}
output "data_proxmox_virtual_environment_role_example_privileges" {
value = "${data.proxmox_virtual_environment_role.example.privileges}"
value = data.proxmox_virtual_environment_role.example.privileges
}
output "data_proxmox_virtual_environment_role_example_role_id" {
value = "${data.proxmox_virtual_environment_role.example.id}"
value = data.proxmox_virtual_environment_role.example.id
}

View File

@ -1,15 +1,15 @@
data "proxmox_virtual_environment_roles" "example" {
depends_on = ["proxmox_virtual_environment_role.example"]
depends_on = [proxmox_virtual_environment_role.example]
}
output "data_proxmox_virtual_environment_roles_example_privileges" {
value = "${data.proxmox_virtual_environment_roles.example.privileges}"
value = data.proxmox_virtual_environment_roles.example.privileges
}
output "data_proxmox_virtual_environment_roles_example_role_ids" {
value = "${data.proxmox_virtual_environment_roles.example.role_ids}"
value = data.proxmox_virtual_environment_roles.example.role_ids
}
output "data_proxmox_virtual_environment_roles_example_special" {
value = "${data.proxmox_virtual_environment_roles.example.special}"
value = data.proxmox_virtual_environment_roles.example.special
}

View File

@ -1,11 +1,11 @@
data "proxmox_virtual_environment_time" "example" {
node_name = "${data.proxmox_virtual_environment_nodes.example.names[0]}"
node_name = data.proxmox_virtual_environment_nodes.example.names[0]
}
output "data_proxmox_virtual_environment_time" {
value = "${map(
"local_time", data.proxmox_virtual_environment_time.example.local_time,
"time_zone", data.proxmox_virtual_environment_time.example.time_zone,
"utc_time", data.proxmox_virtual_environment_time.example.utc_time,
)}"
value = {
local_time = data.proxmox_virtual_environment_time.example.local_time
time_zone = data.proxmox_virtual_environment_time.example.time_zone
utc_time = data.proxmox_virtual_environment_time.example.utc_time
}
}

View File

@ -1,43 +1,43 @@
data "proxmox_virtual_environment_user" "example" {
user_id = "${proxmox_virtual_environment_user.example.id}"
user_id = proxmox_virtual_environment_user.example.id
}
output "data_proxmox_virtual_environment_user_example_acl" {
value = "${data.proxmox_virtual_environment_user.example.acl}"
value = data.proxmox_virtual_environment_user.example.acl
}
output "data_proxmox_virtual_environment_user_example_comment" {
value = "${data.proxmox_virtual_environment_user.example.comment}"
value = data.proxmox_virtual_environment_user.example.comment
}
output "data_proxmox_virtual_environment_user_example_email" {
value = "${data.proxmox_virtual_environment_user.example.email}"
value = data.proxmox_virtual_environment_user.example.email
}
output "data_proxmox_virtual_environment_user_example_enabled" {
value = "${data.proxmox_virtual_environment_user.example.enabled}"
value = data.proxmox_virtual_environment_user.example.enabled
}
output "data_proxmox_virtual_environment_user_example_expiration_date" {
value = "${data.proxmox_virtual_environment_user.example.expiration_date}"
value = data.proxmox_virtual_environment_user.example.expiration_date
}
output "data_proxmox_virtual_environment_user_example_first_name" {
value = "${data.proxmox_virtual_environment_user.example.first_name}"
value = data.proxmox_virtual_environment_user.example.first_name
}
output "data_proxmox_virtual_environment_user_example_groups" {
value = "${data.proxmox_virtual_environment_user.example.groups}"
value = data.proxmox_virtual_environment_user.example.groups
}
output "data_proxmox_virtual_environment_user_example_keys" {
value = "${data.proxmox_virtual_environment_user.example.keys}"
value = data.proxmox_virtual_environment_user.example.keys
}
output "data_proxmox_virtual_environment_user_example_last_name" {
value = "${data.proxmox_virtual_environment_user.example.last_name}"
value = data.proxmox_virtual_environment_user.example.last_name
}
output "data_proxmox_virtual_environment_user_example_user_id" {
value = "${data.proxmox_virtual_environment_user.example.id}"
value = data.proxmox_virtual_environment_user.example.id
}

View File

@ -1,39 +1,39 @@
data "proxmox_virtual_environment_users" "example" {
depends_on = ["proxmox_virtual_environment_user.example"]
depends_on = [proxmox_virtual_environment_user.example]
}
output "data_proxmox_virtual_environment_users_example_comments" {
value = "${data.proxmox_virtual_environment_users.example.comments}"
value = data.proxmox_virtual_environment_users.example.comments
}
output "data_proxmox_virtual_environment_users_example_emails" {
value = "${data.proxmox_virtual_environment_users.example.emails}"
value = data.proxmox_virtual_environment_users.example.emails
}
output "data_proxmox_virtual_environment_users_example_enabled" {
value = "${data.proxmox_virtual_environment_users.example.enabled}"
value = data.proxmox_virtual_environment_users.example.enabled
}
output "data_proxmox_virtual_environment_users_example_expiration_dates" {
value = "${data.proxmox_virtual_environment_users.example.expiration_dates}"
value = data.proxmox_virtual_environment_users.example.expiration_dates
}
output "data_proxmox_virtual_environment_users_example_first_names" {
value = "${data.proxmox_virtual_environment_users.example.first_names}"
value = data.proxmox_virtual_environment_users.example.first_names
}
output "data_proxmox_virtual_environment_users_example_groups" {
value = "${data.proxmox_virtual_environment_users.example.groups}"
value = data.proxmox_virtual_environment_users.example.groups
}
output "data_proxmox_virtual_environment_users_example_keys" {
value = "${data.proxmox_virtual_environment_users.example.keys}"
value = data.proxmox_virtual_environment_users.example.keys
}
output "data_proxmox_virtual_environment_users_example_last_names" {
value = "${data.proxmox_virtual_environment_users.example.last_names}"
value = data.proxmox_virtual_environment_users.example.last_names
}
output "data_proxmox_virtual_environment_users_example_user_ids" {
value = "${data.proxmox_virtual_environment_users.example.user_ids}"
value = data.proxmox_virtual_environment_users.example.user_ids
}

View File

@ -1,10 +1,10 @@
data "proxmox_virtual_environment_version" "example" {}
output "data_proxmox_virtual_environment_version" {
value = "${map(
"keyboard_layout", data.proxmox_virtual_environment_version.example.keyboard_layout,
"release", data.proxmox_virtual_environment_version.example.release,
"repository_id", data.proxmox_virtual_environment_version.example.repository_id,
"version", data.proxmox_virtual_environment_version.example.version,
)}"
value = {
keyboard_layout = data.proxmox_virtual_environment_version.example.keyboard_layout
release = data.proxmox_virtual_environment_version.example.release
repository_id = data.proxmox_virtual_environment_version.example.repository_id
version = data.proxmox_virtual_environment_version.example.version
}
}

8
example/main.tf Normal file
View File

@ -0,0 +1,8 @@
provider "proxmox" {
virtual_environment {
endpoint = var.virtual_environment_endpoint
username = var.virtual_environment_username
password = var.virtual_environment_password
insecure = true
}
}

View File

@ -1,13 +1,13 @@
resource "proxmox_virtual_environment_cluster_alias" "example" {
name = "local_network"
cidr = "192.168.0.0/23"
comment = "Managed by Terraform"
name = "example"
cidr = "192.168.0.0/23"
comment = "Managed by Terraform"
}
output "proxmox_virtual_environment_cluster_alias_example_name" {
value = "${proxmox_virtual_environment_cluster_alias.example.name}"
value = proxmox_virtual_environment_cluster_alias.example.name
}
output "proxmox_virtual_environment_cluster_alias_example_cidr" {
value = "${proxmox_virtual_environment_cluster_alias.example.cidr}"
value = proxmox_virtual_environment_cluster_alias.example.cidr
}

View File

@ -1,7 +1,7 @@
resource "proxmox_virtual_environment_certificate" "example" {
certificate = "${tls_self_signed_cert.proxmox_virtual_environment_certificate.cert_pem}"
node_name = "${data.proxmox_virtual_environment_nodes.example.names[0]}"
private_key = "${tls_private_key.proxmox_virtual_environment_certificate.private_key_pem}"
certificate = tls_self_signed_cert.proxmox_virtual_environment_certificate.cert_pem
node_name = data.proxmox_virtual_environment_nodes.example.names[0]
private_key = tls_private_key.proxmox_virtual_environment_certificate.private_key_pem
}
resource "tls_private_key" "proxmox_virtual_environment_certificate" {
@ -10,8 +10,8 @@ resource "tls_private_key" "proxmox_virtual_environment_certificate" {
}
resource "tls_self_signed_cert" "proxmox_virtual_environment_certificate" {
key_algorithm = "${tls_private_key.proxmox_virtual_environment_certificate.algorithm}"
private_key_pem = "${tls_private_key.proxmox_virtual_environment_certificate.private_key_pem}"
key_algorithm = tls_private_key.proxmox_virtual_environment_certificate.algorithm
private_key_pem = tls_private_key.proxmox_virtual_environment_certificate.private_key_pem
subject {
common_name = "example.com"
@ -28,37 +28,37 @@ resource "tls_self_signed_cert" "proxmox_virtual_environment_certificate" {
}
output "resource_proxmox_virtual_environment_certificate_example_expiration_date" {
value = "${proxmox_virtual_environment_certificate.example.expiration_date}"
value = proxmox_virtual_environment_certificate.example.expiration_date
}
output "resource_proxmox_virtual_environment_certificate_example_file_name" {
value = "${proxmox_virtual_environment_certificate.example.file_name}"
value = proxmox_virtual_environment_certificate.example.file_name
}
output "resource_proxmox_virtual_environment_certificate_example_issuer" {
value = "${proxmox_virtual_environment_certificate.example.issuer}"
value = proxmox_virtual_environment_certificate.example.issuer
}
output "resource_proxmox_virtual_environment_certificate_example_public_key_size" {
value = "${proxmox_virtual_environment_certificate.example.public_key_size}"
value = proxmox_virtual_environment_certificate.example.public_key_size
}
output "resource_proxmox_virtual_environment_certificate_example_public_key_type" {
value = "${proxmox_virtual_environment_certificate.example.public_key_type}"
value = proxmox_virtual_environment_certificate.example.public_key_type
}
output "resource_proxmox_virtual_environment_certificate_example_ssl_fingerprint" {
value = "${proxmox_virtual_environment_certificate.example.ssl_fingerprint}"
value = proxmox_virtual_environment_certificate.example.ssl_fingerprint
}
output "resource_proxmox_virtual_environment_certificate_example_start_date" {
value = "${proxmox_virtual_environment_certificate.example.start_date}"
value = proxmox_virtual_environment_certificate.example.start_date
}
output "resource_proxmox_virtual_environment_certificate_example_subject" {
value = "${proxmox_virtual_environment_certificate.example.subject}"
value = proxmox_virtual_environment_certificate.example.subject
}
output "resource_proxmox_virtual_environment_certificate_example_subject_alternative_names" {
value = "${proxmox_virtual_environment_certificate.example.subject_alternative_names}"
value = proxmox_virtual_environment_certificate.example.subject_alternative_names
}

View File

@ -1,25 +1,25 @@
resource "proxmox_virtual_environment_cluster_ipset" "example" {
name = "local_network"
comment = "Managed by Terraform"
name = "local_network"
comment = "Managed by Terraform"
cidr {
name = "192.168.0.0/23"
comment = "Local network 1"
}
cidr {
name = "192.168.0.0/23"
comment = "Local network 1"
}
cidr {
name = "192.168.0.1"
comment = "Server 1"
nomatch = true
}
cidr {
name = "192.168.0.1"
comment = "Server 1"
nomatch = true
}
cidr {
name = "192.168.2.1"
comment = "Server 1"
}
cidr {
name = "192.168.2.1"
comment = "Server 1"
}
}
output "resource_proxmox_virtual_environment_cluster_ipset" {
value = "${proxmox_virtual_environment_cluster_ipset.example.name}"
value = proxmox_virtual_environment_cluster_ipset.example.name
}

View File

@ -15,7 +15,7 @@ resource "proxmox_virtual_environment_container" "example_template" {
}
user_account {
keys = ["${trimspace(tls_private_key.example.public_key_openssh)}"]
keys = [trimspace(tls_private_key.example.public_key_openssh)]
password = "example"
}
}
@ -24,14 +24,14 @@ resource "proxmox_virtual_environment_container" "example_template" {
name = "veth0"
}
node_name = "${data.proxmox_virtual_environment_nodes.example.names[0]}"
node_name = data.proxmox_virtual_environment_nodes.example.names[0]
operating_system {
template_file_id = "${proxmox_virtual_environment_file.ubuntu_container_template.id}"
template_file_id = proxmox_virtual_environment_file.ubuntu_container_template.id
type = "ubuntu"
}
pool_id = "${proxmox_virtual_environment_pool.example.id}"
pool_id = proxmox_virtual_environment_pool.example.id
template = true
vm_id = 2042
}
@ -45,11 +45,11 @@ resource "proxmox_virtual_environment_container" "example" {
hostname = "terraform-provider-proxmox-example-lxc"
}
node_name = "${data.proxmox_virtual_environment_nodes.example.names[0]}"
pool_id = "${proxmox_virtual_environment_pool.example.id}"
vm_id = 2043
node_name = data.proxmox_virtual_environment_nodes.example.names[0]
pool_id = proxmox_virtual_environment_pool.example.id
vm_id = 2043
}
output "resource_proxmox_virtual_environment_container_example_id" {
value = "${proxmox_virtual_environment_container.example.id}"
value = proxmox_virtual_environment_container.example.id
}

View File

@ -1,5 +1,5 @@
resource "proxmox_virtual_environment_dns" "example" {
domain = "${data.proxmox_virtual_environment_dns.example.domain}"
node_name = "${data.proxmox_virtual_environment_nodes.example.names[0]}"
servers = "${data.proxmox_virtual_environment_dns.example.servers}"
domain = data.proxmox_virtual_environment_dns.example.domain
node_name = data.proxmox_virtual_environment_nodes.example.names[0]
servers = data.proxmox_virtual_environment_dns.example.servers
}

View File

@ -4,8 +4,8 @@
resource "proxmox_virtual_environment_file" "cloud_config" {
content_type = "snippets"
datastore_id = "${element(data.proxmox_virtual_environment_datastores.example.datastore_ids, index(data.proxmox_virtual_environment_datastores.example.datastore_ids, "local"))}"
node_name = "${data.proxmox_virtual_environment_datastores.example.node_name}"
datastore_id = element(data.proxmox_virtual_environment_datastores.example.datastore_ids, index(data.proxmox_virtual_environment_datastores.example.datastore_ids, "local"))
node_name = data.proxmox_virtual_environment_datastores.example.node_name
source_raw {
data = <<EOF
@ -37,8 +37,8 @@ users:
resource "proxmox_virtual_environment_file" "ubuntu_cloud_image" {
content_type = "iso"
datastore_id = "${element(data.proxmox_virtual_environment_datastores.example.datastore_ids, index(data.proxmox_virtual_environment_datastores.example.datastore_ids, "local"))}"
node_name = "${data.proxmox_virtual_environment_datastores.example.node_name}"
datastore_id = element(data.proxmox_virtual_environment_datastores.example.datastore_ids, index(data.proxmox_virtual_environment_datastores.example.datastore_ids, "local"))
node_name = data.proxmox_virtual_environment_datastores.example.node_name
source_file {
path = "https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img"
@ -46,39 +46,39 @@ resource "proxmox_virtual_environment_file" "ubuntu_cloud_image" {
}
output "resource_proxmox_virtual_environment_file_ubuntu_cloud_image_content_type" {
value = "${proxmox_virtual_environment_file.ubuntu_cloud_image.content_type}"
value = proxmox_virtual_environment_file.ubuntu_cloud_image.content_type
}
output "resource_proxmox_virtual_environment_file_ubuntu_cloud_image_datastore_id" {
value = "${proxmox_virtual_environment_file.ubuntu_cloud_image.datastore_id}"
value = proxmox_virtual_environment_file.ubuntu_cloud_image.datastore_id
}
output "resource_proxmox_virtual_environment_file_ubuntu_cloud_image_file_modification_date" {
value = "${proxmox_virtual_environment_file.ubuntu_cloud_image.file_modification_date}"
value = proxmox_virtual_environment_file.ubuntu_cloud_image.file_modification_date
}
output "resource_proxmox_virtual_environment_file_ubuntu_cloud_image_file_name" {
value = "${proxmox_virtual_environment_file.ubuntu_cloud_image.file_name}"
value = proxmox_virtual_environment_file.ubuntu_cloud_image.file_name
}
output "resource_proxmox_virtual_environment_file_ubuntu_cloud_image_file_size" {
value = "${proxmox_virtual_environment_file.ubuntu_cloud_image.file_size}"
value = proxmox_virtual_environment_file.ubuntu_cloud_image.file_size
}
output "resource_proxmox_virtual_environment_file_ubuntu_cloud_image_file_tag" {
value = "${proxmox_virtual_environment_file.ubuntu_cloud_image.file_tag}"
value = proxmox_virtual_environment_file.ubuntu_cloud_image.file_tag
}
output "resource_proxmox_virtual_environment_file_ubuntu_cloud_image_id" {
value = "${proxmox_virtual_environment_file.ubuntu_cloud_image.id}"
value = proxmox_virtual_environment_file.ubuntu_cloud_image.id
}
output "resource_proxmox_virtual_environment_file_ubuntu_cloud_image_node_name" {
value = "${proxmox_virtual_environment_file.ubuntu_cloud_image.node_name}"
value = proxmox_virtual_environment_file.ubuntu_cloud_image.node_name
}
output "resource_proxmox_virtual_environment_file_ubuntu_cloud_image_source_file" {
value = "${proxmox_virtual_environment_file.ubuntu_cloud_image.source_file}"
value = proxmox_virtual_environment_file.ubuntu_cloud_image.source_file
}
#===============================================================================
@ -87,8 +87,8 @@ output "resource_proxmox_virtual_environment_file_ubuntu_cloud_image_source_file
resource "proxmox_virtual_environment_file" "ubuntu_container_template" {
content_type = "vztmpl"
datastore_id = "${element(data.proxmox_virtual_environment_datastores.example.datastore_ids, index(data.proxmox_virtual_environment_datastores.example.datastore_ids, "local"))}"
node_name = "${data.proxmox_virtual_environment_datastores.example.node_name}"
datastore_id = element(data.proxmox_virtual_environment_datastores.example.datastore_ids, index(data.proxmox_virtual_environment_datastores.example.datastore_ids, "local"))
node_name = data.proxmox_virtual_environment_datastores.example.node_name
source_file {
path = "http://download.proxmox.com/images/system/ubuntu-18.04-standard_18.04.1-1_amd64.tar.gz"
@ -96,37 +96,37 @@ resource "proxmox_virtual_environment_file" "ubuntu_container_template" {
}
output "resource_proxmox_virtual_environment_file_ubuntu_container_template_content_type" {
value = "${proxmox_virtual_environment_file.ubuntu_container_template.content_type}"
value = proxmox_virtual_environment_file.ubuntu_container_template.content_type
}
output "resource_proxmox_virtual_environment_file_ubuntu_container_template_datastore_id" {
value = "${proxmox_virtual_environment_file.ubuntu_container_template.datastore_id}"
value = proxmox_virtual_environment_file.ubuntu_container_template.datastore_id
}
output "resource_proxmox_virtual_environment_file_ubuntu_container_template_file_modification_date" {
value = "${proxmox_virtual_environment_file.ubuntu_container_template.file_modification_date}"
value = proxmox_virtual_environment_file.ubuntu_container_template.file_modification_date
}
output "resource_proxmox_virtual_environment_file_ubuntu_container_template_file_name" {
value = "${proxmox_virtual_environment_file.ubuntu_container_template.file_name}"
value = proxmox_virtual_environment_file.ubuntu_container_template.file_name
}
output "resource_proxmox_virtual_environment_file_ubuntu_container_template_file_size" {
value = "${proxmox_virtual_environment_file.ubuntu_container_template.file_size}"
value = proxmox_virtual_environment_file.ubuntu_container_template.file_size
}
output "resource_proxmox_virtual_environment_file_ubuntu_container_template_file_tag" {
value = "${proxmox_virtual_environment_file.ubuntu_container_template.file_tag}"
value = proxmox_virtual_environment_file.ubuntu_container_template.file_tag
}
output "resource_proxmox_virtual_environment_file_ubuntu_container_template_id" {
value = "${proxmox_virtual_environment_file.ubuntu_container_template.id}"
value = proxmox_virtual_environment_file.ubuntu_container_template.id
}
output "resource_proxmox_virtual_environment_file_ubuntu_container_template_node_name" {
value = "${proxmox_virtual_environment_file.ubuntu_container_template.node_name}"
value = proxmox_virtual_environment_file.ubuntu_container_template.node_name
}
output "resource_proxmox_virtual_environment_file_ubuntu_container_template_source_file" {
value = "${proxmox_virtual_environment_file.ubuntu_container_template.source_file}"
value = proxmox_virtual_environment_file.ubuntu_container_template.source_file
}

View File

@ -1,7 +1,7 @@
resource "proxmox_virtual_environment_group" "example" {
acl {
path = "/vms/${proxmox_virtual_environment_vm.example.id}"
role_id = "${proxmox_virtual_environment_role.example.id}"
role_id = proxmox_virtual_environment_role.example.id
}
comment = "Managed by Terraform"
@ -9,17 +9,17 @@ resource "proxmox_virtual_environment_group" "example" {
}
output "resource_proxmox_virtual_environment_group_example_acl" {
value = "${proxmox_virtual_environment_group.example.acl}"
value = proxmox_virtual_environment_group.example.acl
}
output "resource_proxmox_virtual_environment_group_example_comment" {
value = "${proxmox_virtual_environment_group.example.comment}"
value = proxmox_virtual_environment_group.example.comment
}
output "resource_proxmox_virtual_environment_group_example_id" {
value = "${proxmox_virtual_environment_group.example.id}"
value = proxmox_virtual_environment_group.example.id
}
output "resource_proxmox_virtual_environment_group_example_members" {
value = "${proxmox_virtual_environment_group.example.members}"
value = proxmox_virtual_environment_group.example.members
}

View File

@ -1,28 +1,28 @@
resource "proxmox_virtual_environment_hosts" "example" {
node_name = "${data.proxmox_virtual_environment_nodes.example.names[0]}"
node_name = data.proxmox_virtual_environment_nodes.example.names[0]
dynamic "entry" {
for_each = "${data.proxmox_virtual_environment_hosts.example.entries}"
for_each = data.proxmox_virtual_environment_hosts.example.entries
content {
address = "${entry.value.address}"
hostnames = "${entry.value.hostnames}"
address = entry.value.address
hostnames = entry.value.hostnames
}
}
}
output "resource_proxmox_virtual_environment_hosts_example_addresses" {
value = "${proxmox_virtual_environment_hosts.example.addresses}"
value = proxmox_virtual_environment_hosts.example.addresses
}
output "resource_proxmox_virtual_environment_hosts_example_digest" {
value = "${proxmox_virtual_environment_hosts.example.digest}"
value = proxmox_virtual_environment_hosts.example.digest
}
output "resource_proxmox_virtual_environment_hosts_example_entries" {
value = "${proxmox_virtual_environment_hosts.example.entries}"
value = proxmox_virtual_environment_hosts.example.entries
}
output "resource_proxmox_virtual_environment_hosts_example_hostnames" {
value = "${proxmox_virtual_environment_hosts.example.hostnames}"
value = proxmox_virtual_environment_hosts.example.hostnames
}

View File

@ -4,13 +4,13 @@ resource "proxmox_virtual_environment_pool" "example" {
}
output "resource_proxmox_virtual_environment_pool_example_comment" {
value = "${proxmox_virtual_environment_pool.example.comment}"
value = proxmox_virtual_environment_pool.example.comment
}
output "resource_proxmox_virtual_environment_pool_example_members" {
value = "${proxmox_virtual_environment_pool.example.members}"
value = proxmox_virtual_environment_pool.example.members
}
output "resource_proxmox_virtual_environment_pool_example_pool_id" {
value = "${proxmox_virtual_environment_pool.example.id}"
value = proxmox_virtual_environment_pool.example.id
}

View File

@ -6,9 +6,9 @@ resource "proxmox_virtual_environment_role" "example" {
}
output "resource_proxmox_virtual_environment_role_example_privileges" {
value = "${proxmox_virtual_environment_role.example.privileges}"
value = proxmox_virtual_environment_role.example.privileges
}
output "resource_proxmox_virtual_environment_role_example_role_id" {
value = "${proxmox_virtual_environment_role.example.role_id}"
value = proxmox_virtual_environment_role.example.role_id
}

View File

@ -1,12 +1,12 @@
resource "proxmox_virtual_environment_time" "example" {
node_name = "${data.proxmox_virtual_environment_time.example.node_name}"
time_zone = "${data.proxmox_virtual_environment_time.example.time_zone}"
node_name = data.proxmox_virtual_environment_time.example.node_name
time_zone = data.proxmox_virtual_environment_time.example.time_zone
}
output "resource_proxmox_virtual_environment_time" {
value = "${map(
"local_time", proxmox_virtual_environment_time.example.local_time,
"time_zone", proxmox_virtual_environment_time.example.time_zone,
"utc_time", proxmox_virtual_environment_time.example.utc_time,
)}"
value = {
local_time = proxmox_virtual_environment_time.example.local_time
time_zone = proxmox_virtual_environment_time.example.time_zone
utc_time = proxmox_virtual_environment_time.example.utc_time
}
}

View File

@ -11,46 +11,46 @@ resource "proxmox_virtual_environment_user" "example" {
}
output "resource_proxmox_virtual_environment_user_example_acl" {
value = "${proxmox_virtual_environment_user.example.acl}"
value = proxmox_virtual_environment_user.example.acl
}
output "resource_proxmox_virtual_environment_user_example_comment" {
value = "${proxmox_virtual_environment_user.example.comment}"
value = proxmox_virtual_environment_user.example.comment
}
output "resource_proxmox_virtual_environment_user_example_email" {
value = "${proxmox_virtual_environment_user.example.email}"
value = proxmox_virtual_environment_user.example.email
}
output "resource_proxmox_virtual_environment_user_example_enabled" {
value = "${proxmox_virtual_environment_user.example.enabled}"
value = proxmox_virtual_environment_user.example.enabled
}
output "resource_proxmox_virtual_environment_user_example_expiration_date" {
value = "${proxmox_virtual_environment_user.example.expiration_date}"
value = proxmox_virtual_environment_user.example.expiration_date
}
output "resource_proxmox_virtual_environment_user_example_first_name" {
value = "${proxmox_virtual_environment_user.example.first_name}"
value = proxmox_virtual_environment_user.example.first_name
}
output "resource_proxmox_virtual_environment_user_example_groups" {
value = "${proxmox_virtual_environment_user.example.groups}"
value = proxmox_virtual_environment_user.example.groups
}
output "resource_proxmox_virtual_environment_user_example_keys" {
value = "${proxmox_virtual_environment_user.example.keys}"
value = proxmox_virtual_environment_user.example.keys
}
output "resource_proxmox_virtual_environment_user_example_last_name" {
value = "${proxmox_virtual_environment_user.example.last_name}"
value = proxmox_virtual_environment_user.example.last_name
}
output "resource_proxmox_virtual_environment_user_example_password" {
value = "${proxmox_virtual_environment_user.example.password}"
value = proxmox_virtual_environment_user.example.password
sensitive = true
}
output "resource_proxmox_virtual_environment_user_example_user_id" {
value = "${proxmox_virtual_environment_user.example.id}"
value = proxmox_virtual_environment_user.example.id
}

View File

@ -6,13 +6,13 @@ resource "proxmox_virtual_environment_vm" "example_template" {
description = "Managed by Terraform"
disk {
datastore_id = "${element(data.proxmox_virtual_environment_datastores.example.datastore_ids, index(data.proxmox_virtual_environment_datastores.example.datastore_ids, "local-lvm"))}"
file_id = "${proxmox_virtual_environment_file.ubuntu_cloud_image.id}"
datastore_id = element(data.proxmox_virtual_environment_datastores.example.datastore_ids, index(data.proxmox_virtual_environment_datastores.example.datastore_ids, "local-lvm"))
file_id = proxmox_virtual_environment_file.ubuntu_cloud_image.id
interface = "scsi0"
}
initialization {
datastore_id = "${element(data.proxmox_virtual_environment_datastores.example.datastore_ids, index(data.proxmox_virtual_environment_datastores.example.datastore_ids, "local-lvm"))}"
datastore_id = element(data.proxmox_virtual_environment_datastores.example.datastore_ids, index(data.proxmox_virtual_environment_datastores.example.datastore_ids, "local-lvm"))
dns {
server = "1.1.1.1"
@ -25,25 +25,25 @@ resource "proxmox_virtual_environment_vm" "example_template" {
}
user_account {
keys = ["${trimspace(tls_private_key.example.public_key_openssh)}"]
keys = [trimspace(tls_private_key.example.public_key_openssh)]
password = "example"
username = "ubuntu"
}
user_data_file_id = "${proxmox_virtual_environment_file.cloud_config.id}"
user_data_file_id = proxmox_virtual_environment_file.cloud_config.id
}
name = "terraform-provider-proxmox-example-template"
network_device {}
node_name = "${data.proxmox_virtual_environment_nodes.example.names[0]}"
node_name = data.proxmox_virtual_environment_nodes.example.names[0]
operating_system {
type = "l26"
}
pool_id = "${proxmox_virtual_environment_pool.example.id}"
pool_id = proxmox_virtual_environment_pool.example.id
serial_device {}
@ -53,8 +53,8 @@ resource "proxmox_virtual_environment_vm" "example_template" {
resource "proxmox_virtual_environment_vm" "example" {
name = "terraform-provider-proxmox-example"
node_name = "${data.proxmox_virtual_environment_nodes.example.names[0]}"
pool_id = "${proxmox_virtual_environment_pool.example.id}"
node_name = data.proxmox_virtual_environment_nodes.example.names[0]
pool_id = proxmox_virtual_environment_pool.example.id
vm_id = 2041
clone {
@ -68,8 +68,8 @@ resource "proxmox_virtual_environment_vm" "example" {
connection {
type = "ssh"
agent = false
host = "${element(element(self.ipv4_addresses, index(self.network_interface_names, "eth0")), 0)}"
private_key = "${tls_private_key.example.private_key_pem}"
host = element(element(self.ipv4_addresses, index(self.network_interface_names, "eth0")), 0)
private_key = tls_private_key.example.private_key_pem
user = "ubuntu"
}
@ -81,21 +81,21 @@ resource "proxmox_virtual_environment_vm" "example" {
}
output "resource_proxmox_virtual_environment_vm_example_id" {
value = "${proxmox_virtual_environment_vm.example.id}"
value = proxmox_virtual_environment_vm.example.id
}
output "resource_proxmox_virtual_environment_vm_example_ipv4_addresses" {
value = "${proxmox_virtual_environment_vm.example.ipv4_addresses}"
value = proxmox_virtual_environment_vm.example.ipv4_addresses
}
output "resource_proxmox_virtual_environment_vm_example_ipv6_addresses" {
value = "${proxmox_virtual_environment_vm.example.ipv6_addresses}"
value = proxmox_virtual_environment_vm.example.ipv6_addresses
}
output "resource_proxmox_virtual_environment_vm_example_mac_addresses" {
value = "${proxmox_virtual_environment_vm.example.mac_addresses}"
value = proxmox_virtual_environment_vm.example.mac_addresses
}
output "resource_proxmox_virtual_environment_vm_example_network_interface_names" {
value = "${proxmox_virtual_environment_vm.example.network_interface_names}"
value = proxmox_virtual_environment_vm.example.network_interface_names
}

View File

@ -1,11 +1,11 @@
resource "local_file" "example_ssh_private_key" {
filename = "${path.module}/autogenerated/id_rsa"
sensitive_content = "${tls_private_key.example.private_key_pem}"
sensitive_content = tls_private_key.example.private_key_pem
}
resource "local_file" "example_ssh_public_key" {
filename = "${path.module}/autogenerated/id_rsa.pub"
sensitive_content = "${tls_private_key.example.public_key_openssh}"
sensitive_content = tls_private_key.example.public_key_openssh
}
resource "tls_private_key" "example" {

View File

@ -1,23 +1,14 @@
provider "proxmox" {
virtual_environment {
endpoint = "${var.virtual_environment_endpoint}"
username = "${var.virtual_environment_username}"
password = "${var.virtual_environment_password}"
insecure = true
}
}
variable "virtual_environment_endpoint" {
type = "string"
type = string
description = "The endpoint for the Proxmox Virtual Environment API (example: https://host:port)"
}
variable "virtual_environment_password" {
type = "string"
type = string
description = "The password for the Proxmox Virtual Environment API"
}
variable "virtual_environment_username" {
type = "string"
type = string
description = "The username and realm for the Proxmox Virtual Environment API (example: root@pam)"
}

View File

@ -1,14 +1,16 @@
terraform {
required_providers {
local = {
source = "hashicorp/local"
source = "hashicorp/local"
version = "2.0.0"
}
proxmox = {
source = "danitso/proxmox"
version = "9999.0.0"
}
tls = {
source = "hashicorp/tls"
source = "hashicorp/tls"
version = "3.0.0"
}
}
required_version = ">= 0.13"
}