You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 20 Next »

Release Status

The release status of the policy framework is stored in the policy/parent repository in the pf_release_data.csv file. Look at that file under each branch to find details of the current release artifacts for each branch. The table below is a shortcut to that file for each release.

ReleaseRelease Data
masterpf_release_data.csv
kohnnot branched yet
jakartapf_release_data.csv
istanbul
(security updates only)
pf_release_data.csv
honolulu
(security updates only)
pf_release_data.csv
previous releases
(unsupported)
Policy Framework Project: Old Releases

Repository Dependencies and Docker Images

The diagram below shows the repositories and Docker images produced by the Policy Framework. The repositories (released as maven artifacts) are shown as rectangles, and the Docker images are shown as ovals. The dependencies between the repositories are shown as are the Docker images produced by each repository.

The Policy Framework Release Process

The Policy Framework release process is complex, time-consuming, and tedious. In the release process, the maven repositories and docker images must be released in the order shown in the diagram above: Blue-->Green-->Pink-->Yellow→Purple. In addition, the references for the repository layering and the parent Docker image file references must be set to release references before staging and back to snapshot references after staging.

Release Scripts

A set of scripts have been developed to make the release process somewhat less tedious. The scripts are located in the policy/parent repo here.

ScriptDescription
bumpSnapshots.sh
bumpSnapshots.sh - generate commits to bump the snapshot version and update references to snapshot references
               on any repos that need to be bumped or updated

       usage:  bumpSnapshots.sh [-options]

       options
         -h           - this help message
         -d data_file - the policy release data file to use, defaults to './pf_release_data.csv'
         -l location  - the location of the policy framework repos on the file system,
                        defaults to './'
         -i issue-id  - issue ID in the format POLICY-nnnn

 examples:
  bumpSnapshots.sh -l /home/user/onap -d /home/user/data/pf_release_data.csv -i POLICY-1234
    bump snapshots on the repos at location '/home/user/onap' using the release data
    in the file '/home/user/data/pf_release_data.csv'
generateCommit.sh
generateCommit.sh - generates a new commit or a patch on an existing commit for PF releases

       usage:  generateCommit.sh [-options]

       options
         -h                - this help message
         -l location       - the location of the policy framework repos on the file system,
                             defaults to './'
         -r repo           - the policy repo to which to commit
         -i issue-id       - issue ID in the format POLICY-nnnn
         -e commit-header  - the header for the commit
         -m commit-message - the message body for the commit

 example:
  generateCommit.sh -l /home/git/onap -r policy/pap -i POLICY-1234 -e commit-header -m commit-message
    create a new commit or update an existing commit on policy/pap with the given details
getReleaseData.sh
getReleaseData.sh - gets information from the checked out Policy Framework repos for the release process

       usage:  getReleaseData.sh [-options]

       options
         -h           - this help message
         -b branch    - the branch to release on, defaults to 'master'
         -d data_file - the policy release data file to create, defaults to './pf_release_data.csv'
         -l location  - the location of the policy framework repos on the file system,
                        defaults to './'
mkart.sh
mkart.sh - create the release yaml file to release the current snapshot on the current repo

     usage:  mkart.sh [-options]

       options
       -d - create a release yaml foie for a repo that has Docker images
mkdock.sh
mkdock.sh - create the release container yaml file to release the docker images on the current repo

   usage:  mkdock.sh docker-container-name1 docker-container-name2 ...
releasePhase.sh
releasePhase.sh - execute a certain policy framework release phase

       usage:  releasePhase.sh [-options]

       options
         -h           - this help message
         -d data_file - the policy release data file to use, defaults to './pf_release_data.csv'
         -l location  - the location of the policy framework repos on the file system,
                        defaults to './'
         -i issue-id  - issue ID in the format POLICY-nnnn
         -p phase     - the release phase, a positive integer

 examples:
  releasePhase.sh -l /home/user/onap -d /home/user/data/pf_release_data.csv -i POLICY-1234 -p 3
    perform release phase 3 on the repos at location '/home/user/onap' using the release data
    in the file '/home/user/data/pf_release_data.csv'
releaseRepo.sh
releaseRepo.sh - release the specified repository by generating the release yaml file and the release commit

       usage:  releaseRepo.sh [-options]

       options
         -h           - this help message
         -d data_file - the policy release data file to use, defaults to './pf_release_data.csv'
         -l location  - the location of the policy framework repos on the file system,
                        defaults to './'
         -r repo      - the policy repo to release
         -i issue-id  - issue ID in the format POLICY-nnnn

 examples:
  releaseRepo.sh -l /home/user/onap -d /home/user/data/pf_release_data.csv -r policy/common -i POLICY-1234
    release the 'policy/common' repo at location '/home/user/onap' using the release data
    in the file '/home/user/data/pf_release_data.csv'
releaseRepoImages.sh
releaseRepoImages.sh - release the docker images for the specified repository by generating the release yaml file and
               the release commit
       usage:  releaseRepoImages.sh [-options]

       options
         -h           - this help message
         -d data_file - the policy release data file to use, defaults to './pf_release_data.csv'
         -l location  - the location of the policy framework repos on the file system,
                        defaults to './'
         -r repo      - the policy repo to release
         -i issue-id  - issue ID in the format POLICY-nnnn

 examples:
  releaseRepoImages.sh -l /home/user/onap -d /home/user/data/pf_release_data.csv -r policy/common -i POLICY-1234
    release the 'policy/common' repo at location '/home/user/onap' using the release data
    in the file '/home/user/data/pf_release_data.csv'
updateOomImages.sh
updateOomImages.sh - generate an OOM commit to update the versions of Policy Framework images in values.yaml files

       usage:  updateOomImages.sh [-options]

       options
         -h           - this help message
         -d data_file - the policy release data file to use, defaults to './pf_release_data.csv'
         -l location  - the location of the OOM repo on the file system,
                        defaults to './'
         -i issue-id  - issue ID in the format POLICY-nnnn

 examples:
  updateOomImages.sh -l /home/user/onap -d /home/user/data/pf_release_data.csv -i POLICY-1234
    update the version of policy framework images at location '/home/user/onap/oom' using the release data
    in the file '/home/user/data/pf_release_data.csv'
updateParentRef.sh
updateParentRef.sh - update the parent reference in a POM file
       usage:  updateParentRef.sh [-options]
       options
         -h             - this help message
         -f pom_file    - the POM file to update
         -g group_id    - the parent group ID
         -a artifact_id - the parent artifact ID
         -v version     - the parent version
updateRefs.sh
updateRefs.sh - updates the inter-repo references in Policy Framework POM files

       usage:  updateRefs.sh [-options]

       options
         -h           - this help message
         -d data_file - the policy release data file to use, generated by the 'getReleaseData.sh' script,
                        defaults to './pf_release_data.csv'
         -l location  - the location of the policy framework repos on the file system,
                        defaults to './'
         -r repo      - the policy repo to update
         -p           - update policy/parent references
         -c           - update policy/common references
         -m           - update policy/model references
         -o           - update policy/drools-pdp references
         -x           - update policy/apex-pdp references
         -k           - update docker base images in Dockerfiles
         -f           - update release data in policy parent
         -s           - update release references to snapshot references,
                        if omitted, snapshot references are updated to release references

 examples:
  updateRefs.sh -pcm -r policy/pap
              update the parent, common, and models references of policy/pap
              to the current released version

  updateRefs.sh -c -m -s -r policy/api
              update the common and models references of policy/api
              to the current snapshot version

The scripts:

  • Operate on a cloned copy of all 13 Policy Framework repositories
  • Break the release process into a set of phases, which are executed one after another to perform a release
  • Can release on the Master branch or any other branch
  • Act on the POM files, Docker files, the maven and docker release files, the version.properties files, and the pf_release_data.csv file in the repos, updating the references in those files as required for each phase

The scripts do NOT:

  • Fully automate the release process, manual checking and submission of commits is still required
  • Capture every possible permutation and corner case of releasing, manual intervention in the process is often required


  • No labels