642c6c2d88
Update this to be more relevant to 2020 Change-Id: I6389fe292baf2f56d8b9dc6bb876e4ec4ed5e984
93 lines
3.7 KiB
ReStructuredText
93 lines
3.7 KiB
ReStructuredText
OpenDev System Configuration
|
|
============================
|
|
|
|
This is the machinery that drives the configuration, testing,
|
|
continuous integration and deployment of services provided by the
|
|
OpenDev project.
|
|
|
|
Services are driven by Ansible playbooks and associated roles stored
|
|
here. If you are interested in the configuration of a particular
|
|
service, starting at ``playbooks/service-<name>.yaml`` will show you
|
|
how it is configured.
|
|
|
|
Most services are deployed via containers; many of them are built or
|
|
customised in this repository; see ``docker/``.
|
|
|
|
A small number of legacy services are still configured with Puppet.
|
|
Although the act of running puppet on these hosts is managed by
|
|
Ansible, the actual core of their orchestration lives in ``manifests``
|
|
and ``modules``.
|
|
|
|
Testing
|
|
-------
|
|
|
|
OpenDev infrastructure runs a complete testing and
|
|
continuous-integration environment, powered by `Zuul
|
|
<https://zuul-ci.org/>`__.
|
|
|
|
Any changes to playbooks, roles or containers will trigger jobs to
|
|
thoroughly test those changes.
|
|
|
|
Tests run the orchestration for the modified services on test nodes
|
|
assigned to the job. After the testing deployment is configured
|
|
(validating the basic environment at least starts running), specific
|
|
tests are configured in the ``testinfra`` directory to validate
|
|
functionality.
|
|
|
|
Continuous Deployment
|
|
---------------------
|
|
|
|
Once changes are reviewed and committed, they will be applied
|
|
automatically to the production hosts. This is done by Zuul jobs
|
|
running in the ``deploy`` pipeline. At any one time, you may see
|
|
these jobs running live on the `status page
|
|
<https://zuul.opendev.org/t/openstack/status>`__ or you could check
|
|
historical runs on the `pipeline results
|
|
<https://zuul.opendev.org/t/openstack/builds?pipeline=deploy>`__ (note
|
|
there is also an ``opendev-prod-hourly`` pipeline, which ensures
|
|
things like upstream package updates or certificate renewals are
|
|
incorporated in a timely fashion).
|
|
|
|
|
|
Contributing
|
|
============
|
|
|
|
Contributions are welcome!
|
|
|
|
You do not need any special permissions to make contributions, even
|
|
those that will affect production services. Your changes will be
|
|
automatically tested, reviewed by humans and, once accepted, deployed
|
|
automatically.
|
|
|
|
Bug fixes or modifications to existing code are great places to start,
|
|
and you will see the results of your changes in CI testing.
|
|
|
|
You can develop all the playbooks, roles, containers and testing
|
|
required for a new service just by uploading a change. Using a
|
|
similar service as a template is generally a good place to start. If
|
|
deploying to production will require new compute resources (servers,
|
|
volumes, etc.) these will have to be deployed by an OpenDev
|
|
administrator before your code is committed. Thus if you know you
|
|
will need new resources, it is best to coordinate this before review.
|
|
|
|
The `#opendev <https://webchat.freenode.net/?channels=opendev>`__ IRC
|
|
channel is the main place for interactive discussion. Feel free to
|
|
ask any questions and someone will try to help ASAP. The `OpenDev
|
|
meeting <http://eavesdrop.openstack.org/#OpenDev_Meeting>`__ is a
|
|
co-ordinated time to synchronize on infrastructure issues. Issues
|
|
should be added to the `agenda
|
|
<https://wiki.openstack.org/wiki/Meetings/InfraTeamMeeting>`__ for
|
|
discussion; even if you can not attend, you can raise your issue and
|
|
check back on the logs later. There is also the `service-discuss
|
|
<http://lists.opendev.org/cgi-bin/mailman/listinfo/service-discuss>`__
|
|
mailing list where you are welcome to send queries or questions.
|
|
|
|
Documentation
|
|
==============
|
|
|
|
The latest documentation is available at
|
|
https://docs.opendev.org/opendev/system-config/latest/
|
|
|
|
That documentation is generated from this repository. You can geneate
|
|
it yourself with ``tox -e docs``.
|