Skip to content

frostmoln_webserver_deployment (Resource)

Deploys static/PHP site content to a managed Apache or Nginx webserver instance. The provider runs the full deploy flow: it requests a presigned upload from the platform, uploads the local archive, starts the deploy with the archive checksum, and waits for the in-guest agent to verify, extract, and publish the release. A changed archive (detected via source_hash) triggers a new deploy. Destroying the resource only drops it from Terraform state — content already published on the instance is left in place (there is no "undeploy" API; destroy the instance to remove it).

Example Usage

terraform
# Deploy site content to a managed webserver instance.
#
# source_archive is a LOCAL filesystem path, read at plan time by the machine
# running Terraform at plan and apply time — it is not a bucket key or a URL.
# Terraform tracks the
# archive's content hash, so rebuilding site.tar.gz makes the next apply push a
# new deployment automatically.
#
# Destroying this resource only drops it from Terraform state; content already
# published on the instance stays live (there is no "undeploy" API — destroy the
# instance to remove it).
resource "frostmoln_webserver_deployment" "site" {
  instance_id    = frostmoln_nginx_instance.site.id
  source_archive = "${path.module}/site.tar.gz"
}

Schema

Required

  • instance_id (String) The ID of the Apache or Nginx webserver instance to deploy content to.
  • source_archive (String) Local filesystem path to the .tar.gz archive to deploy (the archive's top level becomes the site document root). The provider reads this file at plan and apply time; it is never uploaded to or returned by the API as-is — only its SHA-256 (source_hash) is tracked in state. Changing the file's contents changes source_hash and triggers a new deploy.

Read-Only

  • deploy_id (String) The ID of the most recent content deploy for this instance.
  • id (String) Synthetic resource identifier (equal to instance_id — one deployment per instance).
  • source_hash (String) SHA-256 hex digest of source_archive, computed by the provider at plan time. It is the change driver: when the archive's bytes change, this hash changes and a new deploy runs. It is also sent to the deploy's start call so the in-guest agent can verify the upload.
  • status (String) Terminal status of the most recent deploy (succeeded once applied).