blob: 231e9a94644bf0fa3bb21211d87bfa761234d8e4 [file] [log] [blame]
=====================
Generic system models
=====================
This repo contains general reclass system level of salt model. It is to be
used along with service models and concrete cluster deployment model.
Network configuration
=====================
Enable SR-IOV support
---------------------
Include class at `cluster.<name>.openstack.compute`
.. code-block:: yaml
- system.nova.compute.nfv.sriov
For single SR-IOV interface setup you can set parameters:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`sriov_nic01_device_name`
Name of the Physical Function interface (pF)
`sriov_nic01_numvfs`
Number of Virtual Functions (VF), for number of
supported VF check documentation for your network interface card.
`sriov_nic01_physical_network`
Default **physnet1**, label for physical network the interface belongs to.
`sriov_unsafe_interrupts`
Default **False**, needs to be set **True** if your hw platform does not
support interrupt remapping.
Multiple SR-IOV interface setup:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
By default, the metadata model contains configuration for 1 NIC
dedicated for SR-IOV, so we need to setup network interfaces like in the
following example.
.. code-block:: yaml
...
nova:
compute:
sriov:
sriov_nic01:
devname: eth1
physical_network: physnet3
sriov_nic02:
devname: eth2
physical_network: physnet4
sriov_nic03:
devname: eth3
physical_network: physnet3
sriov_nic04:
devname: eth4
physical_network: physnet6
linux:
system:
kernel:
sriov: True
unsafe_interrupts: False
rc:
local: |
#!/bin/sh -e
# Enabling 7 VFs on eth1 PF
echo 7 > /sys/class/net/eth1/device/sriov_numvfs; sleep 2; ip link set eth1 up
# Enabling 15 VFs on eth2 PF
echo 15 > /sys/class/net/eth2/device/sriov_numvfs; sleep 2; ip link set eth2 up
# Enabling 15 VFs on eth3 PF
echo 15 > /sys/class/net/eth3/device/sriov_numvfs; sleep 2; ip link set eth3 up
# Enabling 7 VFs on eth4 PF
echo 7 > /sys/class/net/eth4/device/sriov_numvfs; sleep 2; ip link set eth4 up
exit 0
Grafana
=======
Configure Grafana client
------------------------
The grafana.client talks to Grafana server to create datasource(s) and install
Grafana plugin(s).
User models must first include this class and define corresponding parameters:
- grafana.client
- grafana_protocol (default: http)
- grafana_address
- grafana_port (default: 3000)
- grafana_user
- grafana_password
Then include datasource(s) and define corresponding parameters:
- grafana.client.datasource.influxdb
- grafana_influxdb_address
- grafana_influxdb_port
- grafana_influxdb_user
- grafana_influxdb_password
- grafana_influxdb_database
- grafana_influxdb_is_default (default true)
- grafana.client.datasource.prometheus
- grafana_prometheus_address
- grafana_prometheus_port
- grafana_prometheus_is_default (default true)
Backward compatiblity
---------------------
The class **grafana.client.single** configures grafana client and an InfluxDB
datasource. This is the legacy of LMA (aka StackLight) integration with Grafana
and InfluxDB.
Nagios Monitoring
=================
Configure Hosts dynamically
---------------------------
The nagios formula looks up grains.items throught Salt mines to discover hosts.
There are two different parameters that tell the nagios formula how to determine
the hosts' IP address:
- nagios_monitoring_network: IP subnet(s) in CIDR notation (can be a list)
- nagios_monitoring_interface: interface name(s). Default ['eth0', 'ens3'].
'nagios_monitoring_network' parameter takes precedence over 'nagios_monitoring_interface' list.