Ireland Release
Delivery: ~ June 2021
Namer: Lenny Goodell and Mike Johanson (Intel)
The Ireland release is anticipated to be a major release (2.0) with implementation of the V2 APIs started in Hanoi completed.
Release Themes and Objectives
Implementation of the initial Certification program (targeting Device Service certification to start)
Improved documentation and example code
Improved integration and performance testing
Improve consistency across all service builds
General
Upgrade scripts and tools for DB and configuration migration
V2 API for all services
Includes addition of clients, TAF tests, changing all services to use V2 APIs
Get rid of V1
Decision: remove as much V1 code as we can but not focus on that until Jakarta
Note: this will affect code coverage metrics
Kong on all the time (stretch)
Device service to appl service via message
Have to deal with marked as pushed & core data not there – Lenny needs update to ADR
Possible race condition in app service done with it before core data gets it
Device service to core data via message bus
Archive deprecated services/infrastructure
Mongo (some Mongo code in sdks and edgex-go)
Logging (still some code in bootstrap and client)
Drools
Code clean up for backwards compatibility
Rip out stuff that is provided for backward compatibility that won’t be necessary
Address max request size check
Core/Supporting Services
Modifying device profiles on the fly (dynamically add resources) - stretch
Fix Redis names/keys (add prefix to the namespace) (#2861)
Will be better for ACL later
Improve profile validation logic (#2647) – stretch
Address how to get device resource info (for app services and Kuiper)
Add profile to Event/Reading objects
Change name property on Reading to resourceName
Add formatted alternatives to log functions (#295)
Structure core data’s Writable area – add structure
CLI
V2 API support
TAF testing support (at least a basic start, subject to some research to know what is possible)
Add support for device and application services
Additional API coverage (exact APIs to be determined - high priority commands not covered with version 1)
UI
Create a device UI “wizard” that allows adding a new device much quicker.
Takes a user through screens to create a new device, reference or create a device profile, add addressable, provide AutoEvent schedule, etc. and associate it to a device service
Add some data visualization to the UI
Need the ability to “click and see” the data
See the data in the core database
SMA integration
Link UI to Endorsement page of existing profiles
Use new web site branding/styles to brand the UI
Application and Analytic Services
Fork the pipeline & have a pipeline per topic
Conditionalize and be able to skip functions in pipeline (“fork the pipeline”)
Decisions in the pipeline to determine what gets executed
Integrate additional analytics framework
Example service (likely TensorFlow)
V2 API Consumption
Output aggregator/multiplexor? stretch
Have an array of export endpoints
Issue of what happens if one export fails (and marked as pushed) – perhaps handle via configuration
Batch mark/push –how to push after a big batch is sent
Address array of types in rules engines/analytics engines – stretch
Kuiper (not sure if it handles)
JSONLogic function doesn’t handle array types
Remove/Archive Drools Rules Engine associated artifacts
Logging, Mongo too
Refactoring & cleanup
DevOps
Repo badges for EdgeX repos
Automated change log creation now that conventional commits have been adopted
Developer enablement
Docs (how pipelines work)
Tutorials
Help devs become self-reliant/sufficient
Started in Hanoi release
Automation around pinning image versions in developer scripts - Stretch
Security bench
Release automation streamlining
Docker image naming
Drop “go” suffix and “docker” prefix
Dockerfile clean up in some services
Clean up DevOps wiki pages
Tag Docker Hub images to indicate which are out of support
Security
Revamp of EdgeX docker bootstrapping
Eliminate TLS usage and private PKI
Eliminate hard-coded Postgres password
Enable BYO Kong certificate
Ensure that service location data is pulled from trusted source (i.e. not Consul)
Secure Kong admin port
New secret provider abstraction (non-back)
Utility - refactoring proxy setup to move the post installation out to separate utility
Support delayed services starting after vault token expired- Stretch
TestQA
TAF for V2 API
Deprecate blackbox tests
Complete Modbus scalability tests
Polish / automate how we make performance data available to allow users to make informed decision
Additional Integration/Functional test cases - Stretch
Kuiper integration test/smoke test
Device Services
Consume v2 API
Event filtering: implementation - Stretch
Impl of DS to AS via message bus
Message bus for Device Service → Core Data – Stretch
Obtain security credentials from secret store
Check of set requests on device service against device profiles (setting above, min, max, etc.)? Small (already done in C)
Validation of set data against what is in the profile
Review and acceptance of new device services (4x)
Device list shouldn’t be in configuration.toml - Stretch
support-logging removal
Naming scheme changes for config.Clients (key name change)
This is based on issue request stemming from system management and monitoring
Continued refactoring for global vars – in scope; small change in SDKs
Remove binary representation (base64) for floating point values
Remove OperationalState for device services
Rename OperationalState values for devices (currently ENABLED/DISABLED, suggest UP/DOWN) – in scope; small
Archive Random Device Service
Miscellaneous
Standardization of units of measure
Support getting current log level from API (#294) – (AR - Jim to follow up)
Replace 0MQ library (#73)
Add guidance on when to use what logging level in the wiki (contribution section)
Revisit combing core services at least at all executables in one image
Naming scheme changes for config.Clients (key name change)
Develop a checklist for edgexfoundry-holding to edgexfoundry repo moves