Merge "Variable Substitution Initial Specification"
This commit is contained in:
commit
d7732f0238
|
@ -0,0 +1,176 @@
|
||||||
|
..
|
||||||
|
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||||
|
License. http://creativecommons.org/licenses/by/3.0/legalcode
|
||||||
|
|
||||||
|
===============================================
|
||||||
|
StarlingX: Variable Subsitution of System Paths
|
||||||
|
===============================================
|
||||||
|
|
||||||
|
Storyboard:
|
||||||
|
https://storyboard.openstack.org/#!/story/2004039
|
||||||
|
|
||||||
|
The Multi-OS effort requires that we can modify the locations that some
|
||||||
|
files might be found during installation and later for configuration. While
|
||||||
|
the Linux Standard Base (LSB) includes the Filesystem Hierarchy Standard
|
||||||
|
(FHS) not all Linux distributions follow it exactly, therefore there can be
|
||||||
|
differences.
|
||||||
|
|
||||||
|
Problem description
|
||||||
|
===================
|
||||||
|
|
||||||
|
Many scripts and configuration files hardcode certain paths and filenames,
|
||||||
|
depending on the Linux distribution these may not be accurate from one
|
||||||
|
distribution to the next. By providing a mechanism for variable substitution
|
||||||
|
during build, installation or update, this problem can be addressed.
|
||||||
|
|
||||||
|
Use Cases
|
||||||
|
=========
|
||||||
|
|
||||||
|
This is for the Developer and system level engineer working on implementing
|
||||||
|
changes to support OS independence in the StarlingX service (Flock) and
|
||||||
|
system level configuration files contained within StarlingX stx repos.
|
||||||
|
|
||||||
|
Proposed change
|
||||||
|
===============
|
||||||
|
|
||||||
|
Using the existing naming conventions, change the existing hardcode paths
|
||||||
|
to the common naming convention and then do substitution via sed or other
|
||||||
|
tool as appropriate. This renaming could occur in any source or configuration
|
||||||
|
file, not limited to Makefiles, .ini, .config, or scripts.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
RPM Variable Make Variable Substitution Variable
|
||||||
|
%{_sysconfdir} SYSCONFDIR @SYSCONFDIR@
|
||||||
|
%{_buildroot} DESTDIR @DESTDIR@
|
||||||
|
%{pythonroot} PYTHONROOT @PYTHONROOT@
|
||||||
|
|
||||||
|
Posting to get preliminary feedback on the scope of this spec.
|
||||||
|
|
||||||
|
Alternatives
|
||||||
|
============
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Data model impact
|
||||||
|
=================
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
REST API impact
|
||||||
|
===============
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Security impact
|
||||||
|
===============
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Other end user impact
|
||||||
|
=====================
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Performance Impact
|
||||||
|
==================
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Other deployer impact
|
||||||
|
=====================
|
||||||
|
|
||||||
|
No additional configuration options are being added, but existing ones may
|
||||||
|
change based on how the variables are substituted.
|
||||||
|
|
||||||
|
Developer impact
|
||||||
|
=================
|
||||||
|
|
||||||
|
Developers will need to be aware of the variables and how they get substituted
|
||||||
|
and added. This can be addressed in the Developer Guide Wiki.
|
||||||
|
|
||||||
|
Upgrade impact
|
||||||
|
===============
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
==============
|
||||||
|
|
||||||
|
Assignee(s)
|
||||||
|
===========
|
||||||
|
|
||||||
|
Primary assignee:
|
||||||
|
Shuicheng Lin (shuicheng)
|
||||||
|
|
||||||
|
Other contributors:
|
||||||
|
Mingyuan Qi
|
||||||
|
Zhipeng Liu
|
||||||
|
Saul Wold (sgw-starlingx)
|
||||||
|
|
||||||
|
|
||||||
|
Repos Impacted
|
||||||
|
==============
|
||||||
|
|
||||||
|
stx-clients
|
||||||
|
stx-config
|
||||||
|
stx-fault
|
||||||
|
stx-gui
|
||||||
|
stx-ha
|
||||||
|
stx-integ
|
||||||
|
stx-metal
|
||||||
|
stx-nfv
|
||||||
|
stx-update
|
||||||
|
stx-upstream
|
||||||
|
|
||||||
|
|
||||||
|
Work Items
|
||||||
|
===========
|
||||||
|
|
||||||
|
Initial work:
|
||||||
|
* https://storyboard.openstack.org/#!/story/2004039
|
||||||
|
|
||||||
|
#. Task: 27043 stx-nfv: contains hardcoded path to /etc and
|
||||||
|
/usr/lib64/python2.7
|
||||||
|
|
||||||
|
Ongoing Discovery
|
||||||
|
* Create additional tasks in the 2004039 Story as we discover additional
|
||||||
|
hardcoded paths that need substitution.
|
||||||
|
* Ensure that the StarlingX services are using the correct LSB/FHS directory
|
||||||
|
structure as implemented by the upstream distribution (this can still vary
|
||||||
|
slightly).
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
============
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Testing
|
||||||
|
=======
|
||||||
|
|
||||||
|
Verify configuration is correct before and after the change and test that the
|
||||||
|
resulting system boots correctly and has the correct configuration.
|
||||||
|
|
||||||
|
Documentation Impact
|
||||||
|
====================
|
||||||
|
|
||||||
|
Developer Guide Wiki will need to be updated to list the canonical variables
|
||||||
|
and their default paths.
|
||||||
|
|
||||||
|
References
|
||||||
|
==========
|
||||||
|
|
||||||
|
Linux Standard Base: https://wiki.linuxfoundation.org/lsb/start
|
||||||
|
Hierarchy Filesystem Standard: https://wiki.linuxfoundation.org/lsb/fhs
|
||||||
|
|
||||||
|
History
|
||||||
|
=======
|
||||||
|
|
||||||
|
.. list-table:: Revisions
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - Release Name
|
||||||
|
- Description
|
||||||
|
* - 2019.03
|
||||||
|
- Introduced
|
Loading…
Reference in New Issue