# `Bonny.Server.Reconciler`
[🔗](https://github.com/coryodaniel/bonny/blob/v1.5.0/lib/bonny/server/reconciler.ex#L1)

Creates a stream that, when run, streams a list of resources and calls `reconcile/1`
on the given controller for each resource in the stream in parallel.

## Example

    reconciliation_stream = Bonny.Server.Reconciler.get_stream(controller)
    Task.async(fn -> Stream.run(reconciliation_stream) end)

# `reconcile`

```elixir
@callback reconcile(map()) :: :ok | {:ok, any()} | {:error, any()}
```

# `get_raw_stream`

```elixir
@spec get_raw_stream(K8s.Conn.t(), K8s.Operation.t(), keyword()) :: Enumerable.t()
```

# `get_stream`

```elixir
@spec get_stream(module(), K8s.Conn.t(), K8s.Operation.t(), keyword()) ::
  Enumerable.t(Bonny.Resource.t())
```

Prepares a stream wich maps each resoruce returned by the `reconcile_operation` to
a function `reconcile/1` on the given `module`. If given, the stream_opts are passed
to K8s.Client.stream/3

---

*Consult [api-reference.md](api-reference.md) for complete listing*
