from cephadmlib.container_types import (
CephContainer,
InitContainer,
- is_container_running,
+ SidecarContainer,
extract_uid_gid,
+ is_container_running,
)
from cephadmlib.decorators import (
deprecated_command,
deployment_type: DeploymentType = DeploymentType.DEFAULT,
endpoints: Optional[List[EndPoint]] = None,
init_containers: Optional[List['InitContainer']] = None,
+ sidecars: Optional[List[SidecarContainer]] = None,
) -> None:
endpoints = endpoints or []
daemon_type = ident.daemon_type
osd_fsid=osd_fsid,
endpoints=endpoints,
init_containers=init_containers,
+ sidecars=sidecars,
)
else:
raise RuntimeError('attempting to deploy a daemon without a container image')
start: bool = True,
osd_fsid: Optional[str] = None,
endpoints: Optional[List[EndPoint]] = None,
- init_containers: Optional[List['InitContainer']] = None,
+ init_containers: Optional[List[InitContainer]] = None,
+ sidecars: Optional[List[SidecarContainer]] = None,
) -> None:
data_dir = ident.data_dir(ctx.data_dir)
pre_start_commands: List[runscripts.Command] = []
ident,
container=container,
init_containers=init_containers,
+ sidecars=sidecars,
endpoints=endpoints,
pre_start_commands=pre_start_commands,
post_stop_commands=post_stop_commands,
ic_ids = [
DaemonSubIdentity.must(ic.identity) for ic in init_containers or []
]
- systemd_unit.update_files(ctx, ident, init_container_ids=ic_ids)
+ sc_ids = [
+ DaemonSubIdentity.must(sc.identity) for sc in sidecars or []
+ ]
+ systemd_unit.update_files(
+ ctx, ident, init_container_ids=ic_ids, sidecar_ids=sc_ids
+ )
call_throws(ctx, ['systemctl', 'daemon-reload'])
unit_name = get_unit_name(ident.fsid, ident.daemon_type, ident.daemon_id)
daemon.customize_container_endpoints(daemon_endpoints, deployment_type)
ctr = daemon.container(ctx)
ics = daemon.init_containers(ctx)
+ sccs = daemon.sidecar_containers(ctx)
config, keyring = daemon.config_and_keyring(ctx)
uid, gid = daemon.uid_gid(ctx)
deploy_daemon(
endpoints=daemon_endpoints,
osd_fsid=daemon.osd_fsid,
init_containers=ics,
+ sidecars=sccs,
)
##################################
from typing import List, Tuple, Optional, Dict
from .container_engines import Podman
-from .container_types import CephContainer, InitContainer
+from .container_types import CephContainer, InitContainer, SidecarContainer
from .context import CephadmContext
from .daemon_form import DaemonForm
from .deploy import DeploymentType
"""
return []
+ def sidecar_containers(self, ctx: CephadmContext) -> List[SidecarContainer]:
+ """Returns a list of sidecar containers that should be executed along
+ with the primary service container.
+ """
+ return []
+
def customize_container_binds(
self, ctx: CephadmContext, binds: List[List[str]]
) -> None: