docker-compose/.paasify/plugins/docker-net-provider.jsonnet
2022-07-29 02:23:23 -04:00

65 lines
1.8 KiB
Jsonnet

# Tag to add a shared network
#
# Examples:
# 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 default_svcs = std.get(user_data, 'PAASIFY_STACK_SVCS');
local default_network = std.get(user_data, 'APP_NETWORK_NAME', 'default');
# Build default config
local config_default = {
APP_SERVICES: default_svcs,
APP_NETWORK_NAME: default_network,
APP_NETWORK_IDENT: default_network,
};
local conf = config_default + user_data;
local services_names = std.split(conf.APP_SERVICES, ',') ;
# Process
docker_data +
{
networks+: {
[conf.APP_NETWORK_IDENT]: {
name: conf.APP_NETWORK_NAME,
}
},
services+: {
[svc_name]+: { networks+: { [conf.APP_NETWORK_IDENT]: null } } for svc_name in services_names
},
}
###############3
##
##
##
### Internal vars
##local docker_services = std.get(docker_data, 'services', default={});
##local docker_services_names = std.objectFields(docker_services);
#
## System options
#local service_ns = std.get(user_data, 'namespace', default=std.get(stack_data, 'namespace', default=''));
#local service_stack = std.get(user_data, 'name', default=std.get(stack_data, 'current_stack', default=''));
#
#local default_name = if std.isString(service_ns) then service_ns + "_" + service_stack else service_stack;
#
## User options with defaults
#local network_name = std.get(user_data, 'network_name', default='default');
#local service_name = std.get(user_data, 'service', default='app');
#local services_names = std.get(user_data, 'services', default=[service_name]);