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

rohit.ya...@shapeblue.comĀ 
www.shapeblue.com
3 London Bridge Street,  3rd floor, News Building, London  SE1 9SGUK
@shapeblue
  
 

Reply via email to