stephrobert.scaleway.lb_frontend module – Manage a Scaleway Load Balancer frontend

Note

This module is part of the stephrobert.scaleway collection (version 0.7.0).

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 stephrobert.scaleway. You need further requirements to be able to use this module, see Requirements for details.

To use it in a playbook, specify: stephrobert.scaleway.lb_frontend.

New in stephrobert.scaleway 0.1.0

Synopsis

  • Update a given frontend, specified by its frontend ID. You can update configuration parameters including its name and the port it listens on.

  • The module reads the resource first and writes the whole body, because this operation replaces the resource: fields you do not set keep the value the API returns. A second run reports no change.

Requirements

The below requirements are needed on the host that executes this module.

  • scaleway >= 2.9.0

Parameters

Parameter

Comments

access_key

string

Scaleway API access key.

api_allow_insecure

boolean

Allow the API endpoint to be reached without verifying its TLS certificate.

Falls back to the Scaleway configuration file, then to false.

Choices:

  • false

  • true

api_timeout

integer

Seconds allowed for a single API call, connection and read.

Without a limit a silent connection would hang the module forever: the Scaleway SDK issues its requests with no timeout at all.

This bounds a single call, not a whole wait. Modules that can wait for a state bound the overall wait separately.

Default: 60

api_url

string

URL of the Scaleway API endpoint.

Point it at a local emulator to exercise a playbook without credentials.

Falls back to the Scaleway configuration file, then to https://api.scaleway.com. It carries no module default on purpose: a default is never unset, so it would always override the profile.

backend_id

string / required

Backend ID (ID of the backend the frontend should pass traffic to).

certificate_id

string

Certificate ID, deprecated in favor of certificate_ids array.

Deprecated by the Scaleway API contract.

To clear this field, write `certificate_id: “”`; omit the option to leave the current value untouched.

Setting it to null is refused: this API reads null as “field not provided” and would change nothing.

certificate_ids

list / elements=string

List of SSL/TLS certificate IDs to bind to the frontend.

To clear this field, write `certificate_ids: []`; omit the option to leave the current value untouched.

Setting it to null is refused: this API reads null as “field not provided” and would change nothing.

config_file

path

Path to the Scaleway configuration file.

connection_rate_limit

integer

Rate limit for new connections established on this frontend. Use 0 value to disable, else value is connections per second.

The contract marks this field clearable, but int has no empty value, so the API cannot clear it. Setting it to null is refused: this API reads null as “field not provided” and would change nothing.

enable_access_logs

boolean

Defines whether to enable access logs on the frontend.

The contract marks this field clearable, but bool has no empty value, so the API cannot clear it. Setting it to null is refused: this API reads null as “field not provided” and would change nothing.

Choices:

  • false

  • true

enable_http3

boolean

Defines whether to enable HTTP/3 protocol on the frontend.

Choices:

  • false

  • true

frontend_id

string / required

Frontend ID.

inbound_port

integer / required

Port the frontend should listen on.

name

string / required

Frontend name.

organization_id

string

Default Organization ID used when an operation does not name one.

profile

string

Name of the profile to read in the Scaleway configuration file.

project_id

string

Default Project ID used when an operation does not name one.

secret_key

string

Scaleway API secret key.

timeout_client

float

Maximum allowed inactivity time on the client side. (in milliseconds)

user_agent

string

Value of the User-Agent header sent to the API.

zone

string / required

The zone you want to target

Choices:

  • "fr-par-1"

  • "fr-par-2"

  • "nl-ams-1"

  • "nl-ams-2"

  • "nl-ams-3"

  • "pl-waw-1"

  • "pl-waw-2"

  • "pl-waw-3"

Attributes

Attribute

Support

Description

check_mode

Support: full

In check mode the module reads the resource and compares it, then reports what it would write without writing it.

diff_mode

Support: full

The module reports the fields that differ, read through the same projection the comparison uses.

Notes

Note

  • Every option can be set from its environment variable, respectively SCW_PROFILE, SCW_CONFIG_PATH, SCW_ACCESS_KEY, SCW_SECRET_KEY, SCW_API_URL, SCW_DEFAULT_ORGANIZATION_ID and SCW_DEFAULT_PROJECT_ID.

  • Module options take precedence over environment variables, which take precedence over the configuration file.

Examples

# The module reads the resource, compares, and writes only what
# differs: run it twice and the second run reports no change.
#
# Check mode compares without writing, and `--diff` shows what would
# change. A parameter you do not pass is a parameter the module does
# not touch.

- name: Update a Scaleway Load Balancer frontend
  stephrobert.scaleway.lb_frontend:
    zone: fr-par-1
    frontend_id: 11111111-2222-3333-4444-555555555555
    backend_id: 11111111-2222-3333-4444-555555555555
    inbound_port: 80
    name: my-frontend
  register: result
- name: Preview the change on a Scaleway Load Balancer frontend without writing
  stephrobert.scaleway.lb_frontend:
    zone: fr-par-1
    frontend_id: 11111111-2222-3333-4444-555555555555
    backend_id: 11111111-2222-3333-4444-555555555555
    inbound_port: 80
    name: my-frontend
  register: result
  check_mode: true
  diff: true

Return Values

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

Key

Description

resource

dictionary

Get the full details of a given frontend, specified by its frontend ID. The response contains the frontend’s full configuration parameters including the backend it is attached to, the port it listens on, and any certificates it has.

Returned: success

backend

dictionary

Backend object the frontend is attached to.

Returned: when the API returns it

certificate

dictionary

Certificate, deprecated in favor of certificate_ids array.

Deprecated by the Scaleway API contract.

Returned: when the API returns it

certificate_ids

list / elements=string

List of SSL/TLS certificate IDs to bind to the frontend.

Returned: when the API returns it

connection_rate_limit

integer

Rate limit for new connections established on this frontend. Use 0 value to disable, else value is connections per second.

Returned: when the API returns it

created_at

string

Date on which the frontend was created. (RFC 3339 format)

Returned: when the API returns it

enable_access_logs

boolean

Defines whether to enable access logs on the frontend.

Returned: when the API returns it

enable_http3

boolean

Defines whether to enable HTTP/3 protocol on the frontend.

Returned: when the API returns it

id

string

Frontend ID.

Returned: when the API returns it

inbound_port

integer

Port the frontend listens on.

Returned: when the API returns it

lb

dictionary

Load Balancer object the frontend is attached to.

Returned: when the API returns it

name

string

Name of the frontend.

Returned: when the API returns it

timeout_client

float

Maximum allowed inactivity time on the client side. (in milliseconds)

Returned: when the API returns it

updated_at

string

Date on which the frontend was last updated. (RFC 3339 format)

Returned: when the API returns it

Authors

  • Stéphane Robert (@stephrobert)