damex.cloudflare.cloudflare_r2_bucket module – Ensure Cloudflare R2 buckets

Note

This module is part of the damex.cloudflare collection (version 1.1.3).

It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install damex.cloudflare.

To use it in a playbook, specify: damex.cloudflare.cloudflare_r2_bucket.

Synopsis

Parameters

Parameter

Comments

account_api_key

string

Cloudflare account API key.

Required together with account_email if api_token is not provided.

account_email

string

Cloudflare account email.

Required together with account_api_key if api_token is not provided.

account_id

string

Cloudflare account identifier.

Required if account_name is not provided.

account_name

string

Cloudflare account name.

Required if account_id is not provided.

Resolved to account identifier via the Cloudflare API.

api_token

string

Cloudflare API token.

Required if account_email and account_api_key are not provided.

Can be specified in CLOUDFLARE_TOKEN environment variable.

location_hint

string

Bucket location hint.

Only used when creating a new bucket.

Cannot be changed after bucket creation.

Choices:

  • "apac"

  • "eeur"

  • "enam"

  • "weur"

  • "wnam"

  • "oc"

name

string / required

Bucket name.

state

string

Bucket state.

Choices:

  • "absent"

  • "present" ← (default)

storage_class

string

Default storage class for newly uploaded objects.

Choices:

  • "Standard" ← (default)

  • "InfrequentAccess"

Attributes

Attribute

Support

Description

check_mode

Support: full

Supports check mode.

diff_mode

Support: full

Supports diff mode.

Examples

- name: Ensure R2 bucket
  damex.cloudflare.cloudflare_r2_bucket:
    name: my-bucket
    account_id: 023e105f4ecef8ad9ca31a8372d0c353
    api_token: "{{ cloudflare_api_token }}"

- name: Ensure R2 bucket in Western Europe
  damex.cloudflare.cloudflare_r2_bucket:
    name: my-bucket
    account_id: 023e105f4ecef8ad9ca31a8372d0c353
    api_token: "{{ cloudflare_api_token }}"
    location_hint: weur

- name: Ensure R2 bucket with infrequent access storage class
  damex.cloudflare.cloudflare_r2_bucket:
    name: my-bucket
    account_id: 023e105f4ecef8ad9ca31a8372d0c353
    api_token: "{{ cloudflare_api_token }}"
    storage_class: InfrequentAccess

- name: Ensure R2 bucket is absent
  damex.cloudflare.cloudflare_r2_bucket:
    name: my-bucket
    account_id: 023e105f4ecef8ad9ca31a8372d0c353
    api_token: "{{ cloudflare_api_token }}"
    state: absent

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

bucket

dictionary

Bucket object from the Cloudflare API.

Returned: when state is present

creation_date

string

Bucket creation timestamp.

Returned: success

Sample: "2024-01-01T00:00:00.000Z"

location

string

Bucket location.

Returned: success

Sample: "wnam"

name

string

Bucket name.

Returned: success

Sample: "my-bucket"

storage_class

string

Default storage class.

Returned: success

Sample: "Standard"

Authors

  • Roman Kuzmitskii (@damex)