Configuration¶
certbot-dns-oraclecloud is configured through Certbot plugin options. API-key
authentication additionally reads one profile from an OCI SDK configuration
file. Authentication selection is explicit: the plugin does not auto-detect a
mode or fall back to another mode when authentication fails.
Environment variables¶
The plugin does not read any environment variables directly. In particular, API-key authentication uses the file and profile selected by the Certbot options below.
Instance-principal and resource-principal signers are constructed by the OCI Python SDK. Any workload metadata or environment supplied to those signers is owned by the OCI runtime and SDK, not parsed by this plugin. Consult the OCI SDK documentation for the signer requirements of the environment where Certbot runs.
The repository's release workflow defines these job-scoped variables; they are not end-user plugin settings:
| Variable | Required | Default | Description |
|---|---|---|---|
PACKAGE_NAME |
Release job only | certbot-dns-oraclecloud |
Used by the semantic-release build command when updating the uv lockfile. |
GITHUB_TOKEN |
Release job only | Supplied by GitHub Actions | Authorizes Python Semantic Release to create the GitHub release. |
GH_TOKEN |
Release job only | Supplied by GitHub Actions | Makes the same workflow token available to GitHub CLI-compatible release tooling. |
Config file format¶
API-key mode uses the OCI SDK's INI-style configuration file. The plugin passes
the selected file and profile to oci.config.from_file, validates the returned
mapping with oci.config.validate_config, and constructs the DNS client only
after validation succeeds.
A minimal profile has this shape:
[CERTBOT]
user=ocid1.user.oc1..example
fingerprint=aa:bb:cc:dd
tenancy=ocid1.tenancy.oc1..example
region=your-oci-region
key_file=/secure/path/certbot_api_key.pem
Select it explicitly:
certbot certonly --authenticator dns-oraclecloud \
--dns-oraclecloud-auth-type api_key \
--dns-oraclecloud-credentials ~/.oci/config \
--dns-oraclecloud-profile CERTBOT \
-d example.com
The plugin expands ~ in the credentials path before passing it to the OCI
SDK. Protect both the configuration file and private key with appropriate
filesystem permissions.
Required vs optional settings¶
| Setting | Required | Accepted values | Behaviour |
|---|---|---|---|
--dns-oraclecloud-auth-type |
Optional | api_key, instance_principal, resource_principal |
Defaults to api_key. The selected mode must initialize successfully; there is no fallback. |
--dns-oraclecloud-credentials |
API-key mode only | Path to an OCI SDK config file | Defaults to ~/.oci/config. Ignored by principal modes. |
--dns-oraclecloud-profile |
API-key mode only | Profile section name | Defaults to DEFAULT. Ignored by principal modes. |
--dns-oraclecloud-propagation-seconds |
Optional | Number of seconds | Defaults to 60; controls how long Certbot waits before ACME validation. |
For API-key mode, the chosen OCI configuration must exist, the chosen profile
must exist, and the OCI SDK must accept its contents and private key. The plugin
intentionally reports these failures as Unable to initialize OCI API-key
authentication. without echoing credential details.
Instance-principal mode requires the OCI SDK to initialize an instance-principal signer. Resource-principal mode likewise requires a resource-principal signer. Signer initialization failures stop Certbot with a redacted plugin error.
Defaults¶
| Setting | Default | Defined in |
|---|---|---|
| Authentication mode | api_key |
Authenticator.add_parser_arguments |
| OCI configuration path | ~/.oci/config |
Authenticator.add_parser_arguments |
| OCI profile | DEFAULT |
Authenticator.add_parser_arguments |
| DNS propagation wait | 60 seconds |
Authenticator.add_parser_arguments |
| TXT record TTL | 60 seconds |
Authenticator.ttl |
| OCI DNS scope | GLOBAL |
DNS client adapter calls |
The TXT TTL is fixed by the plugin. The propagation wait is independently configurable and does not change the record TTL.
Per-environment overrides¶
The project has no .env layering and no development, staging, or production
configuration files. Supply the appropriate plugin options to each Certbot
invocation.
For multiple API-key environments, keep separate OCI profiles and select the
desired profile with --dns-oraclecloud-profile; use
--dns-oraclecloud-credentials as well when the profiles are stored in
different files. For OCI workloads, select instance_principal or
resource_principal explicitly and configure that workload's identity and DNS
permissions as described in Authentication and
OCI IAM.
Only public/global OCI DNS zones are supported. Private DNS views and zones are not a configurable target because they cannot satisfy public ACME DNS-01 validation.