# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information rega4rding copyright ownership.
# The ASF licenses this file to You 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.

# This configuration file is case SENSITIVE
# This configuration file will be updated by the script. After updating, all comments will be gone
# For more information about this configuration file, check https://docs.python.org/2/library/configparser.html

# the folder will be added to the file name automatically.
[output]
output_folder = /your_path/output
# the result of command "gce info clustername" on the GCE controller
gce_info_output = gce_info_output.txt
log_file = log.txt

[gce]
gce_controller_ip = your_gce_controller_ip
gce_controller_user = root
gce_controller_key_file = /your_path/gce-key
# time in seconds waiting for GCE VM to boot
gce_boot_time = 50

[cluster]
vm_user = root
# the same as the GCE controller for GCE
vm_key_file = /your_path/gce-key
vm_code_directory = /agent-simulator
cluster_info_file = config/cluster.txt

[ambari_agent_vm]
# ambari_agent_vm_type = --base
# 2 cores, 7.5GB RAM
# ambari_agent_vm_type = --medium
# 4 cores, 15GB RAMvm_key_file
# ambari_agent_vm_type = --large
# 8 cores, 30GB RAM
# ambari_agent_vm_type = --xxlarge
ambari_agent_vm_type = --large
# only support centos 7
ambari_agent_vm_os = --centos7
#---------------------------------------------
# use other partition or directory as the storage of docker. comment this line to disable
# /grid/0/ requires --extradisk to be present for this VM
use_partition = /grid/0/
# use extra disk. comment this to disable
ambari_agent_vm_extra_disk = --extradisk
#---------------------------------------------

[docker]
# The docker hostname would be {Container_hostname_fix}-{index}-{cluster name}
# The docker domain name would be {Container_hostname_fix}-{index}-{cluster name}.weave.local
container_hostname_fix = docker

#==============================================================================================================
# pull this image from Docker hub instead of build from Docker file. yes to confirm, other string to disable
# pull_docker_hub = yes
# docker_image_name = image_name
#++++++++++++++++++++++++++++++++++++++++++++++++++++
pull_docker_hub = no
docker_image_name = ambari/agent-sim
# The name of the Dockerfile under Docker/
dockerfile_name = Yum_Dockerfile
#==============================================================================================================


[ambari_server_vm]
ambari_server_vm_type = --large
ambari_server_vm_os = --centos7
#ambari_server_vm_extra = --extradisk

[service_server_vm]
service_server_vm_type = --large
service_server_vm_os = --centos7
#service_server_vm_extra = --extradisk
# The UI port of the service server, like NameNode, HBase master. This makes these ports accessible from outside
server_port_list = 50070,8088,16010,19888

[weave]
# Internal Weave network will use this IP as a starting point,
# and automatically assign IP to every node.
weave_ip_base = 192.168.1.1
weave_ip_mask = 16




