F2F: ONAP CI/CD using OOM Kubernetes

Description

 

1. Session Title

ONAP CI/CD using OOM Kubernetes 

2. Email address

frank.obrien@amdocs.com

3. Speaker Full Name

Michael O'Brien

4. Speaker Company

Amdocs

5. Speaker Biography (900 characters maximum)

https://wiki.onap.org/display/~michaelobrien

6. Select the Talk Type ( Presentation / Panel Discussion / Hands On)

Presentation

7. Title for Your Proposal

ONAP CI/CD using OOM Kubernetes

8. Session Abstract (900 character Maximum)

Development at ONAP occurs on the master branch.  The ONAP project is therefore in need of an automated end-to-end integration sanity to declare a particular tagged build sane and working at some defined level of functionality.  This tagged build would represent a snapshot of war/jar artifacts and docker images - usually a nightly or commit triggered tag. 

Automatically determining the status of the master master branch can be accomplished by running a continuous deployment framework after CI finishes and builds the artifacts in response to a git merge trigger callback.

This presentation will go over a particular implementation of a short regression test (as opposed to a full long regression) - that exercises an extended health check and the automated subset of the vFirewall use case demo to mark a particular tagged build as good.  Developers can then consume the build/pull and update their environments with only builds marked as OK (a TBD level).  This CD job can also verify that a commit did not break integration with other components - as much as the sanity can provide maximum spanning coverage for.

The presentation will run from triggered Jenkins jobs that deploy for example an Amazon AWS EC2 spot VM, deploy OOM, run health and the vFirewall, collect logs/results and tear down the temporary VM.  The process from the Jenkins artifact creation trigger to VM teardown is between 20-60 min per trigger - depending on docker image preload.  A combination of several pre-recordings and parallel live/background demos will compress the actual time to demonstrate ONAP CD in several passes.  

Northbound clients like the OPNFV Auto project and CNCF can also mark builds as ready to work with by subscribing to the CD result stream.

In summary: 

Automatically deploy ONAP OOM based on git submission artifact generation

Run extended healthcheck and automated parts of vFirewall E2E sanity use case

Report back on whether specific tag (code, artifacts, docker image repos) is sane and ready for developer and northbound (CNCF, OPNFV) consumption

By default tear down OOM deployment after testing - or keep a rolling set - up for testing, or provide saved tagged AMI for later reproduction

The CD deploy will - depending on commit/merge load test 1 or more merges per CD job

See redeploy sh script on https://lf-onap.atlassian.net/browse/INT-120, https://lf-onap.atlassian.net/browse/OOM-150 - Deployment Integration Jenkins job using OOM-K8S - to validate branch

Rotating live deployments in a public lab on AWS EC2

Feeds directly into the development process, could show benefits vs Docker Compose/Vagrant

Discuss https://lf-onap.atlassian.net/browse/OOM-357 - CNCF CrossCloud Deployment/CI Integration with ONAP

Discuss https://wiki.onap.org/display/DW/OPNFV+Integration - OPNFV Northbound client integration with ONAP

Discuss results of OPNFV Plugfest - https://wiki.opnfv.org/display/EVNT/Plugfest+Planning+Page 1 week before our F2F

See prototype on https://wiki.onap.org/display/DW/ONAP+on+Amazon+EC2

See Tracking Wiki at https://wiki.onap.org/display/DW/ONAP+on+Kubernetes

See Tracking JIRA at  https://lf-onap.atlassian.net/browse/OOM-393 and https://lf-onap.atlassian.net/browse/INT-120 

Recommended Prerequisites:

"An Introduction to the ONAP Operations Manager (OOM)"

"Deploy ONAP/OOM on any Environment"

Recommended Follow Up Presentations:

"ONAP/OOM for Developers"

Attachments

3
  • 07 Dec 2017, 08:21 PM
  • 12 Nov 2017, 04:39 PM
  • 06 Nov 2017, 03:26 AM
100% Done
Loading...

Activity

Show:

Former user January 13, 2018 at 5:08 AM

Former user December 9, 2017 at 5:15 PM

Shane I have another item we can create a dashboard fragment for - to add to yours - robot init (composed of cloud-region AAU put - customer create, model distribute - will add a couple more rest calls - with actual output - this is the vFW just before service creation in VD

[12:08]
http://jenkins.onap.info/job/oom-cd/659/console

[12:08]
16:46:36 run partial vFW
16:46:36 Starting Xvfb on display :89 with res 1280x1024x24
16:46:36 Executing robot tests at log level TRACE
16:46:38 ==============================================================================
16:46:38 OpenECOMP ETE
16:46:38 ==============================================================================
16:46:38 OpenECOMP ETE.Robot
16:46:38 ==============================================================================
16:46:38 OpenECOMP ETE.Robot.Testsuites
16:46:38 ==============================================================================
16:46:40 OpenECOMP ETE.Robot.Testsuites.Demo :: Executes the VNF Orchestration Test ...
16:46:40 ==============================================================================
16:46:43 Initialize Customer And Models | PASS |
16:46:43 ------------------------------------------------------------------------------
16:46:43 OpenECOMP ETE.Robot.Testsuites.Demo :: Executes the VNF Orchestrat... | PASS |

[12:13]
https://github.com/obrienlabs/onap-root/commit/cda829a5bd9ae7f53442aebdff6b6aa868590940 

Former user November 11, 2017 at 6:20 PM
Edited

20171111_cd_onap_info ami-3b67df41 for cd.onap.info

https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#Images:visibility=owned-by-me;search=ami-3b67df41;sort=desc:creationDate 

ubuntu@ip-172-31-85-6:~$ history     2  curl https://releases.rancher.com/install-docker/1.12.sh | sh     3  sudo usermod -aG docker ubuntu     5  git clone http://gerrit.onap.org/r/oom     6  curl https://jira.onap.org/secure/attachment/10666/prepull_docker.sh > prepull_docker.sh     7  chmod 777 prepull_docker.sh     8  nohup ./prepull_docker.sh &    10  tail -f nohup.out    11  ps -ef | grep docker | grep pull    13  curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl    14  chmod +x ./kubectl    16  sudo mv ./kubectl /usr/local/bin/kubectl    17  mkdir ~/.kube    23  docker run -d --restart=unless-stopped -p 8880:8080 rancher/server    25  sudo docker run --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.6 http://cd.onap.info:8880/v1/scripts/2C253E95BFB5300782DF:1483142400000:BMhoRm5Tygl4DJe7rh8fqgR9Bs    26  vi ~/.kube/config    27  kubectl get pods --all-namespaces    40  wget http://storage.googleapis.com/kubernetes-helm/helm-v2.3.0-linux-amd64.tar.gz    41  tar -zxvf helm-v2.3.0-linux-amd64.tar.gz    43  sudo mv linux-amd64/helm /usr/local/bin/helm
Done

Details

Assignee

Reporter

Labels

Time tracking

3d 3h logged

Sprint

Fix versions

Priority

Created November 3, 2017 at 1:37 PM
Updated August 12, 2023 at 5:56 AM
Resolved January 2, 2018 at 3:50 PM