48 Commits

Author SHA1 Message Date
Yoann Lecuyer
0d699effc3 feat(docker): add docker pause strategy (#755)
* add tmp test

* add strategy config

* strategy config

* pause / unpause strategy impl

* Fix tests

* fix compilation

* add pause / unpause tests

* add doc

* add config test

* start if not paused

* remove test files
2025-11-27 12:03:37 -05:00
Alexis Couvreur
112bdaaf8f fix: warn when the custom theme path does not exist 2025-11-23 16:56:24 -05:00
Alexis Couvreur
0f4a3a2e93 refactor: add sabliercmd pkg (#727)
This will enable doc generation
2025-11-13 20:18:57 -05:00
Alexis Couvreur
0588627d36 fix: bump go 1.25 (#723)
* fix: bump go 1.25

also bump deps and fix golangci lint

* golangci lint fixes
2025-11-10 22:51:07 -05:00
Alexis Couvreur
8f82cfd8b6 ci: pin to SHA versions 2025-11-09 17:59:23 -05:00
Alexis Couvreur
6d880928c7 fix\!: remove plugins from the repository 2025-11-09 17:28:18 -05:00
Alexis Couvreur
fad97d7901 fix(provider): add debug logging (#653)
* fix(provider): add debug logging

Add a bunch of debug logging calls

* return a swarm service pointer

* revert to service list with status true

* change trace to debug

* --no-verify
2025-07-30 22:44:20 -04:00
Alexis Couvreur
b65fbcd514 feat: add podman provider (#648) 2025-07-26 00:46:11 -04:00
dependabot[bot]
52ce80d46c build(deps): bump the testcontainers-go group across 1 directory with 3 updates (#578)
* build(deps): bump the testcontainers-go group across 1 directory with 3 updates

Bumps the testcontainers-go group with 3 updates in the / directory: [github.com/testcontainers/testcontainers-go](https://github.com/testcontainers/testcontainers-go), [github.com/testcontainers/testcontainers-go/modules/k3s](https://github.com/testcontainers/testcontainers-go) and [github.com/testcontainers/testcontainers-go/modules/valkey](https://github.com/testcontainers/testcontainers-go).


Updates `github.com/testcontainers/testcontainers-go` from 0.35.0 to 0.36.0
- [Release notes](https://github.com/testcontainers/testcontainers-go/releases)
- [Commits](https://github.com/testcontainers/testcontainers-go/compare/v0.35.0...v0.36.0)

Updates `github.com/testcontainers/testcontainers-go/modules/k3s` from 0.35.0 to 0.36.0
- [Release notes](https://github.com/testcontainers/testcontainers-go/releases)
- [Commits](https://github.com/testcontainers/testcontainers-go/compare/v0.35.0...v0.36.0)

Updates `github.com/testcontainers/testcontainers-go/modules/valkey` from 0.35.0 to 0.36.0
- [Release notes](https://github.com/testcontainers/testcontainers-go/releases)
- [Commits](https://github.com/testcontainers/testcontainers-go/compare/v0.35.0...v0.36.0)

---
updated-dependencies:
- dependency-name: github.com/testcontainers/testcontainers-go
  dependency-version: 0.36.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: testcontainers-go
- dependency-name: github.com/testcontainers/testcontainers-go/modules/k3s
  dependency-version: 0.36.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: testcontainers-go
- dependency-name: github.com/testcontainers/testcontainers-go/modules/valkey
  dependency-version: 0.36.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: testcontainers-go
...

Signed-off-by: dependabot[bot] <support@github.com>

* use dind module for docker based tests

* do not use testcontainers dind module fork

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alexis Couvreur <alexiscouvreur.pro@gmail.com>
2025-03-31 23:49:58 -04:00
dependabot[bot]
cc23853966 build(deps): bump github.com/docker/docker from 27.5.1+incompatible to 28.0.1+incompatible (#539)
* build(deps): bump github.com/docker/docker

Bumps [github.com/docker/docker](https://github.com/docker/docker) from 27.5.1+incompatible to 28.0.1+incompatible.
- [Release notes](https://github.com/docker/docker/releases)
- [Commits](https://github.com/docker/docker/compare/v27.5.1...v28.0.1)

---
updated-dependencies:
- dependency-name: github.com/docker/docker
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix tests

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alexis Couvreur <alexiscouvreur.pro@gmail.com>
2025-03-13 00:08:13 -04:00
Alexis Couvreur
a897c65d39 feat: add blocking refresh frequency (#558)
* feat: add blocking refresh frequency

The refresh frequency when using the blocking strategy was set to 5 seconds. This is now configurable with a default value of 5 seconds.

* fail ci if codecov fail

* always upload codecov even if ci fails

* remove useless panic

* use fork

* add -short - revert later

* remove short

* publish test results
2025-03-12 21:06:28 -04:00
Alexis Couvreur
fca9c79289 refactor: reorganize code structure (#556)
* refactor: rename providers to Provider

* refactor folders

* fix build cmd

* fix build cmd

* fix build cmd

* fix cmd start
2025-03-10 14:11:40 -04:00
Alexis Couvreur
7a885ebd5f test: use httpexpect v2.17 upstream (#552)
* test: use httpexpect v2.17 upstream

This change brings the WithRetryPolicyFunc previously implemented in the fork.

* fix e2e test

* extend key duration

* remove parallel
2025-03-09 18:34:19 -04:00
Alexis Couvreur
b72c37a85a refactor: remove discovery package (#553) 2025-03-09 01:29:06 -05:00
Alexis Couvreur
92eb721d69 refactor: remove session manager (#551)
The session manager is now simply Sablier
2025-03-08 15:43:33 -05:00
Alexis Couvreur
b5c68c6f1b test(discovery): use providertest (#547) 2025-03-03 22:35:02 -05:00
Alexis Couvreur
a37f5943cc test(kubernetes): increase test coverage (#546) 2025-03-03 22:05:20 -05:00
Alexis Couvreur
edbf7d9d15 fix(kubernetes): consider workload not ready when scaled to 0 (#543)
* test(kubernetes): use testcontainers for test

* fix(kubernetes): get state properly reports the workload as down when scaled to 0

* refactor(kubernetes): split provider in multiple files

* refactor(provider): use Instance prefix for actions

* test(testcontainers): use provider.PullImage

* squash

* Revert "test(testcontainers): use provider.PullImage"

This reverts commit 6f958c48a5.

* test: add random generator thread safety
2025-03-02 23:30:59 -05:00
Alexis Couvreur
5863e65f7b test(swarm): use testcontainers for tests (#542)
* test(swarm): add service_inspect.go

* test(swarm): add testcontainers tests
2025-03-02 11:36:12 -05:00
Alexis Couvreur
b1e8fc2f20 test(docker): use testcontainers (#519)
* refactor: move app/theme to pkg/theme

* refactor

* wip

* use dockerindocker

* add providertest

* wip

* wip

* test(docker): get state  now uses dind container to test against a real provider

* test(docker): move to docker_test package

* refactor(docker): create container_inspect.go

* test(docker): add more dind test

* test(docker): event test now use docker in docker

* refactor: remove unused instance  type props

* refactor test docker

* fix instance list  sort

* stabilize test

* remove testcontainers custom config
2025-03-01 19:34:36 -05:00
Alexis Couvreur
9430cc3eb3 chore(deps): bump to go1.24.0 (#521)
* chore(deps): bump to go1.24.0

* use proxy-wasm/proxy-wasm-go-sdk

* remove tinygo

* update docker image

* add missing env

* use go tool directive for mockgen

* chore: bump Kong/ngx_wasm_module to pre-release 0.6.0

Thanks to https://github.com/Kong/ngx_wasm_module/issues/682

* fix go mod

* set caddy to go1.23
2025-03-01 15:12:54 -05:00
Alexis Couvreur
731a21c0b8 test(swarm): fix race condition (#532) 2025-02-23 17:27:26 -05:00
Alexis Couvreur
35a8b07c20 refactor(provider): move app/providers to pkg/provider (#517) 2025-02-09 21:10:53 -05:00
Alexis Couvreur
f29b13a55a refactor(storage): add store.Store interface
There is a first implementation with ValKey that will allow to use redis APIs as a backend for Sablier with Hight Availability
2025-02-02 18:13:45 -05:00
Alexis Couvreur
dfb9bacf59 feat(providers): add provider.auto-stop-on-startup argument (#346)
This feature adds the capability to stop unregistered running instances upon startup.

Previously, you had to stop running instances manually or issue an initial request that will shut down instances afterwards.

With this change, all discovered instances will be shutdown. They need to be registered using labels. E.g.: sablier.enable=true

Fixes #153
2024-10-01 17:30:14 -07:00
Alexis Couvreur
9167e9c8c8 refactor(theme): themes are loaded at startup instead of every request 2024-04-30 14:07:53 -04:00
Alexis Couvreur
33d5d0905a tests: set timezone to UTC for consistency
The test would fail if you're running it from a different timezone
2023-01-09 13:01:04 -05:00
Alexis Couvreur
eb83d39652 feat(tinykv): add Delete method 2022-11-06 00:24:10 -04:00
Alexis Couvreur
411c2b2dc6 fix(tinykv): remove expired values from UnmarshalJSON 2022-11-02 23:15:06 -04:00
Alexis Couvreur
8cf668976c feat(tinykv): remove ExpiresAfter from json 2022-11-02 23:15:06 -04:00
Alexis Couvreur
04c55c2f49 stabilization 2022-11-02 23:15:06 -04:00
Alexis Couvreur
73afffe726 remove old scaler 2022-11-02 23:15:06 -04:00
Alexis Couvreur
333efd2d70 fix(swarm): remove 503 error workaround
It's not working as it is part of a higher issue
2022-11-02 23:15:06 -04:00
Alexis Couvreur
08bd9b7520 test(tinykv): use regex quantifier instead of repeating pattern 2022-10-06 23:50:21 -04:00
Alexis Couvreur
b220bc4bf7 fix(tinykv): remove sliding feature 2022-10-03 21:45:44 +00:00
Alexis Couvreur
7703a3041c Revert "fix: bump import to v2"
This reverts commit 9cb9b2aa7a57047a7e61b2c54732b3e25300bf20.
2022-10-03 20:27:14 +00:00
Alexis Couvreur
a374322f99 fix: bump import to v2
See https://go.dev/doc/modules/major-version
2022-10-03 20:27:14 +00:00
Alexis Couvreur
573f0c1e5b refactor: put acouvreur/tinykv inside the repository 2022-10-03 20:27:14 +00:00
Alexis Couvreur
551a146d94 feat: merge service repository into Sablier
Add plugins folder to integrate with multiple reverse proxies

The project is now released as 'Sablier'
2022-10-03 20:27:06 +00:00
Alexis Couvreur
3eb7d480da feat: add persistent storage (#30)
* refactor: remove unused default timeout

* feat: add persistent storage

Allows you to save the state to a file and load it upon restarting the app to restore the previous state.

* chore: upgrade to go 1.18

* use tinykv with generics

* build: add "-buildvcs=false" flag

Git is not available in golang:1.18-alpine image
2022-07-23 12:53:23 -04:00
Alexis Couvreur
4eb086f9d5 fix(swarm): avoid API hammering on scaling request (#26) 2022-07-23 12:53:23 -04:00
Alexis Couvreur
410a5e15eb fix(swarm): add an extra wait of 5 seconds to consider a service up 2022-07-23 12:53:23 -04:00
Romain
d299780f58 feat(kubernetes): add compatibility with Statefulset (#20)
* Add statefulset compatibility

* Add rbac in doc

* replace AvailableReplica by ReadyReplica

* Replace if to switch
2021-11-18 15:20:48 +01:00
Matthias Schneider
0e920523d2 feat: add kubernetes support (#14) 2021-10-01 18:40:43 +02:00
Alexis Couvreur
ebd24562b1 feat: add healthcheck lookup before redirect (#12)
Docker classic IsUp will return false when the container defines a healthcheck and is not healthy, otherwise as soon as it's started it's up.
Docker swarm will check that the number of required tasks is higher than 1, and that the number of running tasks matches the number of desired tasks.
A task is not running when it defines a healthcheck and is not healthy.
2021-09-28 12:44:27 +02:00
Alexis Couvreur
68732717ad fix: scale down correctly update the service specification 2021-09-26 21:01:55 +00:00
Alexis Couvreur
0ecd9d9213 feat: add log.Error on error 2021-09-26 20:51:04 +00:00
Alexis Couvreur
c96482ef67 feat: add docker classic support (#9)
Defaults with docker swarm support for retro compatibiliy.
You can add --swarmMode=false to deactivate it.

Closes #4
2021-09-26 00:36:45 +02:00