From 7726db0956b56d79d834af10ecf28c6a3738a6ef Mon Sep 17 00:00:00 2001 From: Fiete Ostkamp Date: Tue, 21 Oct 2025 09:53:11 +0200 Subject: [PATCH] Replace apache bitnami image with httpd image in the basic_cnf test - bitnami is only publishing images under the latest tag now - this has lead to an ImagePullBackoff issue in the cnf test - use a httpd image in the basic_cnf_cba_enriched.zip - add a README in the artifacts folder to describe commands needed to unzip and rezip the artifact for future reference Issue-ID: INT-2333 Change-Id: I7e9198a05fb2c8a0f2ac29a401e5044fc046e852 Signed-off-by: Fiete Ostkamp --- README.md | 19 ++++++++++++------- src/onaptests/templates/artifacts/README.md | 21 +++++++++++++++++++++ .../templates/artifacts/basic_cnf_cba_enriched.zip | Bin 63641 -> 63008 bytes 3 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 src/onaptests/templates/artifacts/README.md diff --git a/README.md b/README.md index 367b08f..35f4836 100644 --- a/README.md +++ b/README.md @@ -7,22 +7,24 @@ instantiate services on ONAP A basic example is implemented in the python file -- run_basicvm_multicloud_yaml.py +- `run_basicvm_multicloud_yaml.py` The global datas defined in these files (see input_datas) shall be adapted to your environment. -In addition you must define your service in directory templates/vnf-services -and create zip file for heat template templates/heat_files. +In addition you must define your service in directory `templates/vnf-services` +and create zip file for heat template `templates/heat_files`. ### Prepare your environment and run tests - Clone the project (using instantiation branch) + ```shell git clone https://gerrit.onap.org/r/testsuite/pythonsdk-tests.git ``` - Create a virtual environment and clone the python-onapsdk + ```shell virtualenv my_test source my_test/bin/activate @@ -42,14 +44,17 @@ and create zip file for heat template templates/heat_files. - Set OpenStack configuration: there are 2 ways to provide the cloud information If you got the clouds.yaml, you need to reference your cloud with the env - variable OS_TEST_CLOUD + variable `OS_TEST_CLOUD` + ```shell export OS_TEST_CLOUD=cloud-name-referenced-in-the-cloud-configuration ``` + If you do not have access to the cloud config, you must precise all the parameters manually - Export the setting file in a environment variable + ```shell export ONAP_PYTHON_SDK_SETTINGS=onaptests.configuration.basic_vm_multicloud_yaml_settings ``` @@ -63,12 +68,12 @@ environment and configuration. ssh user@onap.pod4.opnfv.fr -D 1080 ``` -- Once the different input datas are updated in run_\*.py files and +- Once the different input datas are updated in `run_\*.py` files and that the templates files for your service are defined, start to run the different steps: ```shell python run_basicvm_nomulticloud.py ``` -- By default, all the logs are stored in the file pythonsdk.debug.log. - The file name and location can be set in the settings.py +- By default, all the logs are stored in the file `pythonsdk.debug.log`. + The file name and location can be set in the `settings.py` diff --git a/src/onaptests/templates/artifacts/README.md b/src/onaptests/templates/artifacts/README.md new file mode 100644 index 0000000..9f51f54 --- /dev/null +++ b/src/onaptests/templates/artifacts/README.md @@ -0,0 +1,21 @@ +# artifacts + +## Updating the `.zip` archives + +```sh +ARCHIVE=basic_cnf_cba_enriched +# unzip into dedicated folder of same name +unzip $ARCHIVE.zip -d $ARCHIVE +``` + +Edit the content, then + +```sh +cd $ARCHIVE +zip -r ../$ARCHIVE.zip * +``` + +```sh +cd .. +rm -rf $ARCHIVE +``` diff --git a/src/onaptests/templates/artifacts/basic_cnf_cba_enriched.zip b/src/onaptests/templates/artifacts/basic_cnf_cba_enriched.zip index be5c4daae9ef50ea612b10343a8cf32d769e92a7..06e101e0571ae6e6407959013b639de2975b16bf 100644 GIT binary patch delta 10875 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 uBB_K+tP5idroKg92CCf50$1a?#wy9Tfxv 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 -- 2.16.6