Skip to content

zoro16/terraform-hcloud-certificate

Repository files navigation

Description

Terraform module to create/upload Certificate resources in/to Hetzner Cloud.

Usage

# Configure the Hetzner Cloud Provider
provider "hcloud" {
  token = var.hcloud_token
}


module "managed_cert" {
  source = "../../"

  create_managed_certificate = true

  managed_certificate_name         = "testing-cert"
  managed_certificate_domain_names = ["example.xyz", "*.example.xyz"]
  managed_certificate_labels = {
    environment = "dev"
    product     = "major-certs"
  }
}

Requirements

Name Version
terraform >= 1.2.0
hcloud >= 1.42.1

Providers

Name Version
hcloud >= 1.42.1

Modules

No modules.

Resources

Name Type
hcloud_managed_certificate.managed_cert resource
hcloud_uploaded_certificate.cert resource

Inputs

Name Description Type Default Required
create_managed_certificate A boolean to check whether to create a Managed Certificate or not. bool false no
create_uploaded_certificate A boolean to check whether to create a Uploaded Certificate or not. bool false no
managed_certificate_domain_names Domain names for which a certificate should be obtained. list(string) [] no
managed_certificate_labels User-defined labels (key-value pairs) the certificate should be created with. map(any) {} no
managed_certificate_name Name of the Certificate. string null no
uploaded_certificate_certificate PEM encoded TLS certificate. string null no
uploaded_certificate_labels PEM encoded TLS certificate. map(any) {} no
uploaded_certificate_name Name of the Certificate to be Uploaded. string null no
uploaded_certificate_private_key PEM encoded private key belonging to the certificate. string null no

Outputs

Name Description
managed_certificate_certificate PEM encoded TLS certificate.
managed_certificate_created Point in time when the Certificate was created at Hetzner Cloud (in ISO-8601 format).
managed_certificate_domain_names Domain names for which a certificate should be obtained.
managed_certificate_fingerprint Fingerprint of the certificate.
managed_certificate_id Name of the Certificate.
managed_certificate_labels User-defined labels (key-value pairs) the certificate should be created with.
managed_certificate_name Name of the Certificate.
managed_certificate_not_valid_after Point in time when the Certificate stops being valid (in ISO-8601 format).
managed_certificate_not_valid_before Point in time when the Certificate becomes valid (in ISO-8601 format).
uploaded_certificate_certificate PEM encoded TLS certificate.
uploaded_certificate_created Point in time when the Certificate was created at Hetzner Cloud (in ISO-8601 format).
uploaded_certificate_domain_names Domains and subdomains covered by the certificate.
uploaded_certificate_fingerprint Fingerprint of the certificate.
uploaded_certificate_id Unique ID of the certificate.
uploaded_certificate_labels User-defined labels (key-value pairs) assigned to the certificate.
uploaded_certificate_name Name of the Certificate.
uploaded_certificate_not_valid_after Point in time when the Certificate stops being valid (in ISO-8601 format).
uploaded_certificate_not_valid_before Point in time when the Certificate becomes valid (in ISO-8601 format).