[database]
#
# Directory to store database.
#
# SDK databases are used to store a set of tables which contain the
# information of network, volume, image, etc. This option is used to
# tell SDK where to store the database files, make sure the process
# running SDK is able to read write and execute the directory.
#
# This param is optional
#dir=/var/lib/zvmsdk/databases/
[file]
#
# Directory to store sdk imported or exported files.
#
# SDK file repository to store the imported files and the files that will be
# exported, the imported files will be put into <file_repository>/imported
# the files to be exported will be put into <file_repository>/exported
#
# This param is optional
#file_repository=/var/lib/zvmsdk/files
[guest]
#
# The maximum allowed console log size, in kilobytes.
#
# Console logs might be transferred to sdk user, this option controls how
# large each file can be. A smaller size may mean more calls will be needed
# to transfer large consoles, which may not be desirable for performance reasons.
#
# This param is optional
#console_log_size=100
#
# Whether to automatically extend the partition and filesystem of guest.
#
# If set to True, when deploying an image to a larger disk, zvmsdk
# automatically extends the last partition and the file system to
# use up the whole disk.
#
# If do not want to do the extend action automaictly, you must set this option
# to be False.
#
# This param is optional
#extend_partition_fs=True
#
# The maximum time waiting until the guest reachable after started.
#
# When starting a guest, specify the timeout value will check the guest status
# until it becomes reachable or timeout.
#
# This param is optional
#reachable_timeout=180
#
# The interval time between 2 retries, in seconds.
#
# This will take effect only when you set softstop_retries item.
# What's more, the value of softstop_timeout/softstop_interval is
# the times retried.
#
# This param is optional
#softstop_interval=10
#
# The maximum time waiting until the guest shut down.
#
# Sometimes, the shutdown action will take a bit lone time to complete.
# If you want to make sure the guest in shut-down status after executing action
# of softstop, this will help.
#
# This param is optional
#softstop_timeout=120
[image]
#
# Default compress level for captured image.
#
# This param is optional
#default_compress_level=6
#
# Directory to store sdk images.
#
# SDK image repository to store the imported images and the staging images that
# is in snapshotting. Once snapshot finished, the image will be removed to the
# netboot directory accordingly. Two kinds of image repository looks like:
# /var/lib/zvmsdk/images/netboot/<image_osversion>/<imagename>
# /var/lib/zvmsdk/images/staging/<image_osversion>/<imagename>
#
# This param is optional
#sdk_image_repository=/var/lib/zvmsdk/images
[logging]
#
# Directory where log file to be put into.
#
# SDK has a set of logs to help administrator to debug
# and audit actions performed through SDK. Edit this option
# if you want to put logs into specified place.
#
# Please ensure the service running on the consume which
# consumes SDK has the authorization to write to the path.
#
# This param is optional
#log_dir=/var/log/zvmsdk/
#
# Level of the log.
#
# SDK utilize python logging package to help admin debug
# or analyze issues. it's recommend to set this value
# to logging.DEBUG to get more detailed logs and set it to
# logging.INFO(default) in normal situation.
#
# recommend values:
# logging.ERROR: level above ERROR will be written to log file.
# logging.WARNINS: level above WARNING(ERROR, WARNING)
# will be written to log file.
# logging.INFO: level above INFO(ERROR, WARNING, INFO)
# will be written to log file.
# logging.DEBUG: All log level (ERROR, WARNING, INFO, DEBUG)
# will be written to log file.
#
# This param is optional
#log_level=logging.INFO
[monitor]
#
# Cached monitor data update interval
#
# This is used to prevent excessive effort spent retrieving the
# monitor data by calling the SDK backend utilities. When this cache
# is enabled, a inspect call will only call the SDK backend utilities
# when the inspected guest's info does not exist in the cache or
# when the cache data is expired. And when an cache update is needed,
# all the existing guests' data will be retrieved in a single call to
# the backend.
#
# When this value is below or equal to zero, the cache
# will be disabled and each inspect call will need to call the backend
# utilities to get the inspected guest's monitor data.
#
# This param is optional
#cache_interval=300
[network]
#
# IP address of the Linux machine which is running SDK on.
#
# Some remote copy operations need to be performed during guest creation,
# this option tell the SDK the host ip which can be used to perform copy
# from and copy to operations.
#
# This param is required
#my_ip=None
[sdkserver]
#
# The IP address that the SDK server is listening on.
#
# When the SDK server deamon starts, it will try to bind to
# this address and port bind_port, and wait for the SDK client
# connection to handle API request.
#
# This param is optional
#bind_addr=127.0.0.1
#
# The port that the SDK server is listening on.
#
# This will work as a pair with bind_addr when the SDK server daemon
# starts, more info can be found in that configuration description.
#
# This param is optional
#bind_port=2000
#
# The maximum number of worker thread in SDK server to handle client requests.
#
# These worker threads would work concurrently to handle requests from client.
# This value should be adjusted according to the system resource and workload.
#
# This param is optional
#max_worker_count=64
#
# The size of request queue in SDK server.
#
# SDK server maintains a queue to keep all the accepted but not handled requests,
# and the SDK server workers fetch requests from this queue.
# To some extent, this queue size decides the max socket opened in SDK server.
# This value should be adjusted according to the system resource.
#
# This param is optional
#request_queue_size=128
[volume]
#
# fcp pair selection algorithm
#
# fcp_list example:
# fa00-fa02; fb00-fb02
#
# If use get_fcp_pair_with_same_index,
# then fcp pair is randomly selected from below combinations.
# [fa00,fb00],[fa01,fb01],[fa02,fb02]
#
# If use get_fcp_pair,
# then fcp pair is randomly selected from below combinations.
# [fa00,fb00],[fa01,fb00],[fa02,fb00]
# [fa00,fb01],[fa01,fb01],[fa02,fb01]
# [fa00,fb02],[fa01,fb02],[fa02,fb02]
#
# Possible value:
# 0 : use get_fcp_pair. this is the default
# 1 : use get_fcp_pair_with_same_index
#
# This param is optional
#get_fcp_pair_with_same_index=0
#
# The timeout value for waiting attach/detach punch scripts
# execution, in seconds.
#
# The default value is 1800 seconds, if the execution of punch scripts
# reached the timeout, the attach/detach will fail.
#
# This param is optional
#punch_script_execution_timeout=1800
#
# The timeout value for waiting refresh_bootmap execution, in seconds.
#
# The default value is 1200 seconds, if the execution of refresh_bootmap
# reached the timeout, the process of refresh_bootmap will be stopped.
#
# This param is optional
#refresh_bootmap_timeout=1200
[wsgi]
#
# Whether auth will be used.
#
# When sending http request from outside to running zvmsdk,
# Client will be requested to input username/password in order
# to authorize the call.
# Set this to 'none' indicated no auth will be used and 'auth'
# means username and password need to be specified.
#
# Possible value:
# 'none': no auth will be required
# 'auth': need auth, currently pyjwt is used to return a token
# to caller if the username and password is correct.
#
# This param is optional
#auth=none
#
# The max total number of concurrent deploy and capture requests allowed in a
# single z/VM Cloud Connector process.
#
# If more requests than this value are revieved concurrently, the z/VM Cloud
# Connector would reject the requests and return error to avoid resource
# exhaustion.
# .
#
# This param is optional
#max_concurrent_deploy_capture=20
#
# file path that contains admin-token to access sdk http server.
#
# Admin-token in order to get a user-token from zvm sdk, and the user-token
# will be used to validate request before user-token expire.
#
# This param is optional
#token_path=/etc/zvmsdk/token.dat
#
# How long the token is valid.
#
# If a token auth is used, the token return to user will be
# expired after the period passed. This ensure an user who
# get this token will not be authorized all the time, a new
# token need to be recreated after certain time period.
#
# This param is optional
#token_validation_period=3600
[zvm]
#
# Only used for SMAPIOUT is not ready.
#
# This param is optional
#bypass_smapiout=True
#
# Default LOGONBY userid(s) for the cloud.
#
# This is a set of z/VM userid(s) which are allowed to logon using the LOGONBY
# keyword to the guests created by the z/VM SDK solution, compatible with
# the LBYONLY keyword of the user directory statement. This value is only used
# when a guest is created. If you change this value, existing guests' directory
# entries are not automatically updated with the new value.
# When an ESM is installed, this parameter only governs when the ESM
# defers to CP's processing.
#
# Usage note:
# The default is empty string with nothing set.
# '' is an invalid value and it will cause VM deploying failed.
# Thus, DO NOT set default_admin_userid=''.
# When a non-empty string is provided, blank chars will be used as delimiter,
# you can use LOGONBY xxx command to log on the guest using the corresponding
# admin userid's password.
#
# For example, when you set this value to 'oper1 oper2 oper3 jones', it means
# you can use any one of 'oper1', 'oper2', 'oper3', 'jones' as an admin user.
#
# see the z/VM CP Planning and Administration for additional information.
#
# Possible values:
# A maximum of 8 blank-delimited strings. Each non-blank string must be a
# valid z/VM userid.
# e.g 'oper1 oper2' is a valid value.
# 'o1 o2 o3 o4 o5 o6 o7 o8 o9' is NOT a valid value.
#
# This param is optional
#default_admin_userid=None
#
# Virtual device number for default NIC address.
#
# This value is the first NIC virtual device number,
# each NIC needs 3 numbers for control/read/write, so by default
# the first NIC's address is 1000, the second one is 1003 etc.
#
# Possible values:
# An integer value in hex format, between 0 and 65536 (x'FFFF').
# It should not conflict with other device numbers in the z/VM guest's
# configuration, for example device numbers of the root or ephemeral or
# persistent disks.
#
# Sample NIC definitions in the z/VM user directory:
# NICDEF 1000 TYPE QDIO LAN SYSTEM <vswitch1> MACID <macid1>
# NICDEF 1003 TYPE QDIO LAN SYSTEM <vswitch2> MACID <macid2>
#
# This param is optional
#default_nic_vdev=1000
#
# zVM disk pool and type for root/ephemeral disks.
#
# The option is combined by 2 parts and use : as separator.
#
# The first part is the type of disks in the disk pool.
# The disks in one disk pool must in same type (ECKD or FBA).
# Possible values of the disk pool type:
# A string, either ECKD or FBA.
#
# The second part is the volume group name defined in your directory manager
# on your z/VM system, which will be used for allocating disks for
# new guest. A dollar sign ($) is not allowed in the name.
#
# Sample disk_pool values:
# ECKD:diskpo1
# FBA:testpool
#
# This param is optional
#disk_pool=None
#
# Virtual device number for capture function.
#
# This value identity the virtual device number for capture
# image when z/VM guest is power off.
#
# Possible values:
# An string value identify disk number like '0100'.
# If this value has been configured, capture image function will use
# this value as disk info to capture with first priority when z/VM
# guest is power off.
# This value don't work if z/VM guest status is power on.
# Sample root disk in user directory:
# MDISK 0100 <disktype> <start> <end> <volumelabel> <readwrite>
#
# This param is optional
#force_capture_disk=None
#
# The name of a list containing names of virtual servers to be queried. The list
# which contains the userid list by default is named: VSMWORK1 NAMELIST, see
# DMSSICNF COPY key: NameListFileIdAny. The list has to be accessible to the
# SMAPI servers.
#
# The length of namelist must no longer than 64.
#
# This param is optional
#namelist=None
#
# The port number of remotehost sshd.
#
# This param is optional
#remotehost_sshd_port=22
#
# If configure the dasd group, the user can configure `swap_default_with_mdisk`
# to create swap device with MDISK or VDISK, the default value `True` means create
# the swap device with MDISK, if `False`, create the swap device with VDISK.
#
# This param is optional
#swap_default_with_mdisk=True
#
# For swap disk to create from mdisk instead of vdisk only for the below boot from
# volume case. In boot from volume case, there might be no disk pool at all, then
# the only choice is to use vdisk (or using FCP LUN which is complicated),
# if customer doesn't want vdisk, then set this value to `True` so
# VDISK will not be used and in turn it will fail check. If the customer wants
# to use MDISK to create swap device, he need configure dasd group and set
# `swap_default_with_mdisk` to `True` which is the default value.
#
# This param is optional
#swap_force_mdisk=False
#
# The default maximum number of virtual processers the user can define.
# This value is used as the default value for maximum vcpu number when
# create a guest with no max_cpu specified.
#
# The number must be a decimal value between 1 and 64.
#
# This param is optional
#user_default_max_cpu=32
#
# The default maximum size of memory the user can define.
# This value is used as the default value for maximum memory size when
# create a guest with no max_mem specified.
# The value can be specified by 1-4 bits of number suffixed by either
# M (Megabytes) or G (Gigabytes) and the number must be a whole number,
# values such as 4096.8M or 32.5G are not supported.
#
# The value should be adjusted based on your system capacity.
#
# This param is optional
#user_default_max_memory=64G
#
# The default maximum size of reserved memory in a vm's direct entry.
# This value is used as the default value for maximum reserved memory
# size for a guest.
# The value can be specified by 1-4 bits of number suffixed by either
# M (Megabytes) or G (Gigabytes) and the number must be a whole number,
# values such as 4096.8M or 32.5G are not supported.
#
# The value should be adjusted based on your system capacity.
#
# This param is optional
#user_default_max_reserved_memory=64G
# This param is optional
#user_default_password=None
#
# The default SHARE settings configuration.
#
# The recommend value of SHARE. From z/VM doc, SHARE is relative value of
# virtual machine and if you set SHARE to 100 while virtual CPUs are 4,
# then each vCPU get 25 entitlement.
#
# So the mechanism currently is:
#
# 1) If a share is given, set SHARE value to the VM
# 2) If no SHARE is given during creation, check user_default_share_unit
# 3) If user_default_share_unit is 0, do nothing
# 4) If user_default_share_unit it not 0(current default is 100),
# then insert statement `SHARE RELATIVE user_default_share_unit*vCPU`
# into user direct, for example, with user_default_share_unit=100,
# 4 vCPU will create `SHARE RELATIVE 400`.
#
# This align the best practice of z/VM recommendation.
#
# This param is optional
#user_default_share_unit=100
#
# PROFILE name to use when creating a z/VM guest.
#
# When SDK deploys an guest on z/VM, it can include some
# common statements from a PROFILE definition.
# This PROFILE must already be included in your z/VM user directory.
#
# Possible values:
# An 8 character name of a PROFILE that is already defined in the z/VM
# user directory.
#
# This param is required
#user_profile=None
#
# Virtual device number for root disk.
#
# When SDK deploys an guest, it creates a root disk and potentially
# several data disks. This value is the virtual device number of the root
# disk.
#
# Possible values:
# An integer value in hex format, between 0 and 65536 (x'FFFF').
# It should not conflict with other device numbers in the z/VM guest's
# configuration, for example device numbers of the NICs or ephemeral or
# persistent disks.
#
# Sample root disk in user directory:
# MDISK 0100 <disktype> <start> <end> <volumelabel> <readwrite>
#
# This param is optional
#user_root_vdev=0100