Emil Marcetta
09/18/2025, 7:05 PM...
filepath: "${globals:example_bucket}/i/j/k/date=${runtime_params:begin_date}/
only the base/parameters.yml has a definition for begin_date
begin_date: "2025-01-01"
and the CONFIG_LOADER_ARGS (in settings.py) does not have an entry for config_patterns. (stepping with a debugger in OmegaConfigLoader constructor initialization confirms the “parameters” patterns are present).
and we invoke the pipeline as no params (kedro run). The error we receive when catalog loads is:
InterpolationResolutionError: Runtime parameter 'begin_date' not found and no default value provided.
Thank you!Ravi Kumar Pilla
09/18/2025, 7:34 PMkedro run . I am not sure if the resolution of runtime parameters is made strict with kedro 1.0, but this should work.
Also make sure the runtime_params resolver is used outside of globals config type and to override configuration at runtime as mentioned here - https://docs.kedro.org/en/1.0.0/configure/advanced_configuration/#how-to-override-configuration-with-runtime-parameters-with-the-omegaconfigloader
Thank youEmil Marcetta
09/18/2025, 8:19 PMRavi Kumar Pilla
09/18/2025, 10:03 PMruntime_params resolver is used to resolve parameters that are provided at runtime. If you want to share variables across configuration types, you can use globals as mentioned here - https://docs.kedro.org/en/1.0.0/configure/config_loader_migration/#7-globalsEmil Marcetta
09/18/2025, 10:19 PMDoes the above applies only to the CLIresolver is used to resolve parameters that are provided at runtime.runtime_params
--params argument? Or does it include parameters.yml as well? (I’m debugging / setting breakpoints in OmegaConfLoader__getitem__ and by the time catalog loads it looks runtime_params were not loaded yet (only globals, catalog yml)
you can use globals as mentioned here …But the globals cannot reference runtime_params /parameters.yml (I get “The
runtime_params: resolver is not supported for globals.” exception)? (my goal is to add begin_date, end_date to the files referenced in catalog - how 0.18 worked).Emil Marcetta
09/18/2025, 11:25 PM@hook_impl
def after_context_created(self, context) -> None:
config_loader = context.config_loader
# Get parameters.yml keys
params = config_loader["parameters"]
runtime_params = context.config_loader.runtime_params
config_loader.runtime_params = {**params, **runtime_params}Nok Lam Chan
09/19/2025, 3:30 PMbase you can reference it using ${begin_date} ?Nok Lam Chan
09/19/2025, 3:31 PMglobal if you need something truly sharedEmil Marcetta
09/19/2025, 3:35 PM--params begin_date=... those are visible. While only later in the pipeline nodes execution Context class does merger parameters.yml and CLI params.Nok Lam Chan
09/19/2025, 3:35 PMEmil Marcetta
09/19/2025, 3:36 PMEmil Marcetta
09/19/2025, 3:37 PMEmil Marcetta
09/19/2025, 3:38 PMNok Lam Chan
09/19/2025, 3:39 PMthe parameters.yml:begin_date is not visible during catalog reading so the interpolation failsThe isolation is intended
Emil Marcetta
09/19/2025, 3:43 PMEmil Marcetta
09/19/2025, 3:45 PMfilepath: "${globals:some_bucket}/p/q/r/data/date=${runtime_params:begin_date}/_${runtime_params:end_date}.parquet"Nok Lam Chan
09/19/2025, 3:46 PMkedro run --params - perhaps should be better name as kedro run --runtime_params (the renaming didn't happen mostly for backward compatibility)
filepath: "${globals:some_bucket}/p/q/r/data/date=${runtime_params:begin_date}/_${runtime_params:end_date}.parquet"
Does it not work with kedro run --params begin_date=xxxx, end_date=xxxx?Emil Marcetta
09/19/2025, 3:48 PMNok Lam Chan
09/19/2025, 4:00 PMparameters.yml itself - is not a runtime parameter. One of the key goal of having runtime_params and globals is to make the resolution path explicit, we try to avoid parameters being reference in arbitrary direction and make it very hard to understand the source of parameters:
1. parameters only see parameters_xxxx.yml
2. catalog only see catalog_xx.yml
If something need to be shared across different configuration group, the standard path is use $runtime_params and $globals
So to do that the change you need to make is:
1. update parameters - make it refer to global instead, i.e. begin_date :${globals:begin_date}
2. in Catalog, then you can have i.e. some_path/${runtime_params:begin_date, $globals.begin_date} (take runtime, if not take the global as default)
https://docs.kedro.org/en/stable/configure/advanced_configuration/#how-to-use-globals-and-runtime_params
Emil Marcetta
09/19/2025, 4:14 PMNok Lam Chan
09/19/2025, 4:34 PMEmil Marcetta
09/19/2025, 4:55 PMCould you give us an example where the runtime param return different results?As per above, referring to runtime_params in catalog vs during the node/ pipeline execution may differ. This code updates runtime_params with parameters.yml later and if we refer to runtime_params in catalog we get CLI params only.
It may be the terminology- but you were trying to refer a parameters in catalog and this is against the pattern.Understood. (for us a natural way to think is: globals - values that apply to multiple runs and change rarely (example staging, prod, dev buckets etc); parameters - something that may change per each run - examples are begin/end date, geo, training epochs etc.
Emil Marcetta
09/19/2025, 5:06 PMRavi Kumar Pilla
09/19/2025, 5:17 PMparameters - something that may change per each runThis we call as runtime parameters that are specific to a run and need to be passed with
kedro run --params=param_key1=value1,param_key2=2.0
As you pointed out, at catalog level we look for CLI params for resolution.Arnaud Dhaene
10/16/2025, 7:30 PMrun:
tags: nightly
pipeline: analysis
env: prod
params:
begin_date: 2025-10-16
and run it using kedro run --config=<filepath>
The params key is cast to the runtime_params, which can be interpolated in the catalog
This allows you to have it as a configuration file (which can even be created programatically)Emil Marcetta
10/16/2025, 7:37 PM--config=<filepath> is another way of specifying CLI params; we run a number of environments ci, dev, staging prod etc and in some environments (say ci) we simply use values from parameters.yml; we wrote a tiny hook described here that helped our use cases.