From 0e6a13249ce09aed8aa2f4cbe6f36873f0bfd291 Mon Sep 17 00:00:00 2001 From: Alexis Couvreur Date: Tue, 16 Apr 2024 20:33:18 +0000 Subject: [PATCH] fix(providers): add `docker_swarm` as a provider Currently the documentation states that `docker_swarm` is an acceptable value for the Docker Swarm provider. However, the code actually uses `swarm`. This changes adds `docker_swarm` as a supported provider alias for docker swarm. Closes #279 --- app/providers/provider.go | 12 ++++++++---- config/provider.go | 2 +- docs/providers/docker_swarm.md | 8 ++++---- docs/providers/overview.md | 16 ++++++++-------- 4 files changed, 21 insertions(+), 17 deletions(-) diff --git a/app/providers/provider.go b/app/providers/provider.go index ac44581..c7e49a6 100644 --- a/app/providers/provider.go +++ b/app/providers/provider.go @@ -22,12 +22,16 @@ type Provider interface { } func NewProvider(config config.Provider) (Provider, error) { - switch { - case config.Name == "swarm": + if err := config.IsValid(); err != nil { + return nil, err + } + + switch config.Name { + case "swarm", "docker_swarm": return NewDockerSwarmProvider() - case config.Name == "docker": + case "docker": return NewDockerClassicProvider() - case config.Name == "kubernetes": + case "kubernetes": return NewKubernetesProvider(config.Kubernetes) } return nil, fmt.Errorf("unimplemented provider %s", config.Name) diff --git a/config/provider.go b/config/provider.go index 9d4e4fa..efbde43 100644 --- a/config/provider.go +++ b/config/provider.go @@ -18,7 +18,7 @@ type Kubernetes struct { Burst int `mapstructure:"BURST" yaml:"Burst" default:"10"` } -var providers = []string{"docker", "swarm", "kubernetes"} +var providers = []string{"docker", "docker_swarm", "swarm", "kubernetes"} func NewProviderConfig() Provider { return Provider{ diff --git a/docs/providers/docker_swarm.md b/docs/providers/docker_swarm.md index 3838621..c5ed0c3 100644 --- a/docs/providers/docker_swarm.md +++ b/docs/providers/docker_swarm.md @@ -12,19 +12,19 @@ In order to use the docker provider you can configure the [provider.name](TODO) ```yaml provider: - name: docker_swarm + name: docker_swarm # or swarm ``` #### **CLI** ```bash -sablier start --provider.name=docker_swarm +sablier start --provider.name=docker_swarm # or swarm ``` #### **Environment Variable** ```bash -PROVIDER_NAME=docker_swarm +PROVIDER_NAME=docker_swarm # or swarm ``` @@ -38,7 +38,7 @@ services: image: acouvreur/sablier:1.6.0 command: - start - - --provider.name=docker_swarm + - --provider.name=docker_swarm # or swarm volumes: - '/var/run/docker.sock:/var/run/docker.sock' ``` diff --git a/docs/providers/overview.md b/docs/providers/overview.md index 54f45bc..9e25e12 100644 --- a/docs/providers/overview.md +++ b/docs/providers/overview.md @@ -12,14 +12,14 @@ A Provider typically have the following capabilities: ## Available providers -| Provider | Name | Details | -| --------------------------------------- | -------------- | ----------------------------------------------------------- | -| [Docker](/providers/docker) | `docker` | Stop and start **containers** on demand | -| [Docker Swarm](/providers/docker_swarm) | `docker_swarm` | Scale down to zero and up **services** on demand | -| [Kubernetes](/providers/kubernetes) | `kubernetes` | Scale down and up **deployments** and **statefulsets** on demand | -| [Podman](/providers/podman) | `podman` | [See #70](https://github.com/acouvreur/sablier/issues/70) | -| [ECS](/providers/ec2) | `ecs` | [See #116](https://github.com/acouvreur/sablier/issues/116) | -| [Systemd](/providers/systemd) | `systemd` | [See #148](https://github.com/acouvreur/sablier/issues/148) | +| Provider | Name | Details | +| --------------------------------------- | ------------------------- | ---------------------------------------------------------------- | +| [Docker](/providers/docker) | `docker` | Stop and start **containers** on demand | +| [Docker Swarm](/providers/docker_swarm) | `docker_swarm` or `swarm` | Scale down to zero and up **services** on demand | +| [Kubernetes](/providers/kubernetes) | `kubernetes` | Scale down and up **deployments** and **statefulsets** on demand | +| [Podman](/providers/podman) | `podman` | [See #70](https://github.com/acouvreur/sablier/issues/70) | +| [ECS](/providers/ec2) | `ecs` | [See #116](https://github.com/acouvreur/sablier/issues/116) | +| [Systemd](/providers/systemd) | `systemd` | [See #148](https://github.com/acouvreur/sablier/issues/148) | *Your Provider is not on the list? [Open an issue to request the missing provider here!](https://github.com/acouvreur/sablier/issues/new?assignees=&labels=enhancement%2C+provider&projects=&template=instance-provider-request.md&title=Add+%60%5BPROVIDER%5D%60+provider)*