# PingFederate JGroups Initialization Properties File

# The properties in this file control the discovery protocol initialization
# and apply only if "pf.operational.mode" is *not* STANDALONE.
# Changes are optional. For detailed information, refer to the Server Clustering Guide.

# ---------------------------------
#   Cluster Discovery Protocol
# ---------------------------------
# This property configures the discovery protocol used by the cluster.
# The default is TCPPING.
#
#   Valid values are:
#     TCPPING
#     NATIVE_S3_PING
#     DNS_PING
#     AWS_PING
#     SWIFT_PING
#
pf.cluster.discovery.protocol=TCPPING

# Optional property to declare fully-qualified class name of discovery protocol not included in the supported list for
# "pf.cluster.discovery.protocol". Both "pf.cluster.discovery.protocol" and "pf.cluster.discovery.class" must be set
# when using an alternative discovery protocol.
pf.cluster.discovery.class=

# ---------------------------------
#   TCPPING configuration
# ---------------------------------
# Discovery using a specified list of cluster hosts.
# See JGroups documentation on TCPPING for further information on the available settings.
#
# Comma delimited list of hosts to be contacted for initial membership.
pf.cluster.TCPPING.initial_hosts=${pf.cluster.tcp.discovery.initial.hosts}
#
# Whether to return all cluster members on a discovery request. The default is false.
# If pf.cluster.tcp.discovery.initial.hosts does not include all hosts in the cluster, then this field
# must be set to true. However, for the best reliability and performance, it is recommended to leave
# this as false and ensure that all cluster hosts are included in pf.cluster.tcp.discovery.initial.hosts.
pf.cluster.TCPPING.return_entire_cache=false
#
# The number of additional ports to be probed for membership.
pf.cluster.TCPPING.port_range=0

# ---------------------------------
#   NATIVE_S3_PING configuration
# ---------------------------------
# Discovery using the AWS SDK and a file stored in S3. NATIVE_S3_PING is the recommended dynamic discovery
# mechanism when running in AWS. When running Kubernetes in a single region, DNS_PING is an alternative.
# See the JGroups documentation for additional discovery mechanisms when running in other environments.
# See https://github.com/jgroups-extras/native-s3-ping for further information on the available settings.
#
# The name of the region in which discovery should be attempted.
# If no region is specified, only nodes in the same region as this node can be discovered.
pf.cluster.NATIVE_S3_PING.region_name=
#
# The name of the bucket in your Amazon S3 environment.
pf.cluster.NATIVE_S3_PING.bucket_name=
#
# (OPTIONAL) To override the S3 endpoint.
pf.cluster.NATIVE_S3_PING.endpoint=
#
# Whether on a view change, the new coordinator removes all data except its own. Default is true.
pf.cluster.NATIVE_S3_PING.remove_all_data_on_view_change=true
#
# Ensures coordinator recreates its discovery file if one does not exist. Default is true.
pf.cluster.NATIVE_S3_PING.write_data_on_find=true

# ---------------------------------
#   DNS_PING configuration
# ---------------------------------
# This is an alternative dynamic discovery mechanism when running Kubernetes in a single region.
# See JGroups documentation on DNS_PING for further information on the available settings.
#
# A comma-separated list of DNS queries for fetching cluster members.
pf.cluster.DNS_PING.dns_query=

# ---------------------------------
#   AWS_PING configuration
# ---------------------------------
# This is an alternative to NATIVE_S3_PING when running on EC2 and not using container technology.
# This plugin requires the ec2:Describe permission to be enabled in either the IAM settings for this EC2
# instance or associated with the access_key configured below.
#
# Tags, Filters, or a combination of the two can be used to identify the systems in EC2 that should be a
# part of the PingFederate cluster.
#
# The port number that PingFederate listens on for cluster communication.
# This should normally be left as ${pf.cluster.bind.port}.
pf.cluster.AWS_PING.port_number=${pf.cluster.bind.port}
#
# (OPTIONAL) PingFederate may probe additional ports when attempting to connect to other
# nodes. Specify the number of additional ports beyond port_number to probe. The default is 0.
pf.cluster.AWS_PING.port_range=0
#
# (OPTIONAL) A comma separated list of EC2 regions in which discovery should be attempted. If no regions
# are specified, only nodes in the same region as this node will be discovered. If nodes are running in
# multiple regions, it is recommended to list all regions in this field.
pf.cluster.AWS_PING.regions=
#
# (OPTIONAL) A comma separated list of EC2 tags to use to compare to other nodes found in EC2. For a node
# to be considered, all tags need to match.
# Example: tags=TAG1,TAG2 - Nodes that have the same value as this node for BOTH tags will be considered
# for joining the cluster.
pf.cluster.AWS_PING.tags=
#
# (OPTIONAL) A semi-colon separated list of key value pairs to match on. Please refer to the EC2 documentation
# to see what attributes are available for filtering.
# Example: filters=FILTER1=VALUE1,VALUE2;FILTER2=VALUE3 - Any nodes that match at least one
# value for each filter will be considered for joining the cluster.
pf.cluster.AWS_PING.filters=
#
# (OPTIONAL) The access_key to use to query EC2 to get instance information. If omitted, AWS_PING
# will use the IAM settings configured for this EC2 instance. May be encrypted using PingFederate's
# obfuscate utility.
pf.cluster.AWS_PING.access_key=
#
# (OPTIONAL) Required if an access_key is provided. The secret key associated with the access_key.
# If omitted, AWS_PING will use the IAM settings configured for this EC2 instance. May be encrypted
# using PingFederate's obfuscate utility.
pf.cluster.AWS_PING.secret_key=
#
# Whether error messages received from AWS are logged to the server log. Default is true.
pf.cluster.AWS_PING.log_aws_error_messages=true

# ---------------------------------
#   SWIFT_PING configuration
# ---------------------------------
# Discovery protocol based on Openstack Swift (object storage).
# Passwords and keys may be encrypted using PingFederate's obfuscate utility.
# See JGroups documentation on SWIFT_PING for further information on the available settings.
#
# The authentication type. Default is keystone_v_2_0.
pf.cluster.SWIFT_PING.auth_type=keystone_v_2_0
#
# The authentication URL.
pf.cluster.SWIFT_PING.auth_url=
#
# The username.
pf.cluster.SWIFT_PING.username=
#
# The password.
pf.cluster.SWIFT_PING.password=
#
# The Openstack Keystone tenant name.
pf.cluster.SWIFT_PING.tenant=
#
# The name of the root container.
pf.cluster.SWIFT_PING.container=
#
# Whether JGroups cleans up files when it detects a view change. Default is true.
pf.cluster.SWIFT_PING.remove_all_data_on_view_change=true