Bonny.Server.Watcher behaviour (bonny v0.4.3) View Source
Continuously watch a list Operation for add, modify, and delete events.
Link to this section Summary
Functions
Dispatches an ADDED, MODIFIED, and DELETED events to an controller
Link to this section Functions
Specs
Dispatches an ADDED, MODIFIED, and DELETED events to an controller
Specs
Specs
Specs
Link to this section Callbacks
Specs
add(map()) :: :ok | :error
Specs
delete(map()) :: :ok | :error
Specs
modify(map()) :: :ok | :error
Specs
watch_operation() :: K8s.Operation.t()
K8s.Operation to watch.
Examples
Log all pod lifecycle events
defmodule PodLifecycleLogger do
use Bonny.Server.Watcher
@impl true
def watch_operation() do
K8s.Client.list("v1", :pods, namespace: :all)
end
@impl true
def add(pod) do
log_event(:add, pod)
end
@impl true
def modify(pod) do
log_event(:modify, pod)
end
@impl true
def delete(pod) do
log_event(:delete, pod)
end
@spec log_event(atom, map) :: :ok
def log_event(type, pod) do
name = get_in(pod, ["metadata", "name"])
namespace = get_in(pod, ["metadata", "namepace"]) || "default"
# log type,name,namespace here
end
end