##############################################
##### REMOVE FROM RELEASE BRANCHES START #####
##############################################

#
# Share details
# These will ONLY be used if the user runs the binary directly or passes
# "none" as source in the mount command. In that case account and container
# are mandatory, cloud_suffix can be guessed and port is default 2048.
#
account: sjc22prdste06hnfsv3acc1
container: nfsv3test

#cloud_suffix: blob.core.windows.net
#cloud_suffix: blob.preprod.core.windows.net
#port: 2048

#
# Misc options
# fuse_* config variables control some fuse configurable value.
# fuse_max_threads has the same effect as fuse cmdline option "-o max_threads=".
# fuse_max_idle_threads has the same effect as fuse cmdline option "-o max_idle_threads=".
# Value of -1 for these imply "use fuse defaults". Fuse defaults must be fine for most cases.
#
debug: false
fuse_max_threads: -1
fuse_max_idle_threads: -1
fuse_max_background: 4096

#
# These are currently not supported.
#
#filecache.enable: false
#filecache.cachedir: /mnt
#filecache.max_size_gb: 1000
#cache_max_mb: 4096

#
# Config controlling misc system behaviour.
#
sys.force_stable_writes: true
sys.resolve_before_reconnect: true
sys.nodrc.remove_noent_as_success: true
sys.nodrc.rename_noent_as_success: true
sys.nodrc.create_exist_as_success: true

############################################
##### REMOVE FROM RELEASE BRANCHES END #####
############################################

###################
##### Phase 1 #####
###################

#
# NFS mount options
# These have the same name and meaning as Linux NFS client mount options.
# Also note that only a subset of Linux mount options are supported.
#

# valid range: [1, 256]
nconnect: 96

# valid range: [100, 6000]
timeo: 600

# valid range: [1, 100]
retrans: 2

# valid range: [1, 3600]
acregmin: 3
acregmax: 60
acdirmin: 30
acdirmax: 60
actimeo: 300

# valid values: all|none|pos|positive
lookupcache: all

# valid range: [1048576, 3145728]
# also rsize must not be greater than wsize.
rsize: 3145728
wsize: 3145728

# count/maxcount value passed in READDIR/READDIRPLUS RPC requests.
# valid range: [8192, 3145728]
# effective value depends on the server support.
readdir_maxcount: 1048576

#
# Consistency config.
# This controls the consistency level desired wrt updates from other clients.
# Following values are supported (from lowest to highest consistency):
# - solowriter
#   Use this when this fuse client is the only one accessing the share or all
#   other clients have mounted the share readonly, and hence it's guaranteed that
#   file/dirs cannot be updated outside our knowledge. This implies we can cache
#   attributes and data indefinitely and local changes will correctly update the
#   caches.
#   actimeo config will be ignored and set to "infinite" value.
#   Beware, if you wrongly choose this when there are other clients actually
#   making changes to the share (creating/deleting files/dirs) those changes may
#   not reflect for indefinitely long period.
#
# - standardnfs
#   Use this to get the same consistency as standard NFS, which is close-to-open
#   consistency with fresh attributes queried every actimeo period. actimeo
#   config will be honoured.
#   Files/directories are assumed to not have changed till actimeo after which
#   we make a GETATTR call to query the attributes based on which we decide if
#   the file/dir cache needs to be invalidated.
#   Hence any changes done by other clients will be reflected no later than
#   actimeo period.
#   Other non-NFS protocol clients may not see changes to files made by this
#   fuse client till the file is closed.
#
# - azurempa (Multi Protocol Access)
#   This is same as "standard" with one difference - non-NFS protocol clients
#   will see changes to files made by this fuse client more promptly.
#   Use this if you want to access files updated by this client, from other
#   non-NFS protocols.
#
# valid values: solowriter and standardnfs, for now.
#
consistency: solowriter

#
# Cache config
#
# We cache the following:
# - file/dir attributes
# - lookup results
# - readdir data
# - file data
#
# attributes are cached in the kernel and/or user and can be controlled by the
# following mount options:
# - acregmin/acregmax
# - acdirmin/acdirmax
# - actimeo
# - lookupcache
#
# Attribute caching can be effectively disabled by setting actimeo to 0.
#
# Readdir data can be cached in the kernel and user caches.
# User cache is always enabled. Its max size can be capped using the
# cache.readdir.user.max_size_mb config (default 4096). This is the size of all
# directory caches combined. Once the readdir cache size exceeds the max size,
# further entries are not cached. This means that we won't get any readdir ahead
# benefits, though it won't affect directory enumeration functionally.
# kernel cache can be controlled using cache.readdir.kernel.enable config.
# It's almost never beneficial to disable the kernel readdir cache.
#
# File data can be cached in the kernel and/or user caches.
# User cache is always enabled, it can be memory and/or file backed (file
# backed cache is currently not supported).
# kernel cache can be controlled using cache.data.kernel.enable config.
# Memory backed caches are controlled using cache.data.* configs, while
# file backed cache are controlled using filecache.* configs.
#
# If your workload is primarily large files read/write then kernel data cache
# (cache.data.kernel.enable) should not be enabled and data cache should be
# enabled. For small file, small IO workloads you may get better performance
# with kernel cache enabled.
#
# Readahead is automatically scaled (up and down) based on the available cache
# and whether there are ongoing writes competing for the cache. readahead_kb
# is the initial value which is the scaled appropriately. It can be set to 0
# for disabling readaheads completely.
# For most cases you don't need to specify readahead_kb explicitly.
#
# cache.data.user.max_size_mb can be expressed as a percentage or an absolute
# value expressed in MiB. Percentage is of the total RAM in the system. It can
# be expressed as e.g., "80%.
# If not specified the default cache size is 60% of the total RAM but capped
# at 16GB.
#
#readahead_kb: 16384
cache.attr.user.enable: true
cache.readdir.kernel.enable: true
#cache.readdir.user.max_size_mb: 4096
cache.data.kernel.enable: false
#cache.data.user.max_size_mb: "60%"
#cache.data.user.max_size_mb: 4096

#
# aznfsclient will disable (to be precise, resist) OOM killing as it's an
# important process and killing it may cause data loss. If you don't want
# aznfsclient to do that, set this to false.
#
oom_kill_disable: true

###################
##### Phase 2 #####
###################

#
# Auth Config
#
auth: false

#
# Option controlling transport security, takes following values:
# none: do not use TLS encryption.
# tls: use TLS encryption, as defined in RPC-with-TLS RFC 9289.
#
xprtsec: none

