Provide custom userdata extension for each of services if it needed
Suppose we have to deploy specific database that doesn't
pulls it's own dependencies (probably more than one).
And those dependencies are stored in custom repository (rhel/ppa).
-------
I'm offering next solution:
Let trove store custom additional parameters for cloud-init script as an extensions.
This would let trove-guestagent become a bit simpler
and do not let guestagent perform deployment
more than one package (directly related to specific database).
Although, with this kind of workflow trove could keep only one cloud-init script.
And according to service pre-setup.py, default cloud-init would be
extended when it would be transformed into userdata.
-------
Mechanism would be like this:
trove/extension
(where custom_database is mysql/percona/
it would store next fields (custom for each database)
java = {'oracle': 'oracle-7-jdk', 'open-jdk': 'open-jdk7'}
ppa = {'deb': ..., 'dep_source': ...}
rhel = {'repository': ..., 'parameters': {...}}
command_list = ['gpg --keyserver pgp.mit.edu --recv-keys 4BD736A82B5C1B0
'gpg --export --armor F758CE318D77295D | sudo opt-key add -\n',
'echo -e "2" | sudo update-alternatives --config java\n']
* command_list contains list of command that would be appended to userdata
-------
In cloud-init processing:
cloudinit = os.path.
if os.path.
with open(cloudinit, "r") as f:
userdata = f.read()
pre_setup = utils.import_
self.service_type)
if hasattr(pre_setup, 'command_list'):
userdata.
-------
Although it should be integrated into trove-heat support
Blueprint information
- Status:
- Complete
- Approver:
- None
- Priority:
- Not
- Drafter:
- None
- Direction:
- Needs approval
- Assignee:
- None
- Definition:
- Obsolete
- Series goal:
- Accepted for future
- Implementation:
- Started
- Milestone target:
- ongoing
- Started by
- Denis M.
- Completed by
- Amrith Kumar
Related branches
Related bugs
Sprints
Whiteboard
Work Items
Dependency tree
* Blueprints in grey have been implemented.