Closed arthurwozniak closed 3 months ago
Traefik may contain arguments entryPoints.name.forwardedHeaders.trustedIPs and entryPoints.name.proxyProtocol.trustedIPs, which is array of IPs according to documentation.
entryPoints.name.forwardedHeaders.trustedIPs
entryPoints.name.proxyProtocol.trustedIPs
After upgrading to 1.7.2 from 1.5.2, we encounter Kamal::ConfigurationError) caused configuration validation introduced in https://github.com/basecamp/kamal/releases/tag/v1.7.0
1.7.2
1.5.2
Kamal::ConfigurationError)
Before kamal upgrade, following configuration worked.
traefik: args: entrypoints.web.forwardedheaders.trustedips: - "172.0.0.1" ...
Error callstack:
ERROR (Kamal::ConfigurationError): traefik/args/entrypoints.web.forwardedheaders.trustedips: should be a string /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/configuration/validator.rb:118:in `error' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/configuration/validator.rb:122:in `type_error' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/configuration/validator.rb:114:in `validate_type!' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/configuration/validator.rb:88:in `block (2 levels) in validate_hash_of!' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/configuration/validator.rb:136:in `with_context' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/configuration/validator.rb:87:in `block in validate_hash_of!' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/configuration/validator.rb:86:in `each' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/configuration/validator.rb:86:in `validate_hash_of!' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/configuration/validator.rb:37:in `block (2 levels) in validate_against_example!' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/configuration/validator.rb:136:in `with_context' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/configuration/validator.rb:23:in `block in validate_against_example!' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/configuration/validator.rb:22:in `each' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/configuration/validator.rb:22:in `validate_against_example!' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/configuration/validator.rb:11:in `validate!' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/configuration/validation.rb:21:in `validate!' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/configuration/traefik.rb:23:in `initialize' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/configuration.rb:63:in `new' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/configuration.rb:63:in `initialize' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/configuration.rb:22:in `new' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/configuration.rb:22:in `create_from' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/commander.rb:16:in `config' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/commander.rb:158:in `specifics' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/commander.rb:6:in `hosts' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/lib/kamal/cli/server.rb:5:in `exec' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/thor-1.3.1/lib/thor/command.rb:28:in `run' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/thor-1.3.1/lib/thor/invocation.rb:127:in `invoke_command' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/thor-1.3.1/lib/thor.rb:527:in `dispatch' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/thor-1.3.1/lib/thor/invocation.rb:116:in `invoke' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/thor-1.3.1/lib/thor.rb:338:in `block in subcommand' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/thor-1.3.1/lib/thor/command.rb:28:in `run' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/thor-1.3.1/lib/thor/invocation.rb:127:in `invoke_command' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/thor-1.3.1/lib/thor.rb:527:in `dispatch' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/thor-1.3.1/lib/thor/base.rb:584:in `start' /Users/kamilhanus/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/kamal-1.7.2/bin/kamal:9:in `<top (required)>' /Users/kamilhanus/.rbenv/versions/3.3.1/bin/kamal:25:in `load' /Users/kamilhanus/.rbenv/versions/3.3.1/bin/kamal:25:in `<main>'
I believe this is a bug as, according to documentation, trustedips value can be passed as array.
trustedips
Thanks for the report @arthurwozniak! Fixed in #864
I've released v1.7.3 which should fix this 👍
Traefik may contain arguments
entryPoints.name.forwardedHeaders.trustedIPs
andentryPoints.name.proxyProtocol.trustedIPs
, which is array of IPs according to documentation.After upgrading to
1.7.2
from1.5.2
, we encounterKamal::ConfigurationError)
caused configuration validation introduced in https://github.com/basecamp/kamal/releases/tag/v1.7.0Before kamal upgrade, following configuration worked.
Error callstack:
I believe this is a bug as, according to documentation,
trustedips
value can be passed as array.