Merge "Add defaults for openstack-origin-git config option"
This commit is contained in:
commit
0a02e7e390
89
README.md
89
README.md
@ -30,92 +30,3 @@ Storage
|
||||
=======
|
||||
This charm supports a number of different storage backends depending on
|
||||
your hypervisor type and storage relations.
|
||||
|
||||
Deploying from source
|
||||
=====================
|
||||
|
||||
The minimum openstack-origin-git config required to deploy from source is:
|
||||
|
||||
openstack-origin-git: include-file://nova-juno.yaml
|
||||
|
||||
nova-juno.yaml
|
||||
repositories:
|
||||
- {name: requirements,
|
||||
repository: 'git://github.com/openstack/requirements',
|
||||
branch: stable/juno}
|
||||
- {name: nova,
|
||||
repository: 'git://github.com/openstack/nova',
|
||||
branch: stable/juno}
|
||||
|
||||
Note that there are only two 'name' values the charm knows about: 'requirements'
|
||||
and 'nova'. These repositories must correspond to these 'name' values.
|
||||
Additionally, the requirements repository must be specified first and the
|
||||
nova repository must be specified last. All other repostories are installed
|
||||
in the order in which they are specified.
|
||||
|
||||
The following is a full list of current tip repos (may not be up-to-date):
|
||||
|
||||
openstack-origin-git: include-file://nova-master.yaml
|
||||
|
||||
nova-master.yaml
|
||||
repositories:
|
||||
- {name: requirements,
|
||||
repository: 'git://github.com/openstack/requirements',
|
||||
branch: master}
|
||||
- {name: oslo-concurrency,
|
||||
repository: 'git://github.com/openstack/oslo.concurrency',
|
||||
branch: master}
|
||||
- {name: oslo-config,
|
||||
repository: 'git://github.com/openstack/oslo.config',
|
||||
branch: master}
|
||||
- {name: oslo-context,
|
||||
repository: 'git://github.com/openstack/oslo.context',
|
||||
branch: master}
|
||||
- {name: oslo-db,
|
||||
repository: 'git://github.com/openstack/oslo.db',
|
||||
branch: master}
|
||||
- {name: oslo-i18n,
|
||||
repository: 'git://github.com/openstack/oslo.i18n',
|
||||
branch: master}
|
||||
- {name: oslo-log,
|
||||
repository: 'git://github.com/openstack/oslo.log',
|
||||
branch: master}
|
||||
- {name: oslo-messaging,
|
||||
repository: 'git://github.com/openstack/oslo.messaging',
|
||||
branch: master}
|
||||
- {name: oslo-middleware,
|
||||
repository': 'git://github.com/openstack/oslo.middleware',
|
||||
branch: master}
|
||||
- {name: oslo-rootwrap',
|
||||
repository: 'git://github.com/openstack/oslo.rootwrap',
|
||||
branch: master}
|
||||
- {name: oslo-serialization,
|
||||
repository: 'git://github.com/openstack/oslo.serialization',
|
||||
branch: master}
|
||||
- {name: oslo-utils,
|
||||
repository: 'git://github.com/openstack/oslo.utils',
|
||||
branch: master}
|
||||
- {name: pbr,
|
||||
repository: 'git://github.com/openstack-dev/pbr',
|
||||
branch: master}
|
||||
- {name: stevedore,
|
||||
repository: 'git://github.com/openstack/stevedore',
|
||||
branch: 'master'}
|
||||
- {name: sqlalchemy-migrate,
|
||||
repository: 'git://github.com/stackforge/sqlalchemy-migrate',
|
||||
branch: master}
|
||||
- {name: python-cinderclient,
|
||||
repository: 'git://github.com/openstack/python-cinderclient',
|
||||
branch: master}
|
||||
- {name: python-glanceclient,
|
||||
repository': 'git://github.com/openstack/python-glanceclient',
|
||||
branch: master}
|
||||
- {name: python-neutronlient,
|
||||
repository': 'git://github.com/openstack/python-neutronclient',
|
||||
branch: master}
|
||||
- {name: keystonemiddleware,
|
||||
repository: 'git://github.com/openstack/keystonemiddleware',
|
||||
branch: master}
|
||||
- {name: nova,
|
||||
repository: 'git://github.com/openstack/nova',
|
||||
branch: master}
|
||||
|
29
config.yaml
29
config.yaml
@ -45,13 +45,32 @@ options:
|
||||
type: string
|
||||
default:
|
||||
description: |
|
||||
Specifies a YAML-formatted dictionary listing the git repositories and
|
||||
branches from which to install OpenStack and its dependencies.
|
||||
.
|
||||
Specifies a default OpenStack release name, or a YAML dictionary
|
||||
listing the git repositories to install from.
|
||||
|
||||
The default Openstack release name may be one of the following, where
|
||||
the corresponding OpenStack github branch will be used:
|
||||
* icehouse
|
||||
* kilo
|
||||
* liberty
|
||||
* mitaka
|
||||
* master
|
||||
|
||||
The YAML must minimally include requirements, neutron, and nova
|
||||
repositories, and may also include repositories for other dependencies:
|
||||
repositories:
|
||||
- {name: requirements,
|
||||
repository: 'git://github.com/openstack/requirements',
|
||||
branch: master}
|
||||
- {name: neutron,
|
||||
repository: 'git://github.com/openstack/neutron',
|
||||
branch: master}
|
||||
- {name: nova,
|
||||
repository: 'git://github.com/openstack/nova',
|
||||
branch: master
|
||||
|
||||
Note that the installed config files will be determined based on
|
||||
the OpenStack release of the openstack-origin option.
|
||||
.
|
||||
For more details see README.md.
|
||||
nova-config:
|
||||
type: string
|
||||
default: /etc/nova/nova.conf
|
||||
|
@ -725,14 +725,15 @@ def git_install_requested():
|
||||
requirements_dir = None
|
||||
|
||||
|
||||
def git_default_repos(projects):
|
||||
def git_default_repos(projects_yaml):
|
||||
"""
|
||||
Returns default repos if a default openstack-origin-git value is specified.
|
||||
"""
|
||||
service = service_name()
|
||||
core_project = service
|
||||
|
||||
for default, branch in GIT_DEFAULT_BRANCHES.iteritems():
|
||||
if projects == default:
|
||||
if projects_yaml == default:
|
||||
|
||||
# add the requirements repo first
|
||||
repo = {
|
||||
@ -742,34 +743,41 @@ def git_default_repos(projects):
|
||||
}
|
||||
repos = [repo]
|
||||
|
||||
# neutron and nova charms require some additional repos
|
||||
if service == 'neutron':
|
||||
for svc in ['neutron-fwaas', 'neutron-lbaas', 'neutron-vpnaas']:
|
||||
# neutron-* and nova-* charms require some additional repos
|
||||
if service in ['neutron-api', 'neutron-gateway',
|
||||
'neutron-openvswitch']:
|
||||
core_project = 'neutron'
|
||||
for project in ['neutron-fwaas', 'neutron-lbaas',
|
||||
'neutron-vpnaas']:
|
||||
repo = {
|
||||
'name': svc,
|
||||
'repository': GIT_DEFAULT_REPOS[svc],
|
||||
'name': project,
|
||||
'repository': GIT_DEFAULT_REPOS[project],
|
||||
'branch': branch,
|
||||
}
|
||||
repos.append(repo)
|
||||
elif service == 'nova':
|
||||
|
||||
elif service in ['nova-cloud-controller', 'nova-compute']:
|
||||
core_project = 'nova'
|
||||
repo = {
|
||||
'name': 'neutron',
|
||||
'repository': GIT_DEFAULT_REPOS['neutron'],
|
||||
'branch': branch,
|
||||
}
|
||||
repos.append(repo)
|
||||
elif service == 'openstack-dashboard':
|
||||
core_project = 'horizon'
|
||||
|
||||
# finally add the current service's repo
|
||||
# finally add the current service's core project repo
|
||||
repo = {
|
||||
'name': service,
|
||||
'repository': GIT_DEFAULT_REPOS[service],
|
||||
'name': core_project,
|
||||
'repository': GIT_DEFAULT_REPOS[core_project],
|
||||
'branch': branch,
|
||||
}
|
||||
repos.append(repo)
|
||||
|
||||
return yaml.dump(dict(repositories=repos))
|
||||
|
||||
return projects
|
||||
return projects_yaml
|
||||
|
||||
|
||||
def _git_yaml_load(projects_yaml):
|
||||
|
@ -50,6 +50,7 @@ from charmhelpers.contrib.openstack.utils import (
|
||||
get_os_codename_install_source,
|
||||
git_install_requested,
|
||||
git_clone_and_install,
|
||||
git_default_repos,
|
||||
git_src_dir,
|
||||
git_pip_venv_dir,
|
||||
git_yaml_value,
|
||||
@ -608,6 +609,7 @@ def git_install(projects_yaml):
|
||||
"""Perform setup, and install git repos specified in yaml parameter."""
|
||||
if git_install_requested():
|
||||
git_pre_install()
|
||||
projects_yaml = git_default_repos(projects_yaml)
|
||||
git_clone_and_install(projects_yaml, core_project='nova')
|
||||
git_post_install(projects_yaml)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user