envoyproxy / envoyproxy/envoy

config_load_check_tool should validate file-based dynamic resources (CDS, LDS, RDS)

Open
#41,822 2 comments 0 reactions 0 assignees View on GitHub
area/config_validation enhancement no stalebot
Dominant language
C++
Stars
28.9k
Forks
5.6k
Avg merge
1d 22h
Merged PRs (30d)
430

Description

*Title*: *Support file-base dynamic resource validation inside the config_load_check_tool*

*Description*:
> The config_load_check_tool currently only validates the bootstrap configuration and checks that file paths exist for dynamic resources, but does not validate the actual content of file-based dynamic resource configurations (CDS, LDS, RDS). This leaves a gap in configuration validation where invalid dynamic resources can only be caught at runtime.

*Current Behavior*
> When validating a bootstrap configuration with file-based dynamic resources:
```yaml
dynamic_resources:
cds_config:
resource_api_version: V3
path_config_source:
path: /etc/envoy/cluster.yaml
lds_config:
resource_api_version: V3
path_config_source:
path: /etc/envoy/listener.yaml
```
> This tool will:
> - Validate the bootstrap configuration structure
> - Check that /etc/envoy/cluster.yaml and /etc/envoy/listener.yaml exist
> - NOT validate the content of these files
> - NOT validate RDS configurations referenced by listeners
> This means configuration errors in dynamic resource files are only discovered when Envoy starts and attempts to load them.

*Expected Behavior*:
> The config_load_check_tool should:
> - Load and validate file-based CDS configurations
> - Load and validate file-based LDS configurations
> - Extract RDS references from listeners and validate those files

Would you prefer this as an enhancement to the existing tool or a separate validation mode?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.