Instance-wide Clever Cloud Runner
Context
There are currently two Clever Cloud (CC) Runners attached to this instance:
- "clever-cloud-group-heptapod" takes jobs for the whole Heptapod group
- "clever-cloud" works specifically for mercurial/mercurial-devel>
Historically, they have provided a testbed for CC runners in general, on projects that Octobus works daily on (and administrate).
The underlying code is heptapod-paas-runner
, the Python subsystem in heptapod/heptapod-runner>. The commercial version is the Clever Cloud CI of heptapod.host, with documentation/tutorial available here.
Up to now, the quota system implemented by the CC Runner was too coarse to work for all projects of foss.h.n. This changed with the completion of heptapod-runner#35 (closed) (currently under evaluation as version 0.6.0rc2), which increased in practice the number of available concurrent jobs by gaining awareness of job sizes. See Docker Host Flavors for details about job sizes.
The plan
We plan to register a new shared (aka instance wide) Clever Cloud runner, perhaps with a small default flavor. This could be done today, but we'll wait until 2023-01-10 to increase the chances of users noticing this and give their feedback.
Here are the expected differences with the Clever Cloud runner of heptapod.host:
- no billing
- default flavor
S
(2 vCPUs, 4GiB of RAM). Users may specify up to2XL
. Conversely, please downgrade your smallest jobs toXS
if you can. - single tenant: all corresponding ressources on CC will belong to a single CC Organization
- S3 shared caches will be provided (this is much easier in the single tenant case and has been in place for the Heptapod Group for years, now).
- the new runner will have the same non-exclusive tags as
clever-cloud-group-heptapod
:-
docker-registry-push
: necessary for jobs that upload images to registry.h.n (see #93 (closed)). Among shared runners, it is currently borne by the OSCI runner only -
clever
: for completeness
-
Expected impact
- many more concurrent jobs available
🎉 . - the virtual CPUs provided by CC are generally comparable to those of OSUOSL, hence with a slower single thread performance than the OSCI runner
- there can be cases where a job is stalled, usually because of a provisioning problem,
but we currently don't have a nice user feedback for that (see heptapod-runner#38). The only option available to users is to cancel the job and retryand it now ends up in a user visible error. It should not happen frequently, thanks to the new quota system, and various improvements (heptapod-runner#39 (closed) and heptapod-runner#42 (closed)). - each job starts on a fresh system, hence will need to create its source repository. This can be a noticeable added latency for large projects, hopefully compensated by the increase in parallelism.
Conclusion
Many thanks go to Clever Cloud for their continuous support of Heptapod and Free and Open Source Software through this platform. Users are encouraged to mention it even more than they already are :-)
This issue is to give our users awareness of this change. Conversely, don't hesitate to use it to give us feedback.