diff --git a/templates/engine/docker-compose.jsonnet b/templates/engine/docker-compose.jsonnet index 4f837ff2..b9076d09 100644 --- a/templates/engine/docker-compose.jsonnet +++ b/templates/engine/docker-compose.jsonnet @@ -18,12 +18,15 @@ reservations: {}, ports: [], volumes: [], + environment: {}, with_image:: function(x) self + { image: x }, with_command:: function(x) self + { command: x }, - with_environment:: function(x) self + { environment: x }, + with_environment:: function(x) self + { + environment: super.environment + x, + }, with_limits:: function(c, m) self + { limits: { cpus: c, memory: m } }, @@ -45,6 +48,16 @@ ] }, + with_env_var_secrets:: + function(vars) + std.foldl( + function(obj, x) obj.with_environment( + { [x]: "${" + x + "}" } + ), + vars.variables, + self + ), + add:: function() { services +: { [container.name]: { @@ -62,7 +75,7 @@ { command: container.command } else {}) + - (if std.objectHas(container, "environment") then + (if ! std.isEmpty(container.environment) then { environment: container.environment } else {}) + @@ -170,6 +183,27 @@ }, + envSecrets:: function(name) + { + + local volume = self, + + name: name, + + volid:: name, + + variables:: [], + + with_env_var:: + function(name) self + { + variables: super.variables + [name], + }, + + add:: function() { + } + + }, + containers:: function(name, containers) {