mirror of
https://github.com/ceph/ceph
synced 2024-12-23 20:03:56 +00:00
ce73047d25
Signed-off-by: Sebastian Wagner <sewagner@redhat.com>
80 lines
2.6 KiB
ReStructuredText
80 lines
2.6 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:
|
||
...
|
||
spec:
|
||
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.
|