Hanoi Release

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)