aboutsummaryrefslogtreecommitdiffstats
path: root/mdbc-packages
diff options
context:
space:
mode:
authorRob Daugherty <rd472p@att.com>2018-12-13 13:58:11 -0500
committerRob Daugherty <rd472p@att.com>2018-12-13 14:02:57 -0500
commite162ac7ac117d2a1948ec2ea6845d0e132b2967e (patch)
tree02386bdd5e7bcabac1a9821e892b842d3226838e /mdbc-packages
parentba7c4ffe49495ad0e2ce986192f65c8ae63bb2bd (diff)
Docker compose scripts for two mdbc sites
This is a two site installation, with a single cassandra container, two mariadb containers, and two mdbc-server containers. Server 1 exposes port 30001 and server 2 exposes port 30002. To build the docker images, first build mdbc software normally, then use the 'docker' maven profile: mvn -P docker clean install To bring up the environment: cd mdbc-packages/mdbc-docker/compose/two-sites docker-compose up Change-Id: I10155ebf47dec4e787d44b23886ab8453ac4315f Issue-ID: MUSIC-263 Signed-off-by: Rob Daugherty <rd472p@att.com>
Diffstat (limited to 'mdbc-packages')
-rw-r--r--mdbc-packages/mdbc-docker/compose/one-site/docker-compose.yml2
-rw-r--r--mdbc-packages/mdbc-docker/compose/one-site/volumes/mdbc-server-1/config/music.properties (renamed from mdbc-packages/mdbc-docker/compose/one-site/volumes/mdbc-server/config/music.properties)0
-rw-r--r--mdbc-packages/mdbc-docker/compose/one-site/volumes/mdbc-server-1/config/tableConfiguration.json (renamed from mdbc-packages/mdbc-docker/compose/one-site/volumes/mdbc-server/config/tableConfiguration.json)2
-rw-r--r--mdbc-packages/mdbc-docker/compose/two-sites/.env2
-rw-r--r--mdbc-packages/mdbc-docker/compose/two-sites/docker-compose.yml117
-rw-r--r--mdbc-packages/mdbc-docker/compose/two-sites/volumes/cassandra/docker-entrypoint-initdb.d/01-create-music-internal-keyspace.cql1
-rw-r--r--mdbc-packages/mdbc-docker/compose/two-sites/volumes/mariadb/conf.d/mariadb1.cnf193
-rw-r--r--mdbc-packages/mdbc-docker/compose/two-sites/volumes/mariadb/docker-entrypoint-initdb.d/01-create-test-database.sh28
-rw-r--r--mdbc-packages/mdbc-docker/compose/two-sites/volumes/mdbc-server-1/config/music.properties4
-rw-r--r--mdbc-packages/mdbc-docker/compose/two-sites/volumes/mdbc-server-1/config/tableConfiguration.json23
-rw-r--r--mdbc-packages/mdbc-docker/compose/two-sites/volumes/mdbc-server-2/config/music.properties4
-rw-r--r--mdbc-packages/mdbc-docker/compose/two-sites/volumes/mdbc-server-2/config/tableConfiguration.json23
12 files changed, 397 insertions, 2 deletions
diff --git a/mdbc-packages/mdbc-docker/compose/one-site/docker-compose.yml b/mdbc-packages/mdbc-docker/compose/one-site/docker-compose.yml
index d30d3e2..ca597ad 100644
--- a/mdbc-packages/mdbc-docker/compose/one-site/docker-compose.yml
+++ b/mdbc-packages/mdbc-docker/compose/one-site/docker-compose.yml
@@ -48,7 +48,7 @@ services:
ports:
- "30001:30001"
volumes:
- - ./volumes/mdbc-server/config:/app/config
+ - ./volumes/mdbc-server-1/config:/app/config
environment:
- JVM_ARGS=-Xms64m -Xmx512m
- AVATICA_PORT=30001
diff --git a/mdbc-packages/mdbc-docker/compose/one-site/volumes/mdbc-server/config/music.properties b/mdbc-packages/mdbc-docker/compose/one-site/volumes/mdbc-server-1/config/music.properties
index b030b62..b030b62 100644
--- a/mdbc-packages/mdbc-docker/compose/one-site/volumes/mdbc-server/config/music.properties
+++ b/mdbc-packages/mdbc-docker/compose/one-site/volumes/mdbc-server-1/config/music.properties
diff --git a/mdbc-packages/mdbc-docker/compose/one-site/volumes/mdbc-server/config/tableConfiguration.json b/mdbc-packages/mdbc-docker/compose/one-site/volumes/mdbc-server-1/config/tableConfiguration.json
index 383593a..3438210 100644
--- a/mdbc-packages/mdbc-docker/compose/one-site/volumes/mdbc-server/config/tableConfiguration.json
+++ b/mdbc-packages/mdbc-docker/compose/one-site/volumes/mdbc-server-1/config/tableConfiguration.json
@@ -3,7 +3,7 @@
{
"tables": [
{
- "table": "table11"
+ "table": "Persons"
}
],
"owner": "",
diff --git a/mdbc-packages/mdbc-docker/compose/two-sites/.env b/mdbc-packages/mdbc-docker/compose/two-sites/.env
new file mode 100644
index 0000000..1c22d2b
--- /dev/null
+++ b/mdbc-packages/mdbc-docker/compose/two-sites/.env
@@ -0,0 +1,2 @@
+# Default values used by docker-compose if not defined as environment variables.
+MTU=1500
diff --git a/mdbc-packages/mdbc-docker/compose/two-sites/docker-compose.yml b/mdbc-packages/mdbc-docker/compose/two-sites/docker-compose.yml
new file mode 100644
index 0000000..b1615fc
--- /dev/null
+++ b/mdbc-packages/mdbc-docker/compose/two-sites/docker-compose.yml
@@ -0,0 +1,117 @@
+version: '3'
+networks:
+ default:
+ driver: bridge
+ driver_opts:
+ com.docker.network.driver.mtu: ${MTU}
+services:
+################################################################################
+ cassandra-1:
+ image:
+ onap/music/mdbc-cassandra
+ container_name:
+ cassandra-1
+ hostname:
+ cassandra-1.music.testlab.onap.org
+ expose:
+ - 9042
+ - 9160
+ - 7199
+ environment:
+ - CASSANDRA_CLUSTER_NAME=testcluster
+ - CASSANDRA_SEEDS=cassandra-1
+ - CASSANDRA_START_RPC=true
+ volumes:
+ - ./volumes/cassandra/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
+# - ./cache/cassandra-1:/var/lib/cassandra
+ command:
+ - -s0
+################################################################################
+ mariadb-1:
+ image: mariadb:10.1.11
+ container_name:
+ mariadb-1
+ hostname:
+ mariadb-1.music.testlab.onap.org
+ expose:
+ - 3306
+ environment:
+ - MYSQL_ROOT_PASSWORD=password
+ volumes:
+ - ./volumes/mariadb/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
+ - ./volumes/mariadb/conf.d:/etc/mysql/conf.d
+################################################################################
+ mdbc-server-1:
+ image: onap/music/mdbc-server
+ container_name:
+ mdbc-server-1
+ ports:
+ - "30001:30001"
+ volumes:
+ - ./volumes/mdbc-server-1/config:/app/config
+ environment:
+ - JVM_ARGS=-Xms64m -Xmx512m
+ - AVATICA_PORT=30001
+ - JDBC_URL=jdbc:mysql://mariadb-1:3306
+ - JDBC_USER=test
+ - JDBC_PASSWORD=password
+ - EXIT_DELAY=900
+ hostname:
+ mdbc-server-1.music.testlab.onap.org
+ depends_on:
+ - cassandra-1
+ - mariadb-1
+ command:
+ - /app/wait-for.sh
+ - -q
+ - -t
+ - "300"
+ - cassandra-1:9042
+ - mariadb-1:3306
+ - --
+ - "/app/start-mdbc-server.sh"
+################################################################################
+ mariadb-2:
+ image: mariadb:10.1.11
+ container_name:
+ mariadb-2
+ hostname:
+ mariadb-2.music.testlab.onap.org
+ expose:
+ - 3306
+ environment:
+ - MYSQL_ROOT_PASSWORD=password
+ volumes:
+ - ./volumes/mariadb/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
+ - ./volumes/mariadb/conf.d:/etc/mysql/conf.d
+################################################################################
+ mdbc-server-2:
+ image: onap/music/mdbc-server
+ container_name:
+ mdbc-server-2
+ ports:
+ - "30002:30002"
+ volumes:
+ - ./volumes/mdbc-server-2/config:/app/config
+ environment:
+ - JVM_ARGS=-Xms64m -Xmx512m
+ - AVATICA_PORT=30002
+ - JDBC_URL=jdbc:mysql://mariadb-2:3306
+ - JDBC_USER=test
+ - JDBC_PASSWORD=password
+ - EXIT_DELAY=900
+ hostname:
+ mdbc-server-2.music.testlab.onap.org
+ depends_on:
+ - cassandra-1
+ - mariadb-2
+ command:
+ - /app/wait-for.sh
+ - -q
+ - -t
+ - "300"
+ - cassandra-1:9042
+ - mariadb-2:3306
+ - mdbc-server-1:30001
+ - --
+ - "/app/start-mdbc-server.sh"
diff --git a/mdbc-packages/mdbc-docker/compose/two-sites/volumes/cassandra/docker-entrypoint-initdb.d/01-create-music-internal-keyspace.cql b/mdbc-packages/mdbc-docker/compose/two-sites/volumes/cassandra/docker-entrypoint-initdb.d/01-create-music-internal-keyspace.cql
new file mode 100644
index 0000000..7884dd5
--- /dev/null
+++ b/mdbc-packages/mdbc-docker/compose/two-sites/volumes/cassandra/docker-entrypoint-initdb.d/01-create-music-internal-keyspace.cql
@@ -0,0 +1 @@
+CREATE KEYSPACE IF NOT EXISTS music_internal WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} AND durable_writes = true;
diff --git a/mdbc-packages/mdbc-docker/compose/two-sites/volumes/mariadb/conf.d/mariadb1.cnf b/mdbc-packages/mdbc-docker/compose/two-sites/volumes/mariadb/conf.d/mariadb1.cnf
new file mode 100644
index 0000000..39ed022
--- /dev/null
+++ b/mdbc-packages/mdbc-docker/compose/two-sites/volumes/mariadb/conf.d/mariadb1.cnf
@@ -0,0 +1,193 @@
+# Example MySQL config file for medium systems.
+#
+# This is for a system with memory 8G where MySQL plays
+# an important part, or systems up to 128M where MySQL is used together with
+# other programs (such as a web server)
+#
+# In this file, you can use all long options that a program supports.
+# If you want to know which options a program supports, run the program
+# with the "--help" option.
+
+# The following options will be passed to all MySQL clients
+##[client]
+##user = root
+##port = 3306
+##socket = //opt/app/mysql/mysql.sock
+
+# Here follows entries for some specific programs
+
+# The MySQL server
+[mysqld]
+##performance_schema
+
+slow_query_log =ON
+long_query_time =2
+slow_query_log_file =//var/lib/mysql/slow_query.log
+
+skip-external-locking
+explicit_defaults_for_timestamp = true
+skip-symbolic-links
+local-infile = 0
+key_buffer_size = 16M
+max_allowed_packet = 4M
+table_open_cache = 100
+sort_buffer_size = 512K
+net_buffer_length = 8K
+read_buffer_size = 256K
+read_rnd_buffer_size = 512K
+myisam_sort_buffer_size = 8M
+max_connections = 500
+lower_case_table_names = 1
+thread_stack = 256K
+thread_cache_size = 25
+query_cache_size = 8M
+query_cache_type = 0
+query_prealloc_size = 512K
+query_cache_limit = 1M
+
+# Password validation
+##plugin-load-add=simple_password_check.so
+##simple_password_check_other_characters=0
+
+# Audit Log settings
+plugin-load-add=server_audit.so
+server_audit=FORCE_PLUS_PERMANENT
+server_audit_file_path=//var/lib/mysql/audit.log
+server_audit_file_rotate_size=50M
+server_audit_events=CONNECT,QUERY,TABLE
+server_audit_logging=on
+
+# Don't listen on a TCP/IP port at all. This can be a security enhancement,
+# if all processes that need to connect to mysqld run on the same host.
+# All interaction with mysqld must be made via Unix sockets or named pipes.
+# Note that using this option without enabling named pipes on Windows
+# (via the "enable-named-pipe" option) will render mysqld useless!
+#
+#skip-networking
+
+# Replication Master Server (default)
+# binary logging is required for replication
+##log-bin=//var/lib/mysql/mysql-bin
+
+# binary logging format - mixed recommended
+binlog_format=row
+
+# required unique id between 1 and 2^32 - 1
+# defaults to 1 if master-host is not set
+# but will not function as a master if omitted
+
+# Replication Slave (comment out master section to use this)
+#
+# To configure this host as a replication slave, you can choose between
+# two methods :
+#
+# 1) Use the CHANGE MASTER TO command (fully described in our manual) -
+# the syntax is:
+#
+# CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,
+# MASTER_USER=<user>, MASTER_PASSWORD=<password> ;
+#
+# where you replace <host>, <user>, <password> by quoted strings and
+# <port> by the master's port number (3306 by default).
+#
+# Example:
+#
+# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
+# MASTER_USER='joe', MASTER_PASSWORD='secret';
+#
+# OR
+#
+# 2) Set the variables below. However, in case you choose this method, then
+# start replication for the first time (even unsuccessfully, for example
+# if you mistyped the password in master-password and the slave fails to
+# connect), the slave will create a master.info file, and any later
+# change in this file to the variables' values below will be ignored and
+# overridden by the content of the master.info file, unless you shutdown
+# the slave server, delete master.info and restart the slaver server.
+# For that reason, you may want to leave the lines below untouched
+# (commented) and instead use CHANGE MASTER TO (see above)
+#
+# required unique id between 2 and 2^32 - 1
+# (and different from the master)
+# defaults to 2 if master-host is set
+# but will not function as a slave if omitted
+#server-id = 2
+#
+# The replication master for this slave - required
+#master-host = <hostname>
+#
+# The username the slave will use for authentication when connecting
+# to the master - required
+#master-user = <username>
+#
+# The password the slave will authenticate with when connecting to
+# the master - required
+#master-password = <password>
+#
+# The port the master is listening on.
+# optional - defaults to 3306
+#master-port = <port>
+#
+# binary logging - not required for slaves, but recommended
+#log-bin=mysql-bin
+
+# Uncomment the following if you are using InnoDB tables
+##innodb_data_home_dir = //opt/app/mysql/data
+##innodb_data_file_path = ibdata1:20M:autoextend:max:32G
+##innodb_log_group_home_dir = //opt/app/mysql/iblogs
+# You can set .._buffer_pool_size up to 50 - 80 %
+# of RAM but beware of setting memory usage too high
+#innodb_buffer_pool_size = 6380M
+#innodb_additional_mem_pool_size = 2M
+# Set .._log_file_size to 25 % of buffer pool size
+innodb_log_file_size = 150M
+innodb_log_files_in_group = 3
+innodb_log_buffer_size = 8M
+#innodb_flush_log_at_trx_commit = 1
+innodb_lock_wait_timeout = 50
+innodb_autoextend_increment = 100
+expire_logs_days = 8
+open_files_limit = 2000
+transaction-isolation=READ-COMMITTED
+####### Galera parameters #######
+## Galera Provider configuration
+wsrep_provider=/usr/lib/galera/libgalera_smm.so
+wsrep_provider_options="gcache.size=2G; gcache.page_size=1G"
+## Galera Cluster configuration
+wsrep_cluster_name="MSO-automated-tests-cluster"
+wsrep_cluster_address="gcomm://"
+#wsrep_cluster_address="gcomm://mariadb1,mariadb2,mariadb3"
+##wsrep_cluster_address="gcomm://192.169.3.184,192.169.3.185,192.169.3.186"
+## Galera Synchronization configuration
+wsrep_sst_method=rsync
+#wsrep_sst_method=xtrabackup-v2
+#wsrep_sst_auth="sstuser:Mon#2o!6"
+## Galera Node configuration
+wsrep_node_name="mariadb1"
+##wsrep_node_address="192.169.3.184"
+wsrep_on=ON
+## Status notification
+#wsrep_notify_cmd=/opt/app/mysql/bin/wsrep_notify
+#######
+
+
+[mysqldump]
+quick
+max_allowed_packet = 16M
+
+[mysql]
+no-auto-rehash
+# Remove the next comment character if you are not familiar with SQL
+#safe-updates
+
+[myisamchk]
+key_buffer_size = 20971520
+
+##[mysqlhotcopy]
+##interactive-timeout
+##[mysqld_safe]
+##malloc-lib=//opt/app/mysql/local/lib/libjemalloc.so.1
+##log-error=//opt/app/mysql/log/mysqld.log
+
+general_log_file = /var/log/mysql/mysql.log
+general_log = 1
diff --git a/mdbc-packages/mdbc-docker/compose/two-sites/volumes/mariadb/docker-entrypoint-initdb.d/01-create-test-database.sh b/mdbc-packages/mdbc-docker/compose/two-sites/volumes/mariadb/docker-entrypoint-initdb.d/01-create-test-database.sh
new file mode 100644
index 0000000..3316153
--- /dev/null
+++ b/mdbc-packages/mdbc-docker/compose/two-sites/volumes/mariadb/docker-entrypoint-initdb.d/01-create-test-database.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+#
+# ============LICENSE_START=====================================================
+# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
+# ==============================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=======================================================
+#
+
+echo "Creating test database and user . . ."
+mysql -uroot -p$MYSQL_ROOT_PASSWORD << 'EOF' || exit 1
+DROP DATABASE IF EXISTS `test`;
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET latin1 */;
+DELETE FROM mysql.user WHERE User='test';
+CREATE USER 'test';
+GRANT ALL ON test.* TO 'test' identified by 'password' with GRANT OPTION;
+FLUSH PRIVILEGES;
+EOF
diff --git a/mdbc-packages/mdbc-docker/compose/two-sites/volumes/mdbc-server-1/config/music.properties b/mdbc-packages/mdbc-docker/compose/two-sites/volumes/mdbc-server-1/config/music.properties
new file mode 100644
index 0000000..b030b62
--- /dev/null
+++ b/mdbc-packages/mdbc-docker/compose/two-sites/volumes/mdbc-server-1/config/music.properties
@@ -0,0 +1,4 @@
+cassandra.host = cassandra-1
+cassandra.user = cassandra
+cassandra.password = cassandra
+zookeeper.host = cassandra-1
diff --git a/mdbc-packages/mdbc-docker/compose/two-sites/volumes/mdbc-server-1/config/tableConfiguration.json b/mdbc-packages/mdbc-docker/compose/two-sites/volumes/mdbc-server-1/config/tableConfiguration.json
new file mode 100644
index 0000000..3438210
--- /dev/null
+++ b/mdbc-packages/mdbc-docker/compose/two-sites/volumes/mdbc-server-1/config/tableConfiguration.json
@@ -0,0 +1,23 @@
+{
+ "partitions": [
+ {
+ "tables": [
+ {
+ "table": "Persons"
+ }
+ ],
+ "owner": "",
+ "mriTableName": "musicrangeinformation",
+ "mtxdTableName": "musictxdigest",
+ "partitionId": "",
+ "replicationFactor": 1
+ }
+ ],
+ "musicNamespace": "namespace",
+ "tableToPartitionName": "tabletopartition",
+ "partitionInformationTableName": "partitioninfo",
+ "redoHistoryTableName": "redohistory",
+ "sqlDatabaseName": "test",
+ "internalNamespace": "music_internal",
+ "internalReplicationFactor": 1
+}
diff --git a/mdbc-packages/mdbc-docker/compose/two-sites/volumes/mdbc-server-2/config/music.properties b/mdbc-packages/mdbc-docker/compose/two-sites/volumes/mdbc-server-2/config/music.properties
new file mode 100644
index 0000000..b030b62
--- /dev/null
+++ b/mdbc-packages/mdbc-docker/compose/two-sites/volumes/mdbc-server-2/config/music.properties
@@ -0,0 +1,4 @@
+cassandra.host = cassandra-1
+cassandra.user = cassandra
+cassandra.password = cassandra
+zookeeper.host = cassandra-1
diff --git a/mdbc-packages/mdbc-docker/compose/two-sites/volumes/mdbc-server-2/config/tableConfiguration.json b/mdbc-packages/mdbc-docker/compose/two-sites/volumes/mdbc-server-2/config/tableConfiguration.json
new file mode 100644
index 0000000..e4d581b
--- /dev/null
+++ b/mdbc-packages/mdbc-docker/compose/two-sites/volumes/mdbc-server-2/config/tableConfiguration.json
@@ -0,0 +1,23 @@
+{
+ "partitions": [
+ {
+ "tables": [
+ {
+ "table": "Invoices"
+ }
+ ],
+ "owner": "",
+ "mriTableName": "musicrangeinformation",
+ "mtxdTableName": "musictxdigest",
+ "partitionId": "",
+ "replicationFactor": 1
+ }
+ ],
+ "musicNamespace": "namespace",
+ "tableToPartitionName": "tabletopartition",
+ "partitionInformationTableName": "partitioninfo",
+ "redoHistoryTableName": "redohistory",
+ "sqlDatabaseName": "test",
+ "internalNamespace": "music_internal",
+ "internalReplicationFactor": 1
+}