# Waiver for versions test (python/java version check)
# all the following docker container shall be 
# excluded from the version scanning

# upstream containers
# may be fixable using a more recent version...
# cassandra
# awx-celery
# awx-rabbit
# awx-web
# dcae-cloudify-manager

#sdnc exception
sdnc-dmaap-listener

# dcae exceptions
dcaemod-designtool
dcaemod-genprocessor
dcaemod-nifi-registry

# unmaintained containers
# nobody will work on that a priori
# esr-gui
# esr-server
# msb-discovery
# msb-eag
# msb-iag
# portal-app
# portal-cassandra
# portal-sdk
# portal-widget
# aaf-cass
# message-router-kafka
# message-router-zookeeper
# message-router
# robot

# aai pods dependent on janusgraph which does not support Java 11 yet
# aai-graphadmin
# aai-resources
# aai-traversal

# filebeat dockers
# filebeat
# filebeat-onap
# dcae-dashboard-filebeat
# dcae-deployment-handler-filebeat
# dcae-inventory-api-filebeat
# dcae-policy-handler-filebeat
# dcae-config-binding-service-fb-onap
# dcae-config-binding-service-fb-onap-i
# dmaap-dr-node-filebeat-onap
# dmaap-dr-prov-filebeat-onap
# esr-server-filebeat-onap
# modeling-etsicatalog-filebeat-onap
# msb-discovery-filebeat-onap
# sdc-be-filebeat-onap
# sdc-fe-filebeat-onap
# sdc-onboarding-be-filebeat-onap
# sdc-wfd-fe-filebeat-onap
# so-filebeat-onap
# so-bpmn-infra-filebeat-onap
# so-oof-adapter-filebeat-onap
# so-openstack-adapter-filebeat-onap
# so-sdc-controller-filebeat-onap
# so-sdnc-adapter-filebeat-onap
# vfc-generic-vnfm-driver-filebeat-onap
# vfc-huawei-vnfm-driver-filebeat-onap
# vfc-nslcm-filebeat-onap
# vfc-vnflcm-filebeat-onap
# vfc-vnfmgr-filebeat-onap
# vfc-vnfres-filebeat-onap
# vfc-zte-vnfm-driver-filebeat-onap

# vnf drivers
# vfc-huawei-vnfm-driver
