diff --git a/apis/v1beta1/allocation_strategy.go b/apis/v1beta1/allocation_strategy.go index b66c4f2cfe..1cbc90c19d 100644 --- a/apis/v1beta1/allocation_strategy.go +++ b/apis/v1beta1/allocation_strategy.go @@ -16,7 +16,7 @@ package v1beta1 type ( // TargetAllocatorAllocationStrategy represent a strategy Target Allocator uses to distribute targets to each collector - // +kubebuilder:validation:Enum=least-weighted;consistent-hashing + // +kubebuilder:validation:Enum=least-weighted;consistent-hashing;per-node TargetAllocatorAllocationStrategy string // TargetAllocatorFilterStrategy represent a filtering strategy for targets before they are assigned to collectors // +kubebuilder:validation:Enum="";relabel-config @@ -30,6 +30,9 @@ const ( // TargetAllocatorAllocationStrategyConsistentHashing targets will be consistently added to collectors, which allows a high-availability setup. TargetAllocatorAllocationStrategyConsistentHashing TargetAllocatorAllocationStrategy = "consistent-hashing" + // TargetAllocatorAllocationStrategyPerNode targets will be assigned to the collector on the node they reside on (use only with daemon set). + TargetAllocatorAllocationStrategyPerNode TargetAllocatorAllocationStrategy = "per-node" + // TargetAllocatorFilterStrategyRelabelConfig targets will be consistently drops targets based on the relabel_config. TargetAllocatorFilterStrategyRelabelConfig TargetAllocatorFilterStrategy = "relabel-config" ) diff --git a/bundle/manifests/opentelemetry.io_opentelemetrycollectors.yaml b/bundle/manifests/opentelemetry.io_opentelemetrycollectors.yaml index 8a8773c852..9facf2f1aa 100644 --- a/bundle/manifests/opentelemetry.io_opentelemetrycollectors.yaml +++ b/bundle/manifests/opentelemetry.io_opentelemetrycollectors.yaml @@ -7146,6 +7146,7 @@ spec: enum: - least-weighted - consistent-hashing + - per-node type: string enabled: type: boolean diff --git a/config/crd/bases/opentelemetry.io_opentelemetrycollectors.yaml b/config/crd/bases/opentelemetry.io_opentelemetrycollectors.yaml index 1241162ae0..b17a8dede1 100644 --- a/config/crd/bases/opentelemetry.io_opentelemetrycollectors.yaml +++ b/config/crd/bases/opentelemetry.io_opentelemetrycollectors.yaml @@ -7132,6 +7132,7 @@ spec: enum: - least-weighted - consistent-hashing + - per-node type: string enabled: type: boolean diff --git a/config/crd/bases/opentelemetry.io_targetallocators.yaml b/config/crd/bases/opentelemetry.io_targetallocators.yaml index 08e015d8bd..1504510fba 100644 --- a/config/crd/bases/opentelemetry.io_targetallocators.yaml +++ b/config/crd/bases/opentelemetry.io_targetallocators.yaml @@ -1072,6 +1072,7 @@ spec: enum: - least-weighted - consistent-hashing + - per-node type: string args: additionalProperties: diff --git a/docs/api.md b/docs/api.md index 842764eab1..8235f45406 100644 --- a/docs/api.md +++ b/docs/api.md @@ -40460,7 +40460,7 @@ The current options are least-weighted, consistent-hashing and per-node. The def consistent-hashing. WARNING: The per-node strategy currently ignores targets without a Node, like control plane components.

- Enum: least-weighted, consistent-hashing
+ Enum: least-weighted, consistent-hashing, per-node
Default: consistent-hashing
false