Fix ring_hash validation

This commit is contained in:
Michael Lumish 2025-02-11 15:22:06 -08:00
parent 61349e09ab
commit fced35a7d1
1 changed files with 16 additions and 20 deletions

View File

@ -265,15 +265,14 @@ export class ClusterResourceType extends XdsResourceType {
} }
}; };
} else if(EXPERIMENTAL_RING_HASH && message.lb_policy === 'RING_HASH') { } else if(EXPERIMENTAL_RING_HASH && message.lb_policy === 'RING_HASH') {
if (message.ring_hash_lb_config) { if (message.ring_hash_lb_config && message.ring_hash_lb_config.hash_function !== 'XX_HASH') {
if (message.ring_hash_lb_config.hash_function !== 'XX_HASH') {
errors.push(`unsupported ring_hash_lb_config.hash_function: ${message.ring_hash_lb_config.hash_function}`); errors.push(`unsupported ring_hash_lb_config.hash_function: ${message.ring_hash_lb_config.hash_function}`);
} }
const minRingSize = message.ring_hash_lb_config.minimum_ring_size ? Number(message.ring_hash_lb_config.minimum_ring_size.value) : 1024; const minRingSize = message.ring_hash_lb_config?.minimum_ring_size ? Number(message.ring_hash_lb_config.minimum_ring_size.value) : 1024;
if (minRingSize > 8_388_608) { if (minRingSize > 8_388_608) {
errors.push(`ring_hash_lb_config.minimum_ring_size is too large: ${minRingSize}`); errors.push(`ring_hash_lb_config.minimum_ring_size is too large: ${minRingSize}`);
} }
const maxRingSize = message.ring_hash_lb_config.maximum_ring_size ? Number(message.ring_hash_lb_config.maximum_ring_size.value) : 8_388_608; const maxRingSize = message.ring_hash_lb_config?.maximum_ring_size ? Number(message.ring_hash_lb_config.maximum_ring_size.value) : 8_388_608;
if (maxRingSize > 8_388_608) { if (maxRingSize > 8_388_608) {
errors.push(`ring_hash_lb_config.maximum_ring_size is too large: ${maxRingSize}`); errors.push(`ring_hash_lb_config.maximum_ring_size is too large: ${maxRingSize}`);
} }
@ -283,9 +282,6 @@ export class ClusterResourceType extends XdsResourceType {
max_ring_size: maxRingSize max_ring_size: maxRingSize
} }
}; };
} else {
errors.push(`lb_policy == RING_HASH but ring_hash_lb_config is unset`);
}
} else { } else {
if (EXPERIMENTAL_CUSTOM_LB_CONFIG) { if (EXPERIMENTAL_CUSTOM_LB_CONFIG) {
errors.push(`load_balancing_policy unset and unsupported lb_policy: ${message.lb_policy}`); errors.push(`load_balancing_policy unset and unsupported lb_policy: ${message.lb_policy}`);