View Source K8s.Client.Runner.Async (k8s v2.4.2)
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
@spec run(K8s.Conn.t(), [K8s.Operation.t()], keyword()) :: [ K8s.Client.Runner.Base.result_t() ]
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)