openwhisk.home={{ openwhisk_home }}

python.27=python
use.cli.download=false
nginx.conf.dir={{ nginx.confdir }}
testing.auth={{ openwhisk_home }}/ansible/files/auth.guest
vcap.services.file=

whisk.logs.dir={{ whisk_logs_dir }}
environment.type={{ environmentInformation.type }}
whisk.ssl.client.verification={{ nginx.ssl.verify_client }}
whisk.ssl.cert={{ nginx.ssl.path }}/{{ nginx.ssl.cert }}
whisk.ssl.key={{ nginx.ssl.path }}/{{ nginx.ssl.key }}
whisk.ssl.challenge=openwhisk

{#
 # the whisk.api.host.name must be a name that can resolve form inside an action container,
 # or an ip address reachable from inside the action container.
 #
 # the whisk.api.localhost.name must be a name that resolves from the client; it is either the
 # whisk_api_host_name if it is defined, an environment specific localhost name, or the default
 # localhost name.
 #
 # the whisk.api.vanity.subdomain.parts indicates how many conforming parts the router is configured to
 # match in the subdomain, which it rewrites into a namespace; each part must match ([a-zA-Z0-9]+)
 # with parts separated by a single dash.
 #}
whisk.api.host.proto={{ whisk_api_host_proto | default('https') }}
whisk.api.host.port={{ whisk_api_host_port | default('443') }}
whisk.api.host.name={{ whisk_api_host_name | default(groups['edge'] | first) }}
whisk.api.localhost.name={{ whisk_api_localhost_name | default(whisk_api_host_name) | default(whisk_api_localhost_name_default) }}
whisk.api.vanity.subdomain.parts=1

runtimes.manifest={{ runtimesManifest | to_json }}

limits.actions.invokes.perMinute={{ limits.invocationsPerMinute }}
limits.actions.invokes.concurrent={{ limits.concurrentInvocations }}
limits.actions.invokes.concurrentInSystem={{ limits.concurrentInvocationsSystem }}
limits.triggers.fires.perMinute={{ limits.firesPerMinute }}
limits.actions.sequence.maxLength={{ limits.sequenceMaxLength }}

edge.host={{ groups["edge"]|first }}
kafka.hosts={{ kafka_connect_string }}
redis.host={{ groups["redis"]|default([""])|first }}
router.host={{ groups["edge"]|first }}
zookeeper.hosts={{ zookeeper_connect_string }}
invoker.hosts={{ groups["invokers"] | map('extract', hostvars, 'ansible_host') | list | join(",") }}

edge.host.apiport=443
kafkaras.host.port={{ kafka.ras.port }}
redis.host.port={{ redis.port }}
invoker.hosts.basePort={{ invoker.port }}

controller.hosts={{ groups["controllers"] | map('extract', hostvars, 'ansible_host') | list | join(",") }}
controller.host.basePort={{ controller.basePort }}
controller.instances={{ controller.instances }}
controller.protocol={{ controller.protocol }}

invoker.container.network=bridge
invoker.container.policy={{ invoker_container_policy_name | default()}}
invoker.container.dns={{ invoker_container_network_dns_servers | default()}}
invoker.numcore={{ invoker.numcore }}
invoker.coreshare={{ invoker.coreshare }}
invoker.useRunc={{ invoker.useRunc }}

main.docker.endpoint={{ hostvars[groups["controllers"]|first].ansible_host }}:{{ docker.port }}

docker.registry={{ docker_registry }}
docker.image.prefix={{ docker.image.prefix }}
#use.docker.registry=false
docker.port={{ docker.port }}
docker.timezone.mount=
docker.image.tag={{ docker.image.tag }}
docker.tls.cmd=
docker.addHost.cmd=
docker.dns.cmd={{ docker_dns }}
docker.restart.opts={{ docker.restart.policy }}

db.provider={{ db_provider }}
db.protocol={{ db_protocol }}
db.host={{ db_host }}
db.port={{ db_port }}
db.username={{ db_username }}
db.password={{ db_password }}
db.prefix={{ db_prefix }}
db.whisk.auths={{ db.whisk.auth }}
db.whisk.actions={{ db.whisk.actions }}
db.whisk.activations={{ db.whisk.activations }}
db.hostsList={{ groups["db"] | map('extract', hostvars, 'ansible_host') | list | join(",") }}
db.instances={{ db.instances }}

apigw.auth.user={{apigw_auth_user}}
apigw.auth.pwd={{apigw_auth_pwd}}
apigw.host.v2={{apigw_host_v2}}

loadbalancer.invokerBusyThreshold={{ invoker.busyThreshold }}
