Fix. Remove build number from image tags on merge

Change-Id: I0bd10d91411db2f059eb2910556fffb549fe971f
Signed-off-by: caviedesj <juancamilo.caviedesvalencia.ext@telefonica.com>
1 file changed
tree: f0d02cc9502995fd7becbcbb1803d9a76f03c943
  1. .gitignore
  2. .gitlab-ci.yml
  3. .gitmodules
  4. .groovylintrc.json
  5. Dockerfile
  6. Jenkinsfile
  7. Jenkinsfile.new
  8. LICENSE
  9. README.md
  10. ci-images/
  11. debian/
  12. devops-stages/
  13. docker/
  14. installers/
  15. jenkins/
  16. library/
  17. packer/
  18. tools/
README.md

osm-devops

Scripts and artifacts for OSM installation and CI/CD pipelines.

Folder structure

  • jenkins: scripts run by jenkins. All OSM modules rely on these scripts.
  • installers: scripts to be executed to install OSM. It also includes the OSM helm chart.

Instructions to test new code in the same way is done in OSM CI/CD pipeline

Create folder

mkdir osm
cd osm

Clone projects

Clone the projects that you would like to test

git clone "https://osm.etsi.org/gerrit/osm/devops"
git clone "https://osm.etsi.org/gerrit/osm/common"
git clone "https://osm.etsi.org/gerrit/osm/N2VC"
git clone "https://osm.etsi.org/gerrit/osm/LCM"
...

Update repos to use a specific branch or a Gerrit patch

If needed, update code in the repos. An example for N2VC is shown below

cd N2VC
git pull "https://osm.etsi.org/gerrit/osm/N2VC" refs/changes/22/14222/2
cd ..
cd LCM
git pull "https://osm.etsi.org/gerrit/osm/LCM" refs/changes/24/14224/3
cd ..

Start an HTTP server to host the intermediate artifacts (deb packages)

./devops/tools/local-build.sh --run-httpserver
ps -ef |grep python3

Run stage2 to build artifacts

# Clean previous artifacts
rm $HOME/.osm/httpd/*.deb
# Build new artifacts
./devops/tools/local-build.sh --module common,N2VC,LCM stage-2
# Check that artifacts were created
ls $HOME/.osm/httpd

Note: Artifacts need to be cleaned every time we want to try new patches

Run stage3 to build docker images

./devops/tools/local-build.sh --module LCM stage-3
docker image ls
# Copy the image to your image resistry, e.g.: "your-registry/osm/osm-testing/opensourcemano/lcm:myfeature"

Update OSM Helm release to use the new image

helm3 -n osm list
helm3 -n osm get values osm

Upgrade with kubectl:

kubectl -n osm patch deployment lcm --patch '{"spec": {"template": {"spec": {"containers": [{"name": "lcm", "image": "your-registry/osm/osm-testing/opensourcemano/lcm:myfeature}]}}}}'
kubectl -n osm get all

Upgrade with Helm:

helm3 -n osm list
helm3 -n osm history osm
helm3 -n osm upgrade --reuse-values --set lcm.image.repository="your-registry/osm/osm-testing/opensourcemano/lcm" --set lcm.image.tag="myfeature" osm ./helm-chart-dir
helm3 -n osm status osm
kubectl -n osm get all

Test OSM Helm Chart independently

git clone "https://osm.etsi.org/gerrit/osm/devops"
cd devops/
# Get a patch from Gerrit
# git pull "https://osm.etsi.org/gerrit/osm/devops" refs/changes/25/14325/17
./installers/install_helm_client.sh -D . --debug
./devops-stages/stage-test.sh
./installers/full_install_osm.sh -D . --debug -R testing-daily -t testing-daily -r testing -y  2>&1 | tee osm_install_log.txt
kubectl -n osm get all
kubectl -n osm get ingress