Commit Graph

40 Commits

Author SHA1 Message Date
Rob Watson cbdcef097f Fix race condition in tests
continuous-integration/drone/push Build is passing Details
In normal usage, the io.Writer passed to the watcher is typically
`os.Stdout` and does not require locking because it is not being read
from inside the same process.

In tests however, the io.Writer was a *bytes.Buffer which is read
concurrently from another goroutine, introducing a race condition. This
fixes the issue in the test suite by introducing a wrapper around
*bytes.Buffer which implements the required locking.
2022-07-08 19:39:10 +02:00
Rob Watson 41f53c88df podWatcher: prefer bufio.Reader to Scanner
continuous-integration/drone/push Build is failing Details
This avoids "token too large" errors when scanning large lines, probably
at the cost of some memory usage and/or allocations.
2022-07-05 18:26:47 +02:00
Rob Watson 0bbbb4015b podWatcher: Use RetryWatcher
continuous-integration/drone/push Build is failing Details
2022-07-01 17:47:41 +02:00
Rob Watson 680f5b65e7 watcher: Clean up test
continuous-integration/drone/push Build is passing Details
2022-06-22 20:57:06 +02:00
Rob Watson 7f5fe3a717 Add comment 2022-06-22 20:56:52 +02:00
Rob Watson c3ada38e68 Add TODO
continuous-integration/drone/push Build is passing Details
2022-06-21 20:49:44 +02:00
Rob Watson b880127e72 watcher: implement RetryWatcher
continuous-integration/drone/push Build is failing Details
2022-06-21 20:32:32 +02:00
Rob Watson d1b3cd1f96 build.sh: Fix variable name
continuous-integration/drone/push Build is passing Details
2022-06-20 20:40:20 +02:00
Rob Watson c6b96ecad8 watcher: Add temporary panic-on-error handling 2022-06-20 20:35:20 +02:00
Rob Watson 07552d10dd Tidy
continuous-integration/drone/push Build is passing Details
2022-06-15 20:29:33 +02:00
Rob Watson e33612cced podWatcher: Refactor
continuous-integration/drone/push Build is passing Details
2022-06-14 21:11:06 +02:00
Rob Watson d8e57c3d0e Remove inaccurate comment
continuous-integration/drone/push Build is passing Details
2022-06-14 18:05:36 +02:00
Rob Watson eeee9a8ab7 watcher: Update naming
continuous-integration/drone/push Build is passing Details
2022-06-14 17:54:10 +02:00
Rob Watson a0949b2bde watcher: Clean up properly on exiting event loop
continuous-integration/drone/push Build is passing Details
2022-06-14 09:56:59 +02:00
Rob Watson 969b0db9fc podWatcher: pass namespace
continuous-integration/drone/push Build is failing Details
2022-06-14 07:47:38 +02:00
Rob Watson e86d23fdca Fix typo 2022-06-14 07:44:55 +02:00
Rob Watson 154a13ecfc tests: Replace struct with closure
continuous-integration/drone/push Build is passing Details
2022-06-12 22:06:07 +02:00
Rob Watson bf49105619 podWatcher: handle removed pods
continuous-integration/drone/push Build is passing Details
2022-06-12 15:26:27 +02:00
Rob Watson 397708336d drone.yml: use go test -race
continuous-integration/drone/push Build is failing Details
2022-06-11 07:33:27 +02:00
Rob Watson 3288b488d3 Tidy 2022-06-11 07:20:28 +02:00
Rob Watson be99d25fb2 podWatcher: prefer channel for synchronization
continuous-integration/drone/push Build is passing Details
2022-06-11 07:13:42 +02:00
Rob Watson 5ebeabd3c1 Handle namespace
continuous-integration/drone/push Build is passing Details
2022-06-10 21:38:38 +02:00
Rob Watson b1a8a75bdb Configure debug logging
continuous-integration/drone/push Build is passing Details
2022-06-10 19:04:52 +02:00
Rob Watson 12530471d0 Add build script and basic versioning
continuous-integration/drone/push Build is passing Details
2022-06-09 20:56:44 +02:00
Rob Watson ca822496b0 Support other resource types
continuous-integration/drone/push Build is passing Details
Use the untyped k8s client to enable support for statefulsets and
replicasets as well as deployments. The typed client is retained for
usage inside pod_watcher.go.
2022-06-09 20:21:07 +02:00
Rob Watson f8c59aeb15 config: prefer *rest.Config
continuous-integration/drone/push Build is passing Details
This config implementation correctly picks up non-default contexts.
2022-06-07 21:16:37 +02:00
Rob Watson 6e09e4bf20 Reduce test flakiness 2022-06-07 21:15:04 +02:00
Rob Watson 59a9335017 watcher: handle closed channel
continuous-integration/drone Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-06-04 02:27:20 +02:00
Rob Watson 0827693801 podWatcher: handle closed channel
continuous-integration/drone/push Build is passing Details
2022-06-03 22:20:23 +02:00
Rob Watson d5835821c5 podWatcher: add test coverage
continuous-integration/drone/push Build is passing Details
2022-06-02 19:23:47 +02:00
Rob Watson 3639b43260 Rename variable 2022-06-02 19:23:44 +02:00
Rob Watson 7e74fb6f08 Refactor stream error handling 2022-06-02 19:23:41 +02:00
Rob Watson 2ea2ebe836 Tweak CLI interface
continuous-integration/drone/push Build is passing Details
2022-06-01 22:04:20 +02:00
Rob Watson 7f10c6a2c2 Improve error handling 2022-06-01 22:04:02 +02:00
Rob Watson 0b0db0ee8f Add per-deployment watcher
continuous-integration/drone/push Build is passing Details
2022-06-01 19:19:55 +02:00
Rob Watson 11cc2d6709 Refactor, add container argument
continuous-integration/drone Build is passing Details
2022-05-31 06:11:44 +02:00
Rob Watson ae1b699d76 Add .drone.yml 2022-05-30 12:16:21 +02:00
Rob Watson 4f6b2d1550 Add basic test coverage 2022-05-30 12:10:58 +02:00
Rob Watson d38f31c3d9 Initial iteration 2022-05-29 21:04:02 +02:00
Rob Watson 1dfdeef7e8 Initial commit 2022-05-25 23:40:52 +02:00