Some thoughts:
- Continuous System Integration Test (CSIT) per project, current level is low:
https://jenkins.onap.org/view/CSIT/ We should encourage project as part as
their milestones to have a certain level of coverage through CSIT. Maybe create
a reward, like the project that has the best test coverage (we’ve done this for
a few releases in ODL)
- REST API layer
- E2E functionality within the project itself (using simulators, …)
- CSIT for overall ONAP, e.g run close-loop use cases
- A better way to customize ONAP deployment in OOM. Currently everything is
coming from an onap-parameters.yaml file, which was done initially but isn’t a
good solution. Team is currently working on moving the configuration under each
helm chart (per project), so configuration can be derived from the helm chart
itself. Once done, we can create a common helm chart that will centralize the
ONAP parameters to be passed to any projects helm chart, it will basically sit
on top of the other, as illustrated bellow:
———————
common chart
———————
projects chart
———————
That way, projects chart can be configured to retrieved the value from the
common chart, or to use their own values (using Go Templating, e.g. {{
Values.common.appcversion | default v1.1.1 }} ). So basically we keep the
ability to deploy one chart at the time.
Finally, Helm provides the ability to overwrite the values.yaml properties when
deploying a chart, hence the common values.yaml file can be overwritten to
provide specific environment details.
- Create a CI process for OOM in ONAP’s Jenkins. As OOM is using helm chart for
each application, OOM should produce helm chart, and at release time, should
release helm chart, so consumer (GOCD, Cloudify, …) can consume them. This
currently doesn’t exist in ONAP, moreover, we need ONAP to be able to host helm
chart. Nexus doesn’t offer this capability yet. I know Bintray does, and it’s
on the way for Artifcatory. But we need support from the LF on this to find the
appropriate solution. Note, it could also be a simple HTTP server on which we
can have two folders, snapshot and release, and manipulate helm chart from
there.
- Create a CD process for OOM in ONAP’s Jenkins: Today we have Michael’s script
that does the job. But we should have something that provides more auditing,
better logging, better traceability, etc.... Internally we’ve been using GOCD
for that, and we’re currently looking at how to properly upstream what we’ve
done. GOCD allows to create pipeline, similar to Jenkins pipeline, but geared
mainly for CD and not CI. This will give the ability to deploy ONAP on
multiple/different environments. Also, this could be triggered by an upstream
Jenkins Job, like a merge job, or a keyword comment on a gerrit patch. An
alternative to GOCD, being currently developed in OOM, is Cloudify. So both
options will sit on top of OOM, consuming helm chart build by OOM.
- Ability to upgrade a component. Today, OOM only offers the ability to create
or delete component, which is underusing the advantage of Kubernetes that
support upgrade for any deployment.
With the upgradability feature provided by OOM, we will be able to re-deploy
only components that have changed, based on docker image version. So no need to
re-deploy the whole ONAP. And the best part is, it will rollback is the upgrade
has failed. So we can keep and “stable” like kind of environment where to
periodically run the CSIT covering the close-loop use cases.
Regarding how the process should work in Gerrit:
- I tend to think we shouldn’t have to wait for an hour or so to have a
Verified +1 from Jenkins, this is too long, and this will impact development
cycles badly. Ideally, the Jenkins verified job shouldn’t take more than 30 mn
if we want to be efficient.
The addition of a Gerrit trigger keyword to run it the full CSIT close-loops
suites will allow committer/developers to run more in-depth verification on
patches that they feel requires it.
Alexis
> On Jan 23, 2018, at 2:37 PM, Michael O'Brien <[email protected]> wrote:
>
> Team,
> Hi, the Integration(Ran, Marco, Gary, Helen, Brian), OOM(Alexis, Mike O,
> Mike E, Yuri), the Linux Foundation(Jessica) and members of the TSC (Gildas)
> have been discussing build tagging and continuous deployment as a way of
> validating the runtime integrity of each component merge – a fully jenkins
> triggered automated CI/CD system that does more than healthcheck.
> At the last Integration meet and a couple before that we discussed moving
> away from blind tagging and more towards continuous build validation – this
> meeting is in response.
> One of the major goals of this meeting is getting a clean set of tasks we
> will present to the Linux Foundation and the PTLs on any
> addition/modification of the current Jenkins/nexus3 build structure.
>
> We will be holding weekly meetings so everyone can contribute and be
> aware of work items and changes to the way we build, deploy, test and mark
> each commit in onap. Currently the JobBuilder does CI compilation/test
> marking a -1/+1. We will be coming up with a set of proposals to drive CD
> with the goal of creating/consuming a manifest per commit and marking a merge
> as +1/-1 using an additional “CDBuilder”.
> Please come to the meeting to help us align/fix anything out of order
> and sort out the work items.
>
> https://zoom.us/j/7939937123 <https://zoom.us/j/7939937123>
> Tentatively 1130 EST (GMT-5) on Thu – 30 min after the TSC meeting – we can
> move it
>
> There is a JIRA being worked out that describes the tasks needed to
> transition a live POC using what is running now. There is also work being
> done in OOM-460 that will align any CD system to helm based config packaging.
> This meeting is to work out tasks mostly around what will impact the LF and
> PTLs as we bring in continuous deployment and align CI/CD with what is master
> right now.
>
> Agenda items
> Review https://jira.onap.org/browse/OOM-500
> <https://jira.onap.org/browse/OOM-500>
> Discuss aligning the nexus3 docker tag timestamp format
> <https://nexus3.onap.org/> – LF task and PTL oversight
> Discuss building tagged docker images per commit – more granular than daily
> <https://jenkins.onap.org/view/Merge-Jobs/job/aai-sparky-be-master-merge-java/>
> – LF task
> Discuss how to validate a tagset containing the specific commit under test –
> the CD deployment <http://jenkins.onap.info/job/oom-cd> server/job – this is
> where we pull/push the docker tagset manifest under test.
>
> Discussion start (from OOM-500)
>
> <ATT59161 1.jpg> existing flow (actual)
> gerrit review commits - partial-CI runs - JobBuilder marks -1 (compile
> failure, sonar failure)
> gerrit review commits - partial-CI runs - JobBuilder marks +1, committer +2
> merges to master, (later daily docker merge build tagged docker blindly)
> no way to know whether that commit degraded ONAP
> <ATT53870 2.jpg> proposed flow (expected) - two phase JobBuilder +1 process
> gerrit review commits - partial-CI runs - JobBuilder marks -1 (compile
> failure, sonar failure)
> gerrit review commits - partial-CI runs - JobBuilder marks +1, (what we add
> below)
> kick in docker merge immediately, we tag the docker image, we adjust the
> manifest for this review
> run extra CDBuilder that runs CD deploy of OOM using above tagset manifest,
> healthcheck, vFW
> report failure - marks gerrit review as -1 - no tag set published for this
> failed commit
> or report pass - marks gerrit review as +1
> jenkins now retags "latest" to the the docker built above for the review (do
> not blindly tag "latest" to the last docker build whether it passes/fails CD)
> Tagset for that build becomes the latest stable master build of ONAP (as in
> an OOM deploy will run not from master tip but from a tagged set that omits
> the last breaking change)
> committer +2 merges to master, (docker merge and tagging should not be
> required as long as master has not moved during the 1 hour CD build)
>
>
> Thank you
> /michael
>
>
>
>
>
> This message and the information contained herein is proprietary and
> confidential and subject to the Amdocs policy statement,
> you may review at https://www.amdocs.com/about/email-disclaimer
> <https://www.amdocs.com/about/email-disclaimer><Mail
> Attachment.ics>_______________________________________________
> onap-discuss mailing list
> [email protected] <mailto:[email protected]>
> https://lists.onap.org/mailman/listinfo/onap-discuss
> <https://lists.onap.org/mailman/listinfo/onap-discuss>
_______________________________________________
onap-discuss mailing list
[email protected]
https://lists.onap.org/mailman/listinfo/onap-discuss