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)