diff --git a/README.md b/README.md index 6e8a13e..2cb4d5a 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,24 @@ # Overview Magpie is a charm used for testing the networking of a juju provider/substrate. -Simply deploy more than one Magpie charm and watch the status messages and -debug logs. +Simply deploy Magpie charm to at least two units and watch the status messages and +debug logs. Magpie will test: - - DNS functionality - - Local hostname lookup - - ICMP between peers - - MTU between leader and clients - - Transfer between leader and clients +- DNS functionality +- Local hostname lookup +- ICMP between peers +- MTU between leader and clients +- Transfer between leader and clients -*MTU and transfer speed are tested with iperf2* +Note : **MTU and transfer speed are tested with iperf2** -Status messages will show the unit numbers that have issues - if there are +Status messages will show the unit numbers that have issues - if there are no problems, there will not be a verbose status message. All actions, strings, queries and actions are logged in the juju logs. - # MTU Notes The MTU size reported by iperf is sometimes 8 or 12 bytes less than the configured @@ -30,17 +29,14 @@ and therefore we ignore that difference and report everything OK. In addition to ICMP and DNS status messages, if a networking problem is detected, the workload status of the agent which has found the issues -will be set to blocked. - +will be set to blocked. # Reactive States This layer will set the following states: -* **`magpie-icmp.failed`** ICMP has failed to one or more units in the peer -relation. -* **`magpie-dns.failed`** DNS has failed to one or more units in the peer -relation. +- **`magpie-icmp.failed`** ICMP has failed to one or more units in the peer relation. +- **`magpie-dns.failed`** DNS has failed to one or more units in the peer relation. Note: work stopped on these states as it is currently unlikely magpie will be consumed as a layer. @@ -48,7 +44,7 @@ Please open an issue against this github repo if more states are required. # Usage -``` +``` code juju deploy magpie -n 2 juju deploy magpie -n 1 --to lxd:1 ``` @@ -83,17 +79,37 @@ This charm also supports the following config values: required_mtu: default: 0 description: | - Desired MTU for all nodes - block if the unit MTU is different + Desired MTU for all nodes - block if the unit MTU is different (accounting for encapsulation). 0 disables. type: int min_speed: default: 0 description: | - Minimum transfer speed in mbits/s required to pass the test. + Minimum transfer speed in mbits/s required to pass the test. 0 disables. ``` e.g. +``` code juju set magpie dns_server=8.8.8.8 required_mtu=9000 min_speed=1000 +``` +## Network spaces + +If you use network spaces in your Juju deployment (as you should) use +`--bind ' magpie='` to force magpie to test that +particular network space. + +It is possible to deploy several magpie charms +(as different Juju applications) to the same server each in a different +network space. + +Example: + +``` code +juju deploy -m magpie cs:~admcleod/magpie magpie-space1 --bind "space1 magpie=space1" -n 5 --to 0,2,1,4,3 +juju deploy -m magpie cs:~admcleod/magpie magpie-space2 --bind "space2 magpie=space2" -n 3 --to 3,2,0 +juju deploy -m magpie cs:~admcleod/magpie magpie-space3 --bind "space3 magpie=space3" -n 4 --to 3,2,1,0 +juju deploy -m magpie cs:~admcleod/magpie magpie-space4 --bind "space4 magpie=space4" -n 4 --to 3,2,1,0 +```