Manages ACME SSL certificates for Proxmox VE nodes. This resource orders and renews certificates from an ACME Certificate Authority for a specific node.
Example Usage
Basic ACME Certificate with HTTP-01 Challenge
import * as pulumi from "@pulumi/pulumi";
import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
// First, create an ACME account
const example = new proxmoxve.AcmeAccount("example", {
name: "production",
contact: "admin@example.com",
directory: "https://acme-v02.api.letsencrypt.org/directory",
tos: "https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf",
});
// Order a certificate for the node
const exampleCertificate = new proxmoxve.acme.Certificate("example", {
nodeName: "pve",
account: example.name,
domains: [{
domain: "pve.example.com",
}],
});
import pulumi
import pulumi_proxmoxve as proxmoxve
# First, create an ACME account
example = proxmoxve.AcmeAccount("example",
name="production",
contact="admin@example.com",
directory="https://acme-v02.api.letsencrypt.org/directory",
tos="https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf")
# Order a certificate for the node
example_certificate = proxmoxve.acme.Certificate("example",
node_name="pve",
account=example.name,
domains=[{
"domain": "pve.example.com",
}])
package main
import (
"github.com/muhlba91/pulumi-proxmoxve/sdk/v7/go/proxmoxve"
"github.com/muhlba91/pulumi-proxmoxve/sdk/v7/go/proxmoxve/acme"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// First, create an ACME account
example, err := proxmoxve.NewAcmeAccount(ctx, "example", &proxmoxve.AcmeAccountArgs{
Name: pulumi.String("production"),
Contact: pulumi.String("admin@example.com"),
Directory: pulumi.String("https://acme-v02.api.letsencrypt.org/directory"),
Tos: pulumi.String("https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf"),
})
if err != nil {
return err
}
// Order a certificate for the node
_, err = acme.NewCertificate(ctx, "example", &acme.CertificateArgs{
NodeName: pulumi.String("pve"),
Account: example.Name,
Domains: acme.CertificateDomainArray{
&acme.CertificateDomainArgs{
Domain: pulumi.String("pve.example.com"),
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using ProxmoxVE = Pulumi.ProxmoxVE;
return await Deployment.RunAsync(() =>
{
// First, create an ACME account
var example = new ProxmoxVE.AcmeAccount("example", new()
{
Name = "production",
Contact = "admin@example.com",
Directory = "https://acme-v02.api.letsencrypt.org/directory",
Tos = "https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf",
});
// Order a certificate for the node
var exampleCertificate = new ProxmoxVE.Acme.Certificate("example", new()
{
NodeName = "pve",
Account = example.Name,
Domains = new[]
{
new ProxmoxVE.Acme.Inputs.CertificateDomainArgs
{
Domain = "pve.example.com",
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import io.muehlbachler.pulumi.proxmoxve.AcmeAccount;
import io.muehlbachler.pulumi.proxmoxve.AcmeAccountArgs;
import io.muehlbachler.pulumi.proxmoxve.Acme.Certificate;
import io.muehlbachler.pulumi.proxmoxve.Acme.CertificateArgs;
import com.pulumi.proxmoxve.Acme.inputs.CertificateDomainArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
// First, create an ACME account
var example = new AcmeAccount("example", AcmeAccountArgs.builder()
.name("production")
.contact("admin@example.com")
.directory("https://acme-v02.api.letsencrypt.org/directory")
.tos("https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf")
.build());
// Order a certificate for the node
var exampleCertificate = new Certificate("exampleCertificate", CertificateArgs.builder()
.nodeName("pve")
.account(example.name())
.domains(CertificateDomainArgs.builder()
.domain("pve.example.com")
.build())
.build());
}
}
resources:
# First, create an ACME account
example:
type: proxmoxve:AcmeAccount
properties:
name: production
contact: admin@example.com
directory: https://acme-v02.api.letsencrypt.org/directory
tos: https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf
# Order a certificate for the node
exampleCertificate:
type: proxmoxve:Acme:Certificate
name: example
properties:
nodeName: pve
account: ${example.name}
domains:
- domain: pve.example.com
ACME Certificate with DNS-01 Challenge
import * as pulumi from "@pulumi/pulumi";
import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
// Create an ACME account
const example = new proxmoxve.AcmeAccount("example", {
name: "production",
contact: "admin@example.com",
directory: "https://acme-v02.api.letsencrypt.org/directory",
tos: "https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf",
});
// Configure a DNS plugin (Desec example)
const desec = new proxmoxve.AcmeDnsPlugin("desec", {
plugin: "desec",
api: "desec",
data: {
DEDYN_TOKEN: dedynToken,
},
});
// Order a certificate using the DNS plugin
const test = new proxmoxve.acme.Certificate("test", {
nodeName: "pve",
account: example.name,
force: false,
domains: [{
domain: "pve.example.dedyn.io",
plugin: desec.plugin,
}],
}, {
dependsOn: [
example,
desec,
],
});
import pulumi
import pulumi_proxmoxve as proxmoxve
# Create an ACME account
example = proxmoxve.AcmeAccount("example",
name="production",
contact="admin@example.com",
directory="https://acme-v02.api.letsencrypt.org/directory",
tos="https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf")
# Configure a DNS plugin (Desec example)
desec = proxmoxve.AcmeDnsPlugin("desec",
plugin="desec",
api="desec",
data={
"DEDYN_TOKEN": dedyn_token,
})
# Order a certificate using the DNS plugin
test = proxmoxve.acme.Certificate("test",
node_name="pve",
account=example.name,
force=False,
domains=[{
"domain": "pve.example.dedyn.io",
"plugin": desec.plugin,
}],
opts = pulumi.ResourceOptions(depends_on=[
example,
desec,
]))
package main
import (
"github.com/muhlba91/pulumi-proxmoxve/sdk/v7/go/proxmoxve"
"github.com/muhlba91/pulumi-proxmoxve/sdk/v7/go/proxmoxve/acme"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Create an ACME account
example, err := proxmoxve.NewAcmeAccount(ctx, "example", &proxmoxve.AcmeAccountArgs{
Name: pulumi.String("production"),
Contact: pulumi.String("admin@example.com"),
Directory: pulumi.String("https://acme-v02.api.letsencrypt.org/directory"),
Tos: pulumi.String("https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf"),
})
if err != nil {
return err
}
// Configure a DNS plugin (Desec example)
desec, err := proxmoxve.NewAcmeDnsPlugin(ctx, "desec", &proxmoxve.AcmeDnsPluginArgs{
Plugin: pulumi.String("desec"),
Api: pulumi.String("desec"),
Data: pulumi.StringMap{
"DEDYN_TOKEN": pulumi.Any(dedynToken),
},
})
if err != nil {
return err
}
// Order a certificate using the DNS plugin
_, err = acme.NewCertificate(ctx, "test", &acme.CertificateArgs{
NodeName: pulumi.String("pve"),
Account: example.Name,
Force: pulumi.Bool(false),
Domains: acme.CertificateDomainArray{
&acme.CertificateDomainArgs{
Domain: pulumi.String("pve.example.dedyn.io"),
Plugin: desec.Plugin,
},
},
}, pulumi.DependsOn([]pulumi.Resource{
example,
desec,
}))
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using ProxmoxVE = Pulumi.ProxmoxVE;
return await Deployment.RunAsync(() =>
{
// Create an ACME account
var example = new ProxmoxVE.AcmeAccount("example", new()
{
Name = "production",
Contact = "admin@example.com",
Directory = "https://acme-v02.api.letsencrypt.org/directory",
Tos = "https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf",
});
// Configure a DNS plugin (Desec example)
var desec = new ProxmoxVE.AcmeDnsPlugin("desec", new()
{
Plugin = "desec",
Api = "desec",
Data =
{
{ "DEDYN_TOKEN", dedynToken },
},
});
// Order a certificate using the DNS plugin
var test = new ProxmoxVE.Acme.Certificate("test", new()
{
NodeName = "pve",
Account = example.Name,
Force = false,
Domains = new[]
{
new ProxmoxVE.Acme.Inputs.CertificateDomainArgs
{
Domain = "pve.example.dedyn.io",
Plugin = desec.Plugin,
},
},
}, new CustomResourceOptions
{
DependsOn =
{
example,
desec,
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import io.muehlbachler.pulumi.proxmoxve.AcmeAccount;
import io.muehlbachler.pulumi.proxmoxve.AcmeAccountArgs;
import io.muehlbachler.pulumi.proxmoxve.AcmeDnsPlugin;
import io.muehlbachler.pulumi.proxmoxve.AcmeDnsPluginArgs;
import io.muehlbachler.pulumi.proxmoxve.Acme.Certificate;
import io.muehlbachler.pulumi.proxmoxve.Acme.CertificateArgs;
import com.pulumi.proxmoxve.Acme.inputs.CertificateDomainArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
// Create an ACME account
var example = new AcmeAccount("example", AcmeAccountArgs.builder()
.name("production")
.contact("admin@example.com")
.directory("https://acme-v02.api.letsencrypt.org/directory")
.tos("https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf")
.build());
// Configure a DNS plugin (Desec example)
var desec = new AcmeDnsPlugin("desec", AcmeDnsPluginArgs.builder()
.plugin("desec")
.api("desec")
.data(Map.of("DEDYN_TOKEN", dedynToken))
.build());
// Order a certificate using the DNS plugin
var test = new Certificate("test", CertificateArgs.builder()
.nodeName("pve")
.account(example.name())
.force(false)
.domains(CertificateDomainArgs.builder()
.domain("pve.example.dedyn.io")
.plugin(desec.plugin())
.build())
.build(), CustomResourceOptions.builder()
.dependsOn(
example,
desec)
.build());
}
}
resources:
# Create an ACME account
example:
type: proxmoxve:AcmeAccount
properties:
name: production
contact: admin@example.com
directory: https://acme-v02.api.letsencrypt.org/directory
tos: https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf
# Configure a DNS plugin (Desec example)
desec:
type: proxmoxve:AcmeDnsPlugin
properties:
plugin: desec
api: desec
data:
DEDYN_TOKEN: ${dedynToken}
# Order a certificate using the DNS plugin
test:
type: proxmoxve:Acme:Certificate
properties:
nodeName: pve
account: ${example.name}
force: false
domains:
- domain: pve.example.dedyn.io
plugin: ${desec.plugin}
options:
dependsOn:
- ${example}
- ${desec}
Force Certificate Renewal
import * as pulumi from "@pulumi/pulumi";
import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
const exampleForce = new proxmoxve.acme.Certificate("example_force", {
nodeName: "pve",
account: example.name,
force: true,
domains: [{
domain: "pve.example.com",
}],
});
import pulumi
import pulumi_proxmoxve as proxmoxve
example_force = proxmoxve.acme.Certificate("example_force",
node_name="pve",
account=example["name"],
force=True,
domains=[{
"domain": "pve.example.com",
}])
package main
import (
"github.com/muhlba91/pulumi-proxmoxve/sdk/v7/go/proxmoxve/acme"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := acme.NewCertificate(ctx, "example_force", &acme.CertificateArgs{
NodeName: pulumi.String("pve"),
Account: pulumi.Any(example.Name),
Force: pulumi.Bool(true),
Domains: acme.CertificateDomainArray{
&acme.CertificateDomainArgs{
Domain: pulumi.String("pve.example.com"),
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using ProxmoxVE = Pulumi.ProxmoxVE;
return await Deployment.RunAsync(() =>
{
var exampleForce = new ProxmoxVE.Acme.Certificate("example_force", new()
{
NodeName = "pve",
Account = example.Name,
Force = true,
Domains = new[]
{
new ProxmoxVE.Acme.Inputs.CertificateDomainArgs
{
Domain = "pve.example.com",
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import io.muehlbachler.pulumi.proxmoxve.Acme.Certificate;
import io.muehlbachler.pulumi.proxmoxve.Acme.CertificateArgs;
import com.pulumi.proxmoxve.Acme.inputs.CertificateDomainArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var exampleForce = new Certificate("exampleForce", CertificateArgs.builder()
.nodeName("pve")
.account(example.name())
.force(true)
.domains(CertificateDomainArgs.builder()
.domain("pve.example.com")
.build())
.build());
}
}
resources:
exampleForce:
type: proxmoxve:Acme:Certificate
name: example_force
properties:
nodeName: pve
account: ${example.name}
force: true # This will trigger renewal on every apply
domains:
- domain: pve.example.com
Related Resources
proxmoxve.AcmeAccount- Manages ACME accountsproxmoxve.AcmeDnsPlugin- Manages ACME DNS plugins for DNS-01 challengesproxmoxve.Certifi- Manages custom SSL/TLS certificates (non-ACME)
Create Certificate Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new Certificate(name: string, args: CertificateArgs, opts?: CustomResourceOptions);@overload
def Certificate(resource_name: str,
args: CertificateArgs,
opts: Optional[ResourceOptions] = None)
@overload
def Certificate(resource_name: str,
opts: Optional[ResourceOptions] = None,
account: Optional[str] = None,
domains: Optional[Sequence[CertificateDomainArgs]] = None,
node_name: Optional[str] = None,
force: Optional[bool] = None)func NewCertificate(ctx *Context, name string, args CertificateArgs, opts ...ResourceOption) (*Certificate, error)public Certificate(string name, CertificateArgs args, CustomResourceOptions? opts = null)
public Certificate(String name, CertificateArgs args)
public Certificate(String name, CertificateArgs args, CustomResourceOptions options)
type: proxmoxve:Acme:Certificate
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args CertificateArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args CertificateArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args CertificateArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args CertificateArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args CertificateArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var certificateResource = new ProxmoxVE.Acme.Certificate("certificateResource", new()
{
Account = "string",
Domains = new[]
{
new ProxmoxVE.Acme.Inputs.CertificateDomainArgs
{
Domain = "string",
Alias = "string",
Plugin = "string",
},
},
NodeName = "string",
Force = false,
});
example, err := acme.NewCertificate(ctx, "certificateResource", &acme.CertificateArgs{
Account: pulumi.String("string"),
Domains: acme.CertificateDomainArray{
&acme.CertificateDomainArgs{
Domain: pulumi.String("string"),
Alias: pulumi.String("string"),
Plugin: pulumi.String("string"),
},
},
NodeName: pulumi.String("string"),
Force: pulumi.Bool(false),
})
var certificateResource = new Certificate("certificateResource", CertificateArgs.builder()
.account("string")
.domains(CertificateDomainArgs.builder()
.domain("string")
.alias("string")
.plugin("string")
.build())
.nodeName("string")
.force(false)
.build());
certificate_resource = proxmoxve.acme.Certificate("certificateResource",
account="string",
domains=[{
"domain": "string",
"alias": "string",
"plugin": "string",
}],
node_name="string",
force=False)
const certificateResource = new proxmoxve.acme.Certificate("certificateResource", {
account: "string",
domains: [{
domain: "string",
alias: "string",
plugin: "string",
}],
nodeName: "string",
force: false,
});
type: proxmoxve:Acme:Certificate
properties:
account: string
domains:
- alias: string
domain: string
plugin: string
force: false
nodeName: string
Certificate Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The Certificate resource accepts the following input properties:
- Account string
- The ACME account name to use for ordering the certificate.
- Domains
List<Pulumi.
Proxmox VE. Acme. Inputs. Certificate Domain> - The list of domains to include in the certificate. At least one domain is required.
- Node
Name string - The name of the Proxmox VE node for which to order/manage the ACME certificate.
- Force bool
- Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.
- Account string
- The ACME account name to use for ordering the certificate.
- Domains
[]Certificate
Domain Args - The list of domains to include in the certificate. At least one domain is required.
- Node
Name string - The name of the Proxmox VE node for which to order/manage the ACME certificate.
- Force bool
- Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.
- account String
- The ACME account name to use for ordering the certificate.
- domains
List<Certificate
Domain> - The list of domains to include in the certificate. At least one domain is required.
- node
Name String - The name of the Proxmox VE node for which to order/manage the ACME certificate.
- force Boolean
- Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.
- account string
- The ACME account name to use for ordering the certificate.
- domains
Certificate
Domain[] - The list of domains to include in the certificate. At least one domain is required.
- node
Name string - The name of the Proxmox VE node for which to order/manage the ACME certificate.
- force boolean
- Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.
- account str
- The ACME account name to use for ordering the certificate.
- domains
Sequence[Certificate
Domain Args] - The list of domains to include in the certificate. At least one domain is required.
- node_
name str - The name of the Proxmox VE node for which to order/manage the ACME certificate.
- force bool
- Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.
- account String
- The ACME account name to use for ordering the certificate.
- domains List<Property Map>
- The list of domains to include in the certificate. At least one domain is required.
- node
Name String - The name of the Proxmox VE node for which to order/manage the ACME certificate.
- force Boolean
- Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.
Outputs
All input properties are implicitly available as output properties. Additionally, the Certificate resource produces the following output properties:
- Fingerprint string
- The certificate fingerprint.
- Id string
- The provider-assigned unique ID for this managed resource.
- Issuer string
- The certificate issuer.
- Not
After string - The certificate expiration timestamp.
- Not
Before string - The certificate start timestamp.
- Subject string
- The certificate subject.
- Subject
Alternative List<string>Names - The certificate subject alternative names (SANs).
- certificate
Pem string - The PEM-encoded certificate data.
- Certificate string
- The PEM-encoded certificate data.
- Fingerprint string
- The certificate fingerprint.
- Id string
- The provider-assigned unique ID for this managed resource.
- Issuer string
- The certificate issuer.
- Not
After string - The certificate expiration timestamp.
- Not
Before string - The certificate start timestamp.
- Subject string
- The certificate subject.
- Subject
Alternative []stringNames - The certificate subject alternative names (SANs).
- certificate String
- The PEM-encoded certificate data.
- fingerprint String
- The certificate fingerprint.
- id String
- The provider-assigned unique ID for this managed resource.
- issuer String
- The certificate issuer.
- not
After String - The certificate expiration timestamp.
- not
Before String - The certificate start timestamp.
- subject String
- The certificate subject.
- subject
Alternative List<String>Names - The certificate subject alternative names (SANs).
- certificate string
- The PEM-encoded certificate data.
- fingerprint string
- The certificate fingerprint.
- id string
- The provider-assigned unique ID for this managed resource.
- issuer string
- The certificate issuer.
- not
After string - The certificate expiration timestamp.
- not
Before string - The certificate start timestamp.
- subject string
- The certificate subject.
- subject
Alternative string[]Names - The certificate subject alternative names (SANs).
- certificate str
- The PEM-encoded certificate data.
- fingerprint str
- The certificate fingerprint.
- id str
- The provider-assigned unique ID for this managed resource.
- issuer str
- The certificate issuer.
- not_
after str - The certificate expiration timestamp.
- not_
before str - The certificate start timestamp.
- subject str
- The certificate subject.
- subject_
alternative_ Sequence[str]names - The certificate subject alternative names (SANs).
- certificate String
- The PEM-encoded certificate data.
- fingerprint String
- The certificate fingerprint.
- id String
- The provider-assigned unique ID for this managed resource.
- issuer String
- The certificate issuer.
- not
After String - The certificate expiration timestamp.
- not
Before String - The certificate start timestamp.
- subject String
- The certificate subject.
- subject
Alternative List<String>Names - The certificate subject alternative names (SANs).
Look up Existing Certificate Resource
Get an existing Certificate resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: CertificateState, opts?: CustomResourceOptions): Certificate@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
account: Optional[str] = None,
certificate: Optional[str] = None,
domains: Optional[Sequence[CertificateDomainArgs]] = None,
fingerprint: Optional[str] = None,
force: Optional[bool] = None,
issuer: Optional[str] = None,
node_name: Optional[str] = None,
not_after: Optional[str] = None,
not_before: Optional[str] = None,
subject: Optional[str] = None,
subject_alternative_names: Optional[Sequence[str]] = None) -> Certificatefunc GetCertificate(ctx *Context, name string, id IDInput, state *CertificateState, opts ...ResourceOption) (*Certificate, error)public static Certificate Get(string name, Input<string> id, CertificateState? state, CustomResourceOptions? opts = null)public static Certificate get(String name, Output<String> id, CertificateState state, CustomResourceOptions options)resources: _: type: proxmoxve:Acme:Certificate get: id: ${id}- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Account string
- The ACME account name to use for ordering the certificate.
- Domains
List<Pulumi.
Proxmox VE. Acme. Inputs. Certificate Domain> - The list of domains to include in the certificate. At least one domain is required.
- Fingerprint string
- The certificate fingerprint.
- Force bool
- Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.
- Issuer string
- The certificate issuer.
- Node
Name string - The name of the Proxmox VE node for which to order/manage the ACME certificate.
- Not
After string - The certificate expiration timestamp.
- Not
Before string - The certificate start timestamp.
- Subject string
- The certificate subject.
- Subject
Alternative List<string>Names - The certificate subject alternative names (SANs).
- certificate
Pem string - The PEM-encoded certificate data.
- Account string
- The ACME account name to use for ordering the certificate.
- Certificate string
- The PEM-encoded certificate data.
- Domains
[]Certificate
Domain Args - The list of domains to include in the certificate. At least one domain is required.
- Fingerprint string
- The certificate fingerprint.
- Force bool
- Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.
- Issuer string
- The certificate issuer.
- Node
Name string - The name of the Proxmox VE node for which to order/manage the ACME certificate.
- Not
After string - The certificate expiration timestamp.
- Not
Before string - The certificate start timestamp.
- Subject string
- The certificate subject.
- Subject
Alternative []stringNames - The certificate subject alternative names (SANs).
- account String
- The ACME account name to use for ordering the certificate.
- certificate String
- The PEM-encoded certificate data.
- domains
List<Certificate
Domain> - The list of domains to include in the certificate. At least one domain is required.
- fingerprint String
- The certificate fingerprint.
- force Boolean
- Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.
- issuer String
- The certificate issuer.
- node
Name String - The name of the Proxmox VE node for which to order/manage the ACME certificate.
- not
After String - The certificate expiration timestamp.
- not
Before String - The certificate start timestamp.
- subject String
- The certificate subject.
- subject
Alternative List<String>Names - The certificate subject alternative names (SANs).
- account string
- The ACME account name to use for ordering the certificate.
- certificate string
- The PEM-encoded certificate data.
- domains
Certificate
Domain[] - The list of domains to include in the certificate. At least one domain is required.
- fingerprint string
- The certificate fingerprint.
- force boolean
- Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.
- issuer string
- The certificate issuer.
- node
Name string - The name of the Proxmox VE node for which to order/manage the ACME certificate.
- not
After string - The certificate expiration timestamp.
- not
Before string - The certificate start timestamp.
- subject string
- The certificate subject.
- subject
Alternative string[]Names - The certificate subject alternative names (SANs).
- account str
- The ACME account name to use for ordering the certificate.
- certificate str
- The PEM-encoded certificate data.
- domains
Sequence[Certificate
Domain Args] - The list of domains to include in the certificate. At least one domain is required.
- fingerprint str
- The certificate fingerprint.
- force bool
- Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.
- issuer str
- The certificate issuer.
- node_
name str - The name of the Proxmox VE node for which to order/manage the ACME certificate.
- not_
after str - The certificate expiration timestamp.
- not_
before str - The certificate start timestamp.
- subject str
- The certificate subject.
- subject_
alternative_ Sequence[str]names - The certificate subject alternative names (SANs).
- account String
- The ACME account name to use for ordering the certificate.
- certificate String
- The PEM-encoded certificate data.
- domains List<Property Map>
- The list of domains to include in the certificate. At least one domain is required.
- fingerprint String
- The certificate fingerprint.
- force Boolean
- Force certificate renewal even if the certificate is not due for renewal yet. Setting this to true will trigger a new certificate order on every apply.
- issuer String
- The certificate issuer.
- node
Name String - The name of the Proxmox VE node for which to order/manage the ACME certificate.
- not
After String - The certificate expiration timestamp.
- not
Before String - The certificate start timestamp.
- subject String
- The certificate subject.
- subject
Alternative List<String>Names - The certificate subject alternative names (SANs).
Supporting Types
CertificateDomain, CertificateDomainArgs
- Domain string
- The domain name to include in the certificate.
- Alias string
- An optional alias domain for DNS validation. This allows you to validate the domain using a different domain's DNS records.
- Plugin string
- The DNS plugin to use for DNS-01 challenge validation. If not specified, the standalone HTTP-01 challenge will be used.
- Domain string
- The domain name to include in the certificate.
- Alias string
- An optional alias domain for DNS validation. This allows you to validate the domain using a different domain's DNS records.
- Plugin string
- The DNS plugin to use for DNS-01 challenge validation. If not specified, the standalone HTTP-01 challenge will be used.
- domain String
- The domain name to include in the certificate.
- alias String
- An optional alias domain for DNS validation. This allows you to validate the domain using a different domain's DNS records.
- plugin String
- The DNS plugin to use for DNS-01 challenge validation. If not specified, the standalone HTTP-01 challenge will be used.
- domain string
- The domain name to include in the certificate.
- alias string
- An optional alias domain for DNS validation. This allows you to validate the domain using a different domain's DNS records.
- plugin string
- The DNS plugin to use for DNS-01 challenge validation. If not specified, the standalone HTTP-01 challenge will be used.
- domain str
- The domain name to include in the certificate.
- alias str
- An optional alias domain for DNS validation. This allows you to validate the domain using a different domain's DNS records.
- plugin str
- The DNS plugin to use for DNS-01 challenge validation. If not specified, the standalone HTTP-01 challenge will be used.
- domain String
- The domain name to include in the certificate.
- alias String
- An optional alias domain for DNS validation. This allows you to validate the domain using a different domain's DNS records.
- plugin String
- The DNS plugin to use for DNS-01 challenge validation. If not specified, the standalone HTTP-01 challenge will be used.
Import
ACME certificates can be imported using the node name:
#!/usr/bin/env sh
ACME certificates can be imported using the node name, e.g.:
$ pulumi import proxmoxve:Acme/certificate:Certificate example pve
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- proxmoxve muhlba91/pulumi-proxmoxve
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
proxmoxTerraform Provider.
