diff options
author | Douwe Maan <douwe@gitlab.com> | 2016-11-04 11:37:49 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2016-11-04 11:37:49 +0000 |
commit | 5ef2bd192aa9b3ecbfc23e83c6984e2a818fb736 (patch) | |
tree | efcc6951aefa2fa5de95593325060bd6bd167d69 /doc | |
parent | 69bff037be19b0b426306959dfd9835021886ab8 (diff) | |
parent | a3847fa091991089486fc237428a7fc0e5948947 (diff) | |
download | gitlab-ce-5ef2bd192aa9b3ecbfc23e83c6984e2a818fb736.tar.gz |
Merge branch '24059-round-robin-repository-storage' into 'master'
Resolve "Introduce round-robin project creation to spread load over multiple shards"
## What does this MR do?
Allow multiple shards to be enabled in the admin settings page, balancing project creation across all enabled shards.
## Are there points in the code the reviewer needs to double check?
* `f.select ..., multiple: true` isn't the most beautiful UI in the world, but switching to `collection_check_boxes` (or a facsimile thereof) isn't trivial
* Should `pick_repository_storage` be a method of `ApplicationSetting`, or `Project`? It's going to accrete logic over time so perhaps it should be its own class already?
* This is written to avoid the need for a database migration, so it is`serialize :repository_storage` without `, Array`. This is tested, but alternatives include:
* Add a database migration
* Write a custom Coder that will accept a String or Array in `load` and always `dump an Array.
## Why was this MR needed?
## Screenshots (if relevant)
![Screen_Shot_2016-11-03_at_14.42.41](/uploads/7de15d6c1b3fa60bb7a34d6a7d9f00ce/Screen_Shot_2016-11-03_at_14.42.41.png)
## Does this MR meet the acceptance criteria?
- [X] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG.md) entry added
- [X] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)
- [x] API support added
- Tests
- [X] Added for this feature/bug
- [ ] All builds are passing
- [X] Conform by the [merge request performance guides](http://docs.gitlab.com/ce/development/merge_request_performance_guidelines.html)
- [X] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
- [X] Branch has no merge conflicts with `master` (if it does - rebase it please)
- [X] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
## What are the relevant issue numbers?
Closes #24059
See merge request !7273
Diffstat (limited to 'doc')
-rw-r--r-- | doc/administration/img/repository_storages_admin_ui.png | bin | 17081 -> 54043 bytes | |||
-rw-r--r-- | doc/administration/repository_storages.md | 3 | ||||
-rw-r--r-- | doc/api/settings.md | 4 |
3 files changed, 6 insertions, 1 deletions
diff --git a/doc/administration/img/repository_storages_admin_ui.png b/doc/administration/img/repository_storages_admin_ui.png Binary files differindex 599350bc098..6481baca1ad 100644 --- a/doc/administration/img/repository_storages_admin_ui.png +++ b/doc/administration/img/repository_storages_admin_ui.png diff --git a/doc/administration/repository_storages.md b/doc/administration/repository_storages.md index 55b054fc1a4..ab70557b69a 100644 --- a/doc/administration/repository_storages.md +++ b/doc/administration/repository_storages.md @@ -91,6 +91,9 @@ be stored via the **Application Settings** in the Admin area. ![Choose repository storage path in Admin area](img/repository_storages_admin_ui.png) +Beginning with GitLab 8.13.4, multiple paths can be chosen. New projects will be +randomly placed on one of the selected paths. + [ce-4578]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4578 [restart gitlab]: restart_gitlab.md#installations-from-source [reconfigure gitlab]: restart_gitlab.md#omnibus-gitlab-reconfigure diff --git a/doc/api/settings.md b/doc/api/settings.md index f7ad3b4cc8e..218546aafea 100644 --- a/doc/api/settings.md +++ b/doc/api/settings.md @@ -42,6 +42,7 @@ Example response: "sign_in_text" : null, "container_registry_token_expire_delay": 5, "repository_storage": "default", + "repository_storages": ["default"], "koding_enabled": false, "koding_url": null } @@ -73,7 +74,8 @@ PUT /application/settings | `user_oauth_applications` | boolean | no | Allow users to register any application to use GitLab as an OAuth provider | | `after_sign_out_path` | string | no | Where to redirect users after logout | | `container_registry_token_expire_delay` | integer | no | Container Registry token duration in minutes | -| `repository_storage` | string | no | Storage path for new projects. The value should be the name of one of the repository storage paths defined in your gitlab.yml | +| `repository_storages` | array of strings | no | A list of names of enabled storage paths, taken from `gitlab.yml`. New projects will be created in one of these stores, chosen at random. | +| `repository_storage` | string | no | The first entry in `repository_storages`. Deprecated, but retained for compatibility reasons | | `enabled_git_access_protocol` | string | no | Enabled protocols for Git access. Allowed values are: `ssh`, `http`, and `nil` to allow both protocols. | | `koding_enabled` | boolean | no | Enable Koding integration. Default is `false`. | | `koding_url` | string | yes (if `koding_enabled` is `true`) | The Koding instance URL for integration. | |