preview_only: bool = False,
networks: Optional[List[str]] = None,
extra_container_args: Optional[List[str]] = None,
+ extra_entrypoint_args: Optional[List[str]] = None,
):
#: See :ref:`orchestrator-cli-placement-spec`.
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
@classmethod
@handle_type_error
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
c = {}
for key, val in sorted(self.__dict__.items(), key=lambda tpl: tpl[0]):
networks: Optional[List[str]] = None,
port: Optional[int] = None,
extra_container_args: Optional[List[str]] = None,
+ extra_entrypoint_args: Optional[List[str]] = None,
):
assert service_type == 'nfs'
super(NFSServiceSpec, self).__init__(
'nfs', service_id=service_id,
placement=placement, unmanaged=unmanaged, preview_only=preview_only,
- config=config, networks=networks, extra_container_args=extra_container_args)
+ config=config, networks=networks, extra_container_args=extra_container_args,
+ extra_entrypoint_args=extra_entrypoint_args)
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,
):
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)
+ extra_container_args=extra_container_args, extra_entrypoint_args=extra_entrypoint_args)
#: 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,
):
assert service_type == 'iscsi'
super(IscsiServiceSpec, self).__init__('iscsi', service_id=service_id,
placement=placement, unmanaged=unmanaged,
preview_only=preview_only,
config=config, networks=networks,
- extra_container_args=extra_container_args)
+ extra_container_args=extra_container_args,
+ extra_entrypoint_args=extra_entrypoint_args)
#: RADOS pool where ceph-iscsi config data is stored.
self.pool = pool
unmanaged: bool = False,
ssl: bool = False,
extra_container_args: Optional[List[str]] = None,
+ extra_entrypoint_args: Optional[List[str]] = None,
):
assert service_type == 'ingress'
'ingress', service_id=service_id,
placement=placement, config=config,
networks=networks,
- extra_container_args=extra_container_args
+ extra_container_args=extra_container_args,
+ extra_entrypoint_args=extra_entrypoint_args
)
self.backend_service = backend_service
self.frontend_port = frontend_port
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,
):
assert service_type in ['grafana', 'node-exporter', 'prometheus', 'alertmanager']
service_type, service_id,
placement=placement, unmanaged=unmanaged,
preview_only=preview_only, config=config,
- networks=networks, extra_container_args=extra_container_args)
+ networks=networks, extra_container_args=extra_container_args,
+ extra_entrypoint_args=extra_entrypoint_args)
self.service_type = service_type
self.port = port
port: Optional[int] = None,
secure: bool = False,
extra_container_args: Optional[List[str]] = None,
+ extra_entrypoint_args: Optional[List[str]] = None,
):
assert service_type == 'alertmanager'
super(AlertManagerSpec, self).__init__(
'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)
+ extra_container_args=extra_container_args, extra_entrypoint_args=extra_entrypoint_args)
# 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,
):
assert service_type == 'grafana'
super(GrafanaSpec, self).__init__(
'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)
+ extra_container_args=extra_container_args, extra_entrypoint_args=extra_entrypoint_args)
self.initial_admin_password = initial_admin_password
port: Optional[int] = None,
retention_time: Optional[str] = None,
extra_container_args: Optional[List[str]] = None,
+ extra_entrypoint_args: Optional[List[str]] = None,
):
assert service_type == 'prometheus'
super(PrometheusSpec, self).__init__(
'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)
+ extra_container_args=extra_container_args, extra_entrypoint_args=extra_entrypoint_args)
self.retention_time = retention_time
preview_only: bool = False,
port: Optional[int] = None,
extra_container_args: Optional[List[str]] = None,
+ extra_entrypoint_args: Optional[List[str]] = None,
):
assert service_type == 'snmp-gateway'
placement=placement,
unmanaged=unmanaged,
preview_only=preview_only,
- extra_container_args=extra_container_args)
+ extra_container_args=extra_container_args,
+ extra_entrypoint_args=extra_entrypoint_args)
self.service_type = service_type
self.snmp_version = snmp_version
unmanaged: bool = False,
preview_only: bool = False,
extra_container_args: Optional[List[str]] = None,
+ extra_entrypoint_args: Optional[List[str]] = None,
):
assert service_type == 'mds'
super(MDSSpec, self).__init__('mds', service_id=service_id,
config=config,
unmanaged=unmanaged,
preview_only=preview_only,
- extra_container_args=extra_container_args)
+ extra_container_args=extra_container_args,
+ extra_entrypoint_args=extra_entrypoint_args)
def validate(self) -> None:
super(MDSSpec, self).validate()