
Cloudflare R2 Upsert
CertifiedUpsert Cloudflare DNS record
Cloudflare R2 Upsert
Upsert Cloudflare DNS record
Creates a DNS record if it does not exist, otherwise patches the first match by name and type; defaults to automatic TTL (1) and proxying disabled.
type: io.kestra.plugin.cloudflare.dns.records.UpsertExamples
Ensure A record exists
id: upsert_dns_record
namespace: company.team
tasks:
- id: ensure_dns
type: io.kestra.plugin.cloudflare.dns.records.Upsert
apiToken: "{{ secret('CLOUDFLARE_API_TOKEN') }}"
zoneId: "your_zone_id"
recordType: "A"
name: "app.example.com"
content: "1.2.3.4"
Properties
apiToken *Requiredstring
Cloudflare API token
Your Cloudflare API token. Create one in the Cloudflare dashboard with DNS read/write permissions.
content *Requiredstring
Record content
DNS record content value
name *Requiredstring
Record name
DNS record name to create or update
recordType *Requiredstring
AAAAACNAMETXTMXNSSRVPTRCAASOARecord type
DNS record type (for example: A, AAAA, CNAME)
zoneId *Requiredstring
Zone ID
Cloudflare zone identifier
baseUrl string
https://api.cloudflare.com/client/v4Cloudflare API base URL
Base URL for Cloudflare API. Usually you don’t need to change this.
options Non-dynamic
HTTP client options
Optional advanced HTTP settings like timeouts or proxy.
io.kestra.core.http.client.configurations.HttpConfiguration
falseIf true, allow a failed response code (response code >= 400)
List of response code allowed for this request
The authentication to use.
io.kestra.core.http.client.configurations.BasicAuthConfiguration
The password for HTTP basic authentication.
The username for HTTP basic authentication.
io.kestra.core.http.client.configurations.BearerAuthConfiguration
The token for bearer token authentication.
io.kestra.core.http.client.configurations.DigestAuthConfiguration
The password for HTTP Digest authentication.
The username for HTTP Digest authentication.
The password for HTTP basic authentication. Deprecated, use auth property with a BasicAuthConfiguration instance instead.
The username for HTTP basic authentication. Deprecated, use auth property with a BasicAuthConfiguration instance instead.
durationThe time allowed to establish a connection to the server before failing.
durationThe time an idle connection can remain in the client's connection pool before being closed.
UTF-8The default charset for the request.
java.nio.charset.Charset
trueWhether to enable TCP Keep-Alive extended socket options (TCP_KEEPIDLE, TCP_KEEPINTERVAL, TCP_KEEPCOUNT).
Set to false when running on Windows workers, as these extended socket options are not supported by the Windows JDK and will cause connection failures.
trueWhether redirects should be followed automatically.
ALLTRACEDEBUGINFOWARNERROROFFNOT_SPECIFIEDThe log level for the HTTP client.
REQUEST_HEADERSREQUEST_BODYRESPONSE_HEADERSRESPONSE_BODYThe enabled log.
The maximum content length of the response.
The proxy configuration.
io.kestra.core.http.client.configurations.ProxyConfiguration
The address of the proxy server.
The password for proxy authentication.
The port of the proxy server.
DIRECTDIRECTHTTPSOCKSThe type of proxy to use.
The username for proxy authentication.
The address of the proxy server.
The password for proxy authentication.
The port of the proxy server.
DIRECTHTTPSOCKSThe type of proxy to use.
The username for proxy authentication.
durationThe time allowed for a read connection to remain idle before closing it.
durationThe maximum time allowed for reading data from the server before failing.
The SSL request options
io.kestra.core.http.client.configurations.SslOptions
Whether to disable checking of the remote SSL certificate.
Only applies if no trust store is configured. Note: This makes the SSL connection insecure and should only be used for testing. If you are using a self-signed certificate, set up a trust store instead.
The timeout configuration.
io.kestra.core.http.client.configurations.TimeoutConfiguration
The time allowed to establish a connection to the server before failing.
PT5MThe time allowed for a read connection to remain idle before closing it.
pluginDefaultsRef Non-dynamicstring
Reference (ref) of the pluginDefaults to apply to this task.
proxied booleanstring
falseProxied
Enable Cloudflare proxying; defaults to false
ttl integerstring
1TTL
TTL in seconds; 1 uses Cloudflare automatic (default)
Outputs
action string
Action
Whether the record was created or updated
content string
Content
Record content
name string
Name
Record name
proxied boolean
Proxied
Whether Cloudflare proxying is enabled
recordId string
Record ID
ID of the created or updated record
ttl integer
TTL
Record TTL in seconds