linuxserver / docker-netbox

GNU General Public License v3.0
90 stars 19 forks source link

[FEAT] Improved handling of configuration values #62

Open jchonig opened 1 month ago

jchonig commented 1 month ago

Is this a new feature request?

Wanted change

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

This may relate to https://github.com/linuxserver/docker-netbox/issues/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?

github-actions[bot] commented 1 month ago

Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.

LinuxServer-CI commented 2 days ago

This issue has been automatically marked as stale because it has not had recent activity. This might be due to missing feedback from OP. It will be closed if no further activity occurs. Thank you for your contributions.

jchonig commented 2 days ago

Bump