Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Provider Responsibility

The provider makes their plugin, 

Platform Responsibility

maintains their plugin in their own repository along with the build scripts to create the plugin, the EdgeX build fragments needed by the platform build, and the EdgeX Compose file fragments needed to create the EdgeX Compose file.

Repo Organization

The provider repo follows the Go standard project layout. In addition, providers can distribute prebuilt versions of their plugin. The `.so` lives in `pkg/NAME.so.VERSION` where NAME is the plugin name and VERSION follows Semantic Versioning 2.0.

Platform Responsibility

Code Block
titleEdgeX Configuration
[Databases]
  [Databases.Primary]
  Host = 'localhost'
  Name = 'coredata'
  Username = 'tiger'
  Password = 'scott'
  Port = 1234
  Timeout = 5000
  Type = 'some-plugin.so.1.0.1'
  URL = 'https://github.com/some-provider/edgex-plugin/blob/master/pkg'
Code Block
languageyml
titlepkg/docker-compose-fragment.yml
  some-provider:
    image: some-provider:alpine
    ports:
      - "1234:1234"
    container_name: edgex-some-provider
    hostname: edgex-some-provider
    networks:
      - edgex-network
    volumes:
      - data:/data
    depends_on:
      - volume


Acceptance Criteria


MVP

v.Next

  • Provider certification
  • Provider included in platform CI/CT

Other Considerations

  • Could we use Go Modules instead?

Reference Patterns

The basis of the requirements came out of looking at how others have solved this challenge. Also, note Vladimir Vivien's helpful article on "Writing Modular Go Programs with Plugins".

...