Is your feature request related to a problem? Please describe.
If environment variables are used in zilla.yaml the only way to know if they aren't set is if the config schema throws an error.
Describe the solution you'd like
failing startup and logging an error if an environment variable is null or empty would better communicate a bad deployment config.
Additional context
error from bad bootrap server env var:
Exactly one of the following sets of problems must be resolved.
1) [97,16][/bindings/south_kafka_client/kind] The value must be constant string "cache_client".
[100,8][/bindings/south_kafka_client/options/servers] The object must not have a property whose name is "servers".
2) [97,16][/bindings/south_kafka_client/kind] The value must be constant string "cache_server".
[100,8][/bindings/south_kafka_client/options/servers] The object must not have a property whose name is "servers".
3) [100,9][/bindings/south_kafka_client/options/servers/0] The value must be of string type, but actual type is null.
error
io.aklivity.zilla.runtime.engine.config.ConfigException: Engine configuration failed
at io.aklivity.zilla.runtime.engine@0.9.90/io.aklivity.zilla.runtime.engine.internal.registry.EngineManager.onPathChanged(EngineManager.java:207)
at io.aklivity.zilla.runtime.engine@0.9.90/io.aklivity.zilla.runtime.engine.internal.registry.EngineManager$WatchTaskImpl.onPathChanged(EngineManager.java:540)
at io.aklivity.zilla.runtime.engine@0.9.90/io.aklivity.zilla.runtime.engine.internal.watcher.EngineConfigWatchTask.submit(EngineConfigWatchTask.java:51)
at io.aklivity.zilla.runtime.engine@0.9.90/io.aklivity.zilla.runtime.engine.internal.registry.EngineManager.start(EngineManager.java:130)
at io.aklivity.zilla.runtime.engine@0.9.90/io.aklivity.zilla.runtime.engine.Engine.start(Engine.java:239)
at io.aklivity.zilla.runtime.command.start@0.9.90/io.aklivity.zilla.runtime.command.start.internal.airline.ZillaStartCommand.run(ZillaStartCommand.java:160)
at io.aklivity.zilla.runtime.command@0.9.90/io.aklivity.zilla.runtime.command.internal.ZillaMain$Invoker.invoke(ZillaMain.java:69)
at io.aklivity.zilla.runtime.command@0.9.90/io.aklivity.zilla.runtime.command.internal.ZillaMain.invoke(ZillaMain.java:40)
at io.aklivity.zilla.runtime.command@0.9.90/io.aklivity.zilla.runtime.command.internal.ZillaMain.main(ZillaMain.java:34)
Caused by: io.aklivity.zilla.runtime.engine.config.ConfigException: Exactly one of the following sets of problems must be resolved.
at io.aklivity.zilla.runtime.engine@0.9.90/io.aklivity.zilla.runtime.engine.config.EngineConfigReader.lambda$read$0(EngineConfigReader.java:119)
at org.leadpony.justify@3.1.0/org.leadpony.justify.internal.problem.BasicProblemRenderer.renderBranchingProblem(BasicProblemRenderer.java:72)
at org.leadpony.justify@3.1.0/org.leadpony.justify.internal.problem.BasicProblemRenderer.renderProblem(BasicProblemRenderer.java:62)
at org.leadpony.justify@3.1.0/org.leadpony.justify.internal.problem.BasicProblemRenderer.render(BasicProblemRenderer.java:45)
at org.leadpony.justify@3.1.0/org.leadpony.justify.internal.problem.ProblemPrinter.handleProblems(ProblemPrinter.java:57)
at org.leadpony.justify@3.1.0/org.leadpony.justify.internal.validator.JsonValidator.dispatchProblems(JsonValidator.java:169)
at org.leadpony.justify@3.1.0/org.leadpony.justify.internal.validator.JsonValidator.postprocess(JsonValidator.java:92)
at org.leadpony.justify@3.1.0/org.leadpony.justify.internal.base.json.AbstractStreamJsonParser.next(AbstractStreamJsonParser.java:55)
at io.aklivity.zilla.runtime.engine@0.9.90/io.aklivity.zilla.runtime.engine.config.EngineConfigReader.read(EngineConfigReader.java:138)
at io.aklivity.zilla.runtime.engine@0.9.90/io.aklivity.zilla.runtime.engine.internal.registry.EngineManager.parse(EngineManager.java:226)
at io.aklivity.zilla.runtime.engine@0.9.90/io.aklivity.zilla.runtime.engine.internal.registry.EngineManager.onPathChanged(EngineManager.java:170)
... 8 more
Suppressed: io.aklivity.zilla.runtime.engine.config.ConfigException: 1) [97,16][/bindings/south_kafka_client/kind] The value must be constant string "cache_client".
at io.aklivity.zilla.runtime.engine@0.9.90/io.aklivity.zilla.runtime.engine.config.EngineConfigReader.lambda$read$0(EngineConfigReader.java:119)
at org.leadpony.justify@3.1.0/org.leadpony.justify.internal.problem.BasicProblemRenderer.renderSimpleProblem(BasicProblemRenderer.java:96)
at org.leadpony.justify@3.1.0/org.leadpony.justify.internal.problem.BasicProblemRenderer.renderProblem(BasicProblemRenderer.java:66)
at org.leadpony.justify@3.1.0/org.leadpony.justify.internal.problem.BasicProblemRenderer.renderBranchingProblem(BasicProblemRenderer.java:78)
... 17 more
Suppressed: io.aklivity.zilla.runtime.engine.config.ConfigException: [100,8][/bindings/south_kafka_client/options/servers] The object must not have a property whose name is "servers".
at io.aklivity.zilla.runtime.engine@0.9.90/io.aklivity.zilla.runtime.engine.config.EngineConfigReader.lambda$read$0(EngineConfigReader.java:119)
at org.leadpony.justify@3.1.0/org.leadpony.justify.internal.problem.BasicProblemRenderer.renderSimpleProblem(BasicProblemRenderer.java:96)
at org.leadpony.justify@3.1.0/org.leadpony.justify.internal.problem.BasicProblemRenderer.renderProblem(BasicProblemRenderer.java:66)
at org.leadpony.justify@3.1.0/org.leadpony.justify.internal.problem.BasicProblemRenderer.renderBranchingProblem(BasicProblemRenderer.java:81)
... 17 more
Suppressed: io.aklivity.zilla.runtime.engine.config.ConfigException: 2) [97,16][/bindings/south_kafka_client/kind] The value must be constant string "cache_server".
at io.aklivity.zilla.runtime.engine@0.9.90/io.aklivity.zilla.runtime.engine.config.EngineConfigReader.lambda$read$0(EngineConfigReader.java:119)
at org.leadpony.justify@3.1.0/org.leadpony.justify.internal.problem.BasicProblemRenderer.renderSimpleProblem(BasicProblemRenderer.java:96)
at org.leadpony.justify@3.1.0/org.leadpony.justify.internal.problem.BasicProblemRenderer.renderProblem(BasicProblemRenderer.java:66)
at org.leadpony.justify@3.1.0/org.leadpony.justify.internal.problem.BasicProblemRenderer.renderBranchingProblem(BasicProblemRenderer.java:78)
... 17 more
Suppressed: io.aklivity.zilla.runtime.engine.config.ConfigException: [100,8][/bindings/south_kafka_client/options/servers] The object must not have a property whose name is "servers".
at io.aklivity.zilla.runtime.engine@0.9.90/io.aklivity.zilla.runtime.engine.config.EngineConfigReader.lambda$read$0(EngineConfigReader.java:119)
at org.leadpony.justify@3.1.0/org.leadpony.justify.internal.problem.BasicProblemRenderer.renderSimpleProblem(BasicProblemRenderer.java:96)
at org.leadpony.justify@3.1.0/org.leadpony.justify.internal.problem.BasicProblemRenderer.renderProblem(BasicProblemRenderer.java:66)
at org.leadpony.justify@3.1.0/org.leadpony.justify.internal.problem.BasicProblemRenderer.renderBranchingProblem(BasicProblemRenderer.java:81)
... 17 more
Suppressed: io.aklivity.zilla.runtime.engine.config.ConfigException: 3) [100,9][/bindings/south_kafka_client/options/servers/0] The value must be of string type, but actual type is null.
at io.aklivity.zilla.runtime.engine@0.9.90/io.aklivity.zilla.runtime.engine.config.EngineConfigReader.lambda$read$0(EngineConfigReader.java:119)
at org.leadpony.justify@3.1.0/org.leadpony.justify.internal.problem.BasicProblemRenderer.renderSimpleProblem(BasicProblemRenderer.java:96)
at org.leadpony.justify@3.1.0/org.leadpony.justify.internal.problem.BasicProblemRenderer.renderProblem(BasicProblemRenderer.java:66)
at org.leadpony.justify@3.1.0/org.leadpony.justify.internal.problem.BasicProblemRenderer.renderBranchingProblem(BasicProblemRenderer.java:78)
... 17 more
Is your feature request related to a problem? Please describe.
If environment variables are used in
zilla.yamlthe only way to know if they aren't set is if the config schema throws an error.Describe the solution you'd like
failing startup and logging an error if an environment variable is null or empty would better communicate a bad deployment config.
Additional context
error from bad bootrap server env var: