===========================
stackrc - DevStack Settings
===========================

``stackrc`` is the primary configuration file for DevStack. It contains
all of the settings that control the services started and the
repositories used to download the source for those services. ``stackrc``
sources the ``localrc`` section of ``local.conf`` to perform the default
overrides.

DATABASE\_TYPE
    Select the database backend to use. The default is ``mysql``,
    ``postgresql`` is also available.
ENABLED\_SERVICES
    Specify which services to launch. These generally correspond to
    screen tabs. The default includes: Glance (API and Registry),
    Keystone, Nova (API, Certificate, Object Store, Compute, Network,
    Scheduler, Certificate Authentication), Cinder
    (Scheduler, API, Volume), Horizon, MySQL, RabbitMQ, Tempest.

    ::

        ENABLED_SERVICES=g-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-net,n-cond,c-sch,c-api,c-vol,n-sch,n-cauth,horizon,rabbit,tempest,$DATABASE_TYPE

    Other services that are not enabled by default can be enabled in
    ``localrc``. For example, to add Swift, use the following service
    names:

    ::

        enable_service s-proxy s-object s-container s-account

    A service can similarly be disabled:

    ::

        disable_service horizon

Service Repos
    The Git repositories used to check out the source for each service
    are controlled by a pair of variables set for each service.
    ``*_REPO`` points to the repository and ``*_BRANCH`` selects which
    branch to check out. These may be overridden in ``local.conf`` to
    pull source from a different repo for testing, such as a Gerrit
    branch proposal. ``GIT_BASE`` points to the primary repository
    server.

    ::

        NOVA_REPO=$GIT_BASE/openstack/nova.git
        NOVA_BRANCH=master

    To pull a branch directly from Gerrit, get the repo and branch from
    the Gerrit review page:

    ::

        git fetch https://review.openstack.org/p/openstack/nova refs/changes/50/5050/1 && git checkout FETCH_HEAD

    The repo is the stanza following ``fetch`` and the branch is the
    stanza following that:

    ::

        NOVA_REPO=https://review.openstack.org/p/openstack/nova
        NOVA_BRANCH=refs/changes/50/5050/1