diff --git a/clickhouse/config_update_scripts/update_compose.py b/clickhouse/config_update_scripts/update_compose.py index 6ab8ac2..5e677e2 100644 --- a/clickhouse/config_update_scripts/update_compose.py +++ b/clickhouse/config_update_scripts/update_compose.py @@ -20,7 +20,7 @@ if __name__ == "__main__": # extracting only 'server1','server2'... all_service_names = [ name.split('-')[-1] for name in all_service_names] - curr_num_servers = sorted(all_service_names)[-1][-1] + curr_num_servers = int(sorted(all_service_names)[-1][-1]) replication_factor = 2 curr_num_shards = curr_num_servers/replication_factor @@ -57,21 +57,27 @@ if __name__ == "__main__": output_path = f'../node{i}-config/remote-servers.xml' curr_remote_servers_xml.write(output_path, encoding='utf-8', xml_declaration=False) - env = Environment(loader=FileSystemLoader('.')) + env = Environment(loader=FileSystemLoader('../jinja-templates')) service_template = env.get_template('service.yml.jinja') + volume_template = env.get_template('volume.yml.jinja') # loading existing docker-compose file with open('../docker-compose.yaml','r') as f: compose_f = yaml.safe_load(f) # rendering the new service - new_service1 = service_template.render(server_num=curr_num_servers+1) - new_service2 = service_template.render(server_num=curr_num_servers+2) + new_service1 = yaml.safe_load(service_template.render(server_num=curr_num_servers+1)) + new_service2 = yaml.safe_load(service_template.render(server_num=curr_num_servers+2)) + + new_volume1 = yaml.safe_load(volume_template.render(server_num=curr_num_servers+1)) + new_volume2 = yaml.safe_load(volume_template.render(server_num=curr_num_servers+2)) # adding the new service to docker-compose compose_f['services'].update(new_service1) compose_f['services'].update(new_service2) - + compose_f['volumes'].update(new_volume1) + compose_f['volumes'].update(new_volume2) + if compose_f: with open('../docker-compose.yaml','w') as yamlfile: yaml.safe_dump(compose_f, yamlfile) diff --git a/clickhouse/jinja-templates/service.yml.jinja b/clickhouse/jinja-templates/service.yml.jinja index 1ae0414..1ee1631 100644 --- a/clickhouse/jinja-templates/service.yml.jinja +++ b/clickhouse/jinja-templates/service.yml.jinja @@ -3,7 +3,7 @@ clickhouse-server{{server_num}}: container_name: clickhouse-server{{server_num}} volumes: - ./node{{server_num}}-config/:/etc/clickhouse-server/config.d/ - - clickhouse_data{{server_num}}:/var/lib/clickhouse + - clickhouse_server{{server_num}}_data:/var/lib/clickhouse networks: clickhouse-server-network: aliases: @@ -17,10 +17,10 @@ clickhouse-server{{server_num}}: # constraints: [node.labels.role == server] update_config: delay: 10s - # resources: - # limits: - # cpus: "0.50" - # memory: 100M + resources: + limits: + cpus: "0.50" + memory: 100M depends_on: - clickhouse-keeper1 - clickhouse-keeper2 diff --git a/clickhouse/jinja-templates/volume.yml.jinja b/clickhouse/jinja-templates/volume.yml.jinja new file mode 100644 index 0000000..e9324d0 --- /dev/null +++ b/clickhouse/jinja-templates/volume.yml.jinja @@ -0,0 +1,4 @@ +clickhouse_server{{server_num}}_data: + driver: local +clickhouse_server{{server_num}}_TTL: + driver: local \ No newline at end of file