0
0
mirror of https://github.com/bpg/terraform-provider-proxmox.git synced 2025-06-30 02:31: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/ autogenerated/
bin/ bin/
cache/
dist/ dist/
modules-dev/ modules-dev/
@ -20,6 +21,7 @@ modules-dev/
*.dll *.dll
*.exe *.exe
*.iml *.iml
*.lock.hcl
*.log *.log
*.test *.test
*.tfplan *.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 ## v0.4.1
OTHER: OTHER:

View File

@ -3,13 +3,13 @@ NAME=$$(grep TerraformProviderName proxmoxtf/version.go | grep -o -e 'terraform-
TARGETS=darwin linux windows TARGETS=darwin linux windows
TERRAFORM_PLUGIN_EXTENSION= TERRAFORM_PLUGIN_EXTENSION=
VERSION=$$(grep TerraformProviderVersion proxmoxtf/version.go | grep -o -e '[0-9]\.[0-9]\.[0-9]') VERSION=$$(grep TerraformProviderVersion proxmoxtf/version.go | grep -o -e '[0-9]\.[0-9]\.[0-9]')
VERSION_EXAMPLE=9999.0.0
ifeq ($(OS),Windows_NT) ifeq ($(OS),Windows_NT)
TERRAFORM_CACHE_DIRECTORY=$$(cygpath -u "$(APPDATA)")/terraform.d/plugins
TERRAFORM_PLATFORM=windows_amd64 TERRAFORM_PLATFORM=windows_amd64
TERRAFORM_PLUGIN_CACHE_DIRECTORY=$$(cygpath -u "$(shell pwd -P)")/cache/plugins
TERRAFORM_PLUGIN_EXTENSION=.exe TERRAFORM_PLUGIN_EXTENSION=.exe
else else
TERRAFORM_CACHE_DIRECTORY=$(HOME)/terraform.d/plugins
UNAME_S=$$(shell uname -s) UNAME_S=$$(shell uname -s)
ifeq ($(UNAME_S),Darwin) ifeq ($(UNAME_S),Darwin)
@ -17,36 +17,58 @@ else
else else
TERRAFORM_PLATFORM=linux_amd64 TERRAFORM_PLATFORM=linux_amd64
endif endif
TERRAFORM_PLUGIN_CACHE_DIRECTORY=$(shell pwd -P)/cache/plugins
endif 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=$(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 default: build
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)" mkdir -p "$(TERRAFORM_PLUGIN_DIRECTORY)"
rm -f "$(TERRAFORM_PLUGIN_EXECUTABLE)" 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: 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: fmt:
gofmt -s -w $(GOFMT_FILES) 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" { 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" { 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" { 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" { output "data_proxmox_virtual_environment_cluster_aliases" {
value = "${map( value = {
"alias_ids", data.proxmox_virtual_environment_cluster_aliases.example.alias_ids, "alias_ids" = data.proxmox_virtual_environment_cluster_aliases.example.alias_ids
)}" }
} }

View File

@ -1,43 +1,43 @@
data "proxmox_virtual_environment_datastores" "example" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { output "data_proxmox_virtual_environment_groups_example" {
value = "${map( value = map(
"comments", data.proxmox_virtual_environment_groups.example.comments, "comments", data.proxmox_virtual_environment_groups.example.comments,
"group_ids", data.proxmox_virtual_environment_groups.example.group_ids, "group_ids", data.proxmox_virtual_environment_groups.example.group_ids,
)}" )
} }

View File

@ -1,19 +1,19 @@
data "proxmox_virtual_environment_hosts" "example" { 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" { 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" { 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" { 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" { 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" {} data "proxmox_virtual_environment_nodes" "example" {}
output "data_proxmox_virtual_environment_nodes_example_cpu_count" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { output "data_proxmox_virtual_environment_pools_example" {
value = "${map( value = {
"pool_ids", data.proxmox_virtual_environment_pools.example.pool_ids, pool_ids = data.proxmox_virtual_environment_pools.example.pool_ids
)}" }
} }

View File

@ -1,11 +1,11 @@
data "proxmox_virtual_environment_role" "example" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { output "data_proxmox_virtual_environment_time" {
value = "${map( value = {
"local_time", data.proxmox_virtual_environment_time.example.local_time, local_time = data.proxmox_virtual_environment_time.example.local_time
"time_zone", data.proxmox_virtual_environment_time.example.time_zone, time_zone = data.proxmox_virtual_environment_time.example.time_zone
"utc_time", data.proxmox_virtual_environment_time.example.utc_time, utc_time = data.proxmox_virtual_environment_time.example.utc_time
)}" }
} }

View File

@ -1,43 +1,43 @@
data "proxmox_virtual_environment_user" "example" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" {} data "proxmox_virtual_environment_version" "example" {}
output "data_proxmox_virtual_environment_version" { output "data_proxmox_virtual_environment_version" {
value = "${map( value = {
"keyboard_layout", data.proxmox_virtual_environment_version.example.keyboard_layout, keyboard_layout = data.proxmox_virtual_environment_version.example.keyboard_layout
"release", data.proxmox_virtual_environment_version.example.release, release = data.proxmox_virtual_environment_version.example.release
"repository_id", data.proxmox_virtual_environment_version.example.repository_id, repository_id = data.proxmox_virtual_environment_version.example.repository_id
"version", data.proxmox_virtual_environment_version.example.version, 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" { resource "proxmox_virtual_environment_cluster_alias" "example" {
name = "local_network" name = "example"
cidr = "192.168.0.0/23" cidr = "192.168.0.0/23"
comment = "Managed by Terraform" comment = "Managed by Terraform"
} }
output "proxmox_virtual_environment_cluster_alias_example_name" { 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" { 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" { resource "proxmox_virtual_environment_certificate" "example" {
certificate = "${tls_self_signed_cert.proxmox_virtual_environment_certificate.cert_pem}" certificate = tls_self_signed_cert.proxmox_virtual_environment_certificate.cert_pem
node_name = "${data.proxmox_virtual_environment_nodes.example.names[0]}" node_name = data.proxmox_virtual_environment_nodes.example.names[0]
private_key = "${tls_private_key.proxmox_virtual_environment_certificate.private_key_pem}" private_key = tls_private_key.proxmox_virtual_environment_certificate.private_key_pem
} }
resource "tls_private_key" "proxmox_virtual_environment_certificate" { 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" { resource "tls_self_signed_cert" "proxmox_virtual_environment_certificate" {
key_algorithm = "${tls_private_key.proxmox_virtual_environment_certificate.algorithm}" key_algorithm = tls_private_key.proxmox_virtual_environment_certificate.algorithm
private_key_pem = "${tls_private_key.proxmox_virtual_environment_certificate.private_key_pem}" private_key_pem = tls_private_key.proxmox_virtual_environment_certificate.private_key_pem
subject { subject {
common_name = "example.com" 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { resource "proxmox_virtual_environment_cluster_ipset" "example" {
name = "local_network" name = "local_network"
comment = "Managed by Terraform" comment = "Managed by Terraform"
cidr { cidr {
name = "192.168.0.0/23" name = "192.168.0.0/23"
comment = "Local network 1" comment = "Local network 1"
} }
cidr { cidr {
name = "192.168.0.1" name = "192.168.0.1"
comment = "Server 1" comment = "Server 1"
nomatch = true nomatch = true
} }
cidr { cidr {
name = "192.168.2.1" name = "192.168.2.1"
comment = "Server 1" comment = "Server 1"
} }
} }
output "resource_proxmox_virtual_environment_cluster_ipset" { 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 { user_account {
keys = ["${trimspace(tls_private_key.example.public_key_openssh)}"] keys = [trimspace(tls_private_key.example.public_key_openssh)]
password = "example" password = "example"
} }
} }
@ -24,14 +24,14 @@ resource "proxmox_virtual_environment_container" "example_template" {
name = "veth0" name = "veth0"
} }
node_name = "${data.proxmox_virtual_environment_nodes.example.names[0]}" node_name = data.proxmox_virtual_environment_nodes.example.names[0]
operating_system { 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" type = "ubuntu"
} }
pool_id = "${proxmox_virtual_environment_pool.example.id}" pool_id = proxmox_virtual_environment_pool.example.id
template = true template = true
vm_id = 2042 vm_id = 2042
} }
@ -45,11 +45,11 @@ resource "proxmox_virtual_environment_container" "example" {
hostname = "terraform-provider-proxmox-example-lxc" hostname = "terraform-provider-proxmox-example-lxc"
} }
node_name = "${data.proxmox_virtual_environment_nodes.example.names[0]}" node_name = data.proxmox_virtual_environment_nodes.example.names[0]
pool_id = "${proxmox_virtual_environment_pool.example.id}" pool_id = proxmox_virtual_environment_pool.example.id
vm_id = 2043 vm_id = 2043
} }
output "resource_proxmox_virtual_environment_container_example_id" { 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" { resource "proxmox_virtual_environment_dns" "example" {
domain = "${data.proxmox_virtual_environment_dns.example.domain}" domain = data.proxmox_virtual_environment_dns.example.domain
node_name = "${data.proxmox_virtual_environment_nodes.example.names[0]}" node_name = data.proxmox_virtual_environment_nodes.example.names[0]
servers = "${data.proxmox_virtual_environment_dns.example.servers}" servers = data.proxmox_virtual_environment_dns.example.servers
} }

View File

@ -4,8 +4,8 @@
resource "proxmox_virtual_environment_file" "cloud_config" { resource "proxmox_virtual_environment_file" "cloud_config" {
content_type = "snippets" content_type = "snippets"
datastore_id = "${element(data.proxmox_virtual_environment_datastores.example.datastore_ids, index(data.proxmox_virtual_environment_datastores.example.datastore_ids, "local"))}" 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}" node_name = data.proxmox_virtual_environment_datastores.example.node_name
source_raw { source_raw {
data = <<EOF data = <<EOF
@ -37,8 +37,8 @@ users:
resource "proxmox_virtual_environment_file" "ubuntu_cloud_image" { resource "proxmox_virtual_environment_file" "ubuntu_cloud_image" {
content_type = "iso" content_type = "iso"
datastore_id = "${element(data.proxmox_virtual_environment_datastores.example.datastore_ids, index(data.proxmox_virtual_environment_datastores.example.datastore_ids, "local"))}" 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}" node_name = data.proxmox_virtual_environment_datastores.example.node_name
source_file { source_file {
path = "https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img" 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { resource "proxmox_virtual_environment_file" "ubuntu_container_template" {
content_type = "vztmpl" content_type = "vztmpl"
datastore_id = "${element(data.proxmox_virtual_environment_datastores.example.datastore_ids, index(data.proxmox_virtual_environment_datastores.example.datastore_ids, "local"))}" 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}" node_name = data.proxmox_virtual_environment_datastores.example.node_name
source_file { source_file {
path = "http://download.proxmox.com/images/system/ubuntu-18.04-standard_18.04.1-1_amd64.tar.gz" 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { resource "proxmox_virtual_environment_group" "example" {
acl { acl {
path = "/vms/${proxmox_virtual_environment_vm.example.id}" 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" comment = "Managed by Terraform"
@ -9,17 +9,17 @@ resource "proxmox_virtual_environment_group" "example" {
} }
output "resource_proxmox_virtual_environment_group_example_acl" { 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" { 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" { 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" { 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" { 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" { dynamic "entry" {
for_each = "${data.proxmox_virtual_environment_hosts.example.entries}" for_each = data.proxmox_virtual_environment_hosts.example.entries
content { content {
address = "${entry.value.address}" address = entry.value.address
hostnames = "${entry.value.hostnames}" hostnames = entry.value.hostnames
} }
} }
} }
output "resource_proxmox_virtual_environment_hosts_example_addresses" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { resource "proxmox_virtual_environment_time" "example" {
node_name = "${data.proxmox_virtual_environment_time.example.node_name}" node_name = data.proxmox_virtual_environment_time.example.node_name
time_zone = "${data.proxmox_virtual_environment_time.example.time_zone}" time_zone = data.proxmox_virtual_environment_time.example.time_zone
} }
output "resource_proxmox_virtual_environment_time" { output "resource_proxmox_virtual_environment_time" {
value = "${map( value = {
"local_time", proxmox_virtual_environment_time.example.local_time, local_time = proxmox_virtual_environment_time.example.local_time
"time_zone", proxmox_virtual_environment_time.example.time_zone, time_zone = proxmox_virtual_environment_time.example.time_zone
"utc_time", proxmox_virtual_environment_time.example.utc_time, 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { 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" { output "resource_proxmox_virtual_environment_user_example_password" {
value = "${proxmox_virtual_environment_user.example.password}" value = proxmox_virtual_environment_user.example.password
sensitive = true sensitive = true
} }
output "resource_proxmox_virtual_environment_user_example_user_id" { 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" description = "Managed by Terraform"
disk { disk {
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"))
file_id = "${proxmox_virtual_environment_file.ubuntu_cloud_image.id}" file_id = proxmox_virtual_environment_file.ubuntu_cloud_image.id
interface = "scsi0" interface = "scsi0"
} }
initialization { 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 { dns {
server = "1.1.1.1" server = "1.1.1.1"
@ -25,25 +25,25 @@ resource "proxmox_virtual_environment_vm" "example_template" {
} }
user_account { user_account {
keys = ["${trimspace(tls_private_key.example.public_key_openssh)}"] keys = [trimspace(tls_private_key.example.public_key_openssh)]
password = "example" password = "example"
username = "ubuntu" 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" name = "terraform-provider-proxmox-example-template"
network_device {} network_device {}
node_name = "${data.proxmox_virtual_environment_nodes.example.names[0]}" node_name = data.proxmox_virtual_environment_nodes.example.names[0]
operating_system { operating_system {
type = "l26" type = "l26"
} }
pool_id = "${proxmox_virtual_environment_pool.example.id}" pool_id = proxmox_virtual_environment_pool.example.id
serial_device {} serial_device {}
@ -53,8 +53,8 @@ resource "proxmox_virtual_environment_vm" "example_template" {
resource "proxmox_virtual_environment_vm" "example" { resource "proxmox_virtual_environment_vm" "example" {
name = "terraform-provider-proxmox-example" name = "terraform-provider-proxmox-example"
node_name = "${data.proxmox_virtual_environment_nodes.example.names[0]}" node_name = data.proxmox_virtual_environment_nodes.example.names[0]
pool_id = "${proxmox_virtual_environment_pool.example.id}" pool_id = proxmox_virtual_environment_pool.example.id
vm_id = 2041 vm_id = 2041
clone { clone {
@ -68,8 +68,8 @@ resource "proxmox_virtual_environment_vm" "example" {
connection { connection {
type = "ssh" type = "ssh"
agent = false agent = false
host = "${element(element(self.ipv4_addresses, index(self.network_interface_names, "eth0")), 0)}" host = element(element(self.ipv4_addresses, index(self.network_interface_names, "eth0")), 0)
private_key = "${tls_private_key.example.private_key_pem}" private_key = tls_private_key.example.private_key_pem
user = "ubuntu" user = "ubuntu"
} }
@ -81,21 +81,21 @@ resource "proxmox_virtual_environment_vm" "example" {
} }
output "resource_proxmox_virtual_environment_vm_example_id" { 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" { 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" { 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" { 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" { 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" { resource "local_file" "example_ssh_private_key" {
filename = "${path.module}/autogenerated/id_rsa" 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" { resource "local_file" "example_ssh_public_key" {
filename = "${path.module}/autogenerated/id_rsa.pub" 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" { 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" { variable "virtual_environment_endpoint" {
type = "string" type = string
description = "The endpoint for the Proxmox Virtual Environment API (example: https://host:port)" description = "The endpoint for the Proxmox Virtual Environment API (example: https://host:port)"
} }
variable "virtual_environment_password" { variable "virtual_environment_password" {
type = "string" type = string
description = "The password for the Proxmox Virtual Environment API" description = "The password for the Proxmox Virtual Environment API"
} }
variable "virtual_environment_username" { variable "virtual_environment_username" {
type = "string" type = string
description = "The username and realm for the Proxmox Virtual Environment API (example: root@pam)" description = "The username and realm for the Proxmox Virtual Environment API (example: root@pam)"
} }

View File

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