
Add lifecycle code to read secrets from PVC mounted to running vault-manager, and vault-manager code for conversion of storage from PVC to k8s secrets. The lifecycle code is added because the previous version of vault-manager does not respond to SIGTERM from kubernetes for termination. And yet the pod will be terminating when the new vault-manager pod runs. Reading the PVC data in lifecycle code before helm updates the charts simplifies the process when vault-manager is running during application-update. The new vault-manager also handles the case where the application is not running at the time the application is updated, such as if the application is removed, deleted, uploaded and applied. In general the procedure for conversion of the storage from PVC to k8s secrets is: - read the data from PVC - store the data in k8s secrets - validate the data - confirm the stored data is the same as what was in PVC - delete the original data only when the copy is confirmed The solution employs a 'mount-helper', an incarnation of init.sh, that mounts the PVC resource so that vault-manager can read it. The mount-helper mounts the PVC resource and waits to be terminated. Test plan: PASS vault sanity PASS vault sanity via application-update PASS vault sanity update via application remove, delete, upload, apply (update testing requires version bump similar to change 881754) PASS unit test of the code PASS bashate, flake8, bandit PASS tox Story: 2010930 Task: 48846 Change-Id: Iace37dad256b50f8d2ea6741bca070b97ec7d2d2 Signed-off-by: Michel Thebeau <Michel.Thebeau@windriver.com>
43 lines
1.1 KiB
INI
43 lines
1.1 KiB
INI
[metadata]
|
|
name = k8sapp-vault
|
|
summary = StarlingX sysinv extensions for vault
|
|
long_description = file: README.rst
|
|
long_description_content_type = text/x-rst
|
|
license = Apache 2.0
|
|
author = StarlingX
|
|
author-email = starlingx-discuss@lists.starlingx.io
|
|
home-page = https://www.starlingx.io/
|
|
classifier =
|
|
Environment :: OpenStack
|
|
Intended Audience :: Information Technology
|
|
Intended Audience :: System Administrators
|
|
License :: OSI Approved :: Apache Software License
|
|
Operating System :: POSIX :: Linux
|
|
Programming Language :: Python
|
|
Programming Language :: Python :: 2
|
|
Programming Language :: Python :: 2.7
|
|
Programming Language :: Python :: 3
|
|
Programming Language :: Python :: 3.4
|
|
Programming Language :: Python :: 3.5
|
|
|
|
[files]
|
|
packages =
|
|
k8sapp_vault
|
|
|
|
[global]
|
|
setup-hooks =
|
|
pbr.hooks.setup_hook
|
|
|
|
[entry_points]
|
|
systemconfig.helm_applications =
|
|
vault = systemconfig.helm_plugins.vault
|
|
|
|
systemconfig.helm_plugins.vault =
|
|
001_vault = k8sapp_vault.helm.vault:VaultHelm
|
|
|
|
systemconfig.app_lifecycle =
|
|
vault = k8sapp_vault.lifecycle.lifecycle_vault:VaultAppLifecycleOperator
|
|
|
|
[bdist_wheel]
|
|
universal = 1
|