diff options
author | 2022-10-19 17:49:04 +0200 | |
---|---|---|
committer | 2022-10-19 17:52:13 +0200 | |
commit | d273edeccd97122de1caec74243d702a652cacb9 (patch) | |
tree | 4414e752f4a6aebc6fa29ef79b36d9b5f5571858 /doc | |
parent | ed3c78887493baa5855ac5256683b68ab7b74073 (diff) |
[GITLAB] Initial content for gitlab project xtesting-onap
Issue-ID: INT-2150
Signed-off-by: Andreas Geissler <andreas-geissler@telekom.de>
Change-Id: I6a429e2f661474fe54b13b6513eca64f13e99b50
Diffstat (limited to 'doc')
-rw-r--r-- | doc/artifacts/versions/guilin.json | 1694 | ||||
-rw-r--r-- | doc/artifacts/versions/honolulu.json | 1736 | ||||
-rw-r--r-- | doc/artifacts/versions/istanbul.json | 1694 | ||||
-rw-r--r-- | doc/artifacts/versions/test_guilin_MR1.json | 68 | ||||
-rw-r--r-- | doc/artifacts/versions/test_honolulu.json | 62 | ||||
-rw-r--r-- | doc/artifacts/versions/test_honolulu_MR_Candidate.json | 50 | ||||
-rw-r--r-- | doc/artifacts/versions/test_master.json | 62 | ||||
-rw-r--r-- | doc/generate_docker_version.py | 437 | ||||
-rw-r--r-- | doc/generate_gating_index.py | 49 | ||||
-rw-r--r-- | doc/generate_stability_graphs.py | 133 | ||||
-rw-r--r-- | doc/generate_status.py | 457 | ||||
-rw-r--r-- | doc/requirements.txt | 7 | ||||
-rw-r--r-- | doc/stability_results.json | 54 | ||||
-rw-r--r-- | doc/template/docker-version-tmpl.html | 409 | ||||
-rw-r--r-- | doc/template/index-gating-tmpl.html | 63 | ||||
-rw-r--r-- | doc/template/index-infra.html | 46 | ||||
-rw-r--r-- | doc/template/index-stability-tmpl.html | 391 | ||||
-rw-r--r-- | doc/template/index-tmpl.html | 203 | ||||
-rw-r--r-- | doc/template/k8s.html | 103 |
19 files changed, 7718 insertions, 0 deletions
diff --git a/doc/artifacts/versions/guilin.json b/doc/artifacts/versions/guilin.json new file mode 100644 index 0000000..1dc244d --- /dev/null +++ b/doc/artifacts/versions/guilin.json @@ -0,0 +1,1694 @@ +[ + { + "container": "a1policymanagement-update-config", + "component": "a1policymanagement", + "image": "dibi/envsubst", + "version": "1" + }, + { + "container": "a1policymanagement", + "component": "a1policymanagement", + "image": "nexus3.onap.org:10001/onap/ccsdk-oran-a1policymanagementservice", + "version": "1.0.1" + }, + { + "container": "aaf-cass", + "component": "aaf-cass", + "image": "nexus3.onap.org:10001/onap/aaf/aaf_cass", + "version": "2.1.23" + }, + { + "container": "aaf-cm", + "component": "aaf-cm", + "image": "nexus3.onap.org:10001/onap/aaf/aaf_core", + "version": "2.1.23" + }, + { + "container": "aaf-fs", + "component": "aaf-fs", + "image": "nexus3.onap.org:10001/onap/aaf/aaf_core", + "version": "2.1.23" + }, + { + "container": "aaf-gui", + "component": "aaf-gui", + "image": "nexus3.onap.org:10001/onap/aaf/aaf_core", + "version": "2.1.23" + }, + { + "container": "aaf-locate", + "component": "aaf-locate", + "image": "nexus3.onap.org:10001/onap/aaf/aaf_core", + "version": "2.1.23" + }, + { + "container": "aaf-oauth", + "component": "aaf-oauth", + "image": "nexus3.onap.org:10001/onap/aaf/aaf_core", + "version": "2.1.23" + }, + { + "container": "aaf-service", + "component": "aaf-service", + "image": "nexus3.onap.org:10001/onap/aaf/aaf_core", + "version": "2.1.23" + }, + { + "container": "aaf-sms", + "component": "aaf-sms", + "image": "nexus3.onap.org:10001/onap/aaf/sms", + "version": "4.0.2" + }, + { + "container": "aaf-sms-preload", + "component": "aaf-sms", + "image": "nexus3.onap.org:10001/onap/aaf/sms", + "version": "4.0.2" + }, + { + "container": "aaf-sms-quorumclient", + "component": "aaf-sms-quorumclient", + "image": "nexus3.onap.org:10001/onap/aaf/smsquorumclient", + "version": "4.0.2" + }, + { + "container": "aaf-sms-quorumclient", + "component": "aaf-sms-quorumclient", + "image": "nexus3.onap.org:10001/onap/aaf/smsquorumclient", + "version": "4.0.2" + }, + { + "container": "aaf-sms-quorumclient", + "component": "aaf-sms-quorumclient", + "image": "nexus3.onap.org:10001/onap/aaf/smsquorumclient", + "version": "4.0.2" + }, + { + "container": "aaf-sms-vault", + "component": "aaf-sms-vault", + "image": "docker.nexus.azure.onap.eu/library/vault", + "version": "1.3.3" + }, + { + "container": "aaf-sms-vault-backend", + "component": "aaf-sms-vault", + "image": "docker.nexus.azure.onap.eu/library/consul", + "version": "1.7.1" + }, + { + "container": "aaf-sshsm-distcenter", + "component": "aaf-sshsm-distcenter", + "image": "nexus3.onap.org:10001/onap/aaf/distcenter", + "version": "4.0.0" + }, + { + "container": "aaf-sshsm-testca", + "component": "aaf-sshsm-testca", + "image": "nexus3.onap.org:10001/onap/aaf/testcaservice", + "version": "4.0.0" + }, + { + "container": "aai", + "component": "aai", + "image": "docker.nexus.azure.onap.eu/aaionap/haproxy", + "version": "1.4.2" + }, + { + "container": "aai-babel", + "component": "aai-babel", + "image": "nexus3.onap.org:10001/onap/babel", + "version": "1.7.1" + }, + { + "container": "aai-data-router", + "component": "aai-data-router", + "image": "nexus3.onap.org:10001/onap/aai-data-router", + "version": "1.7.0" + }, + { + "container": "aai-elasticsearch", + "component": "aai-elasticsearch", + "image": "nexus3.onap.org:10001/onap/aai-elasticsearch", + "version": "6.1.2" + }, + { + "container": "filebeat-onap", + "component": "aai-babel", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "aai-graphadmin", + "component": "aai-graphadmin", + "image": "nexus3.onap.org:10001/onap/aai-graphadmin", + "version": "1.7.1" + }, + { + "container": "filebeat-onap", + "component": "aai-graphadmin", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "aai-graphadmin-job", + "component": "aai-graphadmin-job", + "image": "nexus3.onap.org:10001/onap/aai-graphadmin", + "version": "1.7.1" + }, + { + "container": "aai-modelloader", + "component": "aai-modelloader", + "image": "nexus3.onap.org:10001/onap/model-loader", + "version": "1.7.0" + }, + { + "container": "filebeat-onap", + "component": "aai-modelloader", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "aai-resources", + "component": "aai-resources", + "image": "nexus3.onap.org:10001/onap/aai-resources", + "version": "1.7.2" + }, + { + "container": "filebeat-onap", + "component": "aai-resources", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "aai-schema-service", + "component": "aai-schema-service", + "image": "nexus3.onap.org:10001/onap/aai-schema-service", + "version": "1.7.14" + }, + { + "container": "filebeat-onap", + "component": "aai-schema-service", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "aai-sparky-be", + "component": "aai-sparky-be", + "image": "nexus3.onap.org:10001/onap/sparky-be", + "version": "1.6.2" + }, + { + "container": "filebeat-onap", + "component": "aai-sparky-be", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "aai-traversal", + "component": "aai-traversal", + "image": "nexus3.onap.org:10001/onap/aai-traversal", + "version": "1.7.2" + }, + { + "container": "filebeat-onap", + "component": "aai-traversal", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "aai-traversal-job", + "component": "aai-traversal-job", + "image": "nexus3.onap.org:10001/onap/aai-traversal", + "version": "1.7.2" + }, + { + "container": "appc", + "component": "appc", + "image": "nexus3.onap.org:10001/onap/appc-image", + "version": "1.7.2" + }, + { + "container": "appc-ansible-server", + "component": "appc-ansible-server", + "image": "nexus3.onap.org:10001/onap/ccsdk-ansible-server-image", + "version": "0.4.4" + }, + { + "container": "appc-cdt", + "component": "appc-cdt", + "image": "nexus3.onap.org:10001/onap/appc-cdt-image", + "version": "1.7.2" + }, + { + "container": "appc-db", + "component": "appc-db", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb-galera", + "version": "v002" + }, + { + "container": "appc-dgbuilder", + "component": "appc-dgbuilder", + "image": "nexus3.onap.org:10001/onap/ccsdk-dgbuilder-image", + "version": "1.1.1" + }, + { + "container": "awx-web", + "component": "onap-awx", + "image": "docker.nexus.azure.onap.eu/ansible/awx_web", + "version": "9.0.1" + }, + { + "container": "awx-celery", + "component": "onap-awx", + "image": "docker.nexus.azure.onap.eu/ansible/awx_task", + "version": "9.0.1" + }, + { + "container": "awx-rabbit", + "component": "onap-awx", + "image": "docker.nexus.azure.onap.eu/ansible/awx_rabbitmq", + "version": "3.7.4" + }, + { + "container": "awx-memcached", + "component": "onap-awx", + "image": "docker.nexus.azure.onap.eu/memcached", + "version": "1.5.20" + }, + { + "container": "awx-postgres", + "component": "awx-postgres", + "image": "docker.nexus.azure.onap.eu/postgres", + "version": "10.4-alpine" + }, + { + "container": "awx-mgnt", + "component": "awx-mgnt", + "image": "docker.nexus.azure.onap.eu/ansible/awx_task", + "version": "9.0.1" + }, + { + "container": "cassandra", + "component": "cassandra", + "image": "docker.nexus.azure.onap.eu/cassandra", + "version": "3.11.4" + }, + { + "container": "cassandra", + "component": "cassandra", + "image": "docker.nexus.azure.onap.eu/cassandra", + "version": "3.11.4" + }, + { + "container": "cassandra", + "component": "cassandra", + "image": "docker.nexus.azure.onap.eu/cassandra", + "version": "3.11.4" + }, + { + "container": "cds-blueprints-processor", + "component": "cds-blueprints-processor", + "image": "nexus3.onap.org:10001/onap/ccsdk-blueprintsprocessor", + "version": "1.0.3" + }, + { + "container": "cds-command-executor", + "component": "cds-command-executor", + "image": "nexus3.onap.org:10001/onap/ccsdk-commandexecutor", + "version": "1.0.3" + }, + { + "container": "cds-db", + "component": "cds-db", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb-galera", + "version": "v002" + }, + { + "container": "cds-py-executor", + "component": "cds-py-executor", + "image": "nexus3.onap.org:10001/onap/ccsdk-py-executor", + "version": "1.0.3" + }, + { + "container": "cds-sdc-listener", + "component": "cds-sdc-listener", + "image": "nexus3.onap.org:10001/onap/ccsdk-sdclistener", + "version": "1.0.3" + }, + { + "container": "cds-ui", + "component": "cds-ui", + "image": "nexus3.onap.org:10001/onap/ccsdk-cds-ui-server", + "version": "1.0.3" + }, + { + "container": "clamp", + "component": "clamp", + "image": "nexus3.onap.org:10001/onap/clamp", + "version": "5.1.4" + }, + { + "container": "clamp-backend", + "component": "clamp-backend", + "image": "nexus3.onap.org:10001/onap/clamp-backend", + "version": "5.1.5" + }, + { + "container": "clamp-dash-es", + "component": "clamp-dash-es", + "image": "nexus3.onap.org:10001/onap/clamp-dash-es", + "version": "5.0.4" + }, + { + "container": "clamp-dash-kibana", + "component": "clamp-dash-kibana", + "image": "nexus3.onap.org:10001/onap/clamp-dash-kibana", + "version": "5.0.4" + }, + { + "container": "clamp-dash-logstash", + "component": "clamp-dash-logstash", + "image": "nexus3.onap.org:10001/onap/clamp-dash-logstash", + "version": "5.0.4" + }, + { + "container": "clamp-mariadb", + "component": "clamp-mariadb", + "image": "nexus3.onap.org:10001/onap/clamp-mariadb", + "version": "10.5.4" + }, + { + "container": "cli", + "component": "cli", + "image": "nexus3.onap.org:10001/onap/cli", + "version": "6.0.0" + }, + { + "container": "cmso-db", + "component": "cmso-db", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb-galera", + "version": "v002" + }, + { + "container": "cmso-db-config", + "component": "cmso-db-config", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb", + "version": "10.1.38" + }, + { + "container": "consul", + "component": "consul", + "image": "nexus3.onap.org:10001/onap/oom/consul", + "version": "2.1.0" + }, + { + "container": "consul-server", + "component": "consul-server", + "image": "nexus3.onap.org:10001/onap/oom/consul", + "version": "2.1.0" + }, + { + "container": "consul-server", + "component": "consul-server", + "image": "nexus3.onap.org:10001/onap/oom/consul", + "version": "2.1.0" + }, + { + "container": "dbc-pg", + "component": "dbc-pg-primary", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos7-10.11-4.2.1" + }, + { + "container": "dbc-pg", + "component": "dbc-pg-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos7-10.11-4.2.1" + }, + { + "container": "dcae-bootstrap", + "component": "dcae-bootstrap", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container", + "version": "2.1.8" + }, + { + "container": "dcae-cloudify-manager", + "component": "dcae-cloudify-manager", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.cm-container", + "version": "3.3.4" + }, + { + "container": "dcae-config-binding-service", + "component": "dcae-config-binding-service", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding", + "version": "2.5.3" + }, + { + "container": "dcae-config-binding-service-fb-onap", + "component": "dcae-config-binding-service", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-config-binding-service-insecure", + "component": "dcae-config-binding-service", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding", + "version": "2.5.3" + }, + { + "container": "dcae-config-binding-service-fb-onap-i", + "component": "dcae-config-binding-service", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-dashboard", + "component": "dcae-dashboard", + "image": "nexus3.onap.org:10001/onap/org.onap.ccsdk.dashboard.ccsdk-app-os", + "version": "1.4.0" + }, + { + "container": "dcae-dashboard-filebeat", + "component": "dcae-dashboard", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-dashboard-pg", + "component": "dcae-dashboard-pg-primary", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos7-10.11-4.2.1" + }, + { + "container": "dcae-dashboard-pg", + "component": "dcae-dashboard-pg-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos7-10.11-4.2.1" + }, + { + "container": "dcae-db", + "component": "dcae-db-primary", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos7-10.11-4.2.1" + }, + { + "container": "dcae-db", + "component": "dcae-db-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos7-10.11-4.2.1" + }, + { + "container": "dcae-deployment-handler", + "component": "dcae-deployment-handler", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.deployment-handler", + "version": "4.4.1" + }, + { + "container": "dcae-deployment-handler-filebeat", + "component": "dcae-deployment-handler", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-healthcheck", + "component": "dcae-healthcheck", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.healthcheck-container", + "version": "2.1.0" + }, + { + "container": "dcae-hv-ves-collector", + "component": "dcae-hv-ves-collector", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main", + "version": "1.5.0" + }, + { + "container": "filebeat", + "component": "dcae-hv-ves-collector", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-inv-pg", + "component": "dcae-inv-pg-primary", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos7-10.11-4.2.1" + }, + { + "container": "dcae-inv-pg", + "component": "dcae-inv-pg-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos7-10.11-4.2.1" + }, + { + "container": "dcae-inventory-api", + "component": "dcae-inventory-api", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.inventory-api", + "version": "3.5.2" + }, + { + "container": "dcae-inventory-api-filebeat", + "component": "dcae-inventory-api", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-mongo", + "component": "dcae-mongo", + "image": "docker.nexus.azure.onap.eu/library/mongo", + "version": "4.0.8" + }, + { + "container": "dcae-policy-handler", + "component": "dcae-policy-handler", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.policy-handler", + "version": "5.1.0" + }, + { + "container": "dcae-policy-handler-filebeat", + "component": "dcae-policy-handler", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-prh", + "component": "dcae-prh", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.prh.prh-app-server", + "version": "1.5.4" + }, + { + "container": "filebeat", + "component": "dcae-prh", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-servicechange-handler", + "component": "dcae-servicechange-handler", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.servicechange-handler", + "version": "1.4.0" + }, + { + "container": "dcae-tcagen2", + "component": "dcae-tcagen2", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.analytics.tca-gen2.dcae-analytics-tca-web", + "version": "1.2.1" + }, + { + "container": "filebeat", + "component": "dcae-tcagen2", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-ves-collector", + "component": "dcae-ves-collector", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector", + "version": "1.7.9" + }, + { + "container": "filebeat", + "component": "dcae-ves-collector", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcaemod-db", + "component": "dcaemod-db-primary", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos7-10.11-4.2.1" + }, + { + "container": "dcaemod-db", + "component": "dcaemod-db-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos7-10.11-4.2.1" + }, + { + "container": "dcaemod-designtool", + "component": "dcaemod-designtool", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.mod.designtool-web", + "version": "1.0.2" + }, + { + "container": "dcaemod-distributor-api", + "component": "dcaemod-distributor-api", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.mod.distributorapi", + "version": "1.1.0" + }, + { + "container": "dcaemod-genprocessor", + "component": "dcaemod-genprocessor", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.mod.genprocessor-job", + "version": "1.0.2" + }, + { + "container": "dcaemod-genprocessor-http", + "component": "dcaemod-genprocessor", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.mod.genprocessor-http", + "version": "1.0.2" + }, + { + "container": "dcaemod-healthcheck", + "component": "dcaemod-healthcheck", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.healthcheck-container", + "version": "2.0.0" + }, + { + "container": "dcaemod-nifi-registry", + "component": "dcaemod-nifi-registry", + "image": "docker.nexus.azure.onap.eu/apache/nifi-registry", + "version": "0.5.0" + }, + { + "container": "dcaemod-onboarding-api", + "component": "dcaemod-onboarding-api", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.mod.onboardingapi", + "version": "2.12.3" + }, + { + "container": "dcaemod-runtime-api", + "component": "dcaemod-runtime-api", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.mod.runtime-web", + "version": "1.1.1" + }, + { + "container": "dmaap-bc", + "component": "dmaap-bc", + "image": "nexus3.onap.org:10001/onap/dmaap/dmaap-bc", + "version": "2.0.4" + }, + { + "container": "dmaap-provisioning-job", + "component": "dmaap-bc", + "image": "nexus3.onap.org:10001/onap/dmaap/dbc-client", + "version": "1.0.9" + }, + { + "container": "dmaap-dr-db", + "component": "dmaap-dr-db", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb-galera", + "version": "v002" + }, + { + "container": "dmaap-dr-node", + "component": "dmaap-dr-node", + "image": "nexus3.onap.org:10001/onap/dmaap/datarouter-node", + "version": "2.1.7" + }, + { + "container": "dmaap-dr-node-filebeat-onap", + "component": "dmaap-dr-node", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dmaap-dr-prov", + "component": "dmaap-dr-prov", + "image": "nexus3.onap.org:10001/onap/dmaap/datarouter-prov", + "version": "2.1.7" + }, + { + "container": "dmaap-dr-prov-filebeat-onap", + "component": "dmaap-dr-prov", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "ejbca-ejbca", + "component": "ejbca", + "image": "docker.nexus.azure.onap.eu/primekey/ejbca-ce", + "version": "6.15.2.5" + }, + { + "container": "ejbca-config", + "component": "ejbca-config", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb", + "version": "10.1.38" + }, + { + "container": "esr-gui", + "component": "esr-gui", + "image": "nexus3.onap.org:10001/onap/aai/esr-gui", + "version": "1.4.0" + }, + { + "container": "esr-server", + "component": "esr-server", + "image": "nexus3.onap.org:10001/onap/aai/esr-server", + "version": "1.5.2" + }, + { + "container": "esr-server-filebeat-onap", + "component": "esr-server", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "holmes-engine-mgmt", + "component": "holmes-engine-mgmt", + "image": "nexus3.onap.org:10001/onap/holmes/engine-management", + "version": "1.2.9" + }, + { + "container": "holmes-pg", + "component": "holmes-pg-primary", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "holmes-pg", + "component": "holmes-pg-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "holmes-rule-mgmt", + "component": "holmes-rule-mgmt", + "image": "nexus3.onap.org:10001/onap/holmes/rule-management", + "version": "1.2.6" + }, + { + "container": "kube2msb", + "component": "kube2msb", + "image": "nexus3.onap.org:10001/onap/oom/kube2msb", + "version": "1.2.6" + }, + { + "container": "mariadb-galera", + "component": "mariadb-galera", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb-galera", + "version": "v002" + }, + { + "container": "message-router", + "component": "message-router", + "image": "nexus3.onap.org:10001/onap/dmaap/dmaap-mr", + "version": "1.1.18" + }, + { + "container": "message-router-kafka", + "component": "message-router-kafka", + "image": "nexus3.onap.org:10001/onap/dmaap/kafka111", + "version": "1.0.5" + }, + { + "container": "message-router-kafka", + "component": "message-router-kafka", + "image": "nexus3.onap.org:10001/onap/dmaap/kafka111", + "version": "1.0.5" + }, + { + "container": "message-router-kafka", + "component": "message-router-kafka", + "image": "nexus3.onap.org:10001/onap/dmaap/kafka111", + "version": "1.0.4" + }, + { + "container": "message-router-zookeeper", + "component": "message-router-zookeeper", + "image": "nexus3.onap.org:10001/onap/dmaap/zookeeper", + "version": "6.0.3" + }, + { + "container": "modeling-etsicatalog", + "component": "modeling-etsicatalog", + "image": "nexus3.onap.org:10001/onap/modeling/etsicatalog", + "version": "10.1.38" + }, + { + "container": "modeling-etsicatalog-filebeat-onap", + "component": "modeling-etsicatalog", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "modeling-etsicatalog", + "component": "modeling-etsicatalog", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb", + "version": "1.0.9" + }, + { + "container": "msb-consul", + "component": "msb-consul", + "image": "docker.nexus.azure.onap.eu/library/consul", + "version": "1.4.3" + }, + { + "container": "msb-discovery", + "component": "msb-discovery", + "image": "nexus3.onap.org:10001/onap/msb/msb_discovery", + "version": "1.2.6" + }, + { + "container": "msb-discovery-filebeat-onap", + "component": "msb-discovery", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "msb-eag", + "component": "msb-eag", + "image": "nexus3.onap.org:10001/onap/msb/msb_apigateway", + "version": "1.2.7" + }, + { + "container": "filebeat-onap", + "component": "msb-eag", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "msb-iag", + "component": "msb-iag", + "image": "nexus3.onap.org:10001/onap/msb/msb_apigateway", + "version": "1.2.7" + }, + { + "container": "filebeat-onap", + "component": "msb-iag", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "multicloud", + "component": "multicloud", + "image": "nexus3.onap.org:10001/onap/multicloud/framework", + "version": "1.6.0" + }, + { + "container": "filebeat-onap", + "component": "multicloud", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "multicloud-fcaps", + "component": "multicloud-fcaps", + "image": "nexus3.onap.org:10001/onap/multicloud/openstack-fcaps", + "version": "1.5.5" + }, + { + "container": "filebeat-onap", + "component": "multicloud-fcaps", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "rabbit-mq", + "component": "multicloud-fcaps", + "image": "nexus3.onap.org:10001/rabbitmq", + "version": "alpine" + }, + { + "container": "multicloud-k8s", + "component": "multicloud-k8s", + "image": "nexus3.onap.org:10001/onap/multicloud/k8s", + "version": "0.7.0" + }, + { + "container": "framework-artifactbroker", + "component": "multicloud-k8s", + "image": "nexus3.onap.org:10001/onap/multicloud/framework-artifactbroker", + "version": "1.6.0" + }, + { + "container": "onap-multicloud-k8s-etcd", + "component": "multicloud-k8s-etcd", + "image": "docker.nexus.azure.onap.eu/etcd-amd64", + "version": "3.2.24" + }, + { + "container": "multicloud-k8s-mongo", + "component": "multicloud-k8s-mongo", + "image": "docker.nexus.azure.onap.eu/library/mongo", + "version": "4.0.8" + }, + { + "container": "multicloud-pike", + "component": "multicloud-pike", + "image": "nexus3.onap.org:10001/onap/multicloud/openstack-pike", + "version": "1.5.5" + }, + { + "container": "filebeat-onap", + "component": "multicloud-pike", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "multicloud-starlingx", + "component": "multicloud-starlingx", + "image": "nexus3.onap.org:10001/onap/multicloud/openstack-starlingx", + "version": "1.5.5" + }, + { + "container": "filebeat-onap", + "component": "multicloud-starlingx", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "framework-artifactbroker", + "component": "multicloud-starlingx", + "image": "nexus3.onap.org:10001/onap/multicloud/framework-artifactbroker", + "version": "1.6.0" + }, + { + "container": "multicloud-vio", + "component": "multicloud-vio", + "image": "nexus3.onap.org:10001/onap/multicloud/vio", + "version": "1.4.1" + }, + { + "container": "filebeat-onap", + "component": "multicloud-vio", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "multicloud-windriver", + "component": "multicloud-windriver", + "image": "nexus3.onap.org:10001/onap/multicloud/openstack-windriver", + "version": "1.5.5" + }, + { + "container": "filebeat-onap", + "component": "multicloud-windriver", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "framework-artifactbroker", + "component": "multicloud-windriver", + "image": "nexus3.onap.org:10001/onap/multicloud/framework-artifactbroker", + "version": "1.6.0" + }, + { + "container": "music-springboot", + "component": "music", + "image": "nexus3.onap.org:10001/onap/music/music_sb", + "version": "3.2.40" + }, + { + "container": "music-cassandra", + "component": "music-cassandra", + "image": "nexus3.onap.org:10001/onap/music/cassandra_3_11", + "version": "3.0.24" + }, + { + "container": "music-cassandra-update-job", + "component": "music-cassandra-job", + "image": "nexus3.onap.org:10001/onap/music/cassandra_job", + "version": "3.0.24" + }, + { + "container": "nbi", + "component": "nbi", + "image": "nexus3.onap.org:10001/onap/externalapi/nbi", + "version": "7.0.2" + }, + { + "container": "nbi-config", + "component": "nbi-config", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb", + "version": "10.1.38" + }, + { + "container": "nbi-mongo", + "component": "nbi-mongo", + "image": "docker.nexus.azure.onap.eu/library/mongo", + "version": "4.0.8" + }, + { + "container": "nengdb-init", + "component": "nengdb-init", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb", + "version": "10.1.38" + }, + { + "container": "netbox-app", + "component": "netbox-app", + "image": "docker.nexus.azure.onap.eu/netboxcommunity/netbox", + "version": "v2.5.8" + }, + { + "container": "netbox-app-provisioning-job", + "component": "netbox-app-provisioning-job", + "image": "docker.nexus.azure.onap.eu/curlimages/curl", + "version": "7.69.1" + }, + { + "container": "netbox-app-provisioning-job", + "component": "netbox-app-provisioning-job", + "image": "docker.nexus.azure.onap.eu/curlimages/curl", + "version": "7.69.1" + }, + { + "container": "netbox-app-provisioning-job", + "component": "netbox-app-provisioning-job", + "image": "docker.nexus.azure.onap.eu/curlimages/curl", + "version": "7.69.1" + }, + { + "container": "netbox-nginx", + "component": "netbox-nginx", + "image": "docker.nexus.azure.onap.eu/nginx", + "version": "1.15-alpine" + }, + { + "container": "netbox-postgres", + "component": "netbox-postgres", + "image": "docker.nexus.azure.onap.eu/postgres", + "version": "10.4-alpine" + }, + { + "container": "network-name-gen", + "component": "network-name-gen", + "image": "nexus3.onap.org:10001/onap/ccsdk-apps-ms-neng", + "version": "1.1.1" + }, + { + "container": "oof", + "component": "oof", + "image": "nexus3.onap.org:10001/onap/optf-osdf", + "version": "3.0.2" + }, + { + "container": "oof-cmso-optimizer", + "component": "oof-cmso-optimizer", + "image": "nexus3.onap.org:10001/onap/optf-cmso-optimizer", + "version": "2.3.0" + }, + { + "container": "filebeat-onap", + "component": "oof-cmso-service", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "mso-simulator", + "component": "oof-cmso-service", + "image": "nexus3.onap.org:10001/onap/optf-cmso-robot", + "version": "2.3.0" + }, + { + "container": "oof-cmso-service", + "component": "oof-cmso-service", + "image": "nexus3.onap.org:10001/onap/optf-cmso-service", + "version": "2.3.0" + }, + { + "container": "oof-cmso-ticketmgt", + "component": "oof-cmso-ticketmgt", + "image": "nexus3.onap.org:10001/onap/optf-cmso-ticketmgt", + "version": "2.3.0" + }, + { + "container": "oof-cmso-topology", + "component": "oof-cmso-topology", + "image": "nexus3.onap.org:10001/onap/optf-cmso-topology", + "version": "2.3.0" + }, + { + "container": "oof-has-api", + "component": "oof-has-api", + "image": "nexus3.onap.org:10001/onap/optf-has", + "version": "2.1.2" + }, + { + "container": "oof-has-api-nginx", + "component": "oof-has-api", + "image": "docker.nexus.azure.onap.eu/bitnami/nginx", + "version": "1.18-debian-10" + }, + { + "container": "oof-has-controller", + "component": "oof-has-controller", + "image": "nexus3.onap.org:10001/onap/optf-has", + "version": "2.1.2" + }, + { + "container": "oof-has-data", + "component": "oof-has-data", + "image": "nexus3.onap.org:10001/onap/optf-has", + "version": "2.1.2" + }, + { + "container": "oof-has-healthcheck", + "component": "oof-has", + "image": "nexus3.onap.org:10001/onap/optf-has", + "version": "2.1.2" + }, + { + "container": "oof-has-onboard", + "component": "oof-has", + "image": "nexus3.onap.org:10001/onap/optf-has", + "version": "2.1.2" + }, + { + "container": "oof-has-reservation", + "component": "oof-has-reservation", + "image": "nexus3.onap.org:10001/onap/optf-has", + "version": "2.1.2" + }, + { + "container": "oof-has-solver", + "component": "oof-has-solver", + "image": "nexus3.onap.org:10001/onap/optf-has", + "version": "2.1.2" + }, + { + "container": "oom-cert-service", + "component": "oom-cert-service", + "image": "nexus3.onap.org:10001/onap/org.onap.oom.platform.cert-service.oom-certservice-api", + "version": "2.1.1" + }, + { + "container": "policy-apex-pdp", + "component": "policy-apex-pdp", + "image": "nexus3.onap.org:10001/onap/policy-apex-pdp", + "version": "2.4.4" + }, + { + "container": "policy-api", + "component": "policy-api", + "image": "nexus3.onap.org:10001/onap/policy-api", + "version": "2.3.3" + }, + { + "container": "policy-distribution", + "component": "policy-distribution", + "image": "nexus3.onap.org:10001/onap/policy-distribution", + "version": "2.4.3" + }, + { + "container": "policy-drools-pdp", + "component": "policy-drools-pdp", + "image": "nexus3.onap.org:10001/onap/policy-pdpd-cl", + "version": "1.7.5" + }, + { + "container": "policy-mariadb", + "component": "policy-mariadb", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb-galera", + "version": "v002" + }, + { + "container": "policy-pap", + "component": "policy-pap", + "image": "nexus3.onap.org:10001/onap/policy-pap", + "version": "2.3.3" + }, + { + "container": "policy-xacml-pdp", + "component": "policy-xacml-pdp", + "image": "nexus3.onap.org:10001/onap/policy-xacml-pdp", + "version": "2.3.3" + }, + { + "container": "portal-app", + "component": "portal-app", + "image": "nexus3.onap.org:10001/onap/portal-app", + "version": "3.4.2" + }, + { + "container": "filebeat-onap", + "component": "portal-app", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "portal-cassandra", + "component": "portal-cassandra", + "image": "docker.nexus.azure.onap.eu/bitnami/cassandra", + "version": "3.0.0" + }, + { + "container": "portal-db", + "component": "portal-db", + "image": "nexus3.onap.org:10001/onap/portal-db", + "version": "3.4.1" + }, + { + "container": "portal-db-job", + "component": "portal-db-job", + "image": "docker.nexus.azure.onap.eu/oomk8s/mariadb-client-init", + "version": "3.0.0" + }, + { + "container": "portal-db-oom-update-job", + "component": "portal-db-job", + "image": "docker.nexus.azure.onap.eu/oomk8s/mariadb-client-init", + "version": "3.0.0" + }, + { + "container": "portal-sdk", + "component": "portal-sdk", + "image": "nexus3.onap.org:10001/onap/portal-sdk", + "version": "3.4.2" + }, + { + "container": "filebeat-onap", + "component": "portal-sdk", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "portal-widget", + "component": "portal-widget", + "image": "nexus3.onap.org:10001/onap/portal-wms", + "version": "3.4.2" + }, + { + "container": "robot", + "component": "robot", + "image": "nexus3.onap.org:10001/onap/testsuite", + "version": "1.7.2" + }, + { + "container": "sdc-be", + "component": "sdc-be", + "image": "nexus3.onap.org:10001/onap/sdc-backend-all-plugins", + "version": "1.7.3" + }, + { + "container": "sdc-be-filebeat-onap", + "component": "sdc-be", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "sdc-be-job", + "component": "sdc-be-job", + "image": "nexus3.onap.org:10001/onap/sdc-backend-init", + "version": "1.7.3" + }, + { + "container": "sdc-cs-job", + "component": "sdc-cs-job", + "image": "nexus3.onap.org:10001/onap/sdc-cassandra-init", + "version": "1.7.3" + }, + { + "container": "sdc-fe", + "component": "sdc-fe", + "image": "nexus3.onap.org:10001/onap/sdc-frontend", + "version": "1.7.3" + }, + { + "container": "sdc-fe-filebeat-onap", + "component": "sdc-fe", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "sdc-onboarding-be-job", + "component": "sdc-onboarding-be-job", + "image": "nexus3.onap.org:10001/onap/sdc-onboard-cassandra-init", + "version": "1.7.3" + }, + { + "container": "sdc-onboarding-be", + "component": "sdc-onboarding-be", + "image": "nexus3.onap.org:10001/onap/sdc-onboard-backend", + "version": "1.7.3" + }, + { + "container": "sdc-onboarding-be-filebeat-onap", + "component": "sdc-onboarding-be", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "sdc-wfd-be", + "component": "sdc-wfd-be", + "image": "nexus3.onap.org:10001/onap/sdc-workflow-backend", + "version": "1.7.0" + }, + { + "container": "sdc-wfd-be-job", + "component": "sdc-wfd-be-job", + "image": "nexus3.onap.org:10001/onap/sdc-workflow-init", + "version": "1.7.0" + }, + { + "container": "sdc-wfd-fe", + "component": "sdc-wfd-fe", + "image": "nexus3.onap.org:10001/onap/sdc-workflow-frontend", + "version": "1.7.0" + }, + { + "container": "sdc-wfd-fe-filebeat-onap", + "component": "sdc-wfd-fe", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "sdnc", + "component": "sdnc", + "image": "nexus3.onap.org:10001/onap/sdnc-image", + "version": "2.0.5" + }, + { + "container": "filebeat-onap", + "component": "sdnc", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "sdnc-ansible-server", + "component": "sdnc-ansible-server", + "image": "nexus3.onap.org:10001/onap/sdnc-ansible-server-image", + "version": "2.0.5" + }, + { + "container": "sdnc", + "component": "sdnc-job", + "image": "nexus3.onap.org:10001/onap/sdnc-image", + "version": "2.0.5" + }, + { + "container": "sdnc-dgbuilder", + "component": "sdnc-dgbuilder", + "image": "nexus3.onap.org:10001/onap/ccsdk-dgbuilder-image", + "version": "1.0.2" + }, + { + "container": "sdnc-dmaap-listener", + "component": "sdnc-dmaap-listener", + "image": "nexus3.onap.org:10001/onap/sdnc-dmaap-listener-image", + "version": "2.0.5" + }, + { + "container": "sdnc-sdnrdb-init-job", + "component": "sdnc", + "image": "nexus3.onap.org:10001/onap/sdnc-image", + "version": "2.0.5" + }, + { + "container": "sdnc-ueb-listener", + "component": "sdnc-ueb-listener", + "image": "nexus3.onap.org:10001/onap/sdnc-ueb-listener-image", + "version": "2.1.5" + }, + { + "container": "sdnc-web", + "component": "sdnc-web", + "image": "nexus3.onap.org:10001/onap/sdnc-web-image", + "version": "2.0.5" + }, + { + "container": "sdnrdb-nginx", + "component": "sdnrdb", + "image": "docker.nexus.azure.onap.eu/bitnami/nginx", + "version": "1.16-debian-9" + }, + { + "container": "sdnrdb-elasticsearch", + "component": "sdnrdb", + "image": "docker.nexus.azure.onap.eu/bitnami/elasticsearch", + "version": "7.6.1" + }, + { + "container": "sdnrdb-master", + "component": "sdnrdb", + "image": "docker.nexus.azure.onap.eu/bitnami/elasticsearch", + "version": "7.6.1" + }, + { + "container": "so", + "component": "so", + "image": "nexus3.onap.org:10001/onap/so/api-handler-infra", + "version": "1.7.11" + }, + { + "container": "so-filebeat-onap", + "component": "so", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "so-admin-cockpit", + "component": "so-admin-cockpit", + "image": "nexus3.onap.org:10001/onap/so/so-admin-cockpit", + "version": "1.8.2" + }, + { + "container": "so-bpmn-infra", + "component": "so-bpmn-infra", + "image": "nexus3.onap.org:10001/onap/so/bpmn-infra", + "version": "1.7.11" + }, + { + "container": "so-bpmn-infra-filebeat-onap", + "component": "so-bpmn-infra", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "so-catalog-db-adapter", + "component": "so-catalog-db-adapter", + "image": "nexus3.onap.org:10001/onap/so/catalog-db-adapter", + "version": "1.7.11" + }, + { + "container": "so-cnf-adapter", + "component": "so-cnf-adapter", + "image": "nexus3.onap.org:10001/onap/so/so-cnf-adapter", + "version": "1.7.11" + }, + { + "container": "so-etsi-nfvo-ns-lcm", + "component": "so-etsi-nfvo-ns-lcm", + "image": "nexus3.onap.org:10001/onap/so/so-etsi-nfvo-ns-lcm", + "version": "1.7.11" + }, + { + "container": "so-etsi-sol003-adapter", + "component": "so-etsi-sol003-adapter", + "image": "nexus3.onap.org:10001/onap/so/so-etsi-sol003-adapter", + "version": "1.7.112" + }, + { + "container": "so-etsi-sol005-adapter", + "component": "so-etsi-sol005-adapter", + "image": "nexus3.onap.org:10001/onap/so/so-etsi-sol005-adapter", + "version": "1.7.11" + }, + { + "container": "so-mariadb-config", + "component": "so-mariadb-job", + "image": "nexus3.onap.org:10001/mariadb", + "version": "10.1.38" + }, + { + "container": "so-nssmf-adapter", + "component": "so-nssmf-adapter", + "image": "nexus3.onap.org:10001/onap/so/so-nssmf-adapter", + "version": "1.7.11" + }, + { + "container": "so-oof-adapter", + "component": "so-oof-adapter", + "image": "nexus3.onap.org:10001/onap/so/so-oof-adapter", + "version": "1.7.11" + }, + { + "container": "so-oof-adapter-filebeat-onap", + "component": "so-oof-adapter", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "so-openstack-adapter", + "component": "so-openstack-adapter", + "image": "nexus3.onap.org:10001/onap/so/openstack-adapter", + "version": "1.7.11" + }, + { + "container": "so-openstack-adapter-filebeat-onap", + "component": "so-openstack-adapter", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "so-request-db-adapter", + "component": "so-request-db-adapter", + "image": "nexus3.onap.org:10001/onap/so/request-db-adapter", + "version": "1.7.11" + }, + { + "container": "so-sdc-controller", + "component": "so-sdc-controller", + "image": "nexus3.onap.org:10001/onap/so/sdc-controller", + "version": "1.7.11" + }, + { + "container": "so-sdc-controller-filebeat-onap", + "component": "so-sdc-controller", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "so-sdnc-adapter", + "component": "so-sdnc-adapter", + "image": "nexus3.onap.org:10001/onap/so/sdnc-adapter", + "version": "1.7.11" + }, + { + "container": "so-sdnc-adapter-filebeat-onap", + "component": "so-sdnc-adapter", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "uui", + "component": "uui", + "image": "nexus3.onap.org:10001/onap/usecase-ui", + "version": "3.0.6" + }, + { + "container": "uui-server", + "component": "uui-server", + "image": "nexus3.onap.org:10001/onap/usecase-ui-server", + "version": "3.0.6" + }, + { + "container": "vfc-generic-vnfm-driver", + "component": "vfc-generic-vnfm-driver", + "image": "nexus3.onap.org:10001/onap/vfc/gvnfmdriver", + "version": "1.4.0" + }, + { + "container": "vfc-generic-vnfm-driver-filebeat-onap", + "component": "vfc-generic-vnfm-driver", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vfc-huawei-vnfm-driver", + "component": "vfc-huawei-vnfm-driver", + "image": "nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/huawei", + "version": "1.3.8" + }, + { + "container": "vfc-huawei-vnfm-driver-filebeat-onap", + "component": "vfc-huawei-vnfm-driver", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vfc-mariadb", + "component": "vfc-mariadb", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb-galera", + "version": "v002" + }, + { + "container": "vfc-mariadb-metrics", + "component": "vfc-mariadb", + "image": "docker.nexus.azure.onap.eu/bitnami/mysqld-exporter", + "version": "0.12.1-debian-10-r264" + }, + { + "container": "vfc-nslcm-filebeat-onap", + "component": "vfc-nslcm", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vfc-redis", + "component": "vfc-redis", + "image": "nexus3.onap.org:10001/onap/vfc/db", + "version": "1.3.4" + }, + { + "container": "vfc-vnflcm", + "component": "vfc-vnflcm", + "image": "nexus3.onap.org:10001/onap/vfc/vnflcm", + "version": "1.4.0" + }, + { + "container": "vfc-vnflcm-filebeat-onap", + "component": "vfc-vnflcm", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vfc-vnfmgr", + "component": "vfc-vnfmgr", + "image": "nexus3.onap.org:10001/onap/vfc/vnfmgr", + "version": "1.3.9" + }, + { + "container": "vfc-vnfmgr-filebeat-onap", + "component": "vfc-vnfmgr", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vfc-vnfres", + "component": "vfc-vnfres", + "image": "nexus3.onap.org:10001/onap/vfc/vnfres", + "version": "1.3.8" + }, + { + "container": "vfc-vnfres-filebeat-onap", + "component": "vfc-vnfres", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vfc-zte-vnfm-driver", + "component": "vfc-zte-vnfm-driver", + "image": "nexus3.onap.org:10001/onap/vfc/ztevnfmdriver", + "version": "1.3.8" + }, + { + "container": "vfc-zte-vnfm-driver-filebeat-onap", + "component": "vfc-zte-vnfm-driver", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vid", + "component": "vid", + "image": "nexus3.onap.org:10001/onap/vid", + "version": "7.0.0" + }, + { + "container": "filebeat-onap", + "component": "vid", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vid-mariadb-init", + "component": "vid-mariadb-init", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb", + "version": "v002" + }, + { + "container": "vnfsdk", + "component": "vnfsdk", + "image": "nexus3.onap.org:10001/onap/vnfsdk/refrepo", + "version": "1.6.2" + }, + { + "container": "vnfsdk-job", + "component": "vnfsdk-job", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos7-10.3-1.8.2" + }, + { + "container": "vnfsdk-postgres", + "component": "vnfsdk-postgres-primary", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos7-10.3-1.8.2" + }, + { + "container": "vnfsdk-postgres", + "component": "vnfsdk-postgres-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos7-10.11-4.2.1" + } +] diff --git a/doc/artifacts/versions/honolulu.json b/doc/artifacts/versions/honolulu.json new file mode 100644 index 0000000..a694b7f --- /dev/null +++ b/doc/artifacts/versions/honolulu.json @@ -0,0 +1,1736 @@ +[ + { + "container": "a1policymanagement-update-config", + "component": "a1policymanagement", + "image": "dibi/envsubst", + "version": "1" + }, + { + "container": "a1policymanagement", + "component": "a1policymanagement", + "image": "nexus3.onap.org:10001/onap/ccsdk-oran-a1policymanagementservice", + "version": "1.1.1" + }, + { + "container": "aaf-cass", + "component": "aaf-cass", + "image": "nexus3.onap.org:10001/onap/aaf/aaf_cass", + "version": "2.1.23" + }, + { + "container": "aaf-cm", + "component": "aaf-cm", + "image": "nexus3.onap.org:10001/onap/aaf/aaf_core", + "version": "2.1.23" + }, + { + "container": "aaf-fs", + "component": "aaf-fs", + "image": "nexus3.onap.org:10001/onap/aaf/aaf_core", + "version": "2.1.23" + }, + { + "container": "aaf-gui", + "component": "aaf-gui", + "image": "nexus3.onap.org:10001/onap/aaf/aaf_core", + "version": "2.1.23" + }, + { + "container": "aaf-locate", + "component": "aaf-locate", + "image": "nexus3.onap.org:10001/onap/aaf/aaf_core", + "version": "2.1.23" + }, + { + "container": "aaf-oauth", + "component": "aaf-oauth", + "image": "nexus3.onap.org:10001/onap/aaf/aaf_core", + "version": "2.1.23" + }, + { + "container": "aaf-service", + "component": "aaf-service", + "image": "nexus3.onap.org:10001/onap/aaf/aaf_core", + "version": "2.1.23" + }, + { + "container": "aaf-sms", + "component": "aaf-sms", + "image": "nexus3.onap.org:10001/onap/aaf/sms", + "version": "4.0.2" + }, + { + "container": "aaf-sms-preload", + "component": "aaf-sms", + "image": "nexus3.onap.org:10001/onap/aaf/sms", + "version": "4.0.2" + }, + { + "container": "aaf-sms-quorumclient", + "component": "aaf-sms-quorumclient", + "image": "nexus3.onap.org:10001/onap/aaf/smsquorumclient", + "version": "4.0.2" + }, + { + "container": "aaf-sms-quorumclient", + "component": "aaf-sms-quorumclient", + "image": "nexus3.onap.org:10001/onap/aaf/smsquorumclient", + "version": "4.0.2" + }, + { + "container": "aaf-sms-quorumclient", + "component": "aaf-sms-quorumclient", + "image": "nexus3.onap.org:10001/onap/aaf/smsquorumclient", + "version": "4.0.2" + }, + { + "container": "aaf-sms-vault", + "component": "aaf-sms-vault", + "image": "docker.nexus.azure.onap.eu/library/vault", + "version": "1.3.3" + }, + { + "container": "aaf-sms-vault-backend", + "component": "aaf-sms-vault", + "image": "docker.nexus.azure.onap.eu/library/consul", + "version": "1.7.1" + }, + { + "container": "aaf-sshsm-distcenter", + "component": "aaf-sshsm-distcenter", + "image": "nexus3.onap.org:10001/onap/aaf/distcenter", + "version": "4.0.0" + }, + { + "container": "aaf-sshsm-testca", + "component": "aaf-sshsm-testca", + "image": "nexus3.onap.org:10001/onap/aaf/testcaservice", + "version": "4.0.0" + }, + { + "container": "aai", + "component": "aai", + "image": "docker.nexus.azure.onap.eu/aaionap/haproxy", + "version": "1.4.2" + }, + { + "container": "aai-babel", + "component": "aai-babel", + "image": "nexus3.onap.org:10001/onap/babel", + "version": "1.8.0" + }, + { + "container": "filebeat-onap", + "component": "aai-babel", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "aai-graphadmin", + "component": "aai-graphadmin", + "image": "nexus3.onap.org:10001/onap/aai-graphadmin", + "version": "1.8.0" + }, + { + "container": "filebeat-onap", + "component": "aai-graphadmin", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "aai-graphadmin-job", + "component": "aai-graphadmin-job", + "image": "nexus3.onap.org:10001/onap/aai-graphadmin", + "version": "1.8.0" + }, + { + "container": "aai-graphadmin-job", + "component": "aai-graphadmin-job", + "image": "nexus3.onap.org:10001/onap/aai-graphadmin", + "version": "1.8.0" + }, + { + "container": "aai-modelloader", + "component": "aai-modelloader", + "image": "nexus3.onap.org:10001/onap/model-loader", + "version": "1.8.0" + }, + { + "container": "filebeat-onap", + "component": "aai-modelloader", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "aai-resources", + "component": "aai-resources", + "image": "nexus3.onap.org:10001/onap/aai-resources", + "version": "1.8.2" + }, + { + "container": "filebeat-onap", + "component": "aai-resources", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "aai-schema-service", + "component": "aai-schema-service", + "image": "nexus3.onap.org:10001/onap/aai-schema-service", + "version": "1.8.6" + }, + { + "container": "filebeat-onap", + "component": "aai-schema-service", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "aai-sparky-be", + "component": "aai-sparky-be", + "image": "nexus3.onap.org:10001/onap/sparky-be", + "version": "2.0.3" + }, + { + "container": "filebeat-onap", + "component": "aai-sparky-be", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "aai-traversal", + "component": "aai-traversal", + "image": "nexus3.onap.org:10001/onap/aai-traversal", + "version": "1.8.0" + }, + { + "container": "filebeat-onap", + "component": "aai-traversal", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "aai-traversal-job", + "component": "aai-traversal-job", + "image": "nexus3.onap.org:10001/onap/aai-traversal", + "version": "1.8.0" + }, + { + "container": "appc", + "component": "appc", + "image": "nexus3.onap.org:10001/onap/appc-image", + "version": "1.7.2" + }, + { + "container": "appc-ansible-server", + "component": "appc-ansible-server", + "image": "nexus3.onap.org:10001/onap/ccsdk-ansible-server-image", + "version": "0.4.4" + }, + { + "container": "appc-cdt", + "component": "appc-cdt", + "image": "nexus3.onap.org:10001/onap/appc-cdt-image", + "version": "1.7.2" + }, + { + "container": "appc-db", + "component": "appc-db", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb-galera", + "version": "10.5.8" + }, + { + "container": "appc-db-metrics", + "component": "appc-db", + "image": "docker.nexus.azure.onap.eu/bitnami/mysqld-exporter", + "version": "0.12.1-debian-10-r264" + }, + { + "container": "appc-dgbuilder", + "component": "appc-dgbuilder", + "image": "nexus3.onap.org:10001/onap/ccsdk-dgbuilder-image", + "version": "1.1.1" + }, + { + "container": "awx-web", + "component": "onap-awx", + "image": "docker.nexus.azure.onap.eu/ansible/awx_web", + "version": "9.0.1" + }, + { + "container": "awx-celery", + "component": "onap-awx", + "image": "docker.nexus.azure.onap.eu/ansible/awx_task", + "version": "9.0.1" + }, + { + "container": "awx-rabbit", + "component": "onap-awx", + "image": "docker.nexus.azure.onap.eu/ansible/awx_rabbitmq", + "version": "3.7.4" + }, + { + "container": "awx-memcached", + "component": "onap-awx", + "image": "docker.nexus.azure.onap.eu/memcached", + "version": "1.5.20" + }, + { + "container": "awx-postgres", + "component": "awx-postgres", + "image": "docker.nexus.azure.onap.eu/postgres", + "version": "10.4-alpine" + }, + { + "container": "awx-mgnt", + "component": "awx-mgnt", + "image": "docker.nexus.azure.onap.eu/ansible/awx_task", + "version": "9.0.1" + }, + { + "container": "cassandra", + "component": "cassandra", + "image": "docker.nexus.azure.onap.eu/cassandra", + "version": "3.11.4" + }, + { + "container": "cassandra", + "component": "cassandra", + "image": "docker.nexus.azure.onap.eu/cassandra", + "version": "3.11.4" + }, + { + "container": "cassandra", + "component": "cassandra", + "image": "docker.nexus.azure.onap.eu/cassandra", + "version": "3.11.4" + }, + { + "container": "cds-blueprints-processor", + "component": "cds-blueprints-processor", + "image": "nexus3.onap.org:10001/onap/ccsdk-blueprintsprocessor", + "version": "1.1.2" + }, + { + "container": "cds-command-executor", + "component": "cds-command-executor", + "image": "nexus3.onap.org:10001/onap/ccsdk-commandexecutor", + "version": "1.1.2" + }, + { + "container": "cds-db", + "component": "cds-db", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb-galera", + "version": "10.5.8" + }, + { + "container": "cds-db-metrics", + "component": "cds-db", + "image": "docker.nexus.azure.onap.eu/bitnami/mysqld-exporter", + "version": "0.12.1-debian-10-r264" + }, + { + "container": "cds-py-executor", + "component": "cds-py-executor", + "image": "nexus3.onap.org:10001/onap/ccsdk-py-executor", + "version": "1.1.2" + }, + { + "container": "cds-sdc-listener", + "component": "cds-sdc-listener", + "image": "nexus3.onap.org:10001/onap/ccsdk-sdclistener", + "version": "1.1.2" + }, + { + "container": "cds-ui", + "component": "cds-ui", + "image": "nexus3.onap.org:10001/onap/ccsdk-cds-ui-server", + "version": "1.1.2" + }, + { + "container": "cli", + "component": "cli", + "image": "nexus3.onap.org:10001/onap/cli", + "version": "6.0.1" + }, + { + "container": "cmso-db", + "component": "cmso-db", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb-galera", + "version": "10.5.8" + }, + { + "container": "cmso-db-metrics", + "component": "cmso-db", + "image": "docker.nexus.azure.onap.eu/bitnami/mysqld-exporter", + "version": "0.12.1-debian-10-r264" + }, + { + "container": "cmso-db-config", + "component": "cmso-db-config", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb", + "version": "10.5.8" + }, + { + "container": "consul", + "component": "consul", + "image": "nexus3.onap.org:10001/onap/oom/consul", + "version": "2.1.0" + }, + { + "container": "consul-server", + "component": "consul-server", + "image": "nexus3.onap.org:10001/onap/oom/consul", + "version": "2.1.0" + }, + { + "container": "consul-server", + "component": "consul-server", + "image": "nexus3.onap.org:10001/onap/oom/consul", + "version": "2.1.0" + }, + { + "container": "consul-server", + "component": "consul-server", + "image": "nexus3.onap.org:10001/onap/oom/consul", + "version": "2.1.0" + }, + { + "container": "cps", + "component": "cps", + "image": "nexus3.onap.org:10001/onap/cps-and-nf-proxy", + "version": "1.0.1" + }, + { + "container": "cps-postgres", + "component": "cps-postgres-primary", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "cps-postgres", + "component": "cps-postgres-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "dbc-pg", + "component": "dbc-pg-primary", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "dbc-pg", + "component": "dbc-pg-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "dcae-bootstrap", + "component": "dcae-bootstrap", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container", + "version": "3.0.4" + }, + { + "container": "dcae-cloudify-manager", + "component": "dcae-cloudify-manager", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.cm-container", + "version": "4.4.2" + }, + { + "container": "dcae-config-binding-service", + "component": "dcae-config-binding-service", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding", + "version": "2.5.3" + }, + { + "container": "dcae-config-binding-service-fb-onap", + "component": "dcae-config-binding-service", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-config-binding-service-insecure", + "component": "dcae-config-binding-service", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding", + "version": "2.5.3" + }, + { + "container": "dcae-config-binding-service-fb-onap-i", + "component": "dcae-config-binding-service", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-dashboard", + "component": "dcae-dashboard", + "image": "nexus3.onap.org:10001/onap/org.onap.ccsdk.dashboard.ccsdk-app-os", + "version": "1.4.0" + }, + { + "container": "dcae-dashboard-filebeat", + "component": "dcae-dashboard", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-dashboard-pg", + "component": "dcae-dashboard-pg-primary", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "dcae-dashboard-pg", + "component": "dcae-dashboard-pg-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "dcae-db", + "component": "dcae-db-primary", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "dcae-db", + "component": "dcae-db-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "dcae-deployment-handler", + "component": "dcae-deployment-handler", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.deployment-handler", + "version": "4.4.1" + }, + { + "container": "dcae-deployment-handler-filebeat", + "component": "dcae-deployment-handler", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-healthcheck", + "component": "dcae-healthcheck", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.healthcheck-container", + "version": "2.1.0" + }, + { + "container": "dcae-hv-ves-collector", + "component": "dcae-hv-ves-collector", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main", + "version": "1.6.0" + }, + { + "container": "filebeat", + "component": "dcae-hv-ves-collector", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-inv-pg", + "component": "dcae-inv-pg-primary", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "dcae-inv-pg", + "component": "dcae-inv-pg-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "dcae-inventory-api", + "component": "dcae-inventory-api", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.inventory-api", + "version": "3.5.2" + }, + { + "container": "dcae-inventory-api-filebeat", + "component": "dcae-inventory-api", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-mongo", + "component": "dcae-mongo", + "image": "docker.nexus.azure.onap.eu/library/mongo", + "version": "4.0.8" + }, + { + "container": "dcae-ms-healthcheck", + "component": "dcae-ms-healthcheck", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.healthcheck-container", + "version": "2.1.0" + }, + { + "container": "dcae-policy-handler", + "component": "dcae-policy-handler", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.policy-handler", + "version": "5.1.2" + }, + { + "container": "dcae-policy-handler-filebeat", + "component": "dcae-policy-handler", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-prh", + "component": "dcae-prh", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.prh.prh-app-server", + "version": "1.5.6" + }, + { + "container": "filebeat", + "component": "dcae-prh", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-servicechange-handler", + "component": "dcae-servicechange-handler", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.servicechange-handler", + "version": "1.4.0" + }, + { + "container": "dcae-tcagen2", + "component": "dcae-tcagen2", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.analytics.tca-gen2.dcae-analytics-tca-web", + "version": "1.2.1" + }, + { + "container": "filebeat", + "component": "dcae-tcagen2", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-ves-collector", + "component": "dcae-ves-collector", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector", + "version": "1.8.0" + }, + { + "container": "filebeat", + "component": "dcae-ves-collector", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-ves-openapi-manager", + "component": "dcae-ves-openapi-manager", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.ves-openapi-manager", + "version": "1.0.1" + }, + { + "container": "dcaemod-db", + "component": "dcaemod-db-primary", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "dcaemod-db", + "component": "dcaemod-db-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "dcaemod-designtool", + "component": "dcaemod-designtool", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.mod.designtool-web", + "version": "1.0.2" + }, + { + "container": "dcaemod-distributor-api", + "component": "dcaemod-distributor-api", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.mod.distributorapi", + "version": "1.1.0" + }, + { + "container": "dcaemod-genprocessor", + "component": "dcaemod-genprocessor", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.mod.genprocessor-job", + "version": "1.0.2" + }, + { + "container": "dcaemod-genprocessor-http", + "component": "dcaemod-genprocessor", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.mod.genprocessor-http", + "version": "1.0.2" + }, + { + "container": "dcaemod-healthcheck", + "component": "dcaemod-healthcheck", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.healthcheck-container", + "version": "2.1.0" + }, + { + "container": "dcaemod-nifi-registry", + "component": "dcaemod-nifi-registry", + "image": "docker.nexus.azure.onap.eu/apache/nifi-registry", + "version": "0.5.0" + }, + { + "container": "dcaemod-onboarding-api", + "component": "dcaemod-onboarding-api", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.mod.onboardingapi", + "version": "2.12.5" + }, + { + "container": "dcaemod-runtime-api", + "component": "dcaemod-runtime-api", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.mod.runtime-web", + "version": "1.2.3" + }, + { + "container": "dmaap-bc", + "component": "dmaap-bc", + "image": "nexus3.onap.org:10001/onap/dmaap/dmaap-bc", + "version": "2.0.5" + }, + { + "container": "dmaap-provisioning-job", + "component": "dmaap-bc", + "image": "nexus3.onap.org:10001/onap/dmaap/dbc-client", + "version": "1.0.9" + }, + { + "container": "dmaap-dr-db", + "component": "dmaap-dr-db", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb-galera", + "version": "10.5.8" + }, + { + "container": "dmaap-dr-db-metrics", + "component": "dmaap-dr-db", + "image": "docker.nexus.azure.onap.eu/bitnami/mysqld-exporter", + "version": "0.12.1-debian-10-r264" + }, + { + "container": "dmaap-dr-node", + "component": "dmaap-dr-node", + "image": "nexus3.onap.org:10001/onap/dmaap/datarouter-node", + "version": "2.1.8" + }, + { + "container": "dmaap-dr-node-filebeat-onap", + "component": "dmaap-dr-node", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dmaap-dr-prov", + "component": "dmaap-dr-prov", + "image": "nexus3.onap.org:10001/onap/dmaap/datarouter-prov", + "version": "2.1.8" + }, + { + "container": "dmaap-dr-prov-filebeat-onap", + "component": "dmaap-dr-prov", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "ejbca-ejbca", + "component": "ejbca", + "image": "docker.nexus.azure.onap.eu/primekey/ejbca-ce", + "version": "6.15.2.5" + }, + { + "container": "ejbca-config", + "component": "ejbca-config", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb", + "version": "10.5.8" + }, + { + "container": "esr-gui", + "component": "esr-gui", + "image": "nexus3.onap.org:10001/onap/aai/esr-gui", + "version": "1.4.0" + }, + { + "container": "esr-server", + "component": "esr-server", + "image": "nexus3.onap.org:10001/onap/aai/esr-server", + "version": "1.5.2" + }, + { + "container": "esr-server-filebeat-onap", + "component": "esr-server", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "holmes-engine-mgmt", + "component": "holmes-engine-mgmt", + "image": "nexus3.onap.org:10001/onap/holmes/engine-management", + "version": "1.3.3" + }, + { + "container": "holmes-pg", + "component": "holmes-pg-primary", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "holmes-pg", + "component": "holmes-pg-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "holmes-rule-mgmt", + "component": "holmes-rule-mgmt", + "image": "nexus3.onap.org:10001/onap/holmes/rule-management", + "version": "1.3.3" + }, + { + "container": "kube2msb", + "component": "kube2msb", + "image": "nexus3.onap.org:10001/onap/oom/kube2msb", + "version": "1.2.6" + }, + { + "container": "mariadb-galera", + "component": "mariadb-galera", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb-galera", + "version": "10.5.8" + }, + { + "container": "mariadb-galera-metrics", + "component": "mariadb-galera", + "image": "docker.nexus.azure.onap.eu/bitnami/mysqld-exporter", + "version": "0.12.1-debian-10-r264" + }, + { + "container": "message-router", + "component": "message-router", + "image": "nexus3.onap.org:10001/onap/dmaap/dmaap-mr", + "version": "1.1.20" + }, + { + "container": "message-router-zookeeper", + "component": "message-router-zookeeper", + "image": "nexus3.onap.org:10001/onap/dmaap/zookeeper", + "version": "6.0.3" + }, + { + "container": "modeling-etsicatalog", + "component": "modeling-etsicatalog", + "image": "nexus3.onap.org:10001/onap/modeling/etsicatalog", + "version": "10.5.8" + }, + { + "container": "modeling-etsicatalog-filebeat-onap", + "component": "modeling-etsicatalog", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "modeling-etsicatalog", + "component": "modeling-etsicatalog", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb", + "version": "1.0.10" + }, + { + "container": "msb-consul", + "component": "msb-consul", + "image": "docker.nexus.azure.onap.eu/library/consul", + "version": "1.4.3" + }, + { + "container": "msb-discovery", + "component": "msb-discovery", + "image": "nexus3.onap.org:10001/onap/msb/msb_discovery", + "version": "1.2.6" + }, + { + "container": "msb-discovery-filebeat-onap", + "component": "msb-discovery", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "msb-eag", + "component": "msb-eag", + "image": "nexus3.onap.org:10001/onap/msb/msb_apigateway", + "version": "1.2.7" + }, + { + "container": "filebeat-onap", + "component": "msb-eag", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "msb-iag", + "component": "msb-iag", + "image": "nexus3.onap.org:10001/onap/msb/msb_apigateway", + "version": "1.2.7" + }, + { + "container": "filebeat-onap", + "component": "msb-iag", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "multicloud", + "component": "multicloud", + "image": "nexus3.onap.org:10001/onap/multicloud/framework", + "version": "1.6.0" + }, + { + "container": "filebeat-onap", + "component": "multicloud", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "multicloud-fcaps", + "component": "multicloud-fcaps", + "image": "nexus3.onap.org:10001/onap/multicloud/openstack-fcaps", + "version": "1.5.5" + }, + { + "container": "filebeat-onap", + "component": "multicloud-fcaps", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "rabbit-mq", + "component": "multicloud-fcaps", + "image": "nexus3.onap.org:10001/rabbitmq", + "version": "alpine" + }, + { + "container": "multicloud-k8s", + "component": "multicloud-k8s", + "image": "nexus3.onap.org:10001/onap/multicloud/k8s", + "version": "0.8.1" + }, + { + "container": "framework-artifactbroker", + "component": "multicloud-k8s", + "image": "nexus3.onap.org:10001/onap/multicloud/framework-artifactbroker", + "version": "1.6.0" + }, + { + "container": "onap-multicloud-k8s-etcd", + "component": "multicloud-k8s-etcd", + "image": "docker.nexus.azure.onap.eu/etcd-amd64", + "version": "3.2.24" + }, + { + "container": "multicloud-k8s-mongo", + "component": "multicloud-k8s-mongo", + "image": "docker.nexus.azure.onap.eu/library/mongo", + "version": "4.0.8" + }, + { + "container": "multicloud-pike", + "component": "multicloud-pike", + "image": "nexus3.onap.org:10001/onap/multicloud/openstack-pike", + "version": "1.5.5" + }, + { + "container": "filebeat-onap", + "component": "multicloud-pike", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "multicloud-starlingx", + "component": "multicloud-starlingx", + "image": "nexus3.onap.org:10001/onap/multicloud/openstack-starlingx", + "version": "1.5.5" + }, + { + "container": "filebeat-onap", + "component": "multicloud-starlingx", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "framework-artifactbroker", + "component": "multicloud-starlingx", + "image": "nexus3.onap.org:10001/onap/multicloud/framework-artifactbroker", + "version": "1.6.0" + }, + { + "container": "multicloud-vio", + "component": "multicloud-vio", + "image": "nexus3.onap.org:10001/onap/multicloud/vio", + "version": "1.4.1" + }, + { + "container": "filebeat-onap", + "component": "multicloud-vio", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "multicloud-windriver", + "component": "multicloud-windriver", + "image": "nexus3.onap.org:10001/onap/multicloud/openstack-windriver", + "version": "1.5.5" + }, + { + "container": "filebeat-onap", + "component": "multicloud-windriver", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "framework-artifactbroker", + "component": "multicloud-windriver", + "image": "nexus3.onap.org:10001/onap/multicloud/framework-artifactbroker", + "version": "1.6.0" + }, + { + "container": "music-springboot", + "component": "music", + "image": "nexus3.onap.org:10001/onap/music/music_sb", + "version": "3.2.40" + }, + { + "container": "music-cassandra", + "component": "music-cassandra", + "image": "nexus3.onap.org:10001/onap/music/cassandra_3_11", + "version": "3.0.24" + }, + { + "container": "music-cassandra-update-job", + "component": "music-cassandra-job", + "image": "nexus3.onap.org:10001/onap/music/cassandra_job", + "version": "3.0.24" + }, + { + "container": "nbi", + "component": "nbi", + "image": "nexus3.onap.org:10001/onap/externalapi/nbi", + "version": "8.0.1" + }, + { + "container": "nbi-config", + "component": "nbi-config", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb", + "version": "10.5.8" + }, + { + "container": "nbi-mongo", + "component": "nbi-mongo", + "image": "docker.nexus.azure.onap.eu/library/mongo", + "version": "4.0.8" + }, + { + "container": "nengdb-init", + "component": "nengdb-init", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb", + "version": "10.5.8" + }, + { + "container": "netbox-app", + "component": "netbox-app", + "image": "docker.nexus.azure.onap.eu/netboxcommunity/netbox", + "version": "v2.5.8" + }, + { + "container": "netbox-app-provisioning-job", + "component": "netbox-app-provisioning-job", + "image": "docker.nexus.azure.onap.eu/curlimages/curl", + "version": "7.69.1" + }, + { + "container": "netbox-nginx", + "component": "netbox-nginx", + "image": "docker.nexus.azure.onap.eu/nginx", + "version": "1.15-alpine" + }, + { + "container": "netbox-postgres", + "component": "netbox-postgres", + "image": "docker.nexus.azure.onap.eu/postgres", + "version": "10.4-alpine" + }, + { + "container": "network-name-gen", + "component": "network-name-gen", + "image": "nexus3.onap.org:10001/onap/ccsdk-apps-ms-neng", + "version": "1.1.1" + }, + { + "container": "oof", + "component": "oof", + "image": "nexus3.onap.org:10001/onap/optf-osdf", + "version": "3.0.4" + }, + { + "container": "oof-cmso-optimizer", + "component": "oof-cmso-optimizer", + "image": "nexus3.onap.org:10001/onap/optf-cmso-optimizer", + "version": "2.3.3" + }, + { + "container": "filebeat-onap", + "component": "oof-cmso-service", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "mso-simulator", + "component": "oof-cmso-service", + "image": "nexus3.onap.org:10001/onap/optf-cmso-robot", + "version": "2.3.3" + }, + { + "container": "oof-cmso-service", + "component": "oof-cmso-service", + "image": "nexus3.onap.org:10001/onap/optf-cmso-service", + "version": "2.3.3" + }, + { + "container": "oof-cmso-ticketmgt", + "component": "oof-cmso-ticketmgt", + "image": "nexus3.onap.org:10001/onap/optf-cmso-ticketmgt", + "version": "2.3.3" + }, + { + "container": "oof-cmso-topology", + "component": "oof-cmso-topology", + "image": "nexus3.onap.org:10001/onap/optf-cmso-topology", + "version": "2.3.3" + }, + { + "container": "oof-has-api", + "component": "oof-has-api", + "image": "nexus3.onap.org:10001/onap/optf-has", + "version": "2.1.5" + }, + { + "container": "oof-has-api-nginx", + "component": "oof-has-api", + "image": "docker.nexus.azure.onap.eu/bitnami/nginx", + "version": "1.18-debian-10" + }, + { + "container": "oof-has-controller", + "component": "oof-has-controller", + "image": "nexus3.onap.org:10001/onap/optf-has", + "version": "2.1.5" + }, + { + "container": "oof-has-data", + "component": "oof-has-data", + "image": "nexus3.onap.org:10001/onap/optf-has", + "version": "2.1.5" + }, + { + "container": "oof-has-healthcheck", + "component": "oof-has", + "image": "nexus3.onap.org:10001/onap/optf-has", + "version": "2.1.5" + }, + { + "container": "oof-has-onboard", + "component": "oof-has", + "image": "nexus3.onap.org:10001/onap/optf-has", + "version": "2.1.5" + }, + { + "container": "oof-has-reservation", + "component": "oof-has-reservation", + "image": "nexus3.onap.org:10001/onap/optf-has", + "version": "2.1.5" + }, + { + "container": "oof-has-solver", + "component": "oof-has-solver", + "image": "nexus3.onap.org:10001/onap/optf-has", + "version": "2.1.5" + }, + { + "container": "oom-cert-service", + "component": "oom-cert-service", + "image": "nexus3.onap.org:10001/onap/org.onap.oom.platform.cert-service.oom-certservice-api", + "version": "2.3.3" + }, + { + "container": "policy-apex-pdp", + "component": "policy-apex-pdp", + "image": "nexus3.onap.org:10001/onap/policy-apex-pdp", + "version": "2.5.2" + }, + { + "container": "policy-api", + "component": "policy-api", + "image": "nexus3.onap.org:10001/onap/policy-api", + "version": "2.4.2" + }, + { + "container": "policy-clamp-be", + "component": "policy-clamp-be", + "image": "nexus3.onap.org:10001/onap/policy-clamp-backend", + "version": "6.0.2" + }, + { + "container": "policy-clamp-fe", + "component": "policy-clamp-fe", + "image": "nexus3.onap.org:10001/onap/policy-clamp-frontend", + "version": "6.0.2" + }, + { + "container": "onap-policy-clamp-galera-config", + "component": "policy-clamp-be-policy-clamp-job", + "image": "docker.nexus.azure.onap.eu/mariadb", + "version": "10.5.8" + }, + { + "container": "policy-distribution", + "component": "policy-distribution", + "image": "nexus3.onap.org:10001/onap/policy-distribution", + "version": "2.5.2" + }, + { + "container": "policy-drools-pdp", + "component": "policy-drools-pdp", + "image": "nexus3.onap.org:10001/onap/policy-pdpd-cl", + "version": "1.8.2" + }, + { + "container": "onap-policy-galera-config", + "component": "policy-job", + "image": "docker.nexus.azure.onap.eu/mariadb", + "version": "10.5.8" + }, + { + "container": "policy-mariadb", + "component": "policy-mariadb", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb-galera", + "version": "10.5.8" + }, + { + "container": "policy-mariadb-metrics", + "component": "policy-mariadb", + "image": "docker.nexus.azure.onap.eu/bitnami/mysqld-exporter", + "version": "0.12.1-debian-10-r264" + }, + { + "container": "policy-pap", + "component": "policy-pap", + "image": "nexus3.onap.org:10001/onap/policy-pap", + "version": "2.4.2" + }, + { + "container": "policy-xacml-pdp", + "component": "policy-xacml-pdp", + "image": "nexus3.onap.org:10001/onap/policy-xacml-pdp", + "version": "2.4.2" + }, + { + "container": "portal-app", + "component": "portal-app", + "image": "nexus3.onap.org:10001/onap/portal-app", + "version": "3.4.2" + }, + { + "container": "filebeat-onap", + "component": "portal-app", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "portal-cassandra", + "component": "portal-cassandra", + "image": "docker.nexus.azure.onap.eu/bitnami/cassandra", + "version": "3.11.9-debian-10-r30" + }, + { + "container": "portal-db", + "component": "portal-db", + "image": "nexus3.onap.org:10001/onap/portal-db", + "version": "3.4.1" + }, + { + "container": "portal-db-job", + "component": "portal-db-job", + "image": "docker.nexus.azure.onap.eu/oomk8s/mariadb-client-init", + "version": "3.0.0" + }, + { + "container": "portal-db-oom-update-job", + "component": "portal-db-job", + "image": "docker.nexus.azure.onap.eu/oomk8s/mariadb-client-init", + "version": "3.0.0" + }, + { + "container": "portal-sdk", + "component": "portal-sdk", + "image": "nexus3.onap.org:10001/onap/portal-sdk", + "version": "3.4.2" + }, + { + "container": "filebeat-onap", + "component": "portal-sdk", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "portal-widget", + "component": "portal-widget", + "image": "nexus3.onap.org:10001/onap/portal-wms", + "version": "3.4.2" + }, + { + "container": "robot", + "component": "robot", + "image": "nexus3.onap.org:10001/onap/testsuite", + "version": "1.7.3" + }, + { + "container": "sdc-be", + "component": "sdc-be", + "image": "nexus3.onap.org:10001/onap/sdc-backend-all-plugins", + "version": "1.8.5" + }, + { + "container": "sdc-be-filebeat-onap", + "component": "sdc-be", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "sdc-be-job", + "component": "sdc-be-job", + "image": "nexus3.onap.org:10001/onap/sdc-backend-init", + "version": "1.8.5" + }, + { + "container": "sdc-cs-job", + "component": "sdc-cs-job", + "image": "nexus3.onap.org:10001/onap/sdc-cassandra-init", + "version": "1.8.5" + }, + { + "container": "sdc-fe", + "component": "sdc-fe", + "image": "nexus3.onap.org:10001/onap/sdc-frontend", + "version": "1.8.5" + }, + { + "container": "sdc-fe-filebeat-onap", + "component": "sdc-fe", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "sdc-onboarding-be-job", + "component": "sdc-onboarding-be-job", + "image": "nexus3.onap.org:10001/onap/sdc-onboard-cassandra-init", + "version": "1.8.5" + }, + { + "container": "sdc-onboarding-be", + "component": "sdc-onboarding-be", + "image": "nexus3.onap.org:10001/onap/sdc-onboard-backend", + "version": "1.8.5" + }, + { + "container": "sdc-onboarding-be-filebeat-onap", + "component": "sdc-onboarding-be", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "sdc-wfd-be", + "component": "sdc-wfd-be", + "image": "nexus3.onap.org:10001/onap/sdc-workflow-backend", + "version": "1.7.0" + }, + { + "container": "sdc-wfd-be-job", + "component": "sdc-wfd-be-job", + "image": "nexus3.onap.org:10001/onap/sdc-workflow-init", + "version": "1.7.0" + }, + { + "container": "sdc-wfd-fe", + "component": "sdc-wfd-fe", + "image": "nexus3.onap.org:10001/onap/sdc-workflow-frontend", + "version": "1.7.0" + }, + { + "container": "sdc-wfd-fe-filebeat-onap", + "component": "sdc-wfd-fe", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "sdnc", + "component": "sdnc", + "image": "nexus3.onap.org:10001/onap/sdnc-image", + "version": "2.1.5" + }, + { + "container": "filebeat-onap", + "component": "sdnc", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "sdnc-ansible-server", + "component": "sdnc-ansible-server", + "image": "nexus3.onap.org:10001/onap/sdnc-ansible-server-image", + "version": "2.1.5" + }, + { + "container": "sdnc", + "component": "sdnc-job", + "image": "nexus3.onap.org:10001/onap/sdnc-image", + "version": "2.1.5" + }, + { + "container": "sdnc-dgbuilder", + "component": "sdnc-dgbuilder", + "image": "nexus3.onap.org:10001/onap/ccsdk-dgbuilder-image", + "version": "1.1.1" + }, + { + "container": "sdnc-dmaap-listener", + "component": "sdnc-dmaap-listener", + "image": "nexus3.onap.org:10001/onap/sdnc-dmaap-listener-image", + "version": "2.1.5" + }, + { + "container": "sdnc-sdnrdb-init-job", + "component": "sdnc", + "image": "nexus3.onap.org:10001/onap/sdnc-image", + "version": "2.1.5" + }, + { + "container": "sdnc-ueb-listener", + "component": "sdnc-ueb-listener", + "image": "nexus3.onap.org:10001/onap/sdnc-ueb-listener-image", + "version": "2.1.5" + }, + { + "container": "sdnc-web", + "component": "sdnc-web", + "image": "nexus3.onap.org:10001/onap/sdnc-web-image", + "version": "2.1.5" + }, + { + "container": "sdnrdb-nginx", + "component": "sdnrdb", + "image": "docker.nexus.azure.onap.eu/bitnami/nginx", + "version": "1.18-debian-10" + }, + { + "container": "sdnrdb-elasticsearch", + "component": "sdnrdb", + "image": "docker.nexus.azure.onap.eu/bitnami/elasticsearch", + "version": "7.9.3" + }, + { + "container": "sdnrdb-master", + "component": "sdnrdb", + "image": "docker.nexus.azure.onap.eu/bitnami/elasticsearch", + "version": "7.9.3" + }, + { + "container": "sdnrdb-master", + "component": "sdnrdb", + "image": "docker.nexus.azure.onap.eu/bitnami/elasticsearch", + "version": "7.9.3" + }, + { + "container": "sdnrdb-master", + "component": "sdnrdb", + "image": "docker.nexus.azure.onap.eu/bitnami/elasticsearch", + "version": "7.9.3" + }, + { + "container": "so", + "component": "so", + "image": "nexus3.onap.org:10001/onap/so/api-handler-infra", + "version": "1.8.1" + }, + { + "container": "so-filebeat-onap", + "component": "so", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "so-admin-cockpit", + "component": "so-admin-cockpit", + "image": "nexus3.onap.org:10001/onap/so/so-admin-cockpit", + "version": "1.8.2" + }, + { + "container": "so-bpmn-infra", + "component": "so-bpmn-infra", + "image": "nexus3.onap.org:10001/onap/so/bpmn-infra", + "version": "1.8.1" + }, + { + "container": "so-bpmn-infra-filebeat-onap", + "component": "so-bpmn-infra", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "so-catalog-db-adapter", + "component": "so-catalog-db-adapter", + "image": "nexus3.onap.org:10001/onap/so/catalog-db-adapter", + "version": "1.8.2" + }, + { + "container": "so-cnf-adapter", + "component": "so-cnf-adapter", + "image": "nexus3.onap.org:10001/onap/so/so-cnf-adapter", + "version": "1.8.3" + }, + { + "container": "so-etsi-nfvo-ns-lcm", + "component": "so-etsi-nfvo-ns-lcm", + "image": "nexus3.onap.org:10001/onap/so/so-etsi-nfvo-ns-lcm", + "version": "1.8.2" + }, + { + "container": "so-etsi-sol003-adapter", + "component": "so-etsi-sol003-adapter", + "image": "nexus3.onap.org:10001/onap/so/so-etsi-sol003-adapter", + "version": "1.8.2" + }, + { + "container": "so-etsi-sol005-adapter", + "component": "so-etsi-sol005-adapter", + "image": "nexus3.onap.org:10001/onap/so/so-etsi-sol005-adapter", + "version": "1.8.3" + }, + { + "container": "so-mariadb-config", + "component": "so-mariadb-job", + "image": "nexus3.onap.org:10001/mariadb", + "version": "10.1.38" + }, + { + "container": "so-nssmf-adapter", + "component": "so-nssmf-adapter", + "image": "nexus3.onap.org:10001/onap/so/so-nssmf-adapter", + "version": "1.8.3" + }, + { + "container": "so-oof-adapter", + "component": "so-oof-adapter", + "image": "nexus3.onap.org:10001/onap/so/so-oof-adapter", + "version": "1.8.3" + }, + { + "container": "so-oof-adapter-filebeat-onap", + "component": "so-oof-adapter", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "so-openstack-adapter", + "component": "so-openstack-adapter", + "image": "nexus3.onap.org:10001/onap/so/openstack-adapter", + "version": "1.8.1" + }, + { + "container": "so-openstack-adapter-filebeat-onap", + "component": "so-openstack-adapter", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "so-request-db-adapter", + "component": "so-request-db-adapter", + "image": "nexus3.onap.org:10001/onap/so/request-db-adapter", + "version": "1.8.2" + }, + { + "container": "so-sdc-controller", + "component": "so-sdc-controller", + "image": "nexus3.onap.org:10001/onap/so/sdc-controller", + "version": "1.8.1" + }, + { + "container": "so-sdc-controller-filebeat-onap", + "component": "so-sdc-controller", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "so-sdnc-adapter", + "component": "so-sdnc-adapter", + "image": "nexus3.onap.org:10001/onap/so/sdnc-adapter", + "version": "1.8.1" + }, + { + "container": "so-sdnc-adapter-filebeat-onap", + "component": "so-sdnc-adapter", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "uui", + "component": "uui", + "image": "nexus3.onap.org:10001/onap/usecase-ui", + "version": "4.0.0" + }, + { + "container": "uui-server", + "component": "uui-server", + "image": "nexus3.onap.org:10001/onap/usecase-ui-server", + "version": "4.0.0" + }, + { + "container": "vfc-generic-vnfm-driver", + "component": "vfc-generic-vnfm-driver", + "image": "nexus3.onap.org:10001/onap/vfc/gvnfmdriver", + "version": "1.4.1" + }, + { + "container": "vfc-generic-vnfm-driver-filebeat-onap", + "component": "vfc-generic-vnfm-driver", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vfc-huawei-vnfm-driver", + "component": "vfc-huawei-vnfm-driver", + "image": "nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/huawei", + "version": "1.3.9" + }, + { + "container": "vfc-huawei-vnfm-driver-filebeat-onap", + "component": "vfc-huawei-vnfm-driver", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vfc-mariadb", + "component": "vfc-mariadb", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb-galera", + "version": "10.5.8" + }, + { + "container": "vfc-mariadb-metrics", + "component": "vfc-mariadb", + "image": "docker.nexus.azure.onap.eu/bitnami/mysqld-exporter", + "version": "0.12.1-debian-10-r264" + }, + { + "container": "vfc-nslcm", + "component": "vfc-nslcm", + "image": "nexus3.onap.org:10001/onap/vfc/nslcm", + "version": "1.4.3" + }, + { + "container": "vfc-nslcm-filebeat-onap", + "component": "vfc-nslcm", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vfc-redis", + "component": "vfc-redis", + "image": "nexus3.onap.org:10001/onap/vfc/db", + "version": "1.3.4" + }, + { + "container": "vfc-vnflcm", + "component": "vfc-vnflcm", + "image": "nexus3.onap.org:10001/onap/vfc/vnflcm", + "version": "1.4.1" + }, + { + "container": "vfc-vnflcm-filebeat-onap", + "component": "vfc-vnflcm", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vfc-vnfmgr", + "component": "vfc-vnfmgr", + "image": "nexus3.onap.org:10001/onap/vfc/vnfmgr", + "version": "1.4.0" + }, + { + "container": "vfc-vnfmgr-filebeat-onap", + "component": "vfc-vnfmgr", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vfc-vnfres", + "component": "vfc-vnfres", + "image": "nexus3.onap.org:10001/onap/vfc/vnfres", + "version": "1.3.9" + }, + { + "container": "vfc-vnfres-filebeat-onap", + "component": "vfc-vnfres", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vfc-zte-vnfm-driver", + "component": "vfc-zte-vnfm-driver", + "image": "nexus3.onap.org:10001/onap/vfc/ztevnfmdriver", + "version": "1.4.0" + }, + { + "container": "vfc-zte-vnfm-driver-filebeat-onap", + "component": "vfc-zte-vnfm-driver", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vid", + "component": "vid", + "image": "nexus3.onap.org:10001/onap/vid", + "version": "8.0.2" + }, + { + "container": "filebeat-onap", + "component": "vid", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vid-mariadb-init", + "component": "vid-mariadb-init", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb", + "version": "10.5.8" + }, + { + "container": "vnfsdk", + "component": "vnfsdk", + "image": "nexus3.onap.org:10001/onap/vnfsdk/refrepo", + "version": "1.6.3" + }, + { + "container": "vnfsdk-job", + "component": "vnfsdk-job", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "vnfsdk-postgres", + "component": "vnfsdk-postgres-primary", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "vnfsdk-postgres", + "component": "vnfsdk-postgres-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + } +] diff --git a/doc/artifacts/versions/istanbul.json b/doc/artifacts/versions/istanbul.json new file mode 100644 index 0000000..c184fbf --- /dev/null +++ b/doc/artifacts/versions/istanbul.json @@ -0,0 +1,1694 @@ +[ + { + "container": "a1policymanagement-update-config", + "component": "a1policymanagement", + "image": "dibi/envsubst", + "version": "1" + }, + { + "container": "a1policymanagement", + "component": "a1policymanagement", + "image": "nexus3.onap.org:10001/onap/ccsdk-oran-a1policymanagementservice", + "version": "1.2.3" + }, + { + "container": "aaf-cass", + "component": "aaf-cass", + "image": "nexus3.onap.org:10001/onap/aaf/aaf_cass", + "version": "2.1.23" + }, + { + "container": "aaf-cm", + "component": "aaf-cm", + "image": "nexus3.onap.org:10001/onap/aaf/aaf_core", + "version": "2.1.23" + }, + { + "container": "aaf-fs", + "component": "aaf-fs", + "image": "nexus3.onap.org:10001/onap/aaf/aaf_core", + "version": "2.1.23" + }, + { + "container": "aaf-gui", + "component": "aaf-gui", + "image": "nexus3.onap.org:10001/onap/aaf/aaf_core", + "version": "2.1.23" + }, + { + "container": "aaf-locate", + "component": "aaf-locate", + "image": "nexus3.onap.org:10001/onap/aaf/aaf_core", + "version": "2.1.23" + }, + { + "container": "aaf-oauth", + "component": "aaf-oauth", + "image": "nexus3.onap.org:10001/onap/aaf/aaf_core", + "version": "2.1.23" + }, + { + "container": "aaf-service", + "component": "aaf-service", + "image": "nexus3.onap.org:10001/onap/aaf/aaf_core", + "version": "2.1.23" + }, + { + "container": "aaf-sms", + "component": "aaf-sms", + "image": "nexus3.onap.org:10001/onap/aaf/sms", + "version": "4.0.2" + }, + { + "container": "aaf-sms-preload", + "component": "aaf-sms", + "image": "nexus3.onap.org:10001/onap/aaf/sms", + "version": "4.0.2" + }, + { + "container": "aaf-sms-quorumclient", + "component": "aaf-sms-quorumclient", + "image": "nexus3.onap.org:10001/onap/aaf/smsquorumclient", + "version": "4.0.2" + }, + { + "container": "aaf-sms-quorumclient", + "component": "aaf-sms-quorumclient", + "image": "nexus3.onap.org:10001/onap/aaf/smsquorumclient", + "version": "4.0.2" + }, + { + "container": "aaf-sms-quorumclient", + "component": "aaf-sms-quorumclient", + "image": "nexus3.onap.org:10001/onap/aaf/smsquorumclient", + "version": "4.0.2" + }, + { + "container": "aaf-sms-vault", + "component": "aaf-sms-vault", + "image": "docker.nexus.azure.onap.eu/library/vault", + "version": "1.3.3" + }, + { + "container": "aaf-sms-vault-backend", + "component": "aaf-sms-vault", + "image": "docker.nexus.azure.onap.eu/library/consul", + "version": "1.7.1" + }, + { + "container": "aai", + "component": "aai", + "image": "docker.nexus.azure.onap.eu/aaionap/haproxy", + "version": "1.4.2" + }, + { + "container": "aai-babel", + "component": "aai-babel", + "image": "nexus3.onap.org:10001/onap/babel", + "version": "1.9.1" + }, + { + "container": "filebeat-onap", + "component": "aai-babel", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "aai-graphadmin", + "component": "aai-graphadmin", + "image": "nexus3.onap.org:10001/onap/aai-graphadmin", + "version": "1.9.1" + }, + { + "container": "filebeat-onap", + "component": "aai-graphadmin", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "aai-graphadmin-job", + "component": "aai-graphadmin-job", + "image": "nexus3.onap.org:10001/onap/aai-graphadmin", + "version": "1.9.1" + }, + { + "container": "aai-modelloader", + "component": "aai-modelloader", + "image": "nexus3.onap.org:10001/onap/model-loader", + "version": "1.9.1" + }, + { + "container": "filebeat-onap", + "component": "aai-modelloader", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "aai-resources", + "component": "aai-resources", + "image": "nexus3.onap.org:10001/onap/aai-resources", + "version": "1.9.1" + }, + { + "container": "filebeat-onap", + "component": "aai-resources", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "aai-schema-service", + "component": "aai-schema-service", + "image": "nexus3.onap.org:10001/onap/aai-schema-service", + "version": "1.9.2" + }, + { + "container": "filebeat-onap", + "component": "aai-schema-service", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "aai-sparky-be", + "component": "aai-sparky-be", + "image": "nexus3.onap.org:10001/onap/sparky-be", + "version": "2.0.3" + }, + { + "container": "filebeat-onap", + "component": "aai-sparky-be", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "aai-traversal", + "component": "aai-traversal", + "image": "nexus3.onap.org:10001/onap/aai-traversal", + "version": "1.9.1" + }, + { + "container": "filebeat-onap", + "component": "aai-traversal", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "aai-traversal-job", + "component": "aai-traversal-job", + "image": "nexus3.onap.org:10001/onap/aai-traversal", + "version": "1.9.1" + }, + { + "container": "awx-web", + "component": "onap-awx", + "image": "docker.nexus.azure.onap.eu/ansible/awx_web", + "version": "9.0.1" + }, + { + "container": "awx-celery", + "component": "onap-awx", + "image": "docker.nexus.azure.onap.eu/ansible/awx_task", + "version": "9.0.1" + }, + { + "container": "awx-rabbit", + "component": "onap-awx", + "image": "docker.nexus.azure.onap.eu/ansible/awx_rabbitmq", + "version": "3.7.4" + }, + { + "container": "awx-memcached", + "component": "onap-awx", + "image": "docker.nexus.azure.onap.eu/memcached", + "version": "1.5.20" + }, + { + "container": "awx-mgnt", + "component": "awx-mgnt", + "image": "docker.nexus.azure.onap.eu/ansible/awx_task", + "version": "9.0.1" + }, + { + "container": "awx-postgres", + "component": "awx-postgres", + "image": "docker.nexus.azure.onap.eu/postgres", + "version": "10.4-alpine" + }, + { + "container": "cassandra", + "component": "cassandra", + "image": "docker.nexus.azure.onap.eu/cassandra", + "version": "3.11.4" + }, + { + "container": "cassandra", + "component": "cassandra", + "image": "docker.nexus.azure.onap.eu/cassandra", + "version": "3.11.4" + }, + { + "container": "cassandra", + "component": "cassandra", + "image": "docker.nexus.azure.onap.eu/cassandra", + "version": "3.11.4" + }, + { + "container": "cds-blueprints-processor", + "component": "cds-blueprints-processor", + "image": "nexus3.onap.org:10001/onap/ccsdk-blueprintsprocessor", + "version": "1.2.1" + }, + { + "container": "cds-command-executor", + "component": "cds-command-executor", + "image": "nexus3.onap.org:10001/onap/ccsdk-commandexecutor", + "version": "1.2.1" + }, + { + "container": "cds-db", + "component": "cds-db", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb-galera", + "version": "10.5.8" + }, + { + "container": "cds-db-metrics", + "component": "cds-db", + "image": "docker.nexus.azure.onap.eu/bitnami/mysqld-exporter", + "version": "0.12.1-debian-10-r264" + }, + { + "container": "cds-py-executor", + "component": "cds-py-executor", + "image": "nexus3.onap.org:10001/onap/ccsdk-py-executor", + "version": "1.2.1" + }, + { + "container": "cds-sdc-listener", + "component": "cds-sdc-listener", + "image": "nexus3.onap.org:10001/onap/ccsdk-sdclistener", + "version": "1.2.1" + }, + { + "container": "cds-ui", + "component": "cds-ui", + "image": "nexus3.onap.org:10001/onap/ccsdk-cds-ui-server", + "version": "1.2.1" + }, + { + "container": "chartmuseum", + "component": "chartmuseum", + "image": "ghcr.io/helm/chartmuseum", + "version": "v0.13.1" + }, + { + "container": "cli", + "component": "cli", + "image": "nexus3.onap.org:10001/onap/cli", + "version": "6.0.1" + }, + { + "container": "provider", + "component": "onap-cmpv2-cert-provider-9c6b4f65f-2nbvq", + "image": "nexus3.onap.org:10001/onap/org.onap.oom.platform.cert-service.oom-certservice-k8s-external-provider", + "version": "2.4.0" + }, + { + "container": "consul", + "component": "consul", + "image": "nexus3.onap.org:10001/onap/oom/consul", + "version": "2.1.0" + }, + { + "container": "consul-server", + "component": "consul-server", + "image": "nexus3.onap.org:10001/onap/oom/consul", + "version": "2.1.0" + }, + { + "container": "consul-server", + "component": "consul-server", + "image": "nexus3.onap.org:10001/onap/oom/consul", + "version": "2.1.0" + }, + { + "container": "consul-server", + "component": "consul-server", + "image": "nexus3.onap.org:10001/onap/oom/consul", + "version": "2.1.0" + }, + { + "container": "cps-core", + "component": "cps-core", + "image": "nexus3.onap.org:10001/onap/cps-and-ncmp", + "version": "2.0.1" + }, + { + "container": "cps-postgres-init-update-config", + "component": "cps-postgres-init", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "cps-postgres-init-update-config", + "component": "cps-postgres-init", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "cps-temporal", + "component": "cps-temporal", + "image": "nexus3.onap.org:10001/onap/cps-temporal", + "version": "1.0.0" + }, + { + "container": "cps-temporal-db", + "component": "cps-temporal-db", + "image": "docker.nexus.azure.onap.eu/timescale/timescaledb", + "version": "2.1.1-pg13" + }, + { + "container": "dbc-pg", + "component": "dbc-pg-primary", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "dbc-pg", + "component": "dbc-pg-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "dcae-bootstrap", + "component": "dcae-bootstrap", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container", + "version": "3.3.5" + }, + { + "container": "dcae-cloudify-manager", + "component": "dcae-cloudify-manager", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.cm-container", + "version": "4.6.1" + }, + { + "container": "dcae-config-binding-service", + "component": "dcae-config-binding-service", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding", + "version": "2.5.4" + }, + { + "container": "dcae-config-binding-service-fb-onap", + "component": "dcae-config-binding-service", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-config-binding-service-insecure", + "component": "dcae-config-binding-service", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding", + "version": "2.5.4" + }, + { + "container": "dcae-config-binding-service-fb-onap-i", + "component": "dcae-config-binding-service", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-dashboard", + "component": "dcae-dashboard", + "image": "nexus3.onap.org:10001/onap/org.onap.ccsdk.dashboard.ccsdk-app-os", + "version": "1.4.4" + }, + { + "container": "dcae-dashboard-filebeat", + "component": "dcae-dashboard", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-dashboard-pg", + "component": "dcae-dashboard-pg-primary", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "dcae-dashboard-pg", + "component": "dcae-dashboard-pg-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "dcae-db", + "component": "dcae-db-primary", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "dcae-db", + "component": "dcae-db-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "dcae-deployment-handler", + "component": "dcae-deployment-handler", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.deployment-handler", + "version": "4.4.1" + }, + { + "container": "dcae-deployment-handler-filebeat", + "component": "dcae-deployment-handler", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-healthcheck", + "component": "dcae-healthcheck", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.healthcheck-container", + "version": "2.2.0" + }, + { + "container": "dcae-hv-ves-collector", + "component": "dcae-hv-ves-collector", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main", + "version": "1.9.1" + }, + { + "container": "filebeat", + "component": "dcae-hv-ves-collector", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-inv-pg", + "component": "dcae-inv-pg-primary", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "dcae-inv-pg", + "component": "dcae-inv-pg-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "dcae-inventory-api", + "component": "dcae-inventory-api", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.inventory-api", + "version": "3.5.2" + }, + { + "container": "dcae-inventory-api-filebeat", + "component": "dcae-inventory-api", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-mongo", + "component": "dcae-mongo", + "image": "docker.nexus.azure.onap.eu/library/mongo", + "version": "4.0.8" + }, + { + "container": "dcae-ms-healthcheck", + "component": "dcae-ms-healthcheck", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.healthcheck-container", + "version": "2.2.0" + }, + { + "container": "dcae-policy-handler", + "component": "dcae-policy-handler", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.policy-handler", + "version": "5.1.3" + }, + { + "container": "dcae-policy-handler-filebeat", + "component": "dcae-policy-handler", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-prh", + "component": "dcae-prh", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.prh.prh-app-server", + "version": "1.7.1" + }, + { + "container": "filebeat", + "component": "dcae-prh", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-servicechange-handler", + "component": "dcae-servicechange-handler", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.servicechange-handler", + "version": "1.4.0" + }, + { + "container": "dcae-tcagen2", + "component": "dcae-tcagen2", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.analytics.tca-gen2.dcae-analytics-tca-web", + "version": "1.3.1" + }, + { + "container": "filebeat", + "component": "dcae-tcagen2", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-ves-collector", + "component": "dcae-ves-collector", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector", + "version": "1.10.1" + }, + { + "container": "filebeat", + "component": "dcae-ves-collector", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dcae-ves-openapi-manager", + "component": "dcae-ves-openapi-manager", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.ves-openapi-manager", + "version": "1.0.1" + }, + { + "container": "dcaemod-db", + "component": "dcaemod-db-primary", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "dcaemod-db", + "component": "dcaemod-db-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "dcaemod-designtool", + "component": "dcaemod-designtool", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.mod.designtool-web", + "version": "1.0.2" + }, + { + "container": "dcaemod-distributor-api", + "component": "dcaemod-distributor-api", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.mod.distributorapi", + "version": "1.1.0" + }, + { + "container": "dcaemod-genprocessor", + "component": "dcaemod-genprocessor", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.mod.genprocessor-job", + "version": "1.0.2" + }, + { + "container": "dcaemod-genprocessor-http", + "component": "dcaemod-genprocessor", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.mod.genprocessor-http", + "version": "1.0.2" + }, + { + "container": "dcaemod-healthcheck", + "component": "dcaemod-healthcheck", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.healthcheck-container", + "version": "2.2.0" + }, + { + "container": "dcaemod-nifi-registry", + "component": "dcaemod-nifi-registry", + "image": "docker.nexus.azure.onap.eu/apache/nifi-registry", + "version": "0.5.0" + }, + { + "container": "dcaemod-onboarding-api", + "component": "dcaemod-onboarding-api", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.mod.onboardingapi", + "version": "2.12.5" + }, + { + "container": "dcaemod-runtime-api", + "component": "dcaemod-runtime-api", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.mod.runtime-web", + "version": "1.2.3" + }, + { + "container": "dmaap-bc", + "component": "dmaap-bc", + "image": "nexus3.onap.org:10001/onap/dmaap/dmaap-bc", + "version": "2.0.8" + }, + { + "container": "dmaap-provisioning-job", + "component": "dmaap-bc", + "image": "nexus3.onap.org:10001/onap/dmaap/dbc-client", + "version": "1.0.9" + }, + { + "container": "dmaap-provisioning-job", + "component": "dmaap-bc", + "image": "nexus3.onap.org:10001/onap/dmaap/dbc-client", + "version": "1.0.9" + }, + { + "container": "dmaap-provisioning-job", + "component": "dmaap-bc", + "image": "nexus3.onap.org:10001/onap/dmaap/dbc-client", + "version": "1.0.9" + }, + { + "container": "dmaap-dr-mariadb-init", + "component": "dmaap-dr-mariadb-init", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb", + "version": "10.5.8" + }, + { + "container": "dmaap-dr-node", + "component": "dmaap-dr-node", + "image": "nexus3.onap.org:10001/onap/dmaap/datarouter-node", + "version": "2.1.9" + }, + { + "container": "dmaap-dr-node-filebeat-onap", + "component": "dmaap-dr-node", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "dmaap-dr-prov", + "component": "dmaap-dr-prov", + "image": "nexus3.onap.org:10001/onap/dmaap/datarouter-prov", + "version": "2.1.9" + }, + { + "container": "dmaap-dr-prov-filebeat-onap", + "component": "dmaap-dr-prov", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "ejbca-ejbca", + "component": "ejbca", + "image": "docker.nexus.azure.onap.eu/primekey/ejbca-ce", + "version": "7.4.3.2" + }, + { + "container": "ejbca-config", + "component": "ejbca-config", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb", + "version": "10.5.8" + }, + { + "container": "holmes-engine-mgmt", + "component": "holmes-engine-mgmt", + "image": "nexus3.onap.org:10001/onap/holmes/engine-management", + "version": "9.0.0" + }, + { + "container": "holmes-pg", + "component": "holmes-pg-primary", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "holmes-pg", + "component": "holmes-pg-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "holmes-rule-mgmt", + "component": "holmes-rule-mgmt", + "image": "nexus3.onap.org:10001/onap/holmes/rule-management", + "version": "9.0.1" + }, + { + "container": "kube2msb", + "component": "kube2msb", + "image": "nexus3.onap.org:10001/onap/oom/kube2msb", + "version": "1.2.6" + }, + { + "container": "mariadb-galera", + "component": "mariadb-galera", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb-galera", + "version": "10.5.8" + }, + { + "container": "mariadb-galera-metrics", + "component": "mariadb-galera", + "image": "docker.nexus.azure.onap.eu/bitnami/mysqld-exporter", + "version": "0.12.1-debian-10-r264" + }, + { + "container": "mariadb-galera", + "component": "mariadb-galera", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb-galera", + "version": "10.5.8" + }, + { + "container": "mariadb-galera-metrics", + "component": "mariadb-galera", + "image": "docker.nexus.azure.onap.eu/bitnami/mysqld-exporter", + "version": "0.12.1-debian-10-r264" + }, + { + "container": "mariadb-galera", + "component": "mariadb-galera", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb-galera", + "version": "10.5.8" + }, + { + "container": "mariadb-galera-metrics", + "component": "mariadb-galera", + "image": "docker.nexus.azure.onap.eu/bitnami/mysqld-exporter", + "version": "0.12.1-debian-10-r264" + }, + { + "container": "message-router", + "component": "message-router", + "image": "nexus3.onap.org:10001/onap/dmaap/dmaap-mr", + "version": "1.3.0" + }, + { + "container": "message-router-kafka", + "component": "message-router-kafka", + "image": "nexus3.onap.org:10001/onap/dmaap/kafka111", + "version": "1.1.1" + }, + { + "container": "message-router-kafka", + "component": "message-router-kafka", + "image": "nexus3.onap.org:10001/onap/dmaap/kafka111", + "version": "1.1.1" + }, + { + "container": "message-router-kafka", + "component": "message-router-kafka", + "image": "nexus3.onap.org:10001/onap/dmaap/kafka111", + "version": "1.1.1" + }, + { + "container": "message-router-zookeeper", + "component": "message-router-zookeeper", + "image": "nexus3.onap.org:10001/onap/dmaap/zookeeper", + "version": "6.1.0" + }, + { + "container": "message-router-zookeeper", + "component": "message-router-zookeeper", + "image": "nexus3.onap.org:10001/onap/dmaap/zookeeper", + "version": "6.1.0" + }, + { + "container": "message-router-zookeeper", + "component": "message-router-zookeeper", + "image": "nexus3.onap.org:10001/onap/dmaap/zookeeper", + "version": "6.1.0" + }, + { + "container": "modeling-etsicatalog", + "component": "modeling-etsicatalog", + "image": "nexus3.onap.org:10001/onap/modeling/etsicatalog", + "version": "1.0.11" + }, + { + "container": "modeling-etsicatalog-filebeat-onap", + "component": "modeling-etsicatalog", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "modeling-etsicatalog", + "component": "modeling-etsicatalog", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb", + "version": "10.5.8" + }, + { + "container": "msb-consul", + "component": "msb-consul", + "image": "docker.nexus.azure.onap.eu/library/consul", + "version": "1.4.3" + }, + { + "container": "msb-discovery", + "component": "msb-discovery", + "image": "nexus3.onap.org:10001/onap/msb/msb_discovery", + "version": "1.3.0" + }, + { + "container": "msb-discovery-filebeat-onap", + "component": "msb-discovery", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "msb-eag", + "component": "msb-eag", + "image": "nexus3.onap.org:10001/onap/msb/msb_apigateway", + "version": "1.3.1" + }, + { + "container": "filebeat-onap", + "component": "msb-eag", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "msb-iag", + "component": "msb-iag", + "image": "nexus3.onap.org:10001/onap/msb/msb_apigateway", + "version": "1.3.1" + }, + { + "container": "filebeat-onap", + "component": "msb-iag", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "multicloud", + "component": "multicloud", + "image": "nexus3.onap.org:10001/onap/multicloud/framework", + "version": "1.7.1" + }, + { + "container": "filebeat-onap", + "component": "multicloud", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "multicloud-fcaps", + "component": "multicloud-fcaps", + "image": "nexus3.onap.org:10001/onap/multicloud/openstack-fcaps", + "version": "1.5.6" + }, + { + "container": "filebeat-onap", + "component": "multicloud-fcaps", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "rabbit-mq", + "component": "multicloud-fcaps", + "image": "nexus3.onap.org:10001/rabbitmq", + "version": "alpine" + }, + { + "container": "multicloud-k8s", + "component": "multicloud-k8s", + "image": "nexus3.onap.org:10001/onap/multicloud/k8s", + "version": "0.9.3" + }, + { + "container": "framework-artifactbroker", + "component": "multicloud-k8s", + "image": "nexus3.onap.org:10001/onap/multicloud/framework-artifactbroker", + "version": "1.7.1" + }, + { + "container": "multicloud-k8s-etcd", + "component": "multicloud-k8s-etcd", + "image": "docker.nexus.azure.onap.eu/etcd-amd64", + "version": "3.2.24" + }, + { + "container": "multicloud-k8s-mongo", + "component": "multicloud-k8s-mongo", + "image": "docker.nexus.azure.onap.eu/library/mongo", + "version": "4.0.8" + }, + { + "container": "multicloud-pike", + "component": "multicloud-pike", + "image": "nexus3.onap.org:10001/onap/multicloud/openstack-pike", + "version": "1.5.6" + }, + { + "container": "filebeat-onap", + "component": "multicloud-pike", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "nbi", + "component": "nbi", + "image": "nexus3.onap.org:10001/onap/externalapi/nbi", + "version": "8.0.1" + }, + { + "container": "nbi-config", + "component": "nbi-config", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb", + "version": "10.5.8" + }, + { + "container": "nbi-mongo", + "component": "nbi-mongo", + "image": "docker.nexus.azure.onap.eu/library/mongo", + "version": "4.0.8" + }, + { + "container": "ncmp-dmi-plugin", + "component": "ncmp-dmi-plugin", + "image": "nexus3.onap.org:10001/onap/ncmp-dmi-plugin", + "version": "1.0.0" + }, + { + "container": "nengdb-init", + "component": "nengdb-init", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb", + "version": "10.5.8" + }, + { + "container": "netbox-app", + "component": "netbox-app", + "image": "docker.nexus.azure.onap.eu/netboxcommunity/netbox", + "version": "v2.5.8" + }, + { + "container": "netbox-app-provisioning-job", + "component": "netbox-app-provisioning-job", + "image": "docker.nexus.azure.onap.eu/curlimages/curl", + "version": "7.69.1" + }, + { + "container": "netbox-app-provisioning-job", + "component": "netbox-app-provisioning-job", + "image": "docker.nexus.azure.onap.eu/curlimages/curl", + "version": "7.69.1" + }, + { + "container": "netbox-nginx", + "component": "netbox-nginx", + "image": "docker.nexus.azure.onap.eu/nginx", + "version": "1.15-alpine" + }, + { + "container": "netbox-postgres", + "component": "netbox-postgres", + "image": "docker.nexus.azure.onap.eu/postgres", + "version": "10.4-alpine" + }, + { + "container": "network-name-gen", + "component": "network-name-gen", + "image": "nexus3.onap.org:10001/onap/ccsdk-apps-ms-neng", + "version": "1.2.1" + }, + { + "container": "oof", + "component": "oof", + "image": "nexus3.onap.org:10001/onap/optf-osdf", + "version": "3.0.6" + }, + { + "container": "oof-has-api", + "component": "oof-has-api", + "image": "nexus3.onap.org:10001/onap/optf-has", + "version": "2.2.1" + }, + { + "container": "oof-has-api-nginx", + "component": "oof-has-api", + "image": "docker.nexus.azure.onap.eu/bitnami/nginx", + "version": "1.18-debian-10" + }, + { + "container": "oof-has-controller", + "component": "oof-has-controller", + "image": "nexus3.onap.org:10001/onap/optf-has", + "version": "2.2.1" + }, + { + "container": "oof-has-data", + "component": "oof-has-data", + "image": "nexus3.onap.org:10001/onap/optf-has", + "version": "2.2.1" + }, + { + "container": "oof-has-etcd", + "component": "oof-has-etcd", + "image": "docker.nexus.azure.onap.eu/etcd-amd64", + "version": "3.2.24" + }, + { + "container": "oof-has-etcd", + "component": "oof-has-etcd", + "image": "docker.nexus.azure.onap.eu/etcd-amd64", + "version": "3.2.24" + }, + { + "container": "oof-has-etcd", + "component": "oof-has-etcd", + "image": "docker.nexus.azure.onap.eu/etcd-amd64", + "version": "3.2.24" + }, + { + "container": "oof-has-etcd-config", + "component": "oof-has-etcd-config", + "image": "docker.nexus.azure.onap.eu/bitnami/etcd", + "version": "3.3.15" + }, + { + "container": "oof-has-reservation", + "component": "oof-has-reservation", + "image": "nexus3.onap.org:10001/onap/optf-has", + "version": "2.2.1" + }, + { + "container": "oof-has-solver", + "component": "oof-has-solver", + "image": "nexus3.onap.org:10001/onap/optf-has", + "version": "2.2.1" + }, + { + "container": "oom-cert-service", + "component": "oom-cert-service", + "image": "nexus3.onap.org:10001/onap/org.onap.oom.platform.cert-service.oom-certservice-api", + "version": "2.4.0" + }, + { + "container": "policy-apex-pdp", + "component": "policy-apex-pdp", + "image": "nexus3.onap.org:10001/onap/policy-apex-pdp", + "version": "2.6.1" + }, + { + "container": "policy-api", + "component": "policy-api", + "image": "nexus3.onap.org:10001/onap/policy-api", + "version": "2.5.1" + }, + { + "container": "policy-clamp-be", + "component": "policy-clamp-be", + "image": "nexus3.onap.org:10001/onap/policy-clamp-backend", + "version": "6.1.3" + }, + { + "container": "policy-clamp-cl-http-ppnt", + "component": "policy-clamp-cl-http-ppnt", + "image": "nexus3.onap.org:10001/onap/policy-clamp-cl-http-ppnt", + "version": "6.1.3" + }, + { + "container": "policy-clamp-cl-k8s-ppnt", + "component": "policy-clamp-cl-k8s-ppnt", + "image": "nexus3.onap.org:10001/onap/policy-clamp-cl-k8s-ppnt", + "version": "6.1.3" + }, + { + "container": "policy-clamp-cl-pf-ppnt", + "component": "policy-clamp-cl-pf-ppnt", + "image": "nexus3.onap.org:10001/onap/policy-clamp-cl-pf-ppnt", + "version": "6.1.3" + }, + { + "container": "policy-clamp-cl-runtime", + "component": "policy-clamp-cl-runtime", + "image": "nexus3.onap.org:10001/onap/policy-clamp-cl-runtime", + "version": "6.1.3" + }, + { + "container": "policy-clamp-fe", + "component": "policy-clamp-fe", + "image": "nexus3.onap.org:10001/onap/policy-clamp-frontend", + "version": "6.1.3" + }, + { + "container": "onap-policy-clamp-galera-config", + "component": "policy-clamp-be-policy-clamp-job", + "image": "docker.nexus.azure.onap.eu/mariadb", + "version": "10.5.8" + }, + { + "container": "policy-distribution", + "component": "policy-distribution", + "image": "nexus3.onap.org:10001/onap/policy-distribution", + "version": "2.6.1" + }, + { + "container": "policy-drools-pdp", + "component": "policy-drools-pdp", + "image": "nexus3.onap.org:10001/onap/policy-pdpd-cl", + "version": "1.9.1" + }, + { + "container": "onap-policy-galera-db-migrator", + "component": "policy-job", + "image": "nexus3.onap.org:10001/onap/policy-db-migrator", + "version": "2.3.1" + }, + { + "container": "policy-gui", + "component": "policy-gui", + "image": "nexus3.onap.org:10001/onap/policy-gui", + "version": "2.1.1" + }, + { + "container": "policy-mariadb", + "component": "policy-mariadb", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb-galera", + "version": "10.5.8" + }, + { + "container": "policy-mariadb-metrics", + "component": "policy-mariadb", + "image": "docker.nexus.azure.onap.eu/bitnami/mysqld-exporter", + "version": "0.12.1-debian-10-r264" + }, + { + "container": "policy-pap", + "component": "policy-pap", + "image": "nexus3.onap.org:10001/onap/policy-pap", + "version": "2.5.1" + }, + { + "container": "policy-xacml-pdp", + "component": "policy-xacml-pdp", + "image": "nexus3.onap.org:10001/onap/policy-xacml-pdp", + "version": "2.5.1" + }, + { + "container": "portal-app", + "component": "portal-app", + "image": "nexus3.onap.org:10001/onap/portal-app", + "version": "3.4.2" + }, + { + "container": "filebeat-onap", + "component": "portal-app", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "portal-cassandra", + "component": "portal-cassandra", + "image": "docker.nexus.azure.onap.eu/bitnami/cassandra", + "version": "3.11.9-debian-10-r30" + }, + { + "container": "portal-db", + "component": "portal-db", + "image": "nexus3.onap.org:10001/onap/portal-db", + "version": "3.4.1" + }, + { + "container": "portal-db-job", + "component": "portal-db-job", + "image": "docker.nexus.azure.onap.eu/oomk8s/mariadb-client-init", + "version": "3.0.0" + }, + { + "container": "portal-db-oom-update-job", + "component": "portal-db-job", + "image": "docker.nexus.azure.onap.eu/oomk8s/mariadb-client-init", + "version": "3.0.0" + }, + { + "container": "portal-sdk", + "component": "portal-sdk", + "image": "nexus3.onap.org:10001/onap/portal-sdk", + "version": "3.4.2" + }, + { + "container": "filebeat-onap", + "component": "portal-sdk", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "portal-widget", + "component": "portal-widget", + "image": "nexus3.onap.org:10001/onap/portal-wms", + "version": "3.4.2" + }, + { + "container": "postgres", + "component": "postgres-primary", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "postgres", + "component": "postgres-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "robot", + "component": "robot", + "image": "nexus3.onap.org:10001/onap/testsuite", + "version": "1.8.0" + }, + { + "container": "sdc-be-job", + "component": "sdc-be-job", + "image": "nexus3.onap.org:10001/onap/sdc-backend-init", + "version": "1.9.5" + }, + { + "container": "sdc-be", + "component": "sdc-be", + "image": "nexus3.onap.org:10001/onap/sdc-backend-all-plugins", + "version": "1.9.5" + }, + { + "container": "sdc-be-filebeat-onap", + "component": "sdc-be", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "sdc-cs-job", + "component": "sdc-cs-job", + "image": "nexus3.onap.org:10001/onap/sdc-cassandra-init", + "version": "1.9.5" + }, + { + "container": "sdc-fe", + "component": "sdc-fe", + "image": "nexus3.onap.org:10001/onap/sdc-frontend", + "version": "1.9.5" + }, + { + "container": "sdc-fe-filebeat-onap", + "component": "sdc-fe", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "sdc-helm-validator", + "component": "sdc-helm-validator", + "image": "nexus3.onap.org:10001/onap/org.onap.sdc.sdc-helm-validator", + "version": "1.2.2" + }, + { + "container": "sdc-onboarding-be", + "component": "sdc-onboarding-be", + "image": "nexus3.onap.org:10001/onap/sdc-onboard-backend", + "version": "1.9.5" + }, + { + "container": "sdc-onboarding-be-filebeat-onap", + "component": "sdc-onboarding-be", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "sdc-onboarding-be-job", + "component": "sdc-onboarding-be-job", + "image": "nexus3.onap.org:10001/onap/sdc-onboard-cassandra-init", + "version": "1.9.5" + }, + { + "container": "sdc-wfd-be", + "component": "sdc-wfd-be", + "image": "nexus3.onap.org:10001/onap/sdc-workflow-backend", + "version": "1.7.0" + }, + { + "container": "sdc-wfd-be-job", + "component": "sdc-wfd-be-job", + "image": "nexus3.onap.org:10001/onap/sdc-workflow-init", + "version": "1.7.0" + }, + { + "container": "sdc-wfd-fe", + "component": "sdc-wfd-fe", + "image": "nexus3.onap.org:10001/onap/sdc-workflow-frontend", + "version": "1.7.0" + }, + { + "container": "sdc-wfd-fe-filebeat-onap", + "component": "sdc-wfd-fe", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "sdnc", + "component": "sdnc", + "image": "nexus3.onap.org:10001/onap/sdnc-image", + "version": "2.2.2" + }, + { + "container": "filebeat-onap", + "component": "sdnc", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "sdnc-ansible-server", + "component": "sdnc-ansible-server", + "image": "nexus3.onap.org:10001/onap/sdnc-ansible-server-image", + "version": "2.2.2" + }, + { + "container": "sdnc", + "component": "sdnc-job", + "image": "nexus3.onap.org:10001/onap/sdnc-image", + "version": "2.2.2" + }, + { + "container": "sdnc-dgbuilder", + "component": "sdnc-dgbuilder", + "image": "nexus3.onap.org:10001/onap/ccsdk-dgbuilder-image", + "version": "1.2.2" + }, + { + "container": "sdnc-dmaap-listener", + "component": "sdnc-dmaap-listener", + "image": "nexus3.onap.org:10001/onap/sdnc-dmaap-listener-image", + "version": "2.2.2" + }, + { + "container": "sdnc-sdnrdb-init-job", + "component": "sdnc", + "image": "nexus3.onap.org:10001/onap/sdnc-image", + "version": "2.2.2" + }, + { + "container": "sdnc-ueb-listener", + "component": "sdnc-ueb-listener", + "image": "nexus3.onap.org:10001/onap/sdnc-ueb-listener-image", + "version": "2.2.2" + }, + { + "container": "sdnc-web", + "component": "sdnc-web", + "image": "nexus3.onap.org:10001/onap/sdnc-web-image", + "version": "2.2.2" + }, + { + "container": "sdnrdb-nginx", + "component": "sdnrdb", + "image": "docker.nexus.azure.onap.eu/bitnami/nginx", + "version": "1.18-debian-10" + }, + { + "container": "sdnrdb-elasticsearch", + "component": "sdnrdb", + "image": "docker.nexus.azure.onap.eu/bitnami/elasticsearch", + "version": "7.9.3" + }, + { + "container": "sdnrdb-master", + "component": "sdnrdb", + "image": "docker.nexus.azure.onap.eu/bitnami/elasticsearch", + "version": "7.9.3" + }, + { + "container": "sdnrdb-master", + "component": "sdnrdb", + "image": "docker.nexus.azure.onap.eu/bitnami/elasticsearch", + "version": "7.9.3" + }, + { + "container": "sdnrdb-master", + "component": "sdnrdb", + "image": "docker.nexus.azure.onap.eu/bitnami/elasticsearch", + "version": "7.9.3" + }, + { + "container": "so", + "component": "so", + "image": "nexus3.onap.org:10001/onap/so/api-handler-infra", + "version": "1.9.2" + }, + { + "container": "so-filebeat-onap", + "component": "so", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "so-admin-cockpit", + "component": "so-admin-cockpit", + "image": "nexus3.onap.org:10001/onap/so/so-admin-cockpit", + "version": "1.8.2" + }, + { + "container": "so-bpmn-infra", + "component": "so-bpmn-infra", + "image": "nexus3.onap.org:10001/onap/so/bpmn-infra", + "version": "1.9.2" + }, + { + "container": "so-bpmn-infra-filebeat-onap", + "component": "so-bpmn-infra", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "so-catalog-db-adapter", + "component": "so-catalog-db-adapter", + "image": "nexus3.onap.org:10001/onap/so/catalog-db-adapter", + "version": "1.9.2" + }, + { + "container": "so-cnf-adapter", + "component": "so-cnf-adapter", + "image": "nexus3.onap.org:10001/onap/so/so-cnf-adapter", + "version": "1.9.2" + }, + { + "container": "so-etsi-nfvo-ns-lcm", + "component": "so-etsi-nfvo-ns-lcm", + "image": "nexus3.onap.org:10001/onap/so/so-etsi-nfvo-ns-lcm", + "version": "1.8.2" + }, + { + "container": "so-etsi-sol003-adapter", + "component": "so-etsi-sol003-adapter", + "image": "nexus3.onap.org:10001/onap/so/so-etsi-sol003-adapter", + "version": "1.8.2" + }, + { + "container": "so-etsi-sol005-adapter", + "component": "so-etsi-sol005-adapter", + "image": "nexus3.onap.org:10001/onap/so/so-etsi-sol005-adapter", + "version": "1.8.3" + }, + { + "container": "so-mariadb-config", + "component": "so-mariadb-job", + "image": "nexus3.onap.org:10001/mariadb", + "version": "10.1.38" + }, + { + "container": "so-nssmf-adapter", + "component": "so-nssmf-adapter", + "image": "nexus3.onap.org:10001/onap/so/so-nssmf-adapter", + "version": "1.9.1" + }, + { + "container": "so-oof-adapter", + "component": "so-oof-adapter", + "image": "nexus3.onap.org:10001/onap/so/so-oof-adapter", + "version": "1.8.3" + }, + { + "container": "so-oof-adapter-filebeat-onap", + "component": "so-oof-adapter", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "so-openstack-adapter", + "component": "so-openstack-adapter", + "image": "nexus3.onap.org:10001/onap/so/openstack-adapter", + "version": "1.9.2" + }, + { + "container": "so-openstack-adapter-filebeat-onap", + "component": "so-openstack-adapter", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "so-request-db-adapter", + "component": "so-request-db-adapter", + "image": "nexus3.onap.org:10001/onap/so/request-db-adapter", + "version": "1.9.2" + }, + { + "container": "so-sdc-controller", + "component": "so-sdc-controller", + "image": "nexus3.onap.org:10001/onap/so/sdc-controller", + "version": "1.9.2" + }, + { + "container": "so-sdc-controller-filebeat-onap", + "component": "so-sdc-controller", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "so-sdnc-adapter", + "component": "so-sdnc-adapter", + "image": "nexus3.onap.org:10001/onap/so/sdnc-adapter", + "version": "1.9.2" + }, + { + "container": "so-sdnc-adapter-filebeat-onap", + "component": "so-sdnc-adapter", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "create-tls-secret", + "component": "so-tls-cert", + "image": "docker.nexus.azure.onap.eu/bitnami/kubectl", + "version": "1.19" + }, + { + "container": "uui", + "component": "uui", + "image": "nexus3.onap.org:10001/onap/usecase-ui", + "version": "4.0.5" + }, + { + "container": "uui-server", + "component": "uui-server", + "image": "nexus3.onap.org:10001/onap/usecase-ui-server", + "version": "4.0.5" + }, + { + "container": "vfc-generic-vnfm-driver", + "component": "vfc-generic-vnfm-driver", + "image": "nexus3.onap.org:10001/onap/vfc/gvnfmdriver", + "version": "1.4.3" + }, + { + "container": "vfc-generic-vnfm-driver-filebeat-onap", + "component": "vfc-generic-vnfm-driver", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vfc-huawei-vnfm-driver", + "component": "vfc-huawei-vnfm-driver", + "image": "nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/huawei", + "version": "1.3.9" + }, + { + "container": "vfc-huawei-vnfm-driver-filebeat-onap", + "component": "vfc-huawei-vnfm-driver", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vfc-nslcm", + "component": "vfc-nslcm", + "image": "nexus3.onap.org:10001/onap/vfc/nslcm", + "version": "1.4.4" + }, + { + "container": "vfc-nslcm-filebeat-onap", + "component": "vfc-nslcm", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vfc-redis", + "component": "vfc-redis", + "image": "nexus3.onap.org:10001/onap/vfc/db", + "version": "1.3.5" + }, + { + "container": "vfc-vnflcm", + "component": "vfc-vnflcm", + "image": "nexus3.onap.org:10001/onap/vfc/vnflcm", + "version": "1.4.2" + }, + { + "container": "vfc-vnflcm-filebeat-onap", + "component": "vfc-vnflcm", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vfc-vnfmgr", + "component": "vfc-vnfmgr", + "image": "nexus3.onap.org:10001/onap/vfc/vnfmgr", + "version": "1.4.1" + }, + { + "container": "vfc-vnfmgr-filebeat-onap", + "component": "vfc-vnfmgr", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vfc-vnfres", + "component": "vfc-vnfres", + "image": "nexus3.onap.org:10001/onap/vfc/vnfres", + "version": "1.4.0" + }, + { + "container": "vfc-vnfres-filebeat-onap", + "component": "vfc-vnfres", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vfc-zte-vnfm-driver", + "component": "vfc-zte-vnfm-driver", + "image": "nexus3.onap.org:10001/onap/vfc/ztevnfmdriver", + "version": "1.4.1" + }, + { + "container": "vfc-zte-vnfm-driver-filebeat-onap", + "component": "vfc-zte-vnfm-driver", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vid", + "component": "vid", + "image": "nexus3.onap.org:10001/onap/vid", + "version": "8.0.2" + }, + { + "container": "filebeat-onap", + "component": "vid", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "vid-mariadb-init", + "component": "vid-mariadb-init", + "image": "docker.nexus.azure.onap.eu/bitnami/mariadb", + "version": "10.5.8" + }, + { + "container": "vnfsdk", + "component": "vnfsdk", + "image": "nexus3.onap.org:10001/onap/vnfsdk/refrepo", + "version": "1.6.3" + }, + { + "container": "vnfsdk-job", + "component": "vnfsdk-job", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "vnfsdk-postgres", + "component": "vnfsdk-postgres-primary", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "vnfsdk-postgres", + "component": "vnfsdk-postgres-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + } + ]
\ No newline at end of file diff --git a/doc/artifacts/versions/test_guilin_MR1.json b/doc/artifacts/versions/test_guilin_MR1.json new file mode 100644 index 0000000..45c4e64 --- /dev/null +++ b/doc/artifacts/versions/test_guilin_MR1.json @@ -0,0 +1,68 @@ +[ + { + "container": "a1policymanagement-update-config", + "component": "a1policymanagement", + "image": "dibi/envsubst", + "version": "1" + }, + { + "container": "aaf-sms-preload", + "component": "aaf-sms", + "image": "nexus3.onap.org:10001/onap/aaf/sms", + "version": "4.0.1" + }, + { + "container": "aaf-sms-quorumclient", + "component": "aaf-sms-quorumclient", + "image": "nexus3.onap.org:10001/onap/aaf/smsquorumclient", + "version": "4.0.2" + }, + { + "container": "aaf-sms-quorumclient", + "component": "aaf-sms-quorumclient", + "image": "nexus3.onap.org:10001/onap/aaf/smsquorumclient", + "version": "4.0.2" + }, + { + "container": "appc-cdt", + "component": "appc-cdt", + "image": "nexus3.onap.org:10001/onap/appc-cdt-image", + "version": "1.7.1" + }, + { + "container": "filebeat-onap", + "component": "aai-modelloader", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "filebeat-onap", + "component": "aai-resources", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "msb-discovery", + "component": "msb-discovery", + "image": "nexus3.onap.org:10001/onap/msb/msb_discovery", + "version": "1.2.6" + }, + { + "container": "oof-has-api-nginx", + "component": "oof-has-api", + "image": "docker.nexus.azure.onap.eu/bitnami/nginx", + "version": "1.18-debian-10" + }, + { + "container": "policy-clamp-fe", + "component": "policy-clamp-fe", + "image": "nexus3.onap.org:10001/onap/policy-clamp-frontend", + "version": "6.0.2" + }, + { + "container": "vnfsdk-postgres", + "component": "vnfsdk-postgres-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + } +] diff --git a/doc/artifacts/versions/test_honolulu.json b/doc/artifacts/versions/test_honolulu.json new file mode 100644 index 0000000..35f7174 --- /dev/null +++ b/doc/artifacts/versions/test_honolulu.json @@ -0,0 +1,62 @@ +[ + { + "container": "a1policymanagement-update-config", + "component": "a1policymanagement", + "image": "dibi/envsubst", + "version": "1" + }, + { + "container": "aaf-sms-preload", + "component": "aaf-sms", + "image": "nexus3.onap.org:10001/onap/aaf/sms", + "version": "4.0.2" + }, + { + "container": "aaf-sms-quorumclient", + "component": "aaf-sms-quorumclient", + "image": "nexus3.onap.org:10001/onap/aaf/smsquorumclient", + "version": "4.0.2" + }, + { + "container": "aaf-sms-quorumclient", + "component": "aaf-sms-quorumclient", + "image": "nexus3.onap.org:10001/onap/aaf/smsquorumclient", + "version": "4.0.2" + }, + { + "container": "appc-cdt", + "component": "appc-cdt", + "image": "nexus3.onap.org:10001/onap/appc-cdt-image", + "version": "1.7.2" + }, + { + "container": "filebeat-onap", + "component": "aai-modelloader", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "filebeat-onap", + "component": "aai-resources", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "oof-has-api-nginx", + "component": "oof-has-api", + "image": "docker.nexus.azure.onap.eu/bitnami/nginx", + "version": "1.18-debian-10" + }, + { + "container": "policy-clamp-fe", + "component": "policy-clamp-fe", + "image": "nexus3.onap.org:10001/onap/policy-clamp-frontend", + "version": "6.0.2" + }, + { + "container": "vnfsdk-postgres", + "component": "vnfsdk-postgres-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + } +] diff --git a/doc/artifacts/versions/test_honolulu_MR_Candidate.json b/doc/artifacts/versions/test_honolulu_MR_Candidate.json new file mode 100644 index 0000000..f15f159 --- /dev/null +++ b/doc/artifacts/versions/test_honolulu_MR_Candidate.json @@ -0,0 +1,50 @@ +[ + { + "container": "a1policymanagement-update-config", + "component": "a1policymanagement", + "image": "dibi/envsubst", + "version": "1" + }, + { + "container": "aaf-sms-preload", + "component": "aaf-sms", + "image": "nexus3.onap.org:10001/onap/aaf/sms", + "version": "4.0.2" + }, + { + "container": "aaf-sms-quorumclient", + "component": "aaf-sms-quorumclient", + "image": "nexus3.onap.org:10001/onap/aaf/smsquorumclient", + "version": "4.0.2" + }, + { + "container": "aaf-sms-quorumclient", + "component": "aaf-sms-quorumclient", + "image": "nexus3.onap.org:10001/onap/aaf/smsquorumclient", + "version": "4.0.2" + }, + { + "container": "filebeat-onap", + "component": "aai-modelloader", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "filebeat-onap", + "component": "aai-resources", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "oof-has-api-nginx", + "component": "oof-has-api", + "image": "docker.nexus.azure.onap.eu/bitnami/nginx", + "version": "1.19" + }, + { + "container": "vnfsdk-postgres", + "component": "vnfsdk-postgres-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + } +] diff --git a/doc/artifacts/versions/test_master.json b/doc/artifacts/versions/test_master.json new file mode 100644 index 0000000..4e6c799 --- /dev/null +++ b/doc/artifacts/versions/test_master.json @@ -0,0 +1,62 @@ +[ + { + "container": "a1policymanagement-update-config", + "component": "a1policymanagement", + "image": "dibi/envsubst", + "version": "1" + }, + { + "container": "aaf-sms-preload", + "component": "aaf-sms", + "image": "nexus3.onap.org:10001/onap/aaf/sms", + "version": "4.0.5" + }, + { + "container": "aaf-sms-quorumclient", + "component": "aaf-sms-quorumclient", + "image": "nexus3.onap.org:10001/onap/aaf/smsquorumclient", + "version": "4.0.2" + }, + { + "container": "aaf-sms-quorumclient", + "component": "aaf-sms-quorumclient", + "image": "nexus3.onap.org:10001/onap/aaf/smsquorumclient", + "version": "4.0.2" + }, + { + "container": "aaf-sms-quorumclient", + "component": "aaf-sms-quorumclient", + "image": "nexus3.onap.org:10001/onap/aaf/smsquorumclient", + "version": "4.0.2" + }, + { + "container": "filebeat-onap", + "component": "aai-modelloader", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "filebeat-onap", + "component": "aai-resources", + "image": "docker.nexus.azure.onap.eu/beats/filebeat", + "version": "5.5.0" + }, + { + "container": "cps-postgres", + "component": "cps-postgres-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + }, + { + "container": "policy-clamp-fe", + "component": "policy-clamp-fe", + "image": "nexus3.onap.org:10001/onap/policy-clamp-frontend", + "version": "6.0.3" + }, + { + "container": "vnfsdk-postgres", + "component": "vnfsdk-postgres-replica", + "image": "docker.nexus.azure.onap.eu/crunchydata/crunchy-postgres", + "version": "centos8-13.2-4.6.1" + } +] diff --git a/doc/generate_docker_version.py b/doc/generate_docker_version.py new file mode 100644 index 0000000..fa13229 --- /dev/null +++ b/doc/generate_docker_version.py @@ -0,0 +1,437 @@ +#!/usr/bin/python +# +# This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +'''Docker version comparison generator.''' + +import argparse +import logging +import json +import re +from collections import Counter +from dataclasses import dataclass +import os +import requests +from bs4 import BeautifulSoup # sudo apt-get install python3-bs4 if pip doesn't work +from deepdiff import DeepDiff +from jinja2 import Environment, FileSystemLoader, select_autoescape + +PROXY = {} +# PROXY = {'http': 'socks5h://127.0.0.1:8080', +# 'https': 'socks5h://127.0.0.1:8080'} + + +BASE_URL = "https://logs.onap.org/onap-integration/daily/" +ONAP_VERSION = 'master' +component_versions = {} +versions_to_be_compared_with_master = ['jakarta', 'istanbul', 'honolulu_MR1', 'honolulu', 'guilin_MR1'] +VERSION_URL = [] +END_URL = "infrastructure-healthcheck/k8s/kubernetes-status/onap_versions.json" + +# first date where file is present for each version +ONAP_RELEASE_DATE = { + "jakarta": "onap-daily-dt-oom-jakarta/2022-07/19_03-53/", + "istanbul": "onap_daily_pod4_istanbul/2021-11/15_03-55/", + "honolulu": "onap_daily_pod4_honolulu/2021-05/28_01-00/", + "honolulu_MR1": "onap_daily_pod4_honolulu/2021-08/12_20-15/", + "guilin_MR1": "onap_daily_pod4_guilin/2021-05/27_03-23/" +} + +# Logger +logging.basicConfig() +LOGGER = logging.getLogger("Docker-Version-Status") +LOGGER.setLevel("INFO") + +# Arg +PARSER = argparse.ArgumentParser() +PARSER.add_argument('-t', '--test', action='store_true' ) +# PARSER.add_argument('-t', '--test', default=True, type=bool, help='Execute with test dataset') +ARGS = PARSER.parse_args() + +DATA_VERSIONS = [] + +@dataclass +class ComponentVersion: + """A component version.""" + component: str + container: str + image: str + current_version: str + other_version: {} + status: int + +# *********************************************************************** +# functions +# *********************************************************************** +def get_months(url): + """Load and parse list of months""" + months = [] + response_months = requests.get(url, proxies=PROXY) + soup = BeautifulSoup(response_months.text, "lxml") + + for link in soup.find_all('a'): + pattern = bool(re.match("[0-9]{4}-[0-9]{2}", link.contents[0])) + if pattern: + months.append(link.contents[0]) + return months + +def get_days(url): + """Load and parse list of days""" + days = [] + response_days = requests.get(url, proxies=PROXY) + soup = BeautifulSoup(response_days.text, "lxml") + + for link in soup.find_all('a'): + pattern = bool( + re.match("[0-9]{2}_[0-9]{2}-[0-9]{2}", link.contents[0])) + if pattern: + days.append(link.contents[0]) + return days + +def get_diff_index(change): + """Search Index of the Diff table to get the container related to the detected diff.""" + local_index = re.findall(r"\[([0-9]+)\]", change) + return int(local_index[0]) + +def is_it_a_simple_version_change(change, delta_values_changed): + """Detect if it is a simple version change or a subtitution.""" + # retrieve the change index + change_index = get_diff_index(change) + # count the number of occurence + # if 1 => simplie version change + return str(delta_values_changed).count("root[" + str(change_index) + "]") < 2 + +def get_component_status(container, delta_versions, version_master, other_version): + """Get component status.""" + LOGGER.debug(container) + container_status = "unchanged" + # Look in values_changed + for change_type in ['values_changed', 'iterable_item_added', 'iterable_item_removed']: + # We test the change type as they may not occur, or only 1 type is possible + if change_type in delta_versions: + # Dive into the change found + for change in delta_versions[change_type]: + if change_type == 'values_changed': + # 2 cases + # - a simple version change for the same component (only version) + # in this case only the other_version shall be changed + # - a substitution (version, container, image,...) + # in this case a new component must be added and another removed + # it may be a little bit misleading + # as it could courrespond to an offset (not really a new component) + if is_it_a_simple_version_change(change, delta_versions[change_type]): + # simple replacement case + ## change_index = int(change[5:-12]) + change_index = get_diff_index(change) + if container == other_version[change_index]['container']: + LOGGER.debug("Component version change: %s", + other_version[change_index]['container']) + container_status = "version_changed" + else: + if 'container' in change: + ## change_index = int(change[5:-14]) + change_index = get_diff_index(change) + # substitution case + for substitution_change in delta_versions['values_changed']: + if str(change_index) in substitution_change: + LOGGER.debug("From %s to %s", + delta_versions['values_changed'][substitution_change]['old_value'], + delta_versions['values_changed'][substitution_change]['new_value']) + if container == delta_versions['values_changed'][substitution_change]['old_value']: + container_status = "component_removed" + if container == delta_versions['values_changed'][substitution_change]['new_value']: + container_status = "component_added" + elif change_type == 'iterable_item_added': + ## change_index = int(change[5:-1]) + change_index = get_diff_index(change) + LOGGER.debug( + "New component added: %s", version_master[change_index]['container']) + if container == version_master[change_index]['container']: + container_status = "component_added" + elif change_type == 'iterable_item_removed': + ## change_index = int(change[5:-1]) + change_index = get_diff_index(change) + LOGGER.debug( + "Component removed: %s", other_version[change_index]['container']) + if container == other_version[change_index]['container']: + container_status = "component_removed" + return container_status + +def get_old_version_component(container, component_versions): + """Retrieve the version of an old container.""" + container_version = "unknown" + for component in component_versions: + if component['container'] == container: + return component['version'] + return container_version + +def get_removed_container_list(delta_versions, component_versions, master_container): + """Retrieve the removed containers.""" + removed_container_list = [] + # Look in the removed list + try: + for change in delta_versions['iterable_item_removed']: + removed_container_list.append(component_versions[get_diff_index(change)]) + except KeyError: + LOGGER.info("No Item in the removed section, look at the possible substitution") + + # Consider the subsitution case + for delta in delta_versions['values_changed']: + if "container" in delta: + index_container = get_diff_index(delta) + removed_container_list.append(component_versions[index_container]) + return removed_container_list + +def get_data_version_container_index(container, dataset): + """Get the index of a container from a dataset.""" + for data in dataset: + if data.container == container: + return dataset.index(data) + return -1 + +def get_json_master_components(): + """Retrieve the json master description from LF backend.""" + local_url = BASE_URL + "onap_daily_pod4_master/" + months_with_results = get_months(local_url) + LOGGER.debug("months_with_results: %s", months_with_results) + month = months_with_results[-1] + + for day in get_days(local_url + month): + response_day = requests.get(local_url + month + day + END_URL, proxies=PROXY) + if response_day.status_code == 404: + LOGGER.debug("%s : does not exist", local_url + month + day + END_URL) + else: + version_infos = {"month": month, + "day": day, + "file": local_url + month + day + END_URL} + VERSION_URL.append(version_infos) + + # load latest version json from LFN backend + version_file = VERSION_URL[-1]["file"] + LOGGER.debug(version_file) + # retrieve the file + response_latest = requests.get(version_file, proxies=PROXY) + return json.loads(response_latest.text) + +def get_json_version_components(version): + """Retrieve the versions of the component from LF Backend.""" + local_url = BASE_URL + ONAP_RELEASE_DATE[version] + END_URL + local_response = requests.get(local_url, proxies=PROXY) + return json.loads(local_response.text) + +def compare_func(x, y, level=None): + try: + res = x["container"] == y["container"] and \ + x["component"] == y["component"] + return res + except Exception: + raise CannotCompare() + + +LOGGER.info("*********************************************************************") +LOGGER.info("*********************************************************************") +LOGGER.info("******************* Retrieve Raw Data ***************") +LOGGER.info("*********************************************************************") +LOGGER.info("*********************************************************************") +MONTHS = ['2021-08/'] +LOGGER.info("Retrieve the Raw Data.") + +# Retrieve the last available version file +# - we fist list the url of all the daily results on the given version +# - we check that the onap_versions.json exist +# - we take the last existing one VERSION_URL[-1] +# - we download this particular file + + +# Master is the ref +if ARGS.test: + with open('./artifacts/versions/test_master.json') as json_file: + LATEST_VERSION = json.load(json_file) +else: + LATEST_VERSION = get_json_master_components() +CLEAN_LATEST_VERSION = [k for j, k in enumerate( + LATEST_VERSION) if k not in LATEST_VERSION[j + 1:]] +SORTED_MASTER = sorted(CLEAN_LATEST_VERSION, key=lambda k: k['container']) +LOGGER.info("Versions of the latest run ================> %s", SORTED_MASTER) + +for version in versions_to_be_compared_with_master: + # Retrieve versions of official release (release or maintenance release) + LOCAL_PATH = "./artifacts/versions/test_" + version + ".json" + if ARGS.test: + with open(LOCAL_PATH) as json_file: + local_json_file = json.load(json_file) + else: + local_json_file = get_json_version_components(version) + + # remove duplicates + local_clean = [k for j, k in enumerate( + local_json_file) if k not in local_json_file[j + 1:]] + # sort + component_versions[version] = sorted( + local_clean, key=lambda k: k['container']) + LOGGER.debug("Versions of the release run %s", version) + LOGGER.debug("================> %s", component_versions[version]) + +# # Post processing on the loaded versions +# # we got +# # - the last version +# # - the Honolulu versions +# # - the Guilin MR versions +# # we need first to cleanup (avoid duplicate) +# # then we need to build the object for the jinja template + +LOGGER.info("*********************************************************************") +LOGGER.info("*********************************************************************") +LOGGER.info("******************* Process the Data ***************") +LOGGER.info("*********************************************************************") +LOGGER.info("*********************************************************************") + +NB_ITERATION_DATASET = 0 +# we compare Master with a bunch of official release or maintenance releases +for version in versions_to_be_compared_with_master: + LOGGER.info("----------------------------------------------------") + LOGGER.info("----------------------------------------------------") + LOGGER.info("-----Comparison Master versus %s --------", version) + LOGGER.info("----------------------------------------------------") + LOGGER.info("----------------------------------------------------") + + # we use DeeDiff to get the difference between the 2 json list + delta_versions = DeepDiff( + component_versions[version], + SORTED_MASTER, + ignore_order=True, + iterable_compare_func=compare_func, + cutoff_distance_for_pairs=0.1, + cutoff_intersection_for_pairs=1.0, + get_deep_distance=True) + LOGGER.info("Delta between Master and %s", version) + LOGGER.info("Delta = %s", delta_versions) + + # Manage containers found in Master + for master_component in SORTED_MASTER: + # test if container mentioned in delta + # possible cases + # * values_changed: + # - simple version change for the same component + # - substitution + # * iterable_item_removed (remove in master) + # * iterable_item_added (added in master) + # create ComponentVersion accordingly + INDEX_STATUS = 0 + other_version = {} + CONTAINER_STATUS = get_component_status( + master_component['container'], + delta_versions, SORTED_MASTER, + component_versions[version]) + LOGGER.info("Container status: %s", CONTAINER_STATUS) + + if CONTAINER_STATUS == 'version_changed': + other_version[version] = get_old_version_component( + master_component['container'], component_versions[version]) + INDEX_STATUS = 1 + elif CONTAINER_STATUS == 'component_added': + # no other version + INDEX_STATUS = 2 + else: + other_version[version] = master_component['version'] + # need post processing see oldest version to see + # if there is no changes since more than 2 release or not + # temp index = -1 + # post processing shall allow to say if + # index = 0: no changes since last release + # index = 3: no changes since more than 2 release + + # As we are testing several releases, check if the object already exists + # If so complete it, do not create a new one.. + if NB_ITERATION_DATASET < 1: + LOGGER.info("Creation of the dataset for %s", master_component['container']) + version_object = ComponentVersion( + component=master_component['component'], + container=master_component['container'], + image=master_component['image'], + current_version=master_component['version'], + other_version=other_version, + status=INDEX_STATUS) + DATA_VERSIONS.append(version_object) + else: + # we already compared master with a release + # the DATASET is initiated + # we start the second comparison + + # First consider the changes between master and the new release + LOGGER.info("Update of the dataset for %s", master_component['container']) + index_data = get_data_version_container_index( + master_component['container'], DATA_VERSIONS) + + local_other_version = DATA_VERSIONS[index_data].other_version + if get_old_version_component( + master_component['container'], + component_versions[version]) != "unknown": + local_other_version[version] = get_old_version_component( + master_component['container'], component_versions[version]) + DATA_VERSIONS[index_data].other_version = local_other_version + + # postprocessing to detect if the version of the container + # did not change for at least 2 releases + count_versions = Counter(local_other_version.values()) + for count_version in count_versions.values(): + if (count_version > 1 and + INDEX_STATUS < 1): + DATA_VERSIONS[index_data].status = 3 + NB_ITERATION_DATASET += 1 + + # manage removed pods + for removed_container in get_removed_container_list( + delta_versions, component_versions[version], master_component): + + index_data = get_data_version_container_index( + removed_container['container'], DATA_VERSIONS) + LOGGER.info("Removed container index data in DATASET: %s", index_data) + # "new" removed container, add it to DATASET + if index_data < 0 or index_data is None: + version_object = ComponentVersion( + component=removed_container['component'], + container=removed_container['container'], + image=removed_container['image'], + current_version="", + other_version={version: removed_container['version']}, + status=4) + DATA_VERSIONS.append(version_object) + else: + # removed container already seen as removed in another old release + # just amend the DATASET to indicate the old versions + LOGGER.info( + "Update of the dataset for a removed container in master %s", + removed_container['container']) + index_data = get_data_version_container_index( + removed_container['container'], DATA_VERSIONS) + local_other_version = DATA_VERSIONS[index_data].other_version + local_other_version[version] = get_old_version_component( + removed_container['container'], component_versions[version]) + DATA_VERSIONS[index_data].other_version = local_other_version + +# Exclude filebeat dockers +CLEAN_DATA_VERSIONS = [] +for data in DATA_VERSIONS: + # an xfail list coudl be used here + if "filebeat" not in data.image: + CLEAN_DATA_VERSIONS.append(data) + +#LOGGER.info(str(CLEAN_DATA_VERSIONS)) + +LOGGER.info("*********************************************************************") +LOGGER.info("*********************************************************************") +LOGGER.info("****************** Generate Reporting ***************") +LOGGER.info("*********************************************************************") +LOGGER.info("*********************************************************************") + +jinja_env = Environment( + autoescape=select_autoescape(['html']), + loader=FileSystemLoader('./template')) +jinja_env.get_template('docker-version-tmpl.html').stream( + data=CLEAN_DATA_VERSIONS).dump( + '{}'.format("index-versions.html")) diff --git a/doc/generate_gating_index.py b/doc/generate_gating_index.py new file mode 100644 index 0000000..904844b --- /dev/null +++ b/doc/generate_gating_index.py @@ -0,0 +1,49 @@ +#!/usr/bin/python +# +# This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +""" Module to generate Functest reporting for gitlab pages """ + +import argparse +import datetime +import logging + +import jinja2 + +# Logger +logging.basicConfig() +LOGGER = logging.getLogger("Gating-Index") +LOGGER.setLevel("INFO") +LOGGER.setLevel("DEBUG") + +LOGGER.info("generate Xtesting gating index page") + +REPORTINGDATE = datetime.datetime.now().strftime("%Y-%m-%d %H:%M") + +PARSER = argparse.ArgumentParser() +PARSER.add_argument('-l', '--list', help='patchset list') +ARGS = PARSER.parse_args() + +PATCHSET_LIST = [] + +# we expect an argument as follows: 12345-1,45678-99,65432-42 +if ARGS.list is not None: + PATCHSET_LIST = ARGS.list.split(",") + +TEMPLATELOADER = jinja2.FileSystemLoader(".") +TEMPLATEENV = jinja2.Environment( + loader=TEMPLATELOADER, autoescape=True) +TEMPLATE_FILE = ("./template/index-gating-tmpl.html") +TEMPLATE = TEMPLATEENV.get_template(TEMPLATE_FILE) +OUTPUT_TEXT = TEMPLATE.render( + patchsets=PATCHSET_LIST, + date=REPORTINGDATE) + +FILENAME = "./index-gating.html" + +with open(FILENAME, "w+") as fh: + fh.write(OUTPUT_TEXT) diff --git a/doc/generate_stability_graphs.py b/doc/generate_stability_graphs.py new file mode 100644 index 0000000..3b0f433 --- /dev/null +++ b/doc/generate_stability_graphs.py @@ -0,0 +1,133 @@ +#!/usr/bin/python +# +# This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +""" Module to generate Functest reporting for gitlab pages """ + +import argparse +import datetime +import logging +import json +import os +import re +import requests +import lxml +from bs4 import BeautifulSoup # sudo apt-get install python3-bs4 if pip doesn't work +from anytree import Node, RenderTree +import jinja2 + +PROXY = {} +# PROXY = {'http': 'socks5h://127.0.0.1:8080', +# 'https': 'socks5h://127.0.0.1:8080'} + +MONTHS = [] +DAYS = [] +BASE_URL ="https://logs.onap.org/onap-integration/daily/" +END_URL = "daily-scores.json" + + +PARSER = argparse.ArgumentParser() +PARSER.add_argument('-v', '--onap_version', help='onap version',default='master') + +ARGS = PARSER.parse_args() + +ci_version = "onap_daily_pod4_" + ARGS.onap_version + "/" + +# Logger +logging.basicConfig() +LOGGER = logging.getLogger("CI Timeview") +LOGGER.setLevel("INFO") + +def get_months(url): + """load and parse list of months""" + local_months = [] + response_months = requests.get(url, proxies=PROXY) + soup = BeautifulSoup(response_months.text ,"lxml") + + for link in soup.find_all('a'): + pattern = bool(re.match("[0-9]{4}-[0-9]{2}", link.contents[0])) + if pattern: + local_months.append(link.contents[0]) + LOGGER.debug(local_months) + return local_months + +def get_days(url): + """load and parse list of days""" + local_days = [] + response_days = requests.get(url, proxies=PROXY) + soup = BeautifulSoup(response_days.text ,"lxml") + + for link in soup.find_all('a'): + pattern = bool(re.match("[0-9]{2}_[0-9]{2}-[0-9]{2}", link.contents[0])) + if pattern: + local_days.append(link.contents[0]) + LOGGER.debug(local_days) + return local_days + +def get_results_of_a_day(url, month, day): + """ get the daily scores for a day""" + daily_score = {} + response_day = requests.get(url + month + day + END_URL, proxies=PROXY) + if response_day.status_code != 200: + LOGGER.debug(url + month + day + END_URL + " : does not exist") + else: + parsed_month = re.match("[0-9]{4}-[0-9]{2}", month).group() + parsed_day = re.match("[0-9]{2}", day).group() + daily_score = { "date": parsed_month + "-" + parsed_day } + json_res = json.loads(response_day.content) + for res in json_res: + # ugly workaround as one of the key contains a space + # which is painful for processing + daily_score.update({ res['tier'].replace(" ","-"): res['score'] }) + return daily_score + +# ------------------------------------------------------------------------------ +LOGGER.info("---------------------------------------") +LOGGER.info("Look for results for %s", ci_version) +url = BASE_URL + ci_version +months = get_months(url) +# NOTE the 2: has been set to exclude old results for which we do not have the +# json. Once applied, the number shall be 6 to consider the last 6 months +filtered_months = months[-3:] + +LOGGER.info(filtered_months) +data_scores = [] +for month in filtered_months: + for day in get_days(url + "/" + month): + if get_results_of_a_day(url, month, day) != {}: + data_scores.append( + get_results_of_a_day(url, month, day)) + +# check if local results daily-scores.json can be found +# if a result already exists for this day do nothing, else add it +if os.path.isfile('./daily-scores.json'): + my_day = datetime.datetime.today() + local_day = (str(my_day.year) + "-" + str(my_day.month) + "-" + + str(my_day.day)) + LOGGER.info("Local results found") + with open('./daily-scores.json') as json_file: + local_res = json.load(json_file) + daily_score = {'date': local_day} + for res in local_res: + daily_score[res['tier'].replace(" ","-")] = res['score'] + data_scores.append(daily_score) + +LOGGER.info("---------------------------------------") +LOGGER.info("Generate the page %s", ci_version) + +TEMPLATELOADER = jinja2.FileSystemLoader(".") +TEMPLATEENV = jinja2.Environment( + loader=TEMPLATELOADER, autoescape=True) +TEMPLATE_FILE = ("./template/index-stability-tmpl.html") +TEMPLATE = TEMPLATEENV.get_template(TEMPLATE_FILE) +OUTPUT_TEXT = TEMPLATE.render( + data=data_scores, + lab_owner=ci_version[:-1], + lab_version=ARGS.onap_version) +FILENAME = "./index-stability.html" +with open(FILENAME, "w+") as fh: + fh.write(OUTPUT_TEXT) diff --git a/doc/generate_status.py b/doc/generate_status.py new file mode 100644 index 0000000..e749e64 --- /dev/null +++ b/doc/generate_status.py @@ -0,0 +1,457 @@ +#!/usr/bin/python +# +# This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +""" Module to generate Functest reporting for gitlab pages """ + +import argparse +import datetime +import logging +import os + +import jinja2 +import json +import requests + +from prettytable import PrettyTable + +# Logger +logging.basicConfig() +LOGGER = logging.getLogger("Xtesting-ONAP-Status") +LOGGER.setLevel("INFO") +# LOGGER.setLevel("DEBUG") + +PROXY = {} +# PROXY = {'http': 'socks5h://127.0.0.1:8080', +# 'https': 'socks5h://127.0.0.1:8080'} + +# Initialization +URL_PRIVATE_BASE = "http://onap.api.testresults.opnfv.fr/api/v1/results" +URL_BASE = "http://testresults.opnfv.org/onap/api/v1/results" +URL_BASE_PODS = "http://testresults.opnfv.org/onap/api/v1/pods" +REPORTINGDATE = datetime.datetime.now().strftime("%Y-%m-%d %H:%M") + +# init just connection_check to get the list of scenarios +# as all the scenarios run connection_check +# the following tests are the default daily tests +INFRA_HEALTHCHECK = {'name': 'infrastructure-healthcheck', + 'tests': {'onap-k8s', 'onap-helm', + 'onap-k8s-teardown'}} +# 'onap-k8s-teardown','internal_check_certs'}} +HEALTHCHECK = {'name': 'healthcheck', + 'tests': {'core', 'full', + 'healthdist', 'postinstall', + 'hv-ves', 'ves-collector', + 'basic_onboard', 'dcaemod', + 'cps-healthcheck', 'cps-dmi-plugin-healthcheck', + 'cps-temporal-healthcheck'}} +# SMOKE_USECASES = {'name': 'smoke usecases', +# 'tests': {'basic_vm', 'freeradius_nbi', 'clearwater_ims', +# 'pnf-registrate', '5gbulkpm', 'hv-ves'}} +SMOKE_USECASES = {'name': 'smoke usecases', + 'tests': {'basic_vm', 'basic_network', 'basic_cnf', 'cmpv2', + 'pnf-registrate', '5gbulkpm', 'basic_clamp', + 'basic_vm_macro', 'pnf_macro', 'cds_resource_resolution', + 'basic_cnf_macro'}} + +SECURITY_USECASES = {'name': 'security', + 'tests': {'root_pods', 'unlimitted_pods', + 'nonssl_endpoints', 'nodeport_check_certs', + 'kube_hunter'}} + +TIERS = [INFRA_HEALTHCHECK, HEALTHCHECK, SMOKE_USECASES, SECURITY_USECASES] +TRENDS = [INFRA_HEALTHCHECK, HEALTHCHECK, SMOKE_USECASES, SECURITY_USECASES] + +# list of tests with dedicated reporting page to be referenced +RESULT_URLS_LEGACY = { + 'core': './xtesting-healthcheck/core/core/report.html', + 'small': './xtesting-healthcheck/small/small/report.html', + 'medium': './xtesting-healthcheck/medium/medium/report.html', + 'full': './xtesting-healthcheck/full/full/report.html', + 'postinstall': './xtesting-healthcheck/postinstall/postinstall/report.html', + 'healthdist': './xtesting-healthcheck/healthdist/healthdist/report.html', + 'onap-k8s': './infrastructure-healthcheck/k8s/kubernetes-status/index.html', + 'onap-k8s-teardown': './infrastructure-healthcheck/k8s-teardown/kubernetes-status/index.html', + 'onap-helm': './infrastructure-healthcheck/k8s/onap-helm/helm.html', + 'nodeport_check_certs': './infrastructure-healthcheck/k8s/nodeport_check_certs/certificates.html', + 'internal_check_certs': './infrastructure-healthcheck/internal_check_certs/internal_check_certs/certificates.html', + 'basic_vm': './smoke-usecases/basic_vm/basic_vm/reporting.html', + 'basic_vm_macro': './smoke-usecases/basic_vm_macro/basic_vm_macro/reporting.html', + 'basic_network': './smoke-usecases/basic_network/basic_network/reporting.html', + 'basic_cnf': './smoke-usecases/basic_cnf/basic_cnf/reporting.html', + 'basic_cds': './smoke-usecases/basic_cds/basic_cds/reporting.html', + 'basic_onboard': './smoke-usecases/basic_onboard/basic_onboard/reporting.html', + 'basic_clamp': './smoke-usecases/basic_clamp/basic_clamp/reporting.html', + 'pnf_macro': './smoke-usecases/pnf_macro/pnf_macro/reporting.html', + 'pnf-registrate': './xtesting-smoke-usecases-robot/pnf-registrate/pnf-registrate/report.html', + '5gbulkpm': './xtesting-smoke-usecases-robot/5gbulkpm/5gbulkpm/report.html', + 'hv-ves': './xtesting-smoke-usecases-robot/hv-ves/hv-ves/report.html', + 'cmpv2': './xtesting-smoke-usecases-robot/cmpv2/cmpv2/report.html', + 'dcaemod': './xtesting-smoke-usecases-robot/dcaemod/dcaemod/report.html', + 'ves-collector': './xtesting-smoke-usecases-robot/ves-collector/ves-collector/report.html', + 'root_pods': './security/root_pods/root_pods/root_pods.log', + 'unlimitted_pods': './security/unlimitted_pods/unlimitted_pods/unlimitted_pods.log', + 'cis_kubernetes': './security/cis_kubernetes/cis_kubernetes/cis_kubernetes.log', + 'nonssl_endpoints': './security/nonssl_endpoints/nonssl_endpoints/nonssl_endpoints.log', + 'jdpw_ports': './security/jdpw_ports/jdpw_ports/jdpw_ports.log', + 'kube_hunter': './security/kube_hunter/kube_hunter/kube_hunter.log', + 'versions': './security/versions/versions.html', + 'cps-healthcheck': './xtesting-healthcheck/cps-healthcheck/cps-healthcheck/report.html', + 'cds_resource_resolution': './smoke-usecases/cds_resource_resolution/cds_resource_resolution/reporting.html', + 'basic_cnf_macro':'./smoke-usecases/basic_cnf_macro/basic_cnf_macro/reporting.html', + 'cps-dmi-plugin-healthcheck':'./xtesting-healthcheck/cps-dmi-plugin-healthcheck/cps-dmi-plugin-healthcheck/report.html', + 'cps-temporal-healthcheck':'./xtesting-healthcheck/cps-temporal-healthcheck/cps-temporal-healthcheck/report.html' + } + +# list of tests with dedicated reporting page to be referenced +RESULT_URLS_S3 = { + 'core': './core/core/report.html', + 'full': './full/full/report.html', + 'postinstall': './postinstall/postinstall/report.html', + 'healthdist': './healthdist/healthdist/report.html', + 'onap-k8s': './k8s/k8s/kubernetes-status/index.html', + 'onap-k8s-teardown': './k8s-teardown/k8s-teardown/kubernetes-status/index.html', + 'onap-helm': './k8s/k8s/onap-helm/helm.html', + 'nodeport_check_certs': './k8s/k8s/nodeport_check_certs/certificates.html', + 'internal_check_certs': './infrastructure-healthcheck/internal_check_certs/internal_check_certs/certificates.html', + 'basic_vm': './basic_vm/basic_vm/reporting.html', + 'basic_vm_macro': './basic_vm_macro/basic_vm_macro/reporting.html', + 'basic_network': './basic_network/basic_network/reporting.html', + 'basic_cnf': './basic_cnf/basic_cnf/reporting.html', + 'basic_cds': './basic_cds/basic_cds/reporting.html', + 'basic_onboard': './basic_onboard/basic_onboard/reporting.html', + 'basic_clamp': './basic_clamp/basic_clamp/reporting.html', + 'pnf_macro': './pnf_macro/pnf_macro/reporting.html', + 'pnf-registrate': './pnf-registrate/pnf-registrate/report.html', + '5gbulkpm': './5gbulkpm/5gbulkpm/report.html', + 'hv-ves': './hv-ves/hv-ves/report.html', + 'cmpv2': './cmpv2/cmpv2/report.html', + 'dcaemod': './dcaemod/dcaemod/report.html', + 'ves-collector': './ves-collector/ves-collector/report.html', + 'root_pods': './root_pods/root_pods/root_pods.log', + 'unlimitted_pods': './unlimitted_pods/unlimitted_pods/unlimitted_pods.log', + 'cis_kubernetes': './cis_kubernetes/cis_kubernetes/cis_kubernetes.log', + 'nonssl_endpoints': './nonssl_endpoints/nonssl_endpoints/nonssl_endpoints.log', + 'jdpw_ports': './jdpw_ports/jdpw_ports/jdpw_ports.log', + 'kube_hunter': './kube_hunter/kube_hunter/kube_hunter.log', + 'versions': './security/versions/versions.html', + 'cps-healthcheck': './cps-healthcheck/cps-healthcheck/report.html', + 'cds_resource_resolution': './cds_resource_resolution/cds_resource_resolution/reporting.html', + 'basic_cnf_macro':'./basic_cnf_macro/basic_cnf_macro/reporting.html', + 'cps-dmi-plugin-healthcheck':'./cps-dmi-plugin-healthcheck/cps-dmi-plugin-healthcheck/report.html', + 'cps-temporal-healthcheck':'./cps-temporal-healthcheck/cps-temporal-healthcheck/report.html' + } + +def get_lab_owner(pod_name): + url = (URL_BASE_PODS + "?name=" + pod_name) + response = requests.get(url, proxies=PROXY) + response_json = response.json() + try: + lab_owner = response_json['pods'][0]['creator'] + except KeyError: + lab_owner = "unknown" + except IndexError: + lab_owner = "unknown" + return lab_owner + +# Retrieve the Functest configuration to detect which tests are relevant +# according to the pod, scenario +PERIOD = 1 + +LOGGER.info("generate Xtesting reporting page") + +PARSER = argparse.ArgumentParser() +PARSER.add_argument('-p', '--pod', help='Pod name') +PARSER.add_argument('-d', '--db', help='Test DB URL') +PARSER.add_argument('-t', '--build_tag', help='Build_tag') +PARSER.add_argument('-m', '--mode', help='result retrieval mode', choices=['legacy', 's3'], default='legacy') +ARGS = PARSER.parse_args() + +PODS = ['onap_xtesting_openlab-OPNFV-oom', + 'onap_oom_gating_pod4_1-ONAP-oom', + 'onap_oom_gating_pod4_2-ONAP-oom', + 'onap_oom_gating_pod4_3-ONAP-oom', + 'onap_oom_gating_pod4_4-ONAP-oom', + 'onap_oom_gating_azure_1-OPNFV-oom', + 'onap_oom_gating_azure_2-OPNFV-oom', + 'onap_oom_gating_azure_3-OPNFV-oom', + 'onap_oom_gating_azure_4-OPNFV-oom', + 'onap_daily_pod4_master-ONAP-oom', + 'onap_daily_pod4_istanbul-ONAP-oom', + 'onap_daily_pod4_jakarta-ONAP-oom'] + +if ARGS.pod is not None: + PODS = [ARGS.pod] + + # adapt tests according to the typ of tests: daily/weekly/gating + if "weekly" in ARGS.pod: + # Complete the list with weekly tests + SECURITY_USECASES['tests'].add('versions') + SECURITY_USECASES['tests'].add('jdpw_ports') + INFRA_HEALTHCHECK['tests'].add('internal_check_certs') + PERIOD = 7 + if "gating" in ARGS.pod: + SECURITY_USECASES['tests'].remove('kube_hunter') + + # adapt test according to the version: guilin / honolulu / master + if "guilin" in ARGS.pod: + HEALTHCHECK['tests'].remove('dcaemod') + HEALTHCHECK['tests'].remove('cps-healthcheck') + HEALTHCHECK['tests'].remove('cps-dmi-plugin-healthcheck') + HEALTHCHECK['tests'].remove('cps-temporal-healthcheck') + SMOKE_USECASES['tests'].remove('basic_clamp') + SMOKE_USECASES['tests'].remove('cds_resource_resolution') + SMOKE_USECASES['tests'].remove('basic_cnf_macro') + if "honolulu" in ARGS.pod: + HEALTHCHECK['tests'].remove('cps-healthcheck') + HEALTHCHECK['tests'].remove('cps-dmi-plugin-healthcheck') + HEALTHCHECK['tests'].remove('cps-temporal-healthcheck') + SMOKE_USECASES['tests'].remove('cds_resource_resolution') + SMOKE_USECASES['tests'].remove('basic_cnf_macro') + if "istanbul" in ARGS.pod: + HEALTHCHECK['tests'].remove('cps-dmi-plugin-healthcheck') + HEALTHCHECK['tests'].remove('cps-temporal-healthcheck') + SMOKE_USECASES['tests'].remove('cds_resource_resolution') + SMOKE_USECASES['tests'].remove('basic_cnf_macro') + # Exclude Cloudify based use cases in Master (after istanbul) + # TO BE updated as it is possible to perform gating on old versions + # We should exclude cases according to the version not the pod name + if "master" in ARGS.pod or "gating" in ARGS.pod or "jakarta" in ARGS.pod: + SMOKE_USECASES['tests'].remove('basic_clamp') + SMOKE_USECASES['tests'].remove('cmpv2') + +RESULT_URLS = RESULT_URLS_LEGACY +LOGGER.info("init core result_url: %s", RESULT_URLS['core']) +if ARGS.mode == "s3": + LOGGER.info("use s3 mode for file retrieval") + LOGGER.info("intended core result_url: %s", RESULT_URLS_S3['core']) + RESULT_URLS = RESULT_URLS_S3 + LOGGER.info("s3 core result_url: %s", RESULT_URLS['core']) + +LOGGER.info("final core result_url: %s", RESULT_URLS['core']) +LOGGER.info("List of PODS: %s", PODS) +for pod in PODS: + LOGGER.info("POD: %s", pod) + + # Get the version + lab_version = "unknown" + lab_owner = get_lab_owner(pod) + LOGGER.info("Lab owner: %s", lab_owner) + + TREND_LINE = "" + SCORE = 0 + + # Trend + # ***** + # calculation of the TREND + SCORE_TREND = 0 + if ARGS.db is not None: + URL_BASE = str([ARGS.db][0]) + LOGGER.info("Database: %s", URL_BASE) + + for tier_trend in TRENDS: + tier_results = [] + nb_tests = 0 + nb_pass = 0 + nb_fail = 0 + score = 0 + + for test in tier_trend['tests']: + project = 'integration' + # Security tests affected to security project + if tier_trend['name'] == 'security': + project = 'security' + url = (URL_BASE + "?project_name=" + project + "&case=" + test + + "&pod_name=" + pod + "&last=5") + response = requests.get(url, proxies=PROXY) + response_json = response.json() + # Note the 'u' must be used in python 2.7 + # str(response_json).count("criteria': 'uFAIL") + # it shall be removed if using python3 + nb_fail = nb_fail + str(response_json).count("criteria': 'FAIL") + nb_pass = nb_pass + str(response_json).count("criteria': 'PASS") + try: + score_trend = round(100 * nb_pass / (nb_pass + nb_fail)) + except ZeroDivisionError: + score_trend = 0 + LOGGER.debug("Score Trend %s: %s", tier_trend, score_trend) + tier_trend['score'] = score_trend + + # calculation of the overall SCORE for TREND + NB_TIERS = 0 + for tier_trend in TRENDS: + NB_TIERS += 1 + SCORE_TREND = SCORE_TREND + tier_trend['score'] + SCORE_TREND = round(SCORE_TREND / NB_TIERS) + + LOGGER.info("Score Trend: %s", str(SCORE_TREND)) + + # calculation of the overall SCORE + for tier in TIERS: + tier_results = [] + nb_tests = 0 + nb_pass = 0 + score = 0 + for test in tier['tests']: + # for Gating we consider the build_tag to retrieve the results + # For daily runs, we do not. A build_tag is created based on + # gitlab CI id and is different for each CI stage + param_build_tag = "" + if "gating" in pod and ARGS.build_tag is not None: + param_build_tag = "&build_tag=" + str([ARGS.build_tag][0]) + project = 'integration' + # Security tests affected to security project + if tier['name'] == 'security': + project = 'security' + + # onap-k8s and onap-k8s-teardown are the same test + # BUT + # onap-k8s is executed after the installation (fresh installation) + # onap-k8s-teardown after the tests + # in case of tests executed in onap namespace, a test may trigger + # an error status even it was OK at the end of the installation + # a special uggly processing is then needed to avoid false negative + search_test = test + if test == "onap-k8s-teardown": + search_test = "onap-k8s" + + nb_test_max = 5 + + url = (URL_BASE + "?project_name=" + project + + "&case=" + search_test + + "&period=" + str(PERIOD) + + "&pod_name=" + pod + "&last=" + str(nb_test_max) + + param_build_tag) + LOGGER.debug("url: %s", url) + response = requests.get(url, proxies=PROXY) + response_json = response.json() + response_url = "" + + if test in RESULT_URLS: + response_url = RESULT_URLS[test] + LOGGER.debug("response_json: %s", response_json) + req_result = "" + + nb_results_found = len(response_json['results']) + + try: + if test == "onap-k8s": + # We run that test twice (it's failing due to nodeport checks) + # so to get the latest result of onap-k8s test (running on startup) + # we need to get the 3rd result + req_result = response_json['results'][2]['criteria'] + else: + req_result = response_json['results'][0]['criteria'] + + if lab_version == "unknown": + lab_version = response_json['results'][0]['version'] + + except IndexError: + req_result = None + + result = {'name': test, + 'result': req_result, + 'url': response_url} + LOGGER.debug("result: %s", result) + + nb_tests += 1 + if req_result == "PASS": + nb_pass += 1 + LOGGER.debug("nb_pass: %s", nb_pass) + LOGGER.debug("nb_tests: %s", nb_tests) + score = round(100 * nb_pass / nb_tests) + LOGGER.debug("score: %s", score) + tier_results.append(result) + + tier['score'] = score + tier['results'] = tier_results + + # calculation of the overall SCORE + NB_TIERS = 0 + for tier in TIERS: + NB_TIERS += 1 + LOGGER.debug("Score %s", tier) + SCORE = SCORE + tier['score'] + SCORE = round(SCORE / NB_TIERS) + LOGGER.info("Score: %s", str(SCORE)) + + # calculation of the evolution score versus trend + if SCORE > 1.05*SCORE_TREND: + # increasing + TREND_LINE = "long arrow alternate up icon" + LOGGER.info("Better status") + elif SCORE < 0.95*SCORE_TREND: + # decreasing + TREND_LINE = "long arrow alternate down icon" + LOGGER.info("Worst status") + else: + # stable + TREND_LINE = "long arrow alternate right icon" + LOGGER.info("stable status") + + TEMPLATELOADER = jinja2.FileSystemLoader(".") + TEMPLATEENV = jinja2.Environment( + loader=TEMPLATELOADER, autoescape=True) + TEMPLATE_FILE = ("./template/index-tmpl.html") + TEMPLATE = TEMPLATEENV.get_template(TEMPLATE_FILE) + OUTPUT_TEXT = TEMPLATE.render( + tiers=TIERS, + pod=pod, + period=PERIOD, + date=REPORTINGDATE, + score=SCORE, + trend=TREND_LINE, + lab_version=lab_version, + lab_owner=lab_owner) + + FILENAME = "./index.html" + + with open(FILENAME, "w+") as fh: + fh.write(OUTPUT_TEXT) + + # Generate txt reporting with my pretty Table + vote=2 + score_daily = [] + dashboard_table = PrettyTable() + dashboard_table.field_names = ["Test Name", "Category", "Status"] + dashboard_table._max_width = {"Test Name" : 30, "Category": 40,"Status" : 10} + #print(TIERS) + for tier in TIERS: + tier_score = {'tier': tier['name'], + 'score': tier['score']} + score_daily.append(tier_score) + for test in tier['results']: + if tier['name'] == "infrastructure-healthcheck": + if test['name'] == "onap-k8s" or test['name'] == "onap-helm": + if test['result'] == "FAIL" or test['result'] == None: + vote-=2 + if tier['name'] == "healthcheck" or tier['name'] == "smoke usecases": + if test['result'] == "FAIL" or test['result'] == None: + vote-=1 + dashboard_table.add_row([test['name'],tier['name'], test['result']]) + if vote < -2: + vote = -2 + + LOGGER.info(dashboard_table) + LOGGER.info("If I could, I would vote " + str(vote)) + with open("./daily-status.txt", "w") as write_file: + write_file.write(str(dashboard_table)) + write_file.write("\n") + write_file.write("**********************\n") + write_file.write("* Automated vote: "+ str(vote) +"\n") + write_file.write("**********************\n") + write_file.close() + # Gating vote + # Infra HC onap-helm and onap-K8S MUST be OK + # HC > 90 only 1 error OK in Full if not critical component + # Smoke 1 + + # Generate heatlth json to build a time view odf the daily dashboard_table + # create a json file for version tracking + + with open("./daily-scores.json", "w") as write_file: + json.dump(score_daily, write_file) diff --git a/doc/requirements.txt b/doc/requirements.txt new file mode 100644 index 0000000..f6c5d07 --- /dev/null +++ b/doc/requirements.txt @@ -0,0 +1,7 @@ +jinja2 +requests +prettytable +anytree +deepdiff +lxml +bs4 diff --git a/doc/stability_results.json b/doc/stability_results.json new file mode 100644 index 0000000..4bd6f17 --- /dev/null +++ b/doc/stability_results.json @@ -0,0 +1,54 @@ +{ + "daily": + [ + { + "onap_daily_pod4_honolulu": + [ + { + "date": "2021-04-06", + "infra": 25, + "healthcheck":88, + "smoke":42, + "security": 50 + + }, + { + "date": "2021-04-09", + "infra": 25, + "healthcheck":77, + "smoke":14, + "security": 50 + + }, + { + "date": "2021-04-10", + "infra": 25, + "healthcheck":88, + "smoke":75, + "security": 50 + + }, + { + "date": "2021-04-11", + "infra": 25, + "healthcheck":100, + "smoke":37, + "security": 50 + + }, + { + "date": "2021-04-12", + "infra": 25, + "healthcheck":88, + "smoke":37, + "security": 50 + + } + + + ] + } + ] + + +}
\ No newline at end of file diff --git a/doc/template/docker-version-tmpl.html b/doc/template/docker-version-tmpl.html new file mode 100644 index 0000000..e783f9f --- /dev/null +++ b/doc/template/docker-version-tmpl.html @@ -0,0 +1,409 @@ +<!DOCTYPE html> +<html> +<meta charset="UTF-8"> + +<head> + <title>Docker version</title> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.13/semantic.min.css"> + +</head> + +<body> + <div class='ui inverted vertical masthead center aligned segment'> + + <div class="ui text container"> + <h1 class="ui inverted header"> + Docker version evolution + </h1> + </div> + + </div> + + <div class='ui vertical stripe segment'> + <div class='ui grid container'> + <div class="row"> + <div class="column"> + <h1 class="ui header"> + <i class="warehouse icon"></i> + + </h1> + <div class="sub header"> + + <!-- <div class="ui olive statistic"> + + <div class="value">20%</div> + <div class="label">last check</div> + </div> --> + <!-- <div class="ui olive statistic"> + <div class="value"> + <i class=""></i> + </div> + <div class="label">trend</div> + </div> --> + <div class="ui tiny grey statistic"> + <div class="value"></div> + <div class="label">ONAP Version</div> + </div> + <div class="ui tiny grey statistic"> + <div class="value"></div> + <div class="label">Lab owner</div> + </div> + </div> + <div class="ui segment"> + <div class="ui two column very relaxed grid middle aligned"> + <div class="column"> + <div class="ui list"> + <div class="item"> + <i class=" green big square full icon"></i> + <div style="vertical-align: middle" class="content"> + New version + </div> + </div> + <div class="item"> + <i class=" yellow big square full icon"></i> + <div style="vertical-align: middle" class="content"> + No version change since last official release + </div> + </div> + <div class="item"> + <i class=" blue big square full icon"></i> + <div style="vertical-align: middle" class="content"> + New component + </div> + </div> + <div class="item"> + <i class=" grey big square full icon"></i> + <div style="vertical-align: middle" class="content"> + No version change since at least two official releases + </div> + </div> + <div class="item"> + <i class=" black big square outline icon"></i> + <div style="vertical-align: middle" class="content"> + Component deleted + </div> + </div> + </div> + </div> + <div class="center aligned column"> + + <div class="row" style="margin-bottom: 15px;"> + <button id="green" class="ui green button">.</button> + <button id="yellow" class="ui yellow button">.</button> + <button id="blue" class="ui blue button">.</button> + <button id="grey" class="ui grey button">.</button> + <button id="black" class="ui black basic button">.</button> + <button id="all" class="ui basic button"> all </button> + </div> + <div class="row"> + <div class="ui input focus"> + <input type="text" id="search_input" onkeyup="search()" placeholder="Search..."> + </div> + </div> + </div> + </div> + <div class="ui vertical divider"> + Filter + </div> + </div> + <table id="version_table" class="ui celled table"> + <thead> + <tr> + <th>Component</th> + <th>Container</th> + <th>Image</th> + <th>Current version</th> + </tr> + </thead> + <tbody> + + + </tbody> + </table> + </div> + </div> + </div> + </div> + <script> + + /* + get ONAPS versions + add as many columns as versions + fill the table by adding rows + + */ + let DATA = [{% for data_item in data %} + { + "component": "{{ data_item.component }}", + "container": "{{ data_item.container }}", + "image": "{{ data_item.image }}", + "current_version": "{{ data_item.current_version }}", + "other_version": {{ data_item.other_version | safe }}, + "status": "{{ data_item.status }}" + }, + {% endfor %}] + // [ + // { + // "component": "aaf-cass", + // "container": "aaf-cass", + // "image": "nexus3.onap.org:10001/onap/aaf/aaf_cass", + // "current_version": "2.1.23", + // "other_version": { "honolulu": "2.1.18" }, + // "status" : 1 + // }, + // { + // "component": "aai", + // "container": " aai", + // "image": "docker.nexus.azure.onap.eu/aaionap/haproxy", + // "current_version": "1.4.2", + // "other_version": { "honolulu": "1.4.2" }, + // "status" : 0 + // }, + // { + // "component": "cassandra", + // "container": "cassandra", + // "image": "docker.nexus.azure.onap.eu/cassandra", + // "current_version": "1.0", + // "other_version": {}, + // "status" : 2 + // }, + // { + // "component": "sdnc", + // "container": "sdnc", + // "image": "", + // "current_version": "", + // "other_version": { "honolulu": "2.2" }, + // "status" : 3 + // }, + // { + // "component": "onap-awx", + // "container": "awx-web", + // "image": "docker.nexus.azure.onap.eu/ansible/awx_web", + // "current_version": "9.0.1", + // "other_version": { + // "honolulu": "2.2", + // "guilin": "8.2.3", + // }, + // "status" : "" + // } + + // ] + + + const TABLE = document.getElementById("version_table"); + + function is_empty(object) { + return object && Object.keys(object).length === 0 && object.constructor === Object + } + + function add_column_to_table(column_title) { + //create a th for title + let table = document.querySelector(" #version_table>thead>tr"); + let new_column = document.createElement("th"); + let new_title = document.createTextNode(column_title); + + table.appendChild(new_column); + new_column.appendChild(new_title); + + //create matching td + /* let columns = document.getElementsByTagName("th"); + let last_column = columns[colums.length - 1];*/ + } + + let COMPONENTS = []; + let CONTAINERS = []; + let IMAGES = []; + let C_VERSIONS = []; //current versions + let O_VERSIONS = []; //other versions + + DATA.forEach(element => { + //sort data + COMPONENTS.push(element.component); + CONTAINERS.push(element.container); + IMAGES.push(element.image); + C_VERSIONS.push(element.current_version); + O_VERSIONS.push(element.other_version) + + + }); + + let columns_to_add = []; + O_VERSIONS.forEach(element => { + + if (!(is_empty(element))) { + + // if there are other version + + // console.log(Object.keys(element).length) + + for (let i = 0; i < Object.keys(element).length; i++) { + + columns_to_add.push(Object.keys(element)[i]) + + } + + + } + + }) + versions = [...new Set(columns_to_add)]; // turn the array into a set and thus remove duplicates + //console.log(versions) + + //construct table + versions.forEach(element => { + add_column_to_table(element) + }) + + const columns = document.getElementsByTagName("th") + + + DATA.forEach(element => { + //create a row for each element + let new_row = TABLE.insertRow(-1); + new_row.style.color = "white" + switch (element.status) { + case "0": + new_row.style.backgroundColor = "#FBBD08"; + break; + case "1": + new_row.style.backgroundColor = "#21BA45"; + break; + case "2": + new_row.style.backgroundColor = "#2185D0"; + break; + case "3": + new_row.style.backgroundColor = "grey"; + break; + case "4": + new_row.style.color = "black" + break; + } + for (let i = 0; i <= columns.length - 1; i++) { + + // for each row create 4 base cells + let cell = new_row.insertCell(-1); + + cell.setAttribute("class", "cell" + i); + if (cell.className == "cell0") { + let fill = document.createTextNode(element.component) + cell.append(fill) + } else if (cell.className == "cell1") { + let fill = document.createTextNode(element.container) + cell.append(fill) + } else if (cell.className == "cell2") { + let fill = document.createTextNode(element.image) + cell.append(fill) + } else if (cell.className == "cell" + 3) { + let fill = document.createTextNode(element.current_version) + cell.append(fill) + } + + // add as many cells as versions after the base cells + for (let j = 3 + versions.length; j > 3; j--) { + let version_item = j - (columns.length - versions.length) + if (cell.className == "cell" + j) { + + console.log(version_item) + let txt = element.other_version[versions[version_item]]; + let fill = document.createTextNode(txt) + cell.append(fill) + version_item++; + } + + + } + + } + + }) + function filter(color) { + console.log(color + ": cliqué") + let table = document.getElementById("version_table"); + let tr = table.getElementsByTagName("tr"); + for (let i = 1; i < tr.length; i++) { + tr[i].style.display = "none"; + switch (color) { + case "green": + if (tr[i].style.backgroundColor == "rgb(33, 186, 69)") { + tr[i].style.display = ""; + } + break; + + case "yellow": + + if (tr[i].style.backgroundColor == "rgb(251, 189, 8)") { + tr[i].style.display = ""; + } + break; + + case "blue": + + if (tr[i].style.backgroundColor == "rgb(33, 133, 208)") { + tr[i].style.display = ""; + } + break; + + case "grey": + + if (tr[i].style.backgroundColor == "grey") { + tr[i].style.display = ""; + } + break; + + case "black": + + if (tr[i].style.backgroundColor == "") { + tr[i].style.display = ""; + } + break; + + case "all": + tr[i].style.display = ""; + + break; + } + + } + } + let green_button = document.getElementById("green") + let yellow_button = document.getElementById("yellow") + let blue_button = document.getElementById("blue") + let grey_button = document.getElementById("grey") + let black_button = document.getElementById("black") + let all_button = document.getElementById("all") + + + + green_button.addEventListener("click", function () { filter("green") }) + yellow_button.addEventListener("click", function () { filter("yellow") }) + blue_button.addEventListener("click", function () { filter("blue") }) + grey_button.addEventListener("click", function () { filter("grey") }) + black_button.addEventListener("click", function () { filter("black") }) + all_button.addEventListener("click", function () { filter("all") }) + + function search() { + + var input, filter, table, tr, td, i, txtValue; + input = document.getElementById("search_input"); + filter = input.value.toUpperCase(); + table = document.getElementById("version_table"); + tr = table.getElementsByTagName("tr"); + + // Loop through all table rows, and hide those who don't match the search query + for (i = 0; i < tr.length; i++) { + td = tr[i].getElementsByTagName("td")[0]; + if (td) { + txtValue = td.textContent || td.innerText; + if (txtValue.toUpperCase().indexOf(filter) > -1) { + tr[i].style.display = ""; + } else { + tr[i].style.display = "none"; + } + } + } + } + + </script> +</body> + +</html>
\ No newline at end of file diff --git a/doc/template/index-gating-tmpl.html b/doc/template/index-gating-tmpl.html new file mode 100644 index 0000000..0b0f650 --- /dev/null +++ b/doc/template/index-gating-tmpl.html @@ -0,0 +1,63 @@ +<!DOCTYPE html> +<html> + <meta charset="UTF-8"> + <head> + <title>Xtesting ONAP Results</title> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/accordion.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/header.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/icon.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/card.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/container.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/step.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/statistic.min.css"> + <script + src="https://code.jquery.com/jquery-3.1.1.min.js" + integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" + crossorigin="anonymous"></script> + <script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/accordion.min.js"></script> + <script>$(function(){ + $('.ui.accordion').accordion();}); + </script> + </head> + + <body> + <div class='ui inverted vertical masthead center aligned segment'> + + <div class="ui text container"> + <i class="large gitlab icon"></i> + <h1 class="ui inverted header"> + OOM Gating: list of patchset + </h1> + <div class="meta">{{ date }}</div> + </div> + </div> + + <div class="ui equal width center aligned padded grid"> + <div class="row"> + <div class="white column"></div> + </div> + </div> + + <div class='ui vertical stripe segment'> + <div class='ui middle aligned stackable grid container'> + <div class="row"> + <div class="column"> + <h1 class="ui header"> + <div class="sub header"> + + <div class="ui list center aligned segment"> + {% for patch in patchsets -%} + <div class="item center aligned segment"> + <div class="content"> + <a class="link"><a href={{ patch }}/index.html><h2>{{ patch }}</h2></a></a> + </div> + </div> + {%- endfor %} + </div> + </div> + </div> + </div> + </div> + </div> + </body> +</html> diff --git a/doc/template/index-infra.html b/doc/template/index-infra.html new file mode 100644 index 0000000..a613ac9 --- /dev/null +++ b/doc/template/index-infra.html @@ -0,0 +1,46 @@ +<!DOCTYPE html> +<html> + <meta charset="UTF-8"> + <head> + <title>Xtesting ONAP Results</title> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/accordion.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/header.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/icon.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/card.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/container.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/step.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/statistic.min.css"> + <script + src="https://code.jquery.com/jquery-3.1.1.min.js" + integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" + crossorigin="anonymous"></script> + <script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/accordion.min.js"></script> + <script>$(function(){ + $('.ui.accordion').accordion();}); + </script> + </head> + +<body> + <div class='ui inverted vertical masthead center aligned segment'> + + <div class="ui text container"> + <h1 class="ui inverted header"> + ONAP Xtesting Results + </h1> + </div> + </div> + <center> + <div class="ui main text container"> + <h2 class="ui icon header"> + <i class="gitlab icon"></i> + <div class="content"> + <a tabindex="0" class="big ui orange basic button" href="./onap_xtesting_openlab/index.html">Openlab</a> + <a tabindex="0" class="big ui blue basic button" href="./onap_master_daily_pod4/index.html">Daily Master</a> + <a tabindex="0" class="big ui green basic button" href="./onap_casablanca_daily_pod4/index.html">Daily Casablanca</a> + </div> + </h2> + </div> + </center> +</body> + +</html> diff --git a/doc/template/index-stability-tmpl.html b/doc/template/index-stability-tmpl.html new file mode 100644 index 0000000..073ff26 --- /dev/null +++ b/doc/template/index-stability-tmpl.html @@ -0,0 +1,391 @@ +<!DOCTYPE html> +<html> +<meta charset="UTF-8"> + +<head> + <title>Xtesting ONAP Results</title> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.13/semantic.min.css"> + <style> + canvas{ + margin-bottom: 30px; + } + </style> +</head> + +<body> + <div class='ui inverted vertical masthead center aligned segment'> + + <div class="ui text container"> + <h1 class="ui inverted header"> + Stability testing results evolution + </h1> + </div> + + </div> + + <div class='ui vertical stripe segment'> + <div class='ui grid container'> + <div class="row"> + <div class="column"> + <h1 class="ui header"> + <i class="warehouse icon"></i> + + </h1> + <div class="sub header"> + + <!-- <div class="ui olive statistic"> + + <div class="value">20%</div> + <div class="label">last check</div> + </div> --> + <!-- <div class="ui olive statistic"> + <div class="value"> + <i class="{{ trend }}"></i> + </div> + <div class="label">trend</div> + </div> --> + <div class="ui tiny grey statistic"> + <div class="value">{{ lab_version }}</div> + <div class="label">ONAP Version</div> + </div> + <div class="ui tiny grey statistic"> + <div class="value">{{ lab_owner }}</div> + <div class="label">Lab owner</div> + </div> + </div> + + </div> + </div> + + <div class="ui vertical segment"> + <div class="ui middle aligned stackable grid container"> + <div class="row"> + <div class="eight wide column"> + <h3 class="ui header center aligned">Infra test results</h3> + <div class=" column" style=" height:300px"> + <canvas id="canvas_infra"></canvas> + </div> + </div> + <div class="eight wide column"> + <h3 class="ui header center aligned">Healthcheck test results</h3> + <div class=" column" style=" height:300px"> + <canvas id="canvas_healthcheck"></canvas> + </div> + </div> + <div class="eight wide column"> + <h3 class="ui header center aligned">Smoke test results</h3> + <div class=" column" style=" height:300px"> + <canvas id="canvas_smoke"></canvas> + </div> + </div> + <div class="eight wide column"> + <h3 class="ui header center aligned">Security test results</h3> + <div class=" column" style=" height:300px"> + <canvas id="canvas_security"></canvas> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + + + <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.3.2/chart.min.js"></script> + <script> + + let DATA = {{ data |safe }} + let TEST_NAMES= ["infrastructure-healthcheck", "healthcheck","smoke-usecases", "security"] + + function get_dates(data) { + let dates = [] + for (const date of data){ + dates.push(date["date"]) + } + // data.forEach(element => { + // dates.push(element.date) + // }); + return dates + } + + function get_tests_results(data,test_name){ + let results = [] + + for (const item of data){ + console.log(item[test_name]) + results.push(item[test_name]) + + } + + return results + } + + function trendlineEq(X, Y) { + // X : all x coordinates + // Y: all y coordinate + var x_sum = 0 + var y_sum = 0 + + var N = 0; + var A = 0; + var B = 0; + var C = 0; + var D = 0; + var E = 0; + var F = 0; + var m = 0; + var b = 0; + + if (X.length == Y.length) { + + var N = X.length + console.log("N : " + N) + + } else { + + return console.log(" X and Y must be of the same size") + } + + for (let i = 0; i <= N - 1; i++) { + + A = A + (X[i] * Y[i]) + + + + x_sum = x_sum + X[i] + y_sum = y_sum + Y[i] + + C = C + Math.pow(X[i], 2) + + } + A = N * A; + console.log("A : " + A) + + B = x_sum * y_sum + console.log("B : " + B) + + C = N * C + console.log("C : " + C) + + D = Math.pow(x_sum, 2) + console.log("D : " + D) + + m = (A - B) / (C - D) + console.log("m : " + m) + + E = y_sum + console.log("E : " + E) + + F = m * x_sum + console.log("F : " + F) + + b = (E - F) / N + console.log("b : " + b) + + return [m, b] + } + + function get_trend_line_data(X, params) { + let trend_line_data = [] + for (let i = 0; i <= X.length - 1; i++) { + let y_param = (params[0] * X[i]) + params[1] + let coordinates = { + x: X[i], + y: y_param + } + trend_line_data.push(coordinates) + } + return trend_line_data + } + + var x_coord = 0 + var X_COORDS = [] + + DATA.forEach(element => { + X_COORDS.push(x_coord); + x_coord++ + + }); + + function generate_target_array(data, target) { + let target_array = [] + for (const item of data){ + target_array.push(target) + } + // data.forEach(element => { + // target_array.push(target) + // }); + return target_array + } + + const results_infra = get_tests_results(DATA,TEST_NAMES[0]) + const results_healthcheck = get_tests_results(DATA,TEST_NAMES[1]) + const results_smoke = get_tests_results(DATA,TEST_NAMES[2]) + const results_security = get_tests_results(DATA,TEST_NAMES[3]) + + const target_infra = generate_target_array(DATA, 75) + const target_healthcheck = generate_target_array(DATA, 100) + const target_smoke = generate_target_array(DATA, 100) + const target_security = generate_target_array(DATA, 100) + + const params_infra = trendlineEq(X_COORDS, results_infra) + const params_healthcheck = trendlineEq(X_COORDS, results_healthcheck) + const params_smoke = trendlineEq(X_COORDS, results_smoke) + const params_security = trendlineEq(X_COORDS, results_security) + + const trend_line_infra = get_trend_line_data(X_COORDS, params_infra) + const trend_line_healthcheck = get_trend_line_data(X_COORDS, params_healthcheck) + const trend_line_smoke = get_trend_line_data(X_COORDS, params_smoke) + const trend_line_security = get_trend_line_data(X_COORDS, params_security) + + const labels = get_dates(DATA) + + const data_infra = { + labels: labels, + datasets: [{ + label: 'Infra results', + borderColor: 'rgb(255, 99, 132)', + data: results_infra + }, { + type: 'line', + label: 'Target', + borderColor: 'rgb(99, 255, 132)', + data: target_infra, + }, { + type: 'line', + label: 'trend', + borderColor: 'rgb(66, 191, 245)', + data: trend_line_infra, + } + ] + + }; + + const data_healthcheck = { + labels: labels, + datasets: [{ + label: 'healthcheck results', + borderColor: 'rgb(255, 99, 132)', + data: results_healthcheck + }, { + type: 'line', + label: 'Target', + borderColor: 'rgb(99, 255, 132)', + data: target_healthcheck, + },{ + type: 'line', + label: 'trend', + borderColor: 'rgb(66, 191, 245)', + data: trend_line_healthcheck, + } + ] + }; + + const data_smoke = { + labels: labels, + datasets: [{ + label: 'smoke results', + borderColor: 'rgb(255, 99, 132)', + data: results_smoke + }, { + type: 'line', + label: 'Target', + borderColor: 'rgb(99, 255, 132)', + data: target_smoke, + },{ + type: 'line', + label: 'trend', + borderColor: 'rgb(66, 191, 245)', + data: trend_line_smoke, + } + ] + }; + + const data_security = { + labels: labels, + datasets: [{ + label: 'security results', + borderColor: 'rgb(255, 99, 132)', + data: results_security + }, { + type: 'line', + label: 'Target', + borderColor: 'rgb(99, 255, 132)', + data: target_security, + },{ + type: 'line', + label: 'trend', + borderColor: 'rgb(66, 191, 245)', + data: trend_line_security, + } + ] + }; + + var options = { + responsive: true, + maintainAspectRatio: false, + scales: { + y: { + title: { + display: true, + text: 'Value' + }, + min: 0, + max: 100, + ticks: { + stepSize: 10 + } + } + } + } + + const config_infra = { + type: 'line', + data: data_infra, + options: options, + }; + const config_healthcheck = { + type: 'line', + data: data_healthcheck, + options: options + }; + const config_smoke = { + type: 'line', + data: data_smoke, + options: options + }; + const config_security = { + type: 'line', + data: data_security, + options: options + }; + + //charts rendering + + + var chart_infra = new Chart( + document.getElementById('canvas_infra'), + config_infra + ); + + + var chart_healthcheck = new Chart( + document.getElementById('canvas_healthcheck'), + config_healthcheck + ); + + var chart_smoke = new Chart( + document.getElementById('canvas_smoke'), + config_smoke + ); + + var chart_security = new Chart( + document.getElementById('canvas_security'), + config_security + ); + +</script> +</body> + +</html> diff --git a/doc/template/index-tmpl.html b/doc/template/index-tmpl.html new file mode 100644 index 0000000..b8918c7 --- /dev/null +++ b/doc/template/index-tmpl.html @@ -0,0 +1,203 @@ +<!DOCTYPE html> +<html> + <meta charset="UTF-8"> + <head> + <title>Xtesting ONAP Results</title> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/accordion.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/header.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/icon.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/card.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/container.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/step.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/statistic.min.css"> + <script + src="https://code.jquery.com/jquery-3.1.1.min.js" + integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" + crossorigin="anonymous"></script> + <script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/accordion.min.js"></script> + <script>$(function(){ + $('.ui.accordion').accordion();}); + </script> + </head> + + <body> + + <div class='ui vertical stripe segment'> + <div class='ui middle aligned stackable grid container'> + <div class="row"> + <div class="column"> + <h1 class="ui header"> + <i class="warehouse icon"></i> + <div class="content">ONAP Xtesting results</div> + <div class="sub header"> + {% if score > 99 -%} + <div class="ui olive statistic"> + {%- elif score > 75 -%} + <div class="ui orange statistic"> + {%- else -%} + <div class="ui red statistic"> + {%- endif %} + <div class="value">{{ score }}%</div> + <div class="label">last check</div> + </div> + <div class="ui olive statistic"> + <div class="value"> + <i class="{{ trend }}"></i> + </div> + <div class="label">trend</div> + </div> + <div class="ui tiny grey statistic"> + <div class="value">{{ lab_version }}</div> + <div class="label">ONAP Version</div> + </div> + <div class="ui tiny grey statistic"> + <div class="value">{{ lab_owner }}</div> + <div class="label">Lab owner</div> + </div> + + {% if "daily" in pod -%} + <div class="ui tiny grey statistic"> + <a href="./index-versions.html" target="_blank"> + <i class="tasks icon"></i> + <div class="label">Docker Versions</div> + </a> + </div> + <div class="ui tiny grey statistic"> + <a href="./index-stability.html" target="_blank"> + <i class="chart line icon"></i> + <div class="label">Stability charts</div> + </a> + </div> + </div> + </div> + + {%- endif %} + + </div> + </div> + </h1> + <div class="ui cards"> + {% for tier in tiers -%} + <div class="ui card"> + <div class="content"> + <div class="header">{{ tier.name }}</div> + <div class="meta">{{ date }}</div> + <div class="center aligned description"> + {% if tier.score > 99 -%} + <div class="ui green statistic"> + {%- elif tier.score > 75 -%} + <div class="ui orange statistic"> + {%- else -%} + <div class="ui red statistic"> + {%- endif %} + <div class="value">{{ tier.score }}%</div> + <div class="label">last check</div> + </div> + <div class="ui fluid accordion"> + <div class="title"> + <div class="dropdown icon"></div> + Full results + </div> + <div class="content"> + <div class="ui mini vertical steps"> + {% for result in tier.results -%} + <div class="step"> + {% if 'PASS' == result.result -%} + <i class="inverted green check icon"></i> + {%- else -%} + <i class="inverted red x icon"></i> + {%- endif %} + <div class="content"> + {% if result.url != '' -%} + <div class="center aligned header"><a href="{{result.url}}">{{result.name}}</a></div> + {%- else -%} + <div class="center aligned header">{{result.name}}</div> + {%- endif %} + </div> + </div> + {%- endfor %} + </div> + </div> + </div> + </div> + </div> + </div> + {%- endfor %} + {% if "weekly" in pod -%} + <div class="ui card"> + <div class="content"> + <div class="header">stability</div> + <div class="meta">Note: results may be uploaded after several days, be patient..</div> + <div class="step"> + <br> + <div class="ui fluid accordion"> + <div class="title"> + <div class="dropdown icon"></div> + Stability results + </div> + <div class="content"> + <div class="ui mini vertical steps"> + <div class="step"> + <div class="center aligned header"><a href="./stability/results_instantiation_10_24h//onaptests_bench.html">10 // basic_vm - 24h</a></div> + </div> + <div class="step"> + <div class="center aligned header"><a href="./stability/results_sdc_5_24h/onaptests_bench.html">5 // basic_onboard - 24h</a></div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="ui card"> + <div class="content"> + <div class="header">resiliency</div> + <div class="meta">Note: results may be uploaded after several days, be patient..</div> + <div class="step"> + <br> + <div class="ui fluid accordion"> + <div class="title"> + <div class="dropdown icon"></div> + Resiliency results + </div> + <div class="content"> + <div class="ui mini vertical steps"> + <div class="step"> + <div class="center aligned header"><a href="./resiliency/reporting_chaos.html">Resiliency page</a></div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="ui card"> + <div class="content"> + <div class="header">info only</div> + <div class="meta">Note: results may be uploaded a day after the page is created, be patient..</div> + <div class="step"> + <br> + <div class="ui fluid accordion"> + <div class="title"> + <div class="dropdown icon"></div> + Results + </div> + <div class="content"> + <div class="ui mini vertical steps"> + <div class="step"> + <div class="center aligned header"><a href="./legal/tern/index.html">tern - Docker SBoMs</a></div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + {%- endif %} + </div> + </div> + </div> + </div> + </div> + </body> +</html> diff --git a/doc/template/k8s.html b/doc/template/k8s.html new file mode 100644 index 0000000..130553f --- /dev/null +++ b/doc/template/k8s.html @@ -0,0 +1,103 @@ +<!DOCTYPE html> +<html> + <meta charset="UTF-8"> + <head> + <title>Xtesting ONAP Results</title> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/accordion.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/header.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/icon.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/card.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/container.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/step.min.css"> + <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/statistic.min.css"> + <script + src="https://code.jquery.com/jquery-3.1.1.min.js" + integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" + crossorigin="anonymous"></script> + <script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/accordion.min.js"></script> + <script>$(function(){ + $('.ui.accordion').accordion();}); + </script> + </head> + +<body> + <div class='ui inverted vertical masthead center aligned segment'> + <div class="ui text container"> + <h1 class="ui inverted header"> + Xtesting ONAP Results for Kubernetes Deployment + </h1> + </div> + </div> + + <div class='ui vertical stripe segment'> + <div class='ui middle aligned stackable grid container'> + <div class="row"> + <div class="column"> + <h2 class="ui header"> + Summary + </h2> + <div class="ui statistics"> + <div class="statistic"> + <div class="value"> + 38M + </div> + <div class="label"> + Duration + </div> + </div> + <div class="statistic"> + <div class="value"> + 108 + </div> + <div class="label"> + Total Pods Scheduled + </div> + </div> + <div class="statistic"> + <div class="value"> + 3 + </div> + <div class="label"> + Pods Failing + </div> + </div> + </div> + + <h2 class="ui header"> + Failing pods + </h2> + <div class="ui list"> + + <div class="item"> + <i class="large inverted middle aligned red x icon"></i> + <div class="content"> + <div class="header">Pod Name</div> + <div class="description">Fail Reason</div> + </div> + </div> + <div class="item"> + <i class="large inverted middle aligned red x icon"></i> + <div class="content"> + <div class="header">Pod Name</div> + <div class="description">Fail Reason</div> + </div> + </div> + <div class="item"> + <i class="large inverted middle aligned red x icon"></i> + <div class="content"> + <div class="header">Pod Name</div> + <div class="description">Fail Reason</div> + </div> + </div> + </div> + <h2 class="ui header"> + full logs + </h2> + <a href="">Access to entire logs</a> + </div> + </div> + </div> + </div> +</body> + +</html> |