From 7a4d888d351bc045f1aad86ff550e91b3caabcf3 Mon Sep 17 00:00:00 2001 From: Kevin Carter Date: Mon, 11 Jun 2018 23:33:34 -0500 Subject: [PATCH] Add option for default pip package install Add an option to define a default set of python packages to install within a virtual environment. This can be used to install a package wihin a virtual environment that may be outside of a normal package list but for a given service. Change-Id: Iace13b8b4156b0aa6a919cf2b1f3a0c4376a74ee Signed-off-by: Kevin Carter --- defaults/main.yml | 4 ++++ .../notes/custom-pip-package-add-4c17638c6e5b3373.yaml | 6 ++++++ templates/venv-build-options.txt.j2 | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/custom-pip-package-add-4c17638c6e5b3373.yaml diff --git a/defaults/main.yml b/defaults/main.yml index 347f4ef..68934d8 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -121,3 +121,7 @@ repo_pip_packages: - wheel repo_build_store_pip_sources: false + +# Default python packages which will be installed +# into every venv. +repo_venv_default_pip_packages: [] diff --git a/releasenotes/notes/custom-pip-package-add-4c17638c6e5b3373.yaml b/releasenotes/notes/custom-pip-package-add-4c17638c6e5b3373.yaml new file mode 100644 index 0000000..01c0a67 --- /dev/null +++ b/releasenotes/notes/custom-pip-package-add-4c17638c6e5b3373.yaml @@ -0,0 +1,6 @@ +--- +features: + - The option ``repo_venv_default_pip_packages`` has been added which will + allow deployers to insert any packages into a service venv as needed. + The option expects a list of strings which are valid python package names as + found on PYPI. diff --git a/templates/venv-build-options.txt.j2 b/templates/venv-build-options.txt.j2 index d256538..da306e8 100644 --- a/templates/venv-build-options.txt.j2 +++ b/templates/venv-build-options.txt.j2 @@ -146,4 +146,4 @@ VENV_CREATE_COMMAND="{{ repo_build_venv_command_options }}" {# #} {# Finally, we output the alphabetically sorted requirements. #} {# #} -ROLE_VENV_REQUIREMENTS="{{ (requirement_list | sort) | join(' ') }}" +ROLE_VENV_REQUIREMENTS="{{ (repo_venv_default_pip_packages | union(requirement_list) | sort) | join(' ') }}"