Commit Graph

19 Commits

Author SHA1 Message Date
Cedric Kienzler
70541d86ba feat(agent)!: add support for mTLS authentication in gRPC server (#54)
* refactor(fancontroller): improve fan controller validation logic and error handling for temperature steps

* refactor(agent): restructure gRPC server implementation by moving it to a new api package for better organization and maintainability

* feat(agent): implement gRPC server for managing compute blade agents and add graceful shutdown support
refactor(agent): restructure agent code by moving API logic to a dedicated file and improving error handling
fix(agent): update logging messages for clarity and consistency across the agent's operations
chore(agent): remove unused API code and consolidate event handling logic for better maintainability
style(agent): improve code formatting and organization for better readability and adherence to conventions

* feat(agent): add support for TLS configuration in gRPC server

* feat(api): add gRPC server authentication

* fix

* feat(config): add listen mode configuration to support tcp or unix sockets
feat(agent): implement listen mode in gRPC service to allow flexible socket types
feat(bladectl): enhance configuration loading and add support for TLS credentials
fix(bladectl): improve error handling for gRPC connection and event emission
style(logging): change log level from Warn to Info for better clarity in logs

* add logging middleware + fixes

* fix remote-connection to gRPC API Server

debugging the SAN issues took the soul out of me... And then the stupid
mistake in cmd_root where I didn't construct the TLS credentials
correctly... Oh dear...

* cleanup

* cleanup

* cleanup commands

* cleanup

* make README.md nicer

* Update cmd/agent/main.go

Co-authored-by: Matthias Riegler <github@m4tbit.de>

* Update cmd/bladectl/cmd_root.go

Co-authored-by: Matthias Riegler <github@m4tbit.de>

* move bladectl config into correct directory

* fix bugs

* // FIXME: No dead code

* nit: code style

* nit(YAGNI): you aint gonna need it. Don't make life harder than it needs to be

* nit(YAGNI): you aint gonna need it. Don't make life harder than it needs to be

* nit(YAGNI): you aint gonna need it. Don't make life harder than it needs to be

* nit(cmd_identify)

---------

Co-authored-by: Matthias Riegler <github@m4tbit.de>
2025-05-12 00:00:55 +02:00
Matthias Riegler
6421521bfc feat: migrate to uptime-industries gh org (#37)
Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>
2024-08-05 00:00:01 +02:00
Matthias Riegler
a8d470d4f9 fix: smart fan unit improvements (#31)
* fix: load config from /etc/computeblade-agent

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>

* fix: fan target percent reporting

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>

* fix: fancontroller default config & update interval

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>

* chore: update Readme

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>

---------

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>
2023-11-25 11:10:12 +01:00
Matthias Riegler
99920370fb feat: add smart fan unit support (#29)
* feat: add smart fanunit (serial) protocol

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>

* feat: add rudimentary eventbus to ease implementation

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>

* feat: smart fanunit client

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>

* feat: initial smart fan unit implementation

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>

* feat: improve logging, double btn press

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>

* fix: testcases

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>

* fix: context closure handling, RPM reporting

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>

* fix: address linting issues

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>

* fix: edge line closure

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>

* fix: reset CPU after i2c lockup

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>

* feat: add uf2 to release

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>

---------

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>
2023-11-25 11:07:50 +01:00
Matthias Riegler
7f166f2ed3 feat: add configuration support, update docs (#18)
* chore: remove duplicated import

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>

* chore: rename bcm273x -> bcm2711 to avoid confusion

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>

* feat: add configuration support

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>

* docs: update docs & add install script

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>

* fix: split workflows until release-please is setup on org level

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>

---------

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>
2023-10-02 23:27:19 +02:00
Matthias Riegler
500a1a32d4 feat/fix: add linear fan speed control based on temperature
some smaller fixes

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>
2023-09-04 19:59:33 +02:00
Matthias Riegler
b4f9895464 fix: in-software polling of button presses
This fixes #1

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>
2023-08-15 15:53:23 +02:00
Matthias Riegler
2592957ae5 chore: remove log from ledengine
Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>
2023-07-21 21:04:51 +02:00
Matthias Riegler
0899ce4bbe chore: add golangci-lint
Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>
2023-07-19 20:27:27 +02:00
Matthias Riegler
95e2a8d60c chore!: more refactoring
Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>
2023-07-19 18:16:08 +02:00
Matthias Riegler
752d39697e feat: LedEngine for controlling LED patterns (e.g. burst blinks)
Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>
2023-07-17 07:01:54 +02:00
Matthias Riegler
dd49079918 chore: refactore bcm2711 hardware abstraction layer
Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>
2023-07-17 07:01:31 +02:00
Matthias Riegler
b32aae0ad0 feat: fan speed detection, edge button events/debouncing
Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>
2023-07-10 22:47:25 +02:00
Matthias Riegler
ddc1dbe1e8 chore: refactoring
Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>
2023-07-10 07:26:18 +02:00
Matthias Riegler
4542e970a7 fix: set ws281x pin as output, not input
Signed-off-by: Matthias Riegler <me@xvzf.tech>
2023-07-08 13:35:00 +02:00
Matthias Riegler
a6495a2a4f fix: while sending 32bits with the FIFO, just 24 are required! :)
Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>
2023-07-07 19:58:16 +02:00
Matthias Riegler
906f56fe24 feat: make ws281x work next to PWM based fan speed control
Signed-off-by: Matthias Riegler <me@xvzf.tech>
2023-07-07 19:50:29 +02:00
Matthias Riegler
8d5eb4349b chore: refactor
Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>
2023-07-03 13:34:40 +02:00
Matthias Riegler
933e44d1db feat: initial commit
Supports:
- stealth mode
- fan control with hardware PWM

Signed-off-by: Matthias Riegler <matthias.riegler@ankorstore.com>
2023-07-03 08:46:26 +02:00