mimir_cluster/v0¶
Usage¶
This relation interface describes the protocol for communication between the mimir-coordinator-k8s charm and the mimir-worker-k8s charm. The interface is only intended to be used between these two charms.
Direction¶
The mimir_cluster interface implements a provider/requirer pattern.
The provider is mimir-coordinator-k8s and the requirers are mimir-worker-k8s.
flowchart TD
mimir-coordinator
mimir-worker-0 -- mimir_cluster --> mimir-coordinator
mimir-worker-1 -- mimir_cluster --> mimir-coordinator
mimir-worker-2 -- mimir_cluster --> mimir-coordinator
Behavior¶
The requirer and provider should provide specific information to facilitate the running of Mimir.
Provider¶
Is expected to provided a working configuration file for the mimir workers to use.
Requirer¶
Provide information about how to access the node api endpoints of the worker application.
Provide juju topology information for the worker nodes.
Specify which roles the worker application will run with.
Relation Data¶
[Pydantic Schema] All fields are json-serialized.
Example¶
provider:
app: {<python object representing mimir config>}
requirer:
app: {"roles": ["read"]}
unit:
juju_topology:
unit: "worker/0"
app: "worker"
charm: "mimir-worker-k8s"
model: "cos"
model_uuid: "<uuid of model>"
address: "hostname"
port: 12345
scheme: "http"