diff --git a/.paasify/plugins/_paasify.jsonnet b/.paasify/plugins/_paasify.jsonnet index e6900a8..3055d7e 100644 --- a/.paasify/plugins/_paasify.jsonnet +++ b/.paasify/plugins/_paasify.jsonnet @@ -72,7 +72,10 @@ local metadata = { # Provides global vars local global_vars_default(runtime) = + # Role: Define constants + # Usage: CONSTANTS for docker-compose and jsonnet # Only the usage of paasify.X vars is allowed + # Static variables only assert std.isString(runtime.paasify_stack); local app_ident = runtime.paasify_ns + runtime.paasify_sep + runtime.paasify_stack; @@ -152,9 +155,13 @@ local global_vars_default(runtime) = # Provides global var overrides local global_vars_override(conf) = + # Role: ensure all variables are provided before processing + # Usage: VARS for docker-compose and jsonnet + # # Any plugin user configuration can be used here # No usage of paasify.X is permitted here at anytime ! # Forbidden to change existing vars, only new vars with _PREFIX + # All variables must start with _ BuildConfImage( conf.app_image, @@ -170,11 +177,13 @@ local global_vars_override(conf) = # Provides docker data override +# ------------------------------------- local docker_transform(conf_raw, docker_data) = + # Role: Create a dynamic compose file + # Usage: docker_struct for jsonnet (no docker-compose!!!) assert std.isString(conf_raw.paasify_stack_service); local conf = global_vars_default(conf_raw) + conf_raw + global_vars_override(conf_raw); - #local service_name = std.prune( conf.tag_name , conf.paasify_service); local service_name = conf.paasify_stack_service; local services_names = std.split(conf.paasify_stack_services, ',') ; @@ -188,10 +197,10 @@ local docker_transform(conf_raw, docker_data) = } for svc_name in services_names }, - #[service_name]+: { - # comment: 'only on main container', - #}, - # + #[service_name]+: { + # comment: 'only on main container', + #}, + # #['x-paasify']+: { # config_dump: conf, @@ -212,30 +221,10 @@ local main() = if action == 'metadata' then metadata - # TOFIX IN CODE: else if action == 'docker_vars' then - # else if action == 'vars_docker_v1' then - # local user_data = getConf('user_data'); - - # local default_data = global_vars_override(global_vars_default(user_data)); - # local common = { [x]: std.get(user_data, std.lstripChars(x, '_'), default_data[x] ) for x in std.objectFields(default_data) }; - # #local common = { [std.lstripChars(x, '_')]: std.get(user_data, std.lstripChars(x, '_'), default_data[x] ) for x in std.objectFields(default_data) }; - # { - # input: user_data, - - # base: global_vars_override(default_data), - # diff: global_vars_override(default_data + common ), - # merged: global_vars_override(default_data + user_data ), - # } - - else if action == 'vars_docker' then local user_data = getConf('user_data'); - # ??? local runtime = { [key]: user_data[key] for key in std.objectFields(user_data) if std.startsWith(key, 'paasify_') }; - local default_data = global_vars_default(user_data); - local common = { [x]: std.get(user_data, std.lstripChars(x, '_'), default_data[x] ) for x in std.objectFields(default_data) }; - #local common = { [std.lstripChars(x, '_')]: std.get(user_data, std.lstripChars(x, '_'), default_data[x] ) for x in std.objectFields(default_data) }; { input: user_data, diff --git a/.paasify/plugins/traefik-svc.jsonnet b/.paasify/plugins/traefik-svc.jsonnet index 08b4e0e..795afff 100644 --- a/.paasify/plugins/traefik-svc.jsonnet +++ b/.paasify/plugins/traefik-svc.jsonnet @@ -57,6 +57,10 @@ local global_vars_default(user_data) = }; local global_vars_override(conf) = + # Any plugin user configuration can be used here + # No usage of paasify.X is permitted here at anytime ! + # Forbidden to change existing vars, only new vars with _PREFIX + # All variables must start with _ local default_ident = conf.paasify_ns + conf.paasify_sep + conf.paasify_stack; @@ -79,8 +83,6 @@ local global_vars_override(conf) = { _traefik_svc_name: std.prune(default_svc_name)[0], _traefik_svc_domain: std.prune(default_svc_domain)[0], - #_traefik_svc_domain: std.prune(default_svc_domain), #[0], - #_traefik_svc_domain2: conf, _traefik_svc_entrypoints: std.prune(default_svc_entrypoints)[0], _traefik_svc_auth: std.get(conf, 'traefik_svc_auth', default=null), @@ -91,31 +93,6 @@ local global_vars_override(conf) = ; - - -######### OLD , new => global_vars_override -#local conf_override(user_data) = -# -# local ns = std.get(user_data, 'paasify_ns'); -# local stack = std.get(user_data, 'paasify_stack'); -# local sep = std.get(user_data, 'paasify_sep'); -# -# # Runtime vars -# local default_name = std.get(user_data, 'app_name', stack); -# local default_top_domain = std.get(user_data, 'app_domain', ns); -# local traefik_ident = if stack != default_name then default_name else 'app'; -# #local svc_name = ns + sep + default_name + sep + traefik_ident; -# local svc_name = traefik_ident + ns + default_name ; -# -# # Build config -# user_data -# + { -# _traefik_svc_domain: std.get(user_data, 'traefik_svc_domain', default_name + '.' + default_top_domain), -# _traefik_svc_name: std.get(user_data, 'traefik_svc_name', svc_name), -# } -# ; - - # Internal functions # ------------------------------------- @@ -172,19 +149,17 @@ local TraefikPrjNetwork(id, name, external) = else {}; -# Return result +# Provides docker data override # ------------------------------------- local docker_transform(conf_raw, docker_data) = assert std.isString(conf_raw.paasify_stack_service); local conf = conf_raw + global_vars_override(conf_raw); - #local paasify_stack_service = std.get(conf, 'traefik_svc_ident', conf.paasify_stack_service ); local service = std.get(conf, 'traefik_svc_ident', conf.paasify_stack_service ); local services = std.split(std.get(conf, 'paasify_stack_services', service), ','); { # Append stack network - #networks+: TraefikPrjNetwork(svc_network_id, svc_network), networks+: TraefikPrjNetwork( conf.traefik_net_ident, conf.traefik_network_name, @@ -214,15 +189,6 @@ local docker_transform(conf_raw, docker_data) = conf.traefik_network_name), }, }, - - #["x-paasify"]: { - # #stack_data: stack_data, - # #user_data: user_data, - # #config: config, - # config2: conf, - # #env_data: env_data, - #}, - }; @@ -242,21 +208,14 @@ local main() = # TOFIX IN CODE: else if action == 'docker_vars' then else if action == 'vars_docker' then local user_data = getConf('user_data'); - #local runtime = { [key]: user_data[key] for key in std.objectFields(user_data) if std.startsWith(key, 'paasify_') }; - - #local default_data = global_vars_override(runtime, global_vars_default(user_data)); local default_data = global_vars_default(user_data); - local common = { [x]: std.get(user_data, std.lstripChars(x, '_'), default_data[x] ) for x in std.objectFields(default_data) }; + { input: user_data, - default_data: default_data, diff: default_data + common + global_vars_override(default_data + user_data ), merged: user_data + global_vars_override(default_data + user_data ), - - # PROD - #diff_OLD: global_vars_override(runtime, default_data + common ), } else if action == 'docker_transform' then @@ -274,34 +233,3 @@ local main() = # Run main script ! main() - - -# -# -#if action == 'conf_schema' then -# {} -#else if action == 'vars_docker' then # Fetch default variables -# -# local default_data = global_vars_default(user_data); -# local common = { [x]: std.get(user_data, x, default_data[x] ) for x in std.objectFields(default_data) }; -# { -# #input: user_data, -# -# # Mendatory fields -# diff: conf_override( common ), -# merged: conf_override( default_data + user_data ), -# } -# -#else if action == 'docker_transform' then -# { -# conf_in: user_data, -# conf_out: conf_override(user_data), -# diff: docker_transform(conf_override(user_data), docker_data), -# merged: docker_data + self.diff, -# } -# -# # + { -# # 'zz_diff': docker_transform(conf_override(user_data), {}) -# # } -# -#