Affinity Trait
Allows to constrain which nodes the integration pod(s) are eligible to be scheduled on, based on labels on the node, or with inter-pod affinity and anti-affinity, based on labels on pods that are already running on the nodes.
It’s disabled by default.
This trait is available in the following profiles: Kubernetes, Knative, OpenShift.
Configuration
Trait properties can be specified when running any integration with the CLI:
kamel run --trait affinity.[key]=[value] --trait affinity.[key2]=[value2] integration.groovy
The following configuration options are available:
Property | Type | Description |
---|---|---|
affinity.enabled |
bool |
Can be used to enable or disable a trait. All traits share this common property. |
affinity.pod-affinity |
bool |
Always co-locates multiple replicas of the integration in the same node (default false). |
affinity.pod-anti-affinity |
bool |
Never co-locates multiple replicas of the integration in the same node (default false). |
affinity.node-affinity-labels |
string |
Defines a set of nodes the integration pod(s) are eligible to be scheduled on, based on labels on the node. |
affinity.pod-affinity-labels |
string |
Defines a set of pods (namely those matching the label selector, relative to the given namespace) that the integration pod(s) should be co-located with. |
affinity.pod-anti-affinity-labels |
string |
Defines a set of pods (namely those matching the label selector, relative to the given namespace) that the integration pod(s) should not be co-located with. |