Help:Cloud VPS project

A Cloud VPS project is the basic unit of organization in the Cloud VPS OpenStack environment. The use of the term "project" comes from the upstream documentation of OpenStack.

A Cloud VPS project is:

  • a group of zero or more users
  • the owner of a 'quota' for the maximum amount of CPU, RAM, and disk storage that can be used to create virtual machine instances
  • the owner of virtual machine instances
  • the owner of other configuration related to virtual machine instances such as sudo rules, Puppet configuration, and DNS entries.

Finding existing projects

A listing of all Cloud VPS projects is available at toolforge:openstack-browser/project/.

Requesting a new project

See instructions at the #Cloud-VPS (Project-requests) Phabricator project.

Use of Toolforge may be suggested rather than a Cloud VPS project if the planned work fits the workflow and resource availability of Toolforge. Many bots and webservices can be hosted on Toolforge at a lower maintenance cost for the tool maintainer and with less dedicated resource consumption than a stand-alone project.

Guidelines for project requests

All project requests will be reviewed by Cloud Services administrators to determine if the requested computing resources are likely to be used well by the project and benefit the Wikimedia movement. The majority of project requests are approved, but there are some things which will cause further discussion:

intentionally limiting membership to a closed group
Projects intending to limit membership need additional scrutiny. There are valid reasons that a project requires a limited pool of participants (sensitive data stored/transmitted, infrastructure for larger initiatives, etc), but broadly we prefer projects that are inclusive.
umbrella projects with a broad scope, such as all the work to be done by an engineering team or a large problem space
Umbrella projects with a broad scope have historically been difficult to clean up due to poor tracking of 'ownership' of individual instances. Similarly projects named for and used exclusively by Wikimedia Foundation or affiliate organization engineering teams become confusing following organizational changes which rename or disband the teams. The long term problem becomes determining which instances are in use and by whom years later. This in turn slows down efforts to reclaim unused resources and to upgrade instances to new base images. Umbrella projects also make it more difficult to manage access control for the instances which in turn tends to make umbrella project owners reluctant to collaborate with the wider technical volunteer community.
laptop in the cloud projects for a single individual to use as a personal development machine
Projects for use by single individuals raise a problem of fairness and inclusivity. The Cloud VPS environment is not large enough to provide dedicated resources for every Wikimedia technical contributor simply due to scale and cost of equipment. The Hardware donation program or another Wikimedia grant program may provide an alternative for some individuals.
projects intended to build content wikis
These are generally not in scope for Cloud VPS, but there may be exceptions such as the Beta Cluster where the content is really a necessary side effect of testing at scale.
projects needing larger than default quota or individual instances
"Emergency" requests are very unlikely to be granted without the normal review process.
However, Projects with a clear "end-of-life date" may be granted additional leniency.

Managing a project

We do project management using the web interface at

Manage project membership

Using Project > Access > Project Members (which is horribly slow in our deployment sadly)

TODO: fill with proper info.

Manage instances

using Project > Compute > Instances

TODO: fill with proper info.

Manage security groups

using Project > Network > Security Groups

TODO: fill with proper info.

Manage HTTP proxies

using Project > DNS > Web Proxies

TODO: fill with proper info.

Manage Puppet & Hiera settings

TODO: fill with proper info.

(this one is the most complex and documenting it might lead to ideas on how to make it all a bit easier to use)