preview_only: bool = False,
networks: Optional[List[str]] = None,
extra_container_args: Optional[List[str]] = None,
+ extra_entrypoint_args: Optional[List[str]] = None,
custom_configs: Optional[List[CustomConfig]] = None,
):
self.config = {k.replace(' ', '_'): v for k, v in config.items()}
self.extra_container_args: Optional[List[str]] = extra_container_args
+ self.extra_entrypoint_args: Optional[List[str]] = extra_entrypoint_args
self.custom_configs: Optional[List[CustomConfig]] = custom_configs
@classmethod
ret['networks'] = self.networks
if self.extra_container_args:
ret['extra_container_args'] = self.extra_container_args
+ if self.extra_entrypoint_args:
+ ret['extra_entrypoint_args'] = self.extra_entrypoint_args
if self.custom_configs:
ret['custom_configs'] = [c.to_json() for c in self.custom_configs]
networks: Optional[List[str]] = None,
port: Optional[int] = None,
extra_container_args: Optional[List[str]] = None,
+ extra_entrypoint_args: Optional[List[str]] = None,
custom_configs: Optional[List[CustomConfig]] = None,
):
assert service_type == 'nfs'
'nfs', service_id=service_id,
placement=placement, unmanaged=unmanaged, preview_only=preview_only,
config=config, networks=networks, extra_container_args=extra_container_args,
- custom_configs=custom_configs)
+ extra_entrypoint_args=extra_entrypoint_args, custom_configs=custom_configs)
self.port = port
networks: Optional[List[str]] = None,
subcluster: Optional[str] = None, # legacy, only for from_json on upgrade
extra_container_args: Optional[List[str]] = None,
+ extra_entrypoint_args: Optional[List[str]] = None,
custom_configs: Optional[List[CustomConfig]] = None,
):
assert service_type == 'rgw', service_type
'rgw', service_id=service_id,
placement=placement, unmanaged=unmanaged,
preview_only=preview_only, config=config, networks=networks,
- extra_container_args=extra_container_args, custom_configs=custom_configs)
+ extra_container_args=extra_container_args, extra_entrypoint_args=extra_entrypoint_args,
+ custom_configs=custom_configs)
#: The RGW realm associated with this service. Needs to be manually created
self.rgw_realm: Optional[str] = rgw_realm
config: Optional[Dict[str, str]] = None,
networks: Optional[List[str]] = None,
extra_container_args: Optional[List[str]] = None,
+ extra_entrypoint_args: Optional[List[str]] = None,
custom_configs: Optional[List[CustomConfig]] = None,
):
assert service_type == 'iscsi'
preview_only=preview_only,
config=config, networks=networks,
extra_container_args=extra_container_args,
+ extra_entrypoint_args=extra_entrypoint_args,
custom_configs=custom_configs)
#: RADOS pool where ceph-iscsi config data is stored.
unmanaged: bool = False,
ssl: bool = False,
extra_container_args: Optional[List[str]] = None,
+ extra_entrypoint_args: Optional[List[str]] = None,
custom_configs: Optional[List[CustomConfig]] = None,
):
assert service_type == 'ingress'
placement=placement, config=config,
networks=networks,
extra_container_args=extra_container_args,
+ extra_entrypoint_args=extra_entrypoint_args,
custom_configs=custom_configs
)
self.backend_service = backend_service
preview_only: bool = False,
image: Optional[str] = None,
entrypoint: Optional[str] = None,
+ extra_entrypoint_args: Optional[List[str]] = None,
uid: Optional[int] = None,
gid: Optional[int] = None,
volume_mounts: Optional[Dict[str, str]] = {},
- args: Optional[List[str]] = [],
+ args: Optional[List[str]] = [], # args for the container runtime, not entrypoint
envs: Optional[List[str]] = [],
privileged: Optional[bool] = False,
bind_mounts: Optional[List[List[str]]] = None,
service_type, service_id,
placement=placement, unmanaged=unmanaged,
preview_only=preview_only, config=config,
- networks=networks)
+ networks=networks, extra_entrypoint_args=extra_entrypoint_args)
self.image = image
self.entrypoint = entrypoint
preview_only: bool = False,
port: Optional[int] = None,
extra_container_args: Optional[List[str]] = None,
+ extra_entrypoint_args: Optional[List[str]] = None,
custom_configs: Optional[List[CustomConfig]] = None,
):
assert service_type in ['grafana', 'node-exporter', 'prometheus', 'alertmanager',
placement=placement, unmanaged=unmanaged,
preview_only=preview_only, config=config,
networks=networks, extra_container_args=extra_container_args,
+ extra_entrypoint_args=extra_entrypoint_args,
custom_configs=custom_configs)
self.service_type = service_type
port: Optional[int] = None,
secure: bool = False,
extra_container_args: Optional[List[str]] = None,
+ extra_entrypoint_args: Optional[List[str]] = None,
custom_configs: Optional[List[CustomConfig]] = None,
):
assert service_type == 'alertmanager'
'alertmanager', service_id=service_id,
placement=placement, unmanaged=unmanaged,
preview_only=preview_only, config=config, networks=networks, port=port,
- extra_container_args=extra_container_args, custom_configs=custom_configs)
+ extra_container_args=extra_container_args, extra_entrypoint_args=extra_entrypoint_args,
+ custom_configs=custom_configs)
# Custom configuration.
#
port: Optional[int] = None,
initial_admin_password: Optional[str] = None,
extra_container_args: Optional[List[str]] = None,
+ extra_entrypoint_args: Optional[List[str]] = None,
custom_configs: Optional[List[CustomConfig]] = None,
):
assert service_type == 'grafana'
'grafana', service_id=service_id,
placement=placement, unmanaged=unmanaged,
preview_only=preview_only, config=config, networks=networks, port=port,
- extra_container_args=extra_container_args, custom_configs=custom_configs)
+ extra_container_args=extra_container_args, extra_entrypoint_args=extra_entrypoint_args,
+ custom_configs=custom_configs)
self.initial_admin_password = initial_admin_password
retention_time: Optional[str] = None,
retention_size: Optional[str] = None,
extra_container_args: Optional[List[str]] = None,
+ extra_entrypoint_args: Optional[List[str]] = None,
custom_configs: Optional[List[CustomConfig]] = None,
):
assert service_type == 'prometheus'
'prometheus', service_id=service_id,
placement=placement, unmanaged=unmanaged,
preview_only=preview_only, config=config, networks=networks, port=port,
- extra_container_args=extra_container_args, custom_configs=custom_configs)
+ extra_container_args=extra_container_args, extra_entrypoint_args=extra_entrypoint_args,
+ custom_configs=custom_configs)
self.retention_time = retention_time.strip() if retention_time else None
self.retention_size = retention_size.strip() if retention_size else None
preview_only: bool = False,
port: Optional[int] = None,
extra_container_args: Optional[List[str]] = None,
+ extra_entrypoint_args: Optional[List[str]] = None,
custom_configs: Optional[List[CustomConfig]] = None,
):
assert service_type == 'snmp-gateway'
unmanaged=unmanaged,
preview_only=preview_only,
extra_container_args=extra_container_args,
+ extra_entrypoint_args=extra_entrypoint_args,
custom_configs=custom_configs)
self.service_type = service_type
unmanaged: bool = False,
preview_only: bool = False,
extra_container_args: Optional[List[str]] = None,
+ extra_entrypoint_args: Optional[List[str]] = None,
custom_configs: Optional[List[CustomConfig]] = None,
):
assert service_type == 'mds'
unmanaged=unmanaged,
preview_only=preview_only,
extra_container_args=extra_container_args,
+ extra_entrypoint_args=extra_entrypoint_args,
custom_configs=custom_configs)
def validate(self) -> None: