0
0
mirror of https://github.com/bpg/terraform-provider-proxmox.git synced 2025-07-04 21:14:05 +00:00
terraform-provider-proxmox/docs/resources/virtual_environment_file.md
Eric B 7dde53cf1c
chore(docs): update proxmox_virtual_environment_file documentation (#580)
* Update virtual_environment_file.md

* Update virtual_environment_file.md

---------

Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
2023-09-21 20:33:47 -04:00

115 lines
3.1 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).
If the specified file already exists, the resource will unconditionally replace
it and take ownership of the resource. On destruction, the file will be deleted
as if it did not exist before.
## Import
Instances can be imported using the `node_name`, `datastore_id`, `content_type`
and the `file_name` in the following format:
```
<node_name>:<datastore_id>/<content_type>/<file_name>
```
Example:
```bash
$ terraform import proxmox_virtual_environment_file.cloud_config pve/local:snippets/example.cloud-config.yaml
```