Files
my-rook-config/pkg/daemon/multus/config.yaml
T
Sheetal Pamecha 06c176524a multus: improve the multus validation test's flakiness metric
Allow the flakiness threshold window to be tuned from the cli

Signed-off-by: Sheetal Pamecha <spamecha@redhat.com>
2023-10-31 15:23:10 +05:30

83 lines
5.1 KiB
YAML

# The intended namespace where the validation test will be run. This is should be where the
# Rook-Ceph cluster will be installed.
namespace: "{{ .Namespace }}"
# These fields should be set to the name of the Network Attachment Definition (NAD) which will be
# used for the Ceph cluster's public or cluster network, respectively. This should be a namespaced
# name in the form <namespace>/<name> if the NAD is defined in a different namespace from the
# CephCluster namespace. One or both of the fields may be set.
publicNetwork: "{{ .PublicNetwork }}"
clusterNetwork: "{{ .ClusterNetwork }}"
# This is the time to wait for resources to change to the expected state. For example, for the test
# web server to start, for test clients to become ready, or for test resources to be deleted. At
# longest, this may need to reflect the time it takes for client pods to get address assignments and
# then for each client to determine that its network connection is stable.
# This should be at least 1 minute. 2 minutes or more is recommended.
resourceTimeout: "{{ .ResourceTimeout }}"
# This is the time window in which validation clients are all expected to become "Ready" together.
# Validation clients are all started at approximately the same time, and they should all stabilize
# at approximately the same time. Once the first validation client becomes "Ready," the tool checks
# that all of the remaining clients become "Ready" before this threshold duration elapses.
# In networks that have connectivity issues, limited bandwidth, or high latency, clients will contend
# for network traffic with each other, causing some clients to randomly fail and become "Ready" later
# than others. These randomly-failing clients are considered "flaky." Adjust this value to reflect
# expectations for the underlying network. For fast and reliable networks, this can be set to a smaller
# value. For networks that are intended to be slow, this can be set to a larger value. Additionally, for
# very large Kubernetes clusters, it may take longer for all clients to start, and it therefore may take
# longer for all clients to become "Ready"; in that case, this value can be set slightly higher.
flakyThreshold: "{{ .FlakyThreshold }}"
# The Nginx image which will be used for the web server and clients.
nginxImage: "{{ .NginxImage }}"
# Specify validation test config for groups of nodes. A Ceph cluster may span more than one type of
# node, but usually not more than 3. Node types defined here should not overlap with each other.
# Common examples of different node types are below:
# - General, converged nodes that are used for both Ceph daemons and user applications
# - Dedicated storage nodes for hosting Ceph storage daemons
# - Non-storage nodes running workloads other than Ceph (running only Ceph CSI plugin daemons)
# - Dedicated nodes for hosting Ceph arbiter mons
# - Dedicated nodes for hosting only Ceph core (RADOS) components: mons, mgrs, OSDs
# - Dedicated nodes for hosting non-core storage components: MDS, RGW, CSI provisioner, etc.
nodeTypes:
{{- range $type, $config := .NodeTypes }}
{{ $type }}: # Unique name for this node type (lower-case alphanumeric characters and dashes only)
# This should reflect the maximum number of OSDs that may run on any given node of this type
# during a worst-case failure scenario. This may be a static number expected by the
# StorageClassDeviceSets planned for the CephCluster. For portable OSDs, this may be larger to
# account for OSDs being rescheduled during node failures.
osdsPerNode: {{ $config.OSDsPerNode }}
# This should reflect the maximum number of Ceph and CSI daemons that may run on any given node
# during a worst-case failure scenario. CSI requires 2 Multus addresses per plugin daemon.
#
# In the converged case, a Rook cluster with a single instance of all resource types might run
# these daemons on a single node during worst-case failure:
# 1 mon, 1 mgr, 1 MDS, 1 NFS server, 1 RGW, 1 rbdmirror, 1 cephfsmirror, plus
# 1 CSI provisioner and 2 CSI plugins for all 3 CSI types (RBD, CephFS, NFS) -- 16 daemons
#
# A node that is running only client workloads would run only the CSI plugin daemons per node:
# 2 CSI plugins for all 3 CSI type (RBD, CephFS, NFS) -- 6 daemons
otherDaemonsPerNode: {{ $config.OtherDaemonsPerNode }}
# Placement options for informing the validation tool how to identify this type of node.
# Affinities are not supported because their behavior is too relaxed for ensuring a specific
# number of daemons per node.
placement:
# Kubernetes Pod spec node selector for assigning validation Pods to this node type.
# See https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
nodeSelector:
{{- range $k, $v := $config.Placement.NodeSelector }}
{{ $k }}: {{ $v }}
{{- end }}
# Kubernetes tolerations for assigning validation Pods to this node type.
# See https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
tolerations:
{{- range $idx, $toleration := $config.Placement.Tolerations }}
- {{ $toleration.ToJSON }}
{{- end }}
{{ end }}