/docker

Providers for docker

Primary LanguagePython

docker-container

Three providers in this plugin:

  • ResourceModelSource: Lists the containers as nodes
  • NodeExecutor: Execute a command in a container via Command step or Commands page.
  • WorkflowNodeSteps:
    • exec
    • inspect
    • kill
    • pause
    • unpause
    • stats

To build and install

Run the following commands to install the plugins:

gradle build
cp build/libs/docker-container-X.Y.Z.zip $RDECK_BASE/libext

Resource Model Mapping and Tags

Mapping attributes from default values

With the "Custom Mapping" option, you can use the default attributes getting from docker inspect to generate node attributes on Rundeck.

The default mapping values are:

'docker:Id': Container ID,
'docker:Created': Created Date,
'docker:Name': Container Name,
'docker:Image': Container Image ID,
'docker:State.Status': Container Statis,
'docker:State.Pid':  Container PID,
'docker:State.StartedAt': Container Started At,
'docker:Config.Image': Container Image Name,
'docker:Config.Hostname': Container Hostname,
'docker:Config.Cmd': Container Command,
'docker:Config.Labels': Container Labels,
'docker:IPAddress': Container IP,

By default, these values will be mapped to the docker group attributes on nodes. The nodename and hostname will be taken from docker:Id and docker:Config.Hostname.

To change these values you can use something like this:

nodename.selector=docker:Name,hostname.selector=docker:IPAddress

This will define the nodename attribute with the value of docker:Name and hostname attribute with the value of docker:IPAddress

Also, "dynamic" default values can be defined depending of an attribute of the docker container, for example: "docker-shell.image:tag.default=sh" or just "docker-shell.default=bash to apply it to all nodes"

Mapping attributes from docker inspect result.

You can mapping values directly from the result of the docker inspect command.

For example:

StartedAt.selector=State.StartedAt,FinishedAt.selector=State.FinishedAt

This will add the attributes StartedAt and FinishedAt on the node definition.

Generating custom tags.

With the "Tag" option, you can generate tags based on the value of the default parameters, eg:

tag.selector=docker:Config.Image

This example will add a tag with the value of the parameter Config.Image

Node Executor and File Copier

Node Executor includes an attribute to define the custom shell used to execute commands on the remote steps. The options are: bash, sh

This is needed for the File Copier plugin (a default shell is needed when the file is copied to the container).

To define this parameter per container, you can use the mapping attributes on the resource model like:

docker-shell.default=bash
docker-shell.<image1:tag>.default=sh
docker-shell.<image2:tag>.default=sh