Project

Profile

Help

Infrastructure & Hosting » History » Sprint/Milestone 3

bmbouter, 11/07/2017 11:21 PM

1 1 bmbouter
# Current Infrastructure & Hosting
2
3
## Websites
4
5
pulpproject.org - The main website is Jekyll based website. The content comes from the [pulp/pulpproject.org](https://github.com/pulp/pulpproject.org/) repo. It is currently built and hosted via Github Pages. The domain name registration is owned by Red Hat IT, and the DNS is managed by Red Hat IT.
6
7
docs.pulpproject.org - The docs website is built via Sphinx by Jenkins nightly using [this script](https://github.com/pulp/pulp_packaging/blob/master/ci/docs-builder.py). That builds a specific branch of the docs from pulp/pulp and then pushes them to the hosting environment on openshift V2.
8
9
## Testing Enivornments.
10
11
**Jenkins Master** - Jenkins master is hosted by Red Hat central CI. This environment provides lots of functions: including PR test running, PR docs testing, nightly docs building, nightly rpm production, upstream/downstream automation, and other functions.
12
13
**Jenkins Slaves** - All Jenkins work is coordinated by the master but performed by slaves. The Jenkins slaves run in an environment called ci-rhos which is a Red Hat openstack instance which provides slave resources.
14
15
**Nodepool** - The slaves are requested by a nodepool instance. The Pulp team self-supports a nodepool instance which creates the slaves for Jenkins.
16
17
**Travis** - Travis is the test runner for Pulp3 specifically. Those tests are not run by Jenkins.
18
19
## Distribution of Bits
20
21
**PyPI** - Pulp3 is being distributed via PyPI.
22
23
**repos.fedorapeople.org** - The official Pulp rpms are available via https://repos.fedorapeople.org/pulp/pulp/stable/ We rsync the bits to that environment whenever releases occur.
24
25
## Issue tracking
26
27
**pulp.plan.io** - Hosted redmine instance for issues and features to be filed for Pulp and some plugins. All plugins maintained by the core team are expected to be there. Community plugins are also welcome to root their issue trackers there.
28
29
**Github Issues** - Some parts of Pulp have their issues tracked via Github Issues. Specifically, pulp-smash and the repo tracking defects on pulpproject.org both use Github issues.
30
31
# Infrastructure Needs
32
33
## Website
34
35
pulpproject.org needs to be moved out of the environment it is hosted in currently and into a new environment. We need to get off Github Pages (pulpproject.org) because the site is [marked as spam](https://pulp.plan.io/issues/2477) and to allows us to add legitimate SSL which would avoid the scary name/certificate mismatch security error you get now.
36
37
docs.pulpproject.org also needs to be moved out of the environment it is hosted in because that environment is being sunset within the coming months. Specifically it is hosted in openshift V2 and it needs to move.
38
39
We can host both websites on one machine. Specifically these are the requirements:
40
41
A webhosting environment that can:
42
43
  - regular patching/updates for security
44
  - key based SSH only
45
  - the ability to push website changes via rsync which is how we deploy to the existing pulpproject.org environment already.
46
  - provide SNI based TLS
47
  - automatic renewal of letsencrypt based TLS certificates
48
  - redirect configuration to roll over all traffic from http to https.
49
50
## Vagrant VM building
51
52
We want a machine to build Vagrant VMs. This needs to run virtualization on the machine, so it needs to be either virt-in-virt with hardware support or a bare-metal machine. Here are some basic requirements:
53
54
  - EL7 or similar
55
  - 50G of storage (we are building imagines inside this environment)
56 2 dkliban@redhat.com
  - small CPU
57 1 bmbouter
  - no backups required
58
  - must be able to run virtualization, so either virt-in-virt or a bare metal machine.
59
60
## Distribute Pulp with Pulp
61
62
We want an environment that can allow us to store/test/promote Pulp rpms/Python packages using Pulp. We are switching to Copr as a new build system and that won't retain our builds as long so we need to store them elsewhere. Also Pulp is built for package promotion so we should use it. We need:
63
64
  - An EL7 with 
65
  - 30GB of space (10GB of storage for Pulp data, 20GB for Mongo)
66
  - small cpu
67
  - medium RAM, at least 4GB but 6 would be ideal.
68
69 3 bmbouter
## Code Performance Testing
70 1 bmbouter
71 3 bmbouter
We've wanted to understand the performance impact of code changes for a long time. We want to run [tests like these](https://pulp.plan.io/projects/pulp/wiki/Performance_Test_Plan). Overall this idea is inspired by reports like [these](https://people.apache.org/\~mikemccand/lucenebench/index.html) for the Lucene project.
72
73
We likely need one-bare metal machine that we can load fresh everyday and test on. We also need some way to freshly load that machine each day with a tool like oVirt or Foreman. It would be great if we could:
74 1 bmbouter
75
  - Have a bare-metal server box
76
  - That can have EL7 loaded onto it every night and updated to the latest
77
  - That Jenkins can load Pulp onto daily and run a performance test suite on it
78
79
## Nodepool
80
81
We want CI-OSP to take over supporting Nodepool. They can host it wherever they want.