DnsProviderOptions
DNS / ACME provider options for the dns VM (coredns + lego/security.acme + ddns-updater). Provider name MUST match a string supported by both lego (security.acme dnsProvider) AND services.ddns-updater. Examples: cloudflare, duckdns, porkbun, namecheap, gandi, hetzner, godaddy, ovh, dyn, noip. CredentialsFile is an env-format file (KEY=value lines) decrypted by SOPS at runtime; provider-specific env-var contract per lego docs (e.g. CF_DNS_API_TOKEN= for cloudflare, DUCKDNS_TOKEN= for duckdns, NAMECHEAP_API_USER= + NAMECHEAP_API_KEY= for namecheap). CredentialsAttrs carries provider-specific extras not covered by the env file (account IDs, zone IDs, etc.) and is passed verbatim into the ddns-updater settings attrset.
public sealed record DnsProviderOptions : IEquatable<DnsProviderOptions>
1. Properties
1.1. CredentialsAttrs
Provider-specific extras (account IDs, zone IDs, …). Null/empty ⇒ no extras.
public IReadOnlyDictionary<string, string> CredentialsAttrs { get; init; }
1.2. CredentialsFile
Path on the dns VM to a SOPS-decrypted env-format file (KEY=value lines). String (not AbsolutePath) because Nuke’s AbsolutePath serializes as a nested object graph (Name/Parent/…) that NETSetup’s Json deserializer cannot reconstruct.
public string CredentialsFile { get; init; }
1.3. Provider
Provider identifier shared by lego + ddns-updater.
public string Provider { get; init; }
2. Operators
2.1. operator !=(DnsProviderOptions, DnsProviderOptions)
public static bool operator !=(DnsProviderOptions left, DnsProviderOptions right)
| Name | Type | Description |
|---|---|---|
left |
DnsProviderOptions |
|
right |
DnsProviderOptions |
Returns: bool
2.2. operator ==(DnsProviderOptions, DnsProviderOptions)
public static bool operator ==(DnsProviderOptions left, DnsProviderOptions right)
| Name | Type | Description |
|---|---|---|
left |
DnsProviderOptions |
|
right |
DnsProviderOptions |
Returns: bool