Hello Team, I am running a kedro registry from ar...
# questions
s
Hello Team, I am running a kedro registry from argo workflows. Everything runs fine when I run the end to end pipeline locally but throws an error about not being able to find db_credentials. I have the db_credentials set in the credentials.yml file. ANy idea what may be the issue. Thanks Error:
Copy code
Traceback (most recent call last):
  File "/usr/local/bin/kedro", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.8/site-packages/kedro/framework/cli/cli.py", line 211
, in main
    cli_collection()
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1157, in __call_
_
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/kedro/framework/cli/cli.py", line 139
, in main
    super().main(
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/kedro/framework/cli/project.py", line

  File "/usr/local/lib/python3.8/site-packages/kedro/framework/cli/project.py", line
 455, in run
    session.run(
  File "/usr/local/lib/python3.8/site-packages/kedro/framework/session/session.py",
line 408, in run
    catalog = context._get_catalog(
  File "/usr/local/lib/python3.8/site-packages/kedro/framework/context/context.py",
line 287, in _get_catalog
    catalog = settings.DATA_CATALOG_CLASS.from_config(
  File "/usr/local/lib/python3.8/site-packages/kedro/io/data_catalog.py", line 276,
in from_config
    ds_config = _resolve_credentials(ds_config, credentials)
  File "/usr/local/lib/python3.8/site-packages/kedro/io/data_catalog.py", line 80, i
n _resolve_credentials
    return {k: _map_value(k, v) for k, v in config.items()}
  File "/usr/local/lib/python3.8/site-packages/kedro/io/data_catalog.py", line 80, i
n <dictcomp>
    return {k: _map_value(k, v) for k, v in config.items()}
  File "/usr/local/lib/python3.8/site-packages/kedro/io/data_catalog.py", line 75, i
n _map_value
    return _get_credentials(value, credentials)
  File "/usr/local/lib/python3.8/site-packages/kedro/io/data_catalog.py", line 50, i
n _get_credentials
    raise KeyError(
KeyError: "Unable to find credentials 'db_credentials': check your data catalog and
credentials configuration. See <https://kedro.readthedocs.io/en/stable/kedro.io.DataC>
atalog.html for an example."
time="2023-09-13T22:22:02.000Z" level=info msg="sub-process exited" argo=true error=
"<nil>"
Error: exit status 1
The catalog looks like this:
Copy code
_sqds: &sqds
  type: pandas.SQLQueryDataSet

cluster:
  <<: *sqds
  sql: "<query>"
  credentials: db_credentials
And the credentials.yml file:
Copy code
db_credentials:
  con: ${PG_URL}
c
Quick question: How are you passing the arguments? Sqds and query ?
I don't know about argo workflows, but I guess credentials.yml are in .gitignore and they are not pushed to git.
n
And credentials shouldn’t be push to git - better to use environment variable. With OmegaconfigLoader you can use
${os.env: x}
to get env variable easily.
s
@Sonya Norris