K8s.Client.Runner.Async (k8s v2.7.0)

View Source

K8s.Client runner to process a batch of operations in parallel.

Summary

Functions

Runs multiple operations in parallel. Operations will be returned in same order given. Operations will not cease in event of failure.

Functions

run(conn, operations, http_opts \\ [])

Runs multiple operations in parallel. Operations will be returned in same order given. Operations will not cease in event of failure.

Example

Get a list of pods in parallel:

  pods_to_get = [
    %{"name" => "nginx", "namespace" => "default"},
    %{"name" => "redis", "namespace" => "default"}
  ]

  # Map each one to an individual `GET` operation.
  operations = Enum.map(pods_to_get, fn(%{"name" => name, "namespace" => ns}) ->
     K8s.Client.get("v1", "Pod", namespace: ns, name: name)
  end)

  # Get the results asynchronously
  {:ok, conn} = K8s.Conn.from_file("test/support/kube-config.yaml")
  results = K8s.Client.Runner.Async.run(conn, operations)