Cluster co-ordination with Hazelcast.
[ccsdk/cds.git] / ms / blueprintsprocessor / application / src / main / dc / docker-compose-cluster.yaml
1 version: '3.7'
2
3 services:
4   db:
5     image: mariadb:latest
6     container_name: ccsdk-mariadb
7     networks:
8       - cds-network
9     ports:
10       - "3306:3306"
11     volumes:
12       - target: /var/lib/mysql
13         type: volume
14         source: mysql-data
15     restart: always
16     environment:
17       MYSQL_ROOT_PASSWORD: sdnctl
18       MYSQL_DATABASE: sdnctl
19       MYSQL_USER: sdnctl
20       MYSQL_PASSWORD: sdnctl
21   nats:
22     image: nats-streaming:latest
23     container_name: nats
24     hostname: nats
25     command: "-cid cds-cluster --auth tokenAuth -store file -dir /opt/app/onap/nats/store --cluster_node_id nats-0"
26     networks:
27       - cds-network
28     ports:
29       - "8222:8222"
30       - "4222:4222"
31     restart: always
32     volumes:
33       - target: /opt/app/onap/nats/store
34         type: volume
35         source: nats-store
36   cds-controller-0:
37     depends_on:
38       - db
39       - nats
40     image: onap/ccsdk-blueprintsprocessor:latest
41     container_name: cds-controller-0
42     hostname: cds-controller-0
43     networks:
44       - cds-network
45     ports:
46       - "8000:8080"
47       - "9110:9111"
48     restart: always
49     volumes:
50       - target: /opt/app/onap/blueprints/deploy
51         type: volume
52         source: blueprints-deploy
53       - target: /opt/app/onap/config
54         type: volume
55         source: controller-config
56     environment:
57       # Same as hostname and container name
58       CLUSTER_ENABLED: "true"
59       CLUSTER_ID: cds-cluster
60       CLUSTER_NODE_ID: cds-controller-0
61       CLUSTER_JOIN_AS_CLIENT: "false"
62       CLUSTER_CONFIG_FILE: /opt/app/onap/config/hazelcast/hazelcast.yaml
63       NATS_CLUSTER_ID: cds-cluster
64       APP_NAME: cds-controller
65       BUNDLEVERSION: 1.0.0
66       APP_CONFIG_HOME: /opt/app/onap/config
67       STICKYSELECTORKEY:
68       ENVCONTEXT: dev
69   cds-controller-1:
70     depends_on:
71       - db
72       - nats
73     image: onap/ccsdk-blueprintsprocessor:latest
74     container_name: cds-controller-1
75     hostname: cds-controller-1
76     networks:
77       - cds-network
78     ports:
79       - "8001:8080"
80       - "9111:9111"
81     restart: always
82     volumes:
83       - target: /opt/app/onap/blueprints/deploy
84         type: volume
85         source: blueprints-deploy
86       - target: /opt/app/onap/config
87         type: volume
88         source: controller-config
89     environment:
90       # Same as hostname and container name
91       CLUSTER_ENABLED: "true"
92       CLUSTER_ID: cds-cluster
93       CLUSTER_NODE_ID: cds-controller-1
94       CLUSTER_JOIN_AS_CLIENT: "false"
95       CLUSTER_CONFIG_FILE: /opt/app/onap/config/hazelcast/hazelcast.yaml
96       NATS_CLUSTER_ID: cds-cluster
97       APP_NAME: cds-controller
98       BUNDLEVERSION: 1.0.0
99       APP_CONFIG_HOME: /opt/app/onap/config
100       STICKYSELECTORKEY:
101       ENVCONTEXT: dev
102   cds-controller-2:
103     depends_on:
104       - db
105       - nats
106     image: onap/ccsdk-blueprintsprocessor:latest
107     container_name: cds-controller-2
108     hostname: cds-controller-2
109     networks:
110       - cds-network
111     ports:
112       - "8002:8080"
113       - "9112:9111"
114     restart: always
115     volumes:
116       - target: /opt/app/onap/blueprints/deploy
117         type: volume
118         source: blueprints-deploy
119       - target: /opt/app/onap/config
120         type: volume
121         source: controller-config
122     environment:
123       # Same as hostname and container name
124       CLUSTER_ENABLED: "true"
125       CLUSTER_ID: cds-cluster
126       CLUSTER_NODE_ID: cds-controller-2
127       CLUSTER_JOIN_AS_CLIENT: "false"
128       CLUSTER_CONFIG_FILE: /opt/app/onap/config/hazelcast/hazelcast.yaml
129       NATS_CLUSTER_ID: cds-cluster
130       APP_NAME: cds-controller
131       BUNDLEVERSION: 1.0.0
132       APP_CONFIG_HOME: /opt/app/onap/config
133       STICKYSELECTORKEY:
134       ENVCONTEXT: dev
135   py-executor-0:
136     depends_on:
137       - db
138       - nats
139     image: onap/ccsdk-py-executor
140     container_name: py-executor-0
141     hostname: py-executor-0
142     networks:
143       - cds-network
144     ports:
145       - "50052:50052"
146     restart: always
147     volumes:
148       - target: /opt/app/onap/blueprints/deploy
149         type: volume
150         source: blueprints-deploy
151     environment:
152       CLUSTER_ID: cds-cluster
153       CLUSTER_NODE_ID: py-executor-0
154       CLUSTER_JOIN_AS_CLIENT: "false"
155       CLUSTER_CONFIG_FILE: /opt/app/onap/config/hazelcast/hazelcast.yaml
156       NATS_CLUSTER_ID: cds-cluster
157       APP_NAME: py-executor
158       BUNDLEVERSION: 1.0.0
159       APP_CONFIG_HOME: /opt/app/onap/config
160       STICKYSELECTORKEY:
161       ENVCONTEXT: dev
162       APP_PORT: 50052
163       AUTH_TYPE: tls-auth
164       LOG_FILE: /opt/app/onap/logs/application.log
165 volumes:
166   mysql-data:
167     driver: local
168     driver_opts:
169       type: none
170       device: /opt/app/cds/mysql/data
171       o: bind
172   nats-store:
173     driver: local
174     driver_opts:
175       type: none
176       device: /opt/app/cds/nats/store
177       o: bind
178   blueprints-deploy:
179     driver: local
180     driver_opts:
181       type: none
182       device: /opt/app/cds/blueprints/deploy
183       o: bind
184   controller-config:
185     driver: local
186     driver_opts:
187       type: none
188       device: /opt/app/cds/cds-controller/config
189       o: bind
190
191 networks:
192   cds-network:
193     driver: bridge