32 lines
779 B
Jsonnet
32 lines
779 B
Jsonnet
# Tag to add a restart policy on all containers
|
|
#
|
|
# Examples:
|
|
# tags:
|
|
# - docker-services-restart:
|
|
# policy: always
|
|
# services:
|
|
# - srv1
|
|
# - mysqldb
|
|
|
|
# Default imports
|
|
local user_data = std.parseJson(std.extVar('user_data'));
|
|
local docker_data = std.parseJson(std.extVar('docker_data'));
|
|
|
|
# Internal vars
|
|
local docker_services = std.get(docker_data, 'services', default={});
|
|
local docker_services_names = std.objectFields(docker_services);
|
|
|
|
# User options with defaults
|
|
local services_names = std.get(user_data, 'services', default=docker_services_names);
|
|
local policy = std.get(user_data, 'policy', default='unless-stopped');
|
|
|
|
# Process
|
|
docker_data +
|
|
{
|
|
services+: {
|
|
[svc_name]+: { restart: policy } for svc_name in services_names
|
|
},
|
|
}
|
|
|
|
|