Replies: 4 comments 5 replies
-
@tsconn23 , did you add the |
Beta Was this translation helpful? Give feedback.
-
Also, the -cf flag is for when not using Consul so you can specifiy a file that contains the Common Config. The -o flag is only needed if you previously ran the service in Docker and need to override the services private config in Consul. Use
Also see Common Config description here: https://docs.edgexfoundry.org/3.0/microservices/configuration/CommonConfiguration/ |
Beta Was this translation helpful? Give feedback.
-
@tsconn23 , the Annotators slice here is the cause the error loading the configuration. This is because array types are not supported when using Consul. This has been a limitation since Intel joined the project due to the https://github.com/mitchellh/consulstructure module used when loading the configuration from Consul. Push to Consul works fine, but loading from doesn't. To confirm, try removing the Annotators from your common config. |
Beta Was this translation helpful? Give feedback.
-
I'm going to go ahead and close this discussion. I'm not exactly sure what I'm going to do about it yet, but I think we've root caused the issue. |
Beta Was this translation helpful? Give feedback.
-
I am attempting to work on an integration between Project Alvarium and EdgeX Foundry. The first step is to integrate the Device SDK with the Alvarium SDK in order to capture metadata when new events are generated. I have performed this work in a local fork and further, I have consumed my version of the Device SDK in a fork of device-virtual. I am basing this work off the v3.0.0 tag in the upstream EdgeX repos.
The issue I am having is that I need to add a new Alvarium-specific section to the device service config. Since conceivably any device service would need to be Alvarium-enabled, I decided to modify the DeviceService section that is injected into Consul by
edgex-core-common-config-bootstrapper
. I have a Docker Compose file that I have created which unites all of the apps for EdgeX and Alvarium into one place for testing with security turned off.When I start up the Docker Compose environment, the new section is available in Consul as expected.
However the Device Service container keeps crashing with an error that I know means the section is not being properly loaded into the service. Essentially the error means the value is blank.
To attempt to troubleshoot, I modified the Device Service to output the Alvarium section of its config when told to load from a local file. The output shows that the proper config is loaded.
The Device Service then fails for other reasons separate to this issue.
The logic involved in loading a config within the Device Service from an external provider is rather complex and I'm hoping someone has a quick insight into why this might be happening -- perhaps something simple I've overlooked. If not, my next step is to stand up Consul natively and manually bootstrap the common config. After that I will then configure my IDE to allow me to step through and attempt to isolate the problem.
Thanks for any bright ideas one might have.
Beta Was this translation helpful? Give feedback.
All reactions