Skip to content

[FEAT] Improved handling of configuration values #62

@jchonig

Description

@jchonig

Is this a new feature request?

  • I have searched the existing issues

Wanted change

Add the ability to specify configuration variables w/o hand editting configuration.py.

This may relate to #59

Reason for change

I manage my containers with CM (puppet) and strongly dislike having to hand edit files in a container. I haven't found any tools that allow an easy way to update python configuration files.

Proposed code change

I tried to specify another configuration script (config.py) which reads configuration.py and also reads a yaml file. But could not get that to work properly. I'm probably missing some subtle issue with python importlib.

What I ended up doing that worked was appending the following code to the end of configuration.py and then writing my configuration into a yaml file called config.yaml. This allows anything set in configuration.py to be used, but values in config.yaml override it.

This could be expanded to write one YAML file for data passed in from the environment and another for additional configuration written by the user.

import yaml
import sys

print("Reading /config/config.yaml")
with open("/config/config.yaml", "r") as fp:
    config = yaml.safe_load(fp)

for key, value in config.items():
    setattr(sys.modules[__name__], key, value)

Thoughts?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions