# OVN role

This is the description of the role OVN.

<!-- TOC -->
* [OVN role](#ovn-role)
  * [Variable reference](#variable-reference)
    * [Mandatory variables](#mandatory-variables)
    * [Optional variables](#optional-variables)
  * [Handlers](#handlers)
  * [CLI tools](#cli-tools)
<!-- TOC -->

## Variable reference

### Mandatory variables

| Variable              | Description                                                                                           | Type of variable | Example value          |
|-----------------------|-------------------------------------------------------------------------------------------------------|------------------|------------------------|
| ovn_cluster_name      | name of the incus cluster. Must be defined in a group_vars and have the same name that this group_var | str              | th3_core               |
| ovn_cluster_main_name | ansible_hostname of the central DB main server                                                        | str              | srv-203                |
| ovn_ip                | the ip on which ovn daemons listen on, without CIDR                                                   | str              | 10.24.10.10            |
| ovn_central_servers   | list of servers (server name must match their ansible inventory name) hosting the ovn db              | list[str]        | ["srv-382", "srv-383"] |
| ovn_ic_db_servers     | list of servers (server name must match their ansible inventory name) hosting the ovn ic db           | list[str]        | ["srv-382", "srv-383"] |

### Optional variables

| Variable                 | Description                                               | Type of variable | Default value | Example value      |
|--------------------------|-----------------------------------------------------------|------------------|---------------|--------------------|
| ovn_host                 | is this host an ovn host                                  | bool             | `true`        | `false`            |
| ovn_ic_name              | name of the ovn ic this cluster is a part of              | str              | None          | `incus_ic_cluster` |
| ovn_ic_cluster_main_name | ansible_hostname of the OVN IC DB main server             | str              | None          | `srv-383`          |
| ovn_ic                   | is this host an ovn ic host                               | bool             | `true`        | `false`            |
| ovn_ssl                  | enable SSL connection; has to be set at the cluster level | bool             | `false`       | `true`             |

## Handlers

In this role handlers order is very important, do not change it without reasons.

Ansible doc reminder: `Handlers are executed in the order they are defined in the handlers section` (https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_handlers.html#notifying-handlers)

## CLI tools

`ovn-nbctl` OVN northbound DB management utility
`ovn-sbctl` OVN southbound DB management utility
This cli tools manage only the DB content to manage the DB cluster you have to use `ovs-appctl`.
By exemple for OVN SB DB:
```
ovs-appctl -t /var/run/ovn/ovnsb_db.ctl list-commands
```
