--- /dev/null
+========================
+Custom Container Service
+========================
+
+The orchestrator enables custom containers to be deployed using a YAML file.
+A corresponding :ref:`orchestrator-cli-service-spec` must look like:
+
+.. code-block:: yaml
+
+ service_type: container
+ service_id: foo
+ placement:
+ ...
+ image: docker.io/library/foo:latest
+ entrypoint: /usr/bin/foo
+ uid: 1000
+ gid: 1000
+ args:
+ - "--net=host"
+ - "--cpus=2"
+ ports:
+ - 8080
+ - 8443
+ envs:
+ - SECRET=mypassword
+ - PORT=8080
+ - PUID=1000
+ - PGID=1000
+ volume_mounts:
+ CONFIG_DIR: /etc/foo
+ bind_mounts:
+ - ['type=bind', 'source=lib/modules', 'destination=/lib/modules', 'ro=true']
+ dirs:
+ - CONFIG_DIR
+ files:
+ CONFIG_DIR/foo.conf:
+ - refresh=true
+ - username=xyz
+ - "port: 1234"
+
+where the properties of a service specification are:
+
+* ``service_id``
+ A unique name of the service.
+* ``image``
+ The name of the Docker image.
+* ``uid``
+ The UID to use when creating directories and files in the host system.
+* ``gid``
+ The GID to use when creating directories and files in the host system.
+* ``entrypoint``
+ Overwrite the default ENTRYPOINT of the image.
+* ``args``
+ A list of additional Podman/Docker command line arguments.
+* ``ports``
+ A list of TCP ports to open in the host firewall.
+* ``envs``
+ A list of environment variables.
+* ``bind_mounts``
+ When you use a bind mount, a file or directory on the host machine
+ is mounted into the container. Relative `source=...` paths will be
+ located below `/var/lib/ceph/<cluster-fsid>/<daemon-name>`.
+* ``volume_mounts``
+ When you use a volume mount, a new directory is created within
+ Docker’s storage directory on the host machine, and Docker manages
+ that directory’s contents. Relative source paths will be located below
+ `/var/lib/ceph/<cluster-fsid>/<daemon-name>`.
+* ``dirs``
+ A list of directories that are created below
+ `/var/lib/ceph/<cluster-fsid>/<daemon-name>`.
+* ``files``
+ A dictionary, where the key is the relative path of the file and the
+ value the file content. The content must be double quoted when using
+ a string. Use '\\n' for line breaks in that case. Otherwise define
+ multi-line content as list of strings. The given files will be created
+ below the directory `/var/lib/ceph/<cluster-fsid>/<daemon-name>`.
+ The absolute path of the directory where the file will be created must
+ exist. Use the `dirs` property to create them if necessary.
host-management
osd
rgw
+ custom-container
service-management
upgrade
Cephadm operations <operations>
See :ref:`orchestrator-cli-placement-spec` for details of the placement specification.
-Deploying custom containers
-===========================
-It is also possible to choose different containers than the default containers to deploy Ceph. See :ref:`containers` for information about your options in this regard.
.. _cluster network: ../rados/configuration/network-config-ref#cluster-network
ceph orch <start|stop|restart|redeploy|reconfig> <service_name>
-Deploying custom containers
-===========================
-
-The orchestrator enables custom containers to be deployed using a YAML file.
-A corresponding :ref:`orchestrator-cli-service-spec` must look like:
-
-.. code-block:: yaml
-
- service_type: container
- service_id: foo
- placement:
- ...
- image: docker.io/library/foo:latest
- entrypoint: /usr/bin/foo
- uid: 1000
- gid: 1000
- args:
- - "--net=host"
- - "--cpus=2"
- ports:
- - 8080
- - 8443
- envs:
- - SECRET=mypassword
- - PORT=8080
- - PUID=1000
- - PGID=1000
- volume_mounts:
- CONFIG_DIR: /etc/foo
- bind_mounts:
- - ['type=bind', 'source=lib/modules', 'destination=/lib/modules', 'ro=true']
- dirs:
- - CONFIG_DIR
- files:
- CONFIG_DIR/foo.conf:
- - refresh=true
- - username=xyz
- - "port: 1234"
-
-where the properties of a service specification are:
-
-* ``service_id``
- A unique name of the service.
-* ``image``
- The name of the Docker image.
-* ``uid``
- The UID to use when creating directories and files in the host system.
-* ``gid``
- The GID to use when creating directories and files in the host system.
-* ``entrypoint``
- Overwrite the default ENTRYPOINT of the image.
-* ``args``
- A list of additional Podman/Docker command line arguments.
-* ``ports``
- A list of TCP ports to open in the host firewall.
-* ``envs``
- A list of environment variables.
-* ``bind_mounts``
- When you use a bind mount, a file or directory on the host machine
- is mounted into the container. Relative `source=...` paths will be
- located below `/var/lib/ceph/<cluster-fsid>/<daemon-name>`.
-* ``volume_mounts``
- When you use a volume mount, a new directory is created within
- Docker’s storage directory on the host machine, and Docker manages
- that directory’s contents. Relative source paths will be located below
- `/var/lib/ceph/<cluster-fsid>/<daemon-name>`.
-* ``dirs``
- A list of directories that are created below
- `/var/lib/ceph/<cluster-fsid>/<daemon-name>`.
-* ``files``
- A dictionary, where the key is the relative path of the file and the
- value the file content. The content must be double quoted when using
- a string. Use '\\n' for line breaks in that case. Otherwise define
- multi-line content as list of strings. The given files will be created
- below the directory `/var/lib/ceph/<cluster-fsid>/<daemon-name>`.
- The absolute path of the directory where the file will be created must
- exist. Use the `dirs` property to create them if necessary.
-
-
Configuring the Orchestrator CLI
================================