We want to document the process we will use for managing docker images in OOM helm charts for Dublin and subsequent releases.
The primary goal is to make installation of ONAP as simple as practical.
Having the image tag in the values.yaml is the simplest method for the release version and that will be the result of the process we outline below.
Integration still needs to be able to over ride those values upon occasion and may use supporting scripts and docker-manifest-staging.csv files to have a internal process but only ONAP folks doing installs off the SNAPSHOT version in our integration Labs will need to be aware of this.
The process will be:
- At RC0 we will convert the OOM branch to use release tag’s for docker image (e.g NOT SNAPSHOT/STAGING)
- PTL’s will publish their release artifacts to the release repo per normal process
- All release images should be based on SNAPSHOT/STAGING images that at least pass health check and pair wise tests.
- After the release artifacts are published, the PTL will update the OOM helm charts for their project to point to the release tagged containers.
- The sequence is important since the OOM verify job will confirm the image is in nexus3.onap.org.
- Between RC0 and final release, the OOM team will ensure same day service for simple release tag update merges
- Integration team members will provide additional committer support for this phase
- Only simple values.yaml image tag references will get this expedited approach where we don’t do an ONAP install to confirm the helm chart change
- The integration team may assist in converting the current docker-manifest.csv values into a helm chart update as we get close to RC0 if that makes sense.
- We will remove docker-manifest.csv after RC0 in Dublin.
- Before RC0, in Dublin, the PTLs should update the OOM master branch helm charts with SNAPSHOT or STAGING tags that you have for your master branch.
- Docker-manifest-staging.csv may still be used by the integration team to override values when we need to rollback to a previous version of the container but PTLs should focus on the OOM master branch updates.
- Integration will work with OOM to do a single values.yaml update to the oom helm charts so that for Dublin the master branch of OOM will match the current docker-manifest-staging.csv early next week so PTL’s do not have to do that change right now.
- Reminder that after RC2, the only changes should be Integration approved JIRAs of High and Highest priority since we run 72 hour stability tests after RC2 and will not have time to accept retests unless its release breaking
- Reminder that after M4, the changes should be bug fixes only and not new features so that we are focused on getting to reliable operation and not introducing new defect opportunities.
...
Example Use Case to Update docker image between RC0 and final release
- RC0 has passed and the project has a release container A.B.1 in the nexus3 repo.
- A Jira of high/highest is opened so a new container will be required
- Project builds a A.B.2-STAGING-latest or equivalent STAGING/SNAPSHOT version
- docker-manifest-staging.csv would be updated for this version
- Integration with project tests the new container using docker-manifest-staging.csv and integration-override.yaml to use the A.B.2-STAGING-latest image
- If the new contaeiner fails testing:
- the project can rebuild using the same tag A.B.2-STAGING-latest
- this repeats until the container passes
- Once the container passes tests:
- The project will release the container as A.B.2
- oom values.yaml image tag will be updated from A.B.1 to A.B.2 after the new container is available in nexus3