Commit Graph

25 Commits

Author SHA1 Message Date
David Shrewsbury e6d8b210cc Documentation reorg
Reorganizing docs as recommended in:

https://www.divio.com/blog/documentation/

This is simply a reorganization of the existing documents and changes
no content EXCEPT to correct the location of sphinx doc references.
Expect followup changes to change document names (to reflect the new
structure) and to move content from existing guides (e.g., to move the
pipeline/project/job structure definitions out of the "Project Configuration"
reference guide into their own reference documents for easier locatability).

All documents are now located in either the "overview", "tutorials",
"discussions", or "references" subdirectories to reflect the new structure
presented to the user. Code examples and images are moved to "examples" and
"images" root-level directories.

Developer specific documents are located in the "references/developer"
directory.

Change-Id: I538ffd7409941c53bf42fe64b7acbc146023c1e3
2020-01-14 12:47:23 -05:00
Matthieu Huin 89d3034336 Authorization rules: support YAML nested dictionaries
Allow operators to define complex rules either using the flattened JSONPath syntax,
or the more YAML-friendly nested dicts.

Change-Id: Iabf65313e114dcb15788844a1f0095ae52567275
2020-01-13 15:00:51 +01:00
James E. Blair fce1798e77 Don't capitalize Token in docs
These uses aren't proper nouns.

Change-Id: If1b217a32970a7bf06e7b7deaf53667d51190e37
2019-08-12 10:04:48 -07:00
James E. Blair 08e30b2916 Make auth docs more boring
Use more common metasyntactic names for auth examples, to match
the rest of the documentation.

Change-Id: I052297ce54baae736d23518e59ccd01bb281e109
2019-08-12 10:04:47 -07:00
James E. Blair b5754d258c Move admin-rules setting in tenants doc
Move this setting to the end so that the most important required
settings are listed first, and the reader can follow directly
into the admin-rules section.

Also, change the link title from "this section" to the actual
section name.

Change-Id: Ibaffe2a6f8cbc7654e1aaf603f44720b1d062e75
2019-08-12 10:04:46 -07:00
James E. Blair f13cc924df Add option to report build page
This adds a tenant option to use the Zuul web build page as the
URL reported to the code review system when a build completes.

The setting is per-tenant (because it requires that the tenant
have a working SQL reporter configured in all pipelines) and
defaults to false, since we can't guarantee that.  In the future,
we expect to make SQL reporting implicit, then this can default
to true and eventually be deprecated.

A new zuul.conf option is added and marked required to supply
the root web URL.  As we perform further integration with the web
app, we may be able to deprecate other similar settings, such
as "status_url".

Change-Id: Iaa3be10525994722d020d2aa5a7dcf141f2404d9
2019-08-08 09:46:53 -07:00
mhuin 19474fb62f Web: plug the authorization engine
Add an "authorize_user" RPC call allowing to test a set of claims
against the rules of a given tenant. Make zuul-web use this call
to authorize access to tenant-scoped privileged actions.

Change-Id: I50575f25b6db06f56b231bb47f8ad675febb9d82
2019-07-30 15:32:31 +00:00
James E. Blair eed9931d4c Add extra-config-paths tenant config option
This is intended to address the case of the zuul-jobs repo, where
it would be convenient to include a project definition and job
definitions which test the roles in the zuul-jobs repo.  However,
we want the repo te be consumable by anyone, which means we can
not encode nodesets or required-projects in any jobs which may
be loaded by another Zuul.

To address this, this commit adds a feature which will allow us
to put those job and project definitions in a separate file or
directory which will not be loaded by default.  But in the Zuul
tenant of the OpenDev Zuul installation, we will configure the
system to load this secondary configuration location, so the
self-test jobs will be available.

Change-Id: Ic205d1f93f583514757a100471c47688d6641c53
2019-06-28 13:02:25 -07:00
Monty Taylor b0252eef9d Update references for opendev
Change-Id: I3c1ac5478efed4dee1d525deb036d457287fa136
2019-04-24 12:59:17 +00:00
Tobias Henkel 5c2b61e638
Make ansible version configurable
Currently the default ansible version is selected by the version of
zuul itself. However we want to make this configurable per deployment
(zuul.conf), tenant and job.

Change-Id: Iccbb124ac7f7a8260c730fbc109ccfc1dec09f8b
2019-03-15 09:09:16 +01:00
gaobin 5b3ca17c05 Modify some file content errors
The following error 
exectuor to executor
formated to formatted
overidden to overridden

Change-Id: Ie80e1632624c65adaf6aad86a2c7aae93da688ff
2018-12-11 06:11:07 +00:00
Tristan Cacqueray c00a01a5e8 Add allowed-labels tenant setting
This changes adds a new tenant setting to limit the labels a tenant can
use as job's nodeset.

Change-Id: Ibcba034db76f200c216fe1b353ed122b11ac5014
2018-11-27 06:00:54 +00:00
Tristan Cacqueray 489812e041 Add allowed-triggers and allowed-reporters tenant settings
This changes adds new tenant settings to limit the connection a tenant can
use to trigger from or report to.

Change-Id: I1793ec9c8a249b3a1ce90868086421c8d349d7aa
2018-11-13 16:34:54 +00:00
Fabien Boucher e63535fe86 Tenant config can be read from an external script
This patch adds a new option for the scheduler "tenant_config_script".
When this option is set and target an executable script then the script
is executed and its stdout is taken as the tenant config. This new
option is excluse with "tenant_config". When set, "tenant_config"
is ignored.

The goal is to be able to fetch tenant configuration from
an external source whatever the type of the source as
the logic is handled in a script.

Change-Id: Ic8234dfcdf1f07f824542c4a2ebf99fe8ff19fd5
2018-04-03 14:33:41 +02:00
Fabien Boucher d779c9d943 Add tenant project group definition example and definition in the doc
This patch aims to cover an undocumented tenant configuration
that is the projects group. In configloader.py:TenantParser._getProjects
a project group definition is allowed. A config-projects or
untrusted-projects list could be composed of dictionnaries
with a projects attribute and at least an include or exclude
attribute.

Change-Id: Ia3ca58b4186ee21fed1edd42ecf09ac4355008cc
2018-02-07 11:34:25 +01:00
Joshua Hesketh 731cdf30c2 Fix attribute syntax in docs
The extra column was causing sub-items to render as:
"tenant.untrusted-projects.<project>:.include".

Change-Id: Ica71a4638a654d6ac140a83ec3bb4a52ca6d5242
2017-12-11 13:37:44 +11:00
Tristan Cacqueray c98bff7533 Add max-job-timeout tenant setting
This change adds a tenant setting to limit the timeout value a job can set.

Change-Id: I3875e81b1f6a6e059e7eb57362772e3446e8d022
2017-09-10 18:40:47 +00:00
Monty Taylor db39bbb5bc
Document list of configuration items for include/exclude
Also change the word to Configuration Item since that's what it's called
in config.rst and in error messages. Leave TenantParser use of classes.

Change-Id: I1844665a4f6dd63d517cab68049fae6ed7fcca68
2017-08-24 09:08:09 -04:00
James E. Blair 2bab6e7361 Require a base job
This makes base jobs required and allows for a per-tenant default.

Story: 2001110
Task: 4793
Change-Id: I26ffddad8358c156cfac749ce98af70f3447f671
2017-08-07 14:52:37 -07:00
James E. Blair b4eab9274d Docs: reformat tenant config docs
Change-Id: If749e43b21f11144e8b8fdbd90558247e7e9905c
2017-08-04 10:31:03 -07:00
Tobias Henkel eca4620efa Optionally limit github to protected branches
When using a branch and pull model on a shared repository there are
usually one or more protected branches which are gated and a dynamic
number of temporary personal/feature branches which are the source for
the pull requests. These temporary branches while ungated can
potentially include broken zuul config and therefore break the global
tenant wide configuration.

In order to deal with this model add support for excluding unprotected
branches. This can be configured on tenant level and overridden per
project.

Change-Id: I8a45fd41539a3c964a84142f04c1644585c0fdcf
2017-08-03 11:50:26 +02:00
Tristan Cacqueray 82f864bd5c Add max-nodes-per-job tenant setting
This change adds a tenant setting to limit the amount of nodes a change
can request.

Change-Id: I8bac33cbb3a0438375462fed8124cc150649267f
2017-08-01 08:19:36 +00:00
Tristan Cacqueray 6256a100fd Fix tenant include example
jobs isn't a valid value for include parameter

Change-Id: I1e82b998c83781aaea4982f33fa4753e49ffdee0
2017-07-25 04:30:50 +00:00
James E. Blair 4b42e36a5b Add documentation for project shadowing
Change-Id: I7fb5a7644241207edb02378d0bc93d7177c65435
2017-07-13 13:52:22 -07:00
James E. Blair eff5a9d8d7 Reorganize docs into user/admin guide
Refresh the user and admin guide for v3 changes, and reorganize into
a narrative structure which makes more sense for v3.

Change-Id: I4ac3b18d5ed33b0fea4e2ef0318b19bfc3447ccc
2017-07-05 14:35:22 -07:00