mirror of
https://github.com/ceph/ceph
synced 2024-12-19 09:57:05 +00:00
79 lines
2.5 KiB
ReStructuredText
79 lines
2.5 KiB
ReStructuredText
|
========================
|
|||
|
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.
|