Add healthcheck for VES-Collector
[oam.git] / solution / smo / oam / docker-compose.yml
1 # no more versions needed! Compose spec supports all features w/o a version
2 services:
3
4   odlux:
5     image: ${SDNC_WEB_IMAGE}
6     container_name: odlux
7     hostname: odlux
8     environment:
9       ENABLE_OAUTH: true
10       WEBPROTOCOL: HTTP
11       WEBPORT: ${SDNC_WEB_PORT}
12       SDNRPROTOCOL: http
13       SDNRHOST: controller
14       SDNRPORT: ${SDNC_REST_PORT}
15     labels:
16       traefik.enable: true
17       traefik.http.routers.sdnc-web.entrypoints: websecure
18       traefik.http.routers.sdnc-web.rule: Host(`odlux.oam.${SOLUTION_DOMAIN}`)
19       traefik.http.routers.sdnc-web.tls: true
20       traefik.http.services.sdnc-web.loadbalancer.server.port: ${SDNC_WEB_PORT}
21     depends_on:
22       controller:
23         condition: service_healthy
24     networks:
25       smo:
26
27   controller:
28     image: ${SDNC_IMAGE}
29     container_name: controller
30     hostname: controller
31     extra_hosts:
32       - "identity.smo.o-ran-sc.org:${HOST_IP}"
33     healthcheck:
34       test: wget -U ${ADMIN_USERNAME}:${ADMIN_PASSWORD} --no-verbose --tries=1 --spider http://localhost:${SDNC_REST_PORT}/ready || exit 1
35       start_period: 60s
36       interval: 10s
37       timeout: 5s
38       retries: 5
39     ports:
40       - 4334:4334
41       - 4335:4335
42     environment:
43       ENABLE_ODL_CLUSTER: false
44       ENABLE_OAUTH: true
45       ODL_ADMIN_PASSWORD: ${ADMIN_PASSWORD}
46       SDNC_CONFIG_DIR: /opt/onap/ccsdk/data/properties
47       SDNC_REPLICAS: 0
48       CCSDK_REPLICAS: 0
49       DOMAIN: ""
50       SDNRWT: true
51       SDNRONLY: true
52       SDNRINIT: true
53       SDNRDM: true
54       SDNRDBURL: http://persistence:9200
55       SDNR_NETCONF_CALLHOME_ENABLED: true
56       A1_ADAPTER_NORTHBOUND: false
57       JAVA_OPTS: -Xms256m -Xmx4g
58       IDENTITY_PROVIDER_URL: ${IDENTITY_PROVIDER_URL}
59       SDNC_WEB_URL: https://odlux.oam.${SOLUTION_DOMAIN}
60       SDNR_VES_COLLECTOR_ENABLED: true
61       SDNR_VES_COLLECTOR_TLS_ENABLED: false
62       SDNR_VES_COLLECTOR_TRUST_ALL_CERTS: true
63       SDNR_VES_COLLECTOR_IP: ves-collector
64       SDNR_VES_COLLECTOR_PORT: $VES_ENDPOINT_PORT
65       SDNR_VES_COLLECTOR_VERSION: v7
66       SDNR_VES_COLLECTOR_REPORTING_ENTITY_NAME: ONAP SDN-R
67       SDNR_VES_COLLECTOR_EVENTLOG_MSG_DETAIL: LONG
68       SDNR_VES_COLLECTOR_USERNAME: ${VES_ENDPOINT_USERNAME}
69       SDNR_VES_COLLECTOR_PASSWORD: ${VES_ENDPOINT_PASSWORD}
70     volumes:
71       - ./controller/oauth-aaa-app-config.xml:/opt/onap/sdnc/data/oauth-aaa-app-config.xml
72       - ./controller/oauth-provider.config.json:/opt/opendaylight/etc/oauth-provider.config.json
73       - ./controller/devicemanager.properties:/opt/opendaylight/etc/devicemanager.properties
74       - ./controller/mountpoint-registrar.properties:/opt/opendaylight/etc/mountpoint-registrar.properties
75     labels:
76       traefik.enable: true
77       traefik.http.routers.controller.entrypoints: websecure
78       traefik.http.routers.controller.rule: Host(`controller.oam.${SOLUTION_DOMAIN}`)
79       traefik.http.routers.controller.tls: true
80       traefik.http.services.controller.loadbalancer.server.port: ${SDNC_REST_PORT}
81     networks:
82       smo:
83       default:
84         ipv6_address: ${SDNC_OAM_IPv6}
85
86   ves-collector:
87     image: ${VES_COLLECTOR_IMAGE}-configured
88     build:
89       context: ./ves-collector
90       args:
91         - BASEIMAGE=${VES_COLLECTOR_IMAGE}
92     container_name: ves-collector
93     hostname: ves-collector
94     healthcheck:
95       test: curl -k -u ${VES_ENDPOINT_USERNAME}:${VES_ENDPOINT_PASSWORD} ${VES_ENDPOINT_PROTOCOL}://localhost:${VES_ENDPOINT_PORT} || exit 1
96       start_period: 1s
97       interval: 5s
98       timeout: 4s
99       retries: 5
100     environment:
101       DMAAPHOST: messages
102     volumes:
103       - ./ves-collector/collector.properties:/opt/app/VESCollector/etc/collector.properties
104       - ./ves-collector/ves-dmaap-config.json:/opt/app/VESCollector/etc/ves-dmaap-config.json
105     labels:
106       traefik.enable: true
107       traefik.http.routers.ves.entrypoints: websecure
108       traefik.http.routers.ves.rule: Host(`ves-collector.oam.${SOLUTION_DOMAIN}`)
109       traefik.http.routers.ves.tls: true
110       traefik.http.services.ves.loadbalancer.server.port: ${VES_ENDPOINT_PORT}
111     networks:
112       smo:
113
114 networks:
115   smo:
116     external: true
117   default:
118     driver: bridge
119     name: oam
120     enable_ipv6: true
121     ipam:
122       driver: default
123       config:
124       - subnet:  "${NETWORK_SUBNET_OAM_IPv6}"
125         gateway: "${NETWORK_GATEWAY_OAM_IPv6}"