# local chart repo
chart_repo

# lockfiles for requirements.yaml for dependent charts
requirements.lock

# ignore dependent chart dirs
xos-core/charts
voltha/charts
xos-core/charts
nem-monitoring/charts/
xos-profiles/*/charts
storage/*/charts
logging/charts
