actionNetwork

set_bandwidth

Simulate bandwith on a Pod network link

Activity as code

Below are the details and signature of the activity Python module.

Typeaction
Modulechaosk8s.chaosmesh.network.actions
Nameset_bandwidth
Returnmapping

Usage

JSON

{
  "name": "set-bandwidth",
  "type": "action",
  "provider": {
    "type": "python",
    "module": "chaosk8s.chaosmesh.network.actions",
    "func": "set_bandwidth",
    "arguments": {
      "name": "",
      "rate": "",
      "limit": 0,
      "buffer": 0
    }
  }
}

YAML

name: set-bandwidth
provider:
  arguments:
    buffer: 0
    limit: 0
    name: ''
    rate: ''
  func: set_bandwidth
  module: chaosk8s.chaosmesh.network.actions
  type: python
type: action

Arguments

NameTypeDefaultRequiredTitleDescription
namestringYesNameA unique name to identify this particular fault
directionstringtoNoDirectionWhich direction to apply the bandwidth: from, to or both
ratestringYesRatePacket rate, such as 1mbps
limitintegerYesLimitNumber of bytes waiting in the queue
bufferintegerYesLimitAmount of bytes that can be sent simultaenously
nsstringdefaultNoNamespaceNamespace where to apply the fault
namespaces_selectorsstringNoNamespaces SelectorsComma-separated list of namespaces to scope the fault to
label_selectorsstringNoLabel SelectorsComma-separated list of key=value pairs to scope the fault to
annotations_selectorsstringNoAnnotation SelectorsComma-separated list of key=value pairs to scope the fault to
modestringoneNoModeMode of fault injection: one, all, fixed, fixed-percent, random-max-percent
mode_valuestringNoMode ValueValue depending on the mode above
external_targetsstringNoExternal TargetsIPv4 or domain targetted by the fault when direction is set to “to”
target_namespaces_selectorsstringNoTarget Namespaces SelectorsComma-separated list of namespaces to scope the fault to the right target pod. Only works when direction is set to both or from
target_label_selectorsstringNoTarget Label SelectorsComma-separated list of key=value pairs to scope the network fault to the right target pod. Only works when direction is set to both or from
target_annotations_selectorsstringNoTarget Annotation SelectorsComma-separated list of key=value pairs to scope the fault to the right target pod. Only works when direction is set to both or from
target_modestringoneNoTarget ModeTarget Mode of fault injection: one, all, fixed, fixed-percent, random-max-percent
target_mode_valuestringNoTarget Mode ValueValue depending on the mode above

This action relies on Chaos Mesh to perform the fault. Make sure to install it before hand.

Signature

def set_bandwidth(name: str,
                  rate: str,
                  limit: int,
                  buffer: int,
                  ns: str = 'default',
                  namespaces_selectors: Optional[str] = None,
                  label_selectors: Optional[str] = None,
                  annotations_selectors: Optional[str] = None,
                  mode: str = 'one',
                  mode_value: Optional[str] = None,
                  direction: str = 'to',
                  peakrate: Optional[int] = None,
                  minburst: Optional[int] = None,
                  external_targets: Union[str, List[str], NoneType] = None,
                  target_mode: Optional[str] = 'one',
                  target_mode_value: Optional[str] = None,
                  target_namespaces_selectors: Union[str, List[str],
                                                     NoneType] = None,
                  target_label_selectors: Union[str, Dict[str, Any],
                                                NoneType] = None,
                  target_annotations_selectors: Union[str, Dict[str, Any],
                                                      NoneType] = None,
                  secrets: Dict[str, Dict[str, str]] = None) -> Dict[str, Any]:
    pass