- NuvlaEdge Docker client, now reads the port from the container configuration
- Compute API Connectivity check only performed in local network using container-name and internal port
- Removed tag push from commissioning process
- Integration of nuvlaedge-common library
- PeripheralManager thread to consume from peripheral reports
- PeripheralManagerDB handler
- Added nuvlaedge-common builder in the main.yml for testing
- Split on main.yml into jobs for readability
- Peripherals no longer communicate with API rest but via file
- File definitions are no longer class attributes but constants defined in nuvlaedge-common library
- UnitTests adapted to new nuvlaedge-common library
- Remove Agent API
- Refactor Agent
- Ensure every requests calls have a timeout
- Recommission VPN if OpenVPN config is not available and do nothing is VPN client container doesn't exist
- Do not wait on system-manager to Activate the NuvlaEdge
- Explicit container naming based on project name
- Bugfix of install_ssh_key and get_working_dir_from_labels
- Improved test of Compute API
- Job executor containers: copy environment variables and volumes (bind mounts) from the job-engine-lite container
- Improved and fixed retrieval of project name and NuvlaEdge containers.
- Telemetry: update network/interfaces to a list of dict
- (re)write files in an atomic way
- NuvlaEdgeCommon: refactor set_nuvlaedge_id() and use credential alternatively
- Port of 2.8.5: Default gw report (#118)
- Print threads stacktraces on SIGUSR1 [27961e8]
- Vpn client: do not open port [83f8e5d]
- Port of: 2.8 telemetry fixes (#126) [56765ff]
- Fix bug where installation-parameters working-dir and config-files were not set
- Port of fixes from 2.8.1 and 2.8.2
- Add code lost during Telemetry refactor (#114)
- Migration to NuvlaEdge
- Ensure every requests calls have a timeout
- (re)write files in an atomic way
- NuvlaBoxCommon: refactor set_nuvlabox_id() and use credential alternatively
- Telemetry: update network/interfaces to a list of dict
- Telemetry: report all detected IPs and IPs of all network interfaces
- Telemetry: report default gateway interface
##[2.8.4] - 2022-10-27
- Added support for all threaded monitors
- Added all monitors to thread as default. Added env_variable return them to normal exec
- Fix late start of monitor threads
- Captured exception caused by late start of the compute-api in the Agent
- Change IP route container to detach mode and manually deleted after retrieving the logs
- Fix bug where installation-parameters working-dir and config-files were not set (backport)
- add code lost during refactor (cherry-pick)
- container_stats.py: fixed possible None value
- fix tests
- Add missing dependency lsblk
- Add timeout to requests to geolocation services
- Set missing default socket timeout
- Added new Pydantic BaseModel to validate data from Nuvla.
- Added a modular monitor structure in which every monitor can be included or excluded. (Some are compulsory)
- Added data structure for each monitor to allow data validation
- New future data structure provided to IP interfaces. Still need to adapt server-side to enable it in Agent.
- Added host device network interfaces reading. Using an auxiliary Docker container connected to host network.
- Added public IP(v4&v6) reading via ping to external server.
- Use common base image for all NE components
- Telemetry class now is a watchdog of monitors. It keeps them running and starts them over if needed
- Whole telemetry class has been refactored
- Logging formatting modified and unified
- Logging main configuration parsed from config file
- Change Dockerfile to match common python3.8-alpine3.12 NE engine versions
- Removed Wiring Pi from docker. TODO: remove GPIO monitor too, maybe to be provided as a peripheral
- Do not fail if some installation parameters are not found
- Removed version pinning for Flask
- requirements.txt: added itsdangerous==2.0.1
- New env var for vpn extra config
- Add org.opencontainers labels
- Make logging level configurable
- Check if provided UUID is different from old one - avoid overwriting
- NuvlaBox log: add components to telemetry
- Only take the config files from the last update
- Enable compression when sending data to api-server
- Code refactor and bugfixes
- Improved telemetry to send all changes to Nuvla and reduce the chance of a "split brain" like scenario
- Delete ignored files
- Kubernetes infrastructure discovery for kubeadm, k0s and k3s installations
- Improved parallelization of telemetry and heartbeat cycles
- Fixed IP-based geolocation retrieval
- General fixes and code refactoring
- force update of nuvlabox-cluster through worker-based commissioning
- add support for filesystems with non-standard network /sys layout"
- speed up VPN commissioning
- updated nuvlabox-status attribute name for container-plugins
- support for NBE revival from API key
- fix KeyError for commissioning of unclustered devices
- sync IS commissioning with capabilities commissioning
- add support for execution in Kubernetes
- separation of concerns on telemetry and heartbeat mechanisms
- refactor code
- simplify logging
- parallelize non-critical functions
- fix cluster commissioning
- catch MQTT exceptions
- improve complex parsing of string fields in telemetry
- add temperature metrics
- fix cluster commissioning params
- preemptive check for NuvlaBox status before running telemetry cycle
- support for clustering
- VPN credential management
- extended telemetry
- handle network counters to count for NB lifetime only
- mechanism to cope with duplicated peripherals
- support for pull-mode jobs
- expand API
- publish API on localhost only
- add PUT method for peripherals
- make nuvlabox-status telemetry available as a whole, via the MQTT data-gateway
- re-structure power consumption information
- include installation parameters in telemetry
- persist critical environment variables over restarts and reboots
- minor bug fixes
- improve logging
- detect and report Kubernetes clusters running on the host
- report disk telemetry for all mounted disks
- add power consumption information to official telemetry and data gateway
- add telemetry for power consumption
- support for vulnerability reporting in telemetry
- ONBUILD SixSq license dump
- automatic IP-based geolocation retrieval
- fixed consistency on nuvlabox status persistency
- report enabled Docker Plugins as part of the telemetry
- nuvlabox-engine-version information is now part of telemetry
- removed file logging
- GPIO telemetry when available (for ARM* devices only)
- sanitize HTTP response whenever the request payload is malformed
- API for managing NuvlaBox peripherals
- API port to 80
- fixed docstrings
- change time format for last-boot parameter
- optimized metrics retrieval for telemetry
- re-formatted nuvlabox-status payload
- expanded the telemetry metrics that are sent to Nuvla
- publish nuvlabox api endpoint to Nuvla
- fixed re-commissioning when it fails
- added host metrics to telemetry
- now collecting network metrics as well
- expanded metric collection document for sharing with other NuvlaBox components
- automatic tagging in Nuvla, based on Docker node labels
- minimized commissioning payload
- fixed bootstrap File Error issue
- mqtt messaging schema
- publishes telemetry to internal nuvlabox mosquitto broker
- fixed potential bug when opening context file during restart
- watchdog for VPN credential
- re-structured common libraries
- added VPN commissioning
- changed source of IP retrieval
- minor bug fixes and code optimization
- fix Python version
- fixed logging level to INFO
- default IP address is now retrieved from node itself and not from list of Swarm nodes
- persistence for the env variable NUVLABOX_UUID upon service restarts and updates
- added resilience to the handling of environment variables
- removed usb peripherals from telemetry
- removed the busy attribute from the usb discovery
- build for arm platform
- using /proc/loadavg instead of top for a simpler, more portable implementation
- build creates images for amd64 and arm64
- use recommission action to initialize NuvlaBox resources
- recommission action has been renamed to commission
- renamed nuvlabox-record to nuvlabox
- renamed nuv.la to nuvla.io
- renamed nuvlabox-state to nuvlabox-status
- renamed state to status
- patch broken release
- added state api, schema fixes and coordination with system manager