All,
With this thread I want to start a discussion around:
* How do we host/publish technical preview release
* How do we host/publish technical preview documentation (release notes,
setup/install instructions)
To set the expectation:
* This thread limits discussion wrt technical preview (beta).
* Plan we've already agreed, just to recap: (see voting/proposal references)
* Primate tech preview releases with 4.14.
* 4.14 release notes and announcement will have a deprecation notice wrt
the old UI, will have docs/links on Primate tech preview.
* Primate will GA with next CloudStack release, old UI removal final
notice will part of the next CloudStack release (summer/lts).
* Old UI will be finally removed in the next to next CloudStack release
(winter/lts).
* Starting master/4.15, we want to encourage contributors to submit any
new UI features/enhancements/changes to Primate; old UI can still receive
bug/security fixes until removal but large changes are discouraged.
* In the next few months until GA/1.0, we'll discuss
releasing/hosting/publishing Primate longer-term in a separate discussion
thread after tech-preview.
* References:
* Voting thread: https://markmail.org/message/tblrbrtew6cvrusr
* Proposal:
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Proposal%3A+CloudStack+Primate+UI
* Discussion thread: https://markmail.org/message/z6fuvw4regig7aqb
Current status wrt technical preview:
* We're 100% done with the list of supported APIs against 4.13, including
support for some features in 4.14 (such as CKS, B&R etc)
* Outstanding issues wrt 0.5-technical-preview milestone:
https://github.com/apache/cloudstack-primate/milestone/1
* Oustanding PRs for 0.5-technical-preview:
https://github.com/apache/cloudstack-primate/pulls?q=is%3Aopen+is%3Apr+no%3Amilestone
* Technical Preview RC will be cut as soon as the issues/PRs are closed
To get some initial discussion going, here are my views (I've discussed a few
of those during the last Primate SIG meeting).
Please discuss:
1. Documentation for tech preview:
It is preferred that Primate be developed, maintained and released separately
from CloudStack. Primate would require its own docs website/location for
hosting release notes etc. I can think of two ways:
* For tech preview, let's just a section/topic on Primate on how users
can install and use Primate on the docs website:
http://docs.cloudstack.apache.org/en/latest/primateguide (it does not exist,
just for example)
For each CloudStack release, the docs may be updated, including list of
supported/required versions matrix (both CloudStack and Primate).
For tech preview, this needs to be on the 4.14.0.0 docs website.
* On Github wiki: https://github.com/apache/cloudstack-primate/wiki we
can maintain a copy of text/pages from above ^^, as well as links on the Github
release for every git tag. A general guide (agnostic of Primate version) could
be written/hosted there.
(similar to CloudStack releases, for example:
https://github.com/apache/cloudstack/releases/tag/4.13.0.0)
2. Types of Primate packages:
* deb/rpm: Primate already supports deb/rpm packages. This mode will
allow users to install "cloudstack-primate" on the management server where
Primate will be served from the management server just like the old UI.
* docker container: Primate support docker containers to be built/used
which takes a nginx config to proxy /client path to any management server.
* archive build: A built archive (tar.gz) of Primate can be extracted
and allow users/admins to do any custom hosting with it, other than (a) or (b).
The install/setup/usage instructions are in general as follows: (will be
properly documented on the docs website/location)
- For (a), we need setup the repository, then run (1) yum/apt-get update, (2)
yum/apt-get install <cloudstack-primate> on a management server host.
- For (b), we need to run the docker container and pass a nginx config file.
(similar to https://github.com/apache/cloudstack-primate#docker)
- For (c), we extract and use Primate in a custom setup (that's upto the
user/admin); they may also fork/customise Primate and build (as per
https://github.com/apache/cloudstack-primate#production).
3. Hosting packages/releases:
* Use download.cloudstack.org for hosting (a) deb/rpm repos, and (c)
archive builds.
For example: I've setup a Jenkins job that builds (daily) latest Primate master
and rsyncs the (a) and (c) packages here "for testing purposes only":
http://download.cloudstack.org/primate/testing/master/
In additional, for every release we can have a Github release/tag (where we
attach archive builds).
* Use the apache dockerhub org to publish official Primate container
images:
https://hub.docker.com/r/apache/cloudstack-primate
(this is 404 for now, I've started a discuss with asf infra/dev community to
have this sorted, we've a dockerfile in git repo; for "testing only" I was able
to build and publish image here: https://hub.docker.com/r/cloudstack/primate --
I'll remove this once the apache/cloudstack-primate is setup)
Alternative, host on Github:
https://github.com/apache/cloudstack-primate/packages?package_type=Docker
4. Tech Preview releasing:
* The versioning is set to: <major>.<minor>.<security>-<date-stamp> for
example:
cloudstack-primate-0.4.0-20200506.x86_64.rpm<http://download.cloudstack.org/primate/testing/master/centos/cloudstack-primate-0.4.0-20200506.x86_64.rpm>
cloudstack-primate_0.4.0-20200506_all.deb<http://download.cloudstack.org/primate/testing/master/debian/cloudstack-primate_0.4.0-20200506_all.deb>
cloudstack-primate-0.4.0-20200506.tar.gz<http://download.cloudstack.org/primate/testing/master/cloudstack-primate-0.4.0-20200506.tar.gz>
apache/cloudstack-primate:latest (or some tag similar to above for docker
builds ^^)
* Since this is not the official/GA release, tech preview does not need
to be voted. Any other thoughts?
* Should we do a single tech preview RC/release, or we setup a periodic
build/release (say every day/week/month) on all the tech preview release
channels (deb/rpm repositories, dockerhub etc.) This would allow us to take
feedback/bugs/issues, fix them and release them quickly for users to test.
We already have a daily job that runs builds latest master and rsyncs on
http://download.cloudstack.org/primate/testing/master/ now (just deb/rpm and
tar.gz archive). We also have a live QA Primate server that we can build/test
Primate master against http://primate-qa.cloudstack.cloud:8080/client/master
(this auto-updates against master every 30mins).
Please discuss and share your feedback, agreements/disagreements, solutions.
Anything else we should consider?
Thanks.
Regards,
Rohit Yadav
Software Architect, ShapeBlue
https://www.shapeblue.com
[email protected]
www.shapeblue.com
3 London Bridge Street, 3rd floor, News Building, London SE1 9SGUK
@shapeblue