This interface handles communication between subordinate charms, that provide a container runtime and charms requiring a container runtime.
The providing side of the container interface provides a place for a container runtime to connect to.
Your charm should respond to the endpoint.{endpoint_name}.available
state,
which indicates that there is a container runtime connected.
A trivial example of handling this interface would be:
@when('endpoint.containerd.joined')
def update_kubelet_config(containerd):
endpoint = endpoint_from_flag('endpoint.containerd.joined')
config = endpoint.get_config()
kubelet.config['container-runtime'] = \
config['runtime']
The requiring side of the container interface requires a place for a container runtime to connect to.
Your charm should set {endpoint_name}.available
state,
which indicates that the container is runtime connected.
A trivial example of handling this interface would be:
@when('endpoint.containerd.joined')
def pubish_config():
endpoint = endpoint_from_flag('endpoint.containerd.joined')
endpoint.set_config(
socket='unix:///var/run/containerd/containerd.sock',
runtime='remote',
nvidia_enabled=False
)