Ireland Release

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