Hanoi Release

Code Freeze:  Oct 28, 2020

Release:  Nov 18, 2020

Namer:  Joan Duran


The Hanoi release is anticipated to be dot release (v 1.3); with experimental V2 APIs for some services.  This release shall have no non-backward compatible changes (with 1.0,1.1 or 1.2 releases). 

Release Themes and Objectives

  • Start of the implementation of the V2 API
    • Preparing EdgeX for some major new features and version 2.0 in 2021
  • Support running a service on a different host than the other services.  Specifically making it easier to run a device service on a different host that the rest of Edge.   As a stretch to this goal, allow for select service high availability.
  • Securing the REST communications between services (HTTPS)
  • Automating performance testings
  • Include a data filter between DS and Core Data (align with and share App Service filter function if possible

General

  • Most important features we are currently working on (in priority order)
    • V2 API (partially deliver in Hanoi)
    • Allow device services to be distributed to alternate hosts
    • Implement a message bus between device services and application services
  • Move to Go 1.15 when available in August
  • Design a message bus implementation between device services and application service (stretch goal to provide implementation)
  • Allow device services to be distributed to alternate hosts
  • V2 API - “experimental”
    • For core, device services, application services, and SDKs V2 API minus security
    • Supporting services may remain at V1
  • Stretch: explore possible collapse of core command and metadata
  • Stretch: deprecate Mongo

Core and Supporting Services

  • V2 API for core services
  • Stretch: dropping the log service
  • Establish a roadmap for the UI
  • Determine if UI should be in separate repo
  • UI secrets management
  • UI incorporation of new rules engine

Test/QA

  • EdgeX V2 API Blackbox tests (TAF)
  • Stretch: User guidance on platform needs (want it badly but not under current V2 API and TAF work)
  • More performance statistics

Device Service & SDKs

  • Add V2 API
  • Message bus (DS to appl service; design first and stretch impl)
  • Protect the device from harmful commands, there should be the possibility to set a Min and Max limit (or other profile checks to protect the device).
  • Data filter design between DS and Core Data
  • Stretch: design bound checking (lead an ADR proposal)

Application Services and App Functions SDK

  • Add V2 API
  • Message bus (DS to appl service; design first and stretch impl)
  • Deprecate Drools rules engine
  • Design metadata about the “gateway” or host platform (identity, location, …)
  • Develop a Kuiper road map; explore project's roadmap for additional requests
  • Add EdgeX specific Kuiper documentation
  • Address issues with binary data and Kuiper

System Management

  • Service list fix - SMA errors when supporting service is not running
  • Review and improve how SMA polls services
  • CLI improvements

Security

  • Provide “HOW-TO” guides for following in priority order:
    • SSH Tunnel (needs document and docker compose file snippets and may need some special containers for ssh/sshd or instructions for their setup)
    • Overlay network (needs document and docker compose file examples/snippets)
    • Service mesh (needs document and script on how to automate)
  • An abstraction and pluggable mechanism to provide generation of secrets
  • Address containers security issues
  • Design secure subsystem launch/bootstrap dependencies
  • Review design of Hardware Root of Trust - API with pluggable implementation
  • Kong: enable CORS for API Gateway
  • Kong: Secure admin port with TLS
  • Design enablement of Vault PKI secret engine
  • Develop process for security vetting of 3rd party components

DevOps

  • Performance Optimizations
    • Jenkins Pipeline optimizations for edgex-go
    • Explore options from LF for supporting Jenkins on K8s
  • Develop process for security and license vetting of 3rd party components
  • Stretch: Restructuring our compose files to take advantage of compose file overrides, which removed the duplication in all our compose files.
  • Stretch: code Coverage for Jenkins Global Libraries (codecov.io)
  • Stretch: Snap improvements (WIP)

Miscellaneous

  • Certification/Endorsement process of device services
  • Next steps in Ideation/Topcoder challenge (virtual hackathon challenges)
  • Exploration of how to facilitate Kubernetes with the Open Horizon sister project

Decisions, actions and notes taken from Hanoi planing meeting (April 2020)