Bella.Server.Watcher behaviour (bella v0.0.1) 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 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 Bella.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
Link to this section Functions
Specs
Dispatches an ADDED, MODIFIED, and DELETED events to an controller