# etcd3 – Set or delete key value pairs from an etcd3 cluster

New in version 2.5.

- Synopsis
- Requirements
- Parameters
- Examples
- Return Values
- Status

## Synopsis

- Sets or deletes values in etcd3 cluster using its v3 api.
- Needs python etcd3 lib to work

## Requirements

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

- etcd3

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
ca_cert - added in 2.8 |  | The Certificate Authority to use to verify the etcd host. Required if client_cert and client_key are defined.
client_cert - added in 2.8 |  | PEM formatted certificate chain file to be used for SSL client authentication. Required if client_key is defined.
client_key - added in 2.8 |  | PEM formatted file that contains your private key to be used for SSL client authentication. Required if client_cert is defined.
host - | Default: "localhost" | the IP address of the cluster
key - / required |  | the key where the information is stored in the cluster
password - added in 2.8 |  | The password to use for authentication. Required if user is defined.
port - | Default: 2379 | the port number used to connect to the cluster
state - / required |  | the state of the value for the key. can be present or absent
timeout - added in 2.8 |  | The socket level timeout in seconds.
user - added in 2.8 |  | The etcd user to authenticate with.
value - / required |  | the information stored

## Examples

    # Store a value "bar" under the key "foo" for a cluster located "http://localhost:2379"
    - etcd3:
        key: "foo"
        value: "baz3"
        host: "localhost"
        port: 2379
        state: "present"

    # Authenticate using user/password combination with a timeout of 10 seconds
    - etcd3:
        key: "foo"
        value: "baz3"
        state: "present"
        user: "someone"
        password: "password123"
        timeout: 10

    # Authenticate using TLS certificates
    - etcd3:
        key: "foo"
        value: "baz3"
        state: "present"
        ca_cert: "/etc/ssl/certs/CA_CERT.pem"
        client_cert: "/etc/ssl/certs/cert.crt"
        client_key: "/etc/ssl/private/key.pem"

## Return Values

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

Key | Returned | Description
--- | --- | ---
key string | always | The key that was queried
old_value string | always | The previous value in the cluster

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]

### Authors

- Jean-Philippe Evrard (@evrardjp)
- Victor Fauth (@vfauth)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.