User Tools

Site Tools


releases:brahmaputra:release_artifacts_discussion

Stack of Brahmaputra

Stack OS
Ubuntu CentOS
Openstack Kilo Kiko
Kernel 3.14?
OVS 2.3.0
Qemu 2.3.0
KVM
Libvirt 1.2.13
ODL Lithium SR2
Onos

Discussion: Release Artifacts for Brahmaputra

Objectives

Objectives for released artifacts:

  • Offer users "something which consistently installs a stable state of an OPNFV release"
  • Minimize the release engineering effort around packaging and maintenance of the packaging
  • Install efficiency (efficiency of artifact download necessary to meet their needs)

Options: Release Artifacts

Summary of options discussed:

Identifier Option title
A.1a Bootable disk image per installer
A.1b Self-contained bootable disk image per installer
A.1c Single bootable disk image covering all installers
A.2a Install-documentation only per installer
A.2b Install script per installer
A.2c Single install script covering all installers

Note: For OPNFV Arno:

  • A.1b was required
  • A.1a and A.2b were optional

Note: For OPNFV Brahmaputra :

  • A.2b is required

TSC decision : http://meetbot.opnfv.org/meetings/opnfv-meeting/2015/opnfv-meeting.2015-10-06-13.59.html VOTE: Voted on "Preference on minimum requirements on release artifacts?" Results are, A2b: 7, abstain: 1, A1b: 1 (ChrisPriceAB, 14:49:18)

Option A.1a: Bootable disk image per installer

A release is comprised of:

  • A bootable disk image in .iso format per installer which offers an install capability for the jumphost
  • documentation / release notes

Option A.1b: Self-contained bootable disk image per installer

A release is comprised of:

  • A bootable disk image in .iso format per installer which offers an install capability for the jumphost. The .iso also includes all artifacts that a full OPNFV system requires. There is no need for the Jumphost to have connectivity to external repositories.
  • documentation / release notes

Option A.1c: Single bootable disk image covering all installers

A release is comprised of:

  • A single bootable disk image in .iso format covering all installers which offers an install capability for the jumphost
  • documentation / release notes

Option A.2a: Install-documentation only per installer

A release is comprised of:

  • documentation / release notes on installing OPNFV from the tagged Git repository corresponding to the release

Option A.2b: Install script per installer

A release is comprised of:

  • "deploy.sh" script per installer which offers an install capability for the jumphost (i.e. the script creates and brings up a VM on the jumphost, which subsequently drives the installation of the OPNFV system). The "deploy.sh" script can customized, so that the configuration that is desired by the user will be installed. "deploy.sh" relies on OPNFV and upstream repositories.
  • documentation / release notes

Option A.2c: Single install script covering all installers

A release is comprised of:

  • A single "deploy.sh" script covering all installers which offers an install capability for the jumphost (i.e. the script creates and brings up a VM on the jumphost, which subsequently drives the installation of the OPNFV system). The "deploy.sh" script can customized, so that the installer and configuration that is desired by the user will be installed. "deploy.sh" relies on OPNFV and upstream repositories.
  • documentation / release notes

Options: Release Maintenance

Summary of approaches discussed:

Identifier Approach title
M.1 Latest only
M.2a Latest and stable branch maintenance
M.2b Latest plus Service Releases for "Latest-1/stable"
M.3a Latest and branch maintenance for the last k releases (k>1)
M.3b Latest plus Service Releases for "Latest-n" (n=1,2..m)

Note: For OPNFV Arno approach "M.2b" is used.

Option M.1: Latest only

Release definition and maintenance:

  • "Releases" are defined by labeling in git. No branches are created.
  • Releases are a "snapshot in time" - i.e. once a release is labeled it does not receive any further maintenance, i.e. its content is frozen and will not receive any updates or fixes. Access to a release is via its labels.
  • Bug fixes and new features are provided in a continous way.

Option M.2a: Latest and stable branch maintenance

Release definition and maintenance:

  • "Releases" are defined by labeling in git.
  • A release is maintained and bug-fixes are applied to a release. I.e. there are always two active branches in OPNFV:
    • "latest" - artifacts that will become the next release
    • "stable" - the current release plus fixes on top of the most recent release (i.e. on top of the labeled artifacts of the most recent release).
  • The "stable" branch will be available and stable at all times after the release until the next release.
    • Requires higher validation settings on stable for all changes

Example for this option:

  • Brahmaputra released - Brahmaputra would be the "stable" release, C-River would become "latest"
  • Fixes for Brahmaputra would be done and committed to "stable"
  • No further maintenance for Arno would be done

Option M.2b: Latest plus Service Releases for "Latest-1/stable"

Release definition and maintenance:

  • "Releases" are defined by labeling in git.
  • A release is maintained and bug-fixes are applied to a release until a new release comes out. I.e. there are always two active branches in OPNFV:
    • "latest" - artifacts that will become the next release
    • "stable" - the current release plus fixes on top of the released (i.e. labeled) artifacts.
  • Snapshots of the "stable" branch will be released at regular intervals as "service releases" using labels.

Example for this option:

  • Brahmaputra released - Brahmaputra would be the "stable" release, C-River would become "latest"
  • Fixes for Brahmaputra would be done and committed to "stable"
  • At regular intervals service releases of Brahmaputra would be created
  • No further maintenance for Arno would be done

Option M.3a: Latest and branch maintenance for the last k releases (k>1)

Release definition and maintenance:

  • "Releases" are defined by labeling in git.
  • The last k releases are maintained and bug-fixes are applied to the last k releases. I.e. there are k+1 active branches in OPNFV:
    • "latest" - artifacts that will become the next release
    • "stable" - the current release plus fixes on top of the most recent release (i.e. on top of the labeled artifacts of the most recent release).
    • "stable - (k-1)" - the release which is (k-1) versions older than the most recent release plus fixes on top of the most recent release.
  • The "stable …" branches will be available and stable at all times.
  • "k" would be a value defined by the TSC

Example for this option - with k=2:

  • Brahmaputra released: Brahmaputra would be the "stable" release, C-River would become "latest", Arno would be "stable-1"
  • Fixes for Brahmaputra would be done and committed to "stable"
  • Fixes for Arno would be done and committed to "stable-1"
  • Once C-River would be released, maintenance for Arno would stop.

Option M.3b: Latest plus Service Releases for "Latest-n" (n=1,2...)

Release definition and maintenance:

  • "Releases" are defined by labeling in git.
  • A release is maintained and bug-fixes are applied to a release until a new release comes out. I.e. there are n active branches in OPNFV:
    • "latest" - artifacts that will become the next release
    • "stable release n" - the current release plus fixes on top of the released (i.e. labeled) artifacts.
    • "stable release n-1" - the release prior to the current release plus fixes on top of the released (i.e. labeled) artifacts.
    • "stable release m" - Release m (in case m=1, this would be Arno) plus fixes on top of the released artifacts.
  • Snapshots of the "stable" branches will be released at regular intervals as "service releases" using labels.
  • "m" would be a value defined by the TSC
releases/brahmaputra/release_artifacts_discussion.txt · Last modified: 2015/12/09 12:35 by julien zhang