Skip to content

Log missing enviroment variables.  #1188

@vordimous

Description

@vordimous

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

Metadata

Metadata

Assignees

Labels

devxEffects the Developer Experience

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions