0
0
mirror of https://github.com/bpg/terraform-provider-proxmox.git synced 2025-07-04 04:22:59 +00:00
terraform-provider-proxmox/docs/resources/virtual_environment_file.md
dandaolrian f901e711dd
feat(file): ensure upload of ISO/VSTMPL is completed upon resource creation (#471)
* feat(provider): ensure upload of ISO/VSTMPL completes before starting VM and add timeout to config for this

* remove `ForceNew: true` for the timeout attribute

* minor docs update

---------

Co-authored-by: dandaolrian <dandaolrian@users.noreply.github.com>
Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
2023-08-10 11:01:14 -04:00

107 lines
2.9 KiB
Markdown

---
layout: page
title: proxmox_virtual_environment_file
permalink: /resources/virtual_environment_file
nav_order: 6
parent: Resources
subcategory: Virtual Environment
---
# Resource: proxmox_virtual_environment_file
Manages a file.
## Example Usage
```terraform
resource "proxmox_virtual_environment_file" "ubuntu_container_template" {
content_type = "vztmpl"
datastore_id = "local"
node_name = "first-node"
source_file {
path = "https://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz"
}
}
```
```terraform
resource "proxmox_virtual_environment_file" "cloud_config" {
content_type = "snippets"
datastore_id = "local"
node_name = "pve"
source_raw {
data = <<EOF
#cloud-config
chpasswd:
list: |
ubuntu:example
expire: false
hostname: example-hostname
packages:
- qemu-guest-agent
users:
- default
- name: ubuntu
groups: sudo
shell: /bin/bash
ssh-authorized-keys:
- ${trimspace(tls_private_key.example.public_key_openssh)}
sudo: ALL=(ALL) NOPASSWD:ALL
EOF
file_name = "example.cloud-config.yaml"
}
}
```
## Argument Reference
- `content_type` - (Optional) The content type.
- `backup`
- `iso`
- `snippets`
- `vztmpl`
- `datastore_id` - (Required) The datastore id.
- `node_name` - (Required) The node name.
- `source_file` - (Optional) The source file (conflicts with `source_raw`).
- `checksum` - (Optional) The SHA256 checksum of the source file.
- `file_name` - (Optional) The file name to use instead of the source file
name.
- `insecure` - (Optional) Whether to skip the TLS verification step for
HTTPS sources (defaults to `false`).
- `path` - (Required) A path to a local file or a URL.
- `source_raw` - (Optional) The raw source (conflicts with `source_file`).
- `data` - (Required) The raw data.
- `file_name` - (Required) The file name.
- `resize` - (Optional) The number of bytes to resize the file to.
- `timeout_upload` - (Optional) Timeout for uploading ISO/VSTMPL files in
seconds (defaults to 1800).
## Attribute Reference
- `file_modification_date` - The file modification date (RFC 3339).
- `file_name` - The file name.
- `file_size` - The file size in bytes.
- `file_tag` - The file tag.
## Important Notes
The Proxmox VE API endpoint for file uploads does not support chunked transfer
encoding, which means that we must first store the source file as a temporary
file locally before uploading it.
You must ensure that you have at least `Size-in-MB * 2 + 1` MB of storage space
available (twice the size plus overhead because a multipart payload needs to be
created as another temporary file).
## Import
Instances can be imported using the `node_name`, `datastore_id`, `content_type`
and the `file_name`, e.g.,
```bash
$ terraform import proxmox_virtual_environment_file.cloud_config pve/local/snippets/example.cloud-config.yaml
```