diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 00000000..3df04b83 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,28 @@ +--- +name: Release crate + +on: + workflow_dispatch: + inputs: + version: + description: "version (no `v` prefix)" + required: true + default: "1.0.0" + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + with: + ref: v${{ github.event.inputs.version }} + - name: Build + run: cargo build --verbose --release + - name: Check + run: cargo fmt --all -- --check && cargo clippy -- -D warnings + - name: Run tests + run: cargo test --verbose + - name: Publish + run: cargo publish --token ${{ secrets.CARGO_REGISTRY_TOKEN }} --dry-run diff --git a/Cargo.lock b/Cargo.lock index 222dfde1..ff542bb1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1185,7 +1185,7 @@ checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5" [[package]] name = "limitador" -version = "0.3.0-dev" +version = "0.3.0-rc1" dependencies = [ "async-trait", "cfg-if", @@ -1209,7 +1209,7 @@ dependencies = [ [[package]] name = "limitador-server" -version = "1.0.0-dev" +version = "1.0.0-rc1" dependencies = [ "actix-rt", "actix-web", diff --git a/limitador-server/CHANGELOG.md b/limitador-server/CHANGELOG.md index f2bd5029..89f07bd8 100644 --- a/limitador-server/CHANGELOG.md +++ b/limitador-server/CHANGELOG.md @@ -2,6 +2,26 @@ Notable changes to the Limitador server will be tracked in this document. +## 1.0.0 - 2022-10-21 + +### Added + +- Support for command line arguments and options +- Validation of the complete environment on start +- `LIMIT_FILE` is monitored for changes and hot-reloaded + +### Changed + +- [Syntax for condition](../doc/migrations/conditions.md) within `Limit`s changed +- Removed the HTTP endpoints to mutate `Limit`s +- `Limit`s are solely loaded from the `LIMIT_FILE` +- Only `Counter`s to `Limit`s are persisted, `Limit`s loaded from file are held in memory +- Duplicated `Limit`s with same namespace, conditions and variables is now impossible + +### Removed + +- By default, Infinispan support isn't compiled in. Use feature `infinispan` at build time + ## 0.5.1 - 2022-05-25 ### Changed diff --git a/limitador-server/Cargo.toml b/limitador-server/Cargo.toml index 7078bccc..55bdff22 100644 --- a/limitador-server/Cargo.toml +++ b/limitador-server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "limitador-server" -version = "1.0.0-dev" +version = "1.0.0-rc1" authors = ["Alex Snaps ", "Eguzki Astiz Lezaun ", "David Ortiz "] license = "Apache-2.0" keywords = ["rate-limiting", "rate", "limiter", "envoy", "rls"] diff --git a/limitador-server/kubernetes/README.md b/limitador-server/kubernetes/README.md index 417397a0..2bcbaab7 100644 --- a/limitador-server/kubernetes/README.md +++ b/limitador-server/kubernetes/README.md @@ -116,7 +116,7 @@ kubectl apply -f limitador-podmonitor.yaml ``` ### Grafana dashboard -Then, if you have grafana deployed in the cluster, you can import a [3scale Limitador](limitador-grafanadashboard.json) grafana dashboard that we have prepared, which includes: +Then, if you have grafana deployed in the cluster, you can import a [Kuadrant Limitador](limitador-grafanadashboard.json) grafana dashboard that we have prepared, which includes: - Kuard envoyproxy sidecar metrics (globally and per pod) - Limitador metrics (globally and per pod) - And for every deployed component (limitador, kuard, redis): diff --git a/limitador-server/kubernetes/limitador-deployment.yaml b/limitador-server/kubernetes/limitador-deployment.yaml index 3d7b353c..f86b05a9 100644 --- a/limitador-server/kubernetes/limitador-deployment.yaml +++ b/limitador-server/kubernetes/limitador-deployment.yaml @@ -16,7 +16,7 @@ spec: spec: containers: - name: limitador - image: quay.io/3scale/limitador:0.5.1 + image: quay.io/kuadrant/limitador:v1.0.0-rc1 imagePullPolicy: IfNotPresent env: - name: RUST_LOG diff --git a/limitador-server/kubernetes/limitador-grafanadashboard.json b/limitador-server/kubernetes/limitador-grafanadashboard.json index 67e4ef75..f0f3b9f1 100644 --- a/limitador-server/kubernetes/limitador-grafanadashboard.json +++ b/limitador-server/kubernetes/limitador-grafanadashboard.json @@ -2010,7 +2010,7 @@ "schemaVersion": 18, "style": "dark", "tags": [ - "3scale", + "kuadrant", "backend" ], "templating": { @@ -2149,6 +2149,6 @@ ] }, "timezone": "", - "title": "3scale Limitador", + "title": "Kuadrant Limitador", "version": 8 } \ No newline at end of file diff --git a/limitador/CHANGELOG.md b/limitador/CHANGELOG.md index 86c0b9a5..dafc8f1e 100644 --- a/limitador/CHANGELOG.md +++ b/limitador/CHANGELOG.md @@ -2,6 +2,30 @@ Notable changes to Limitador will be tracked in this document. +## 0.3.0 - 2022-10-21 + +### Added + + - Infinispan as an alternate storage for counters `feature = "infinispan_storage"` + - `lenient_conditions` feature to allow for deprecated `Condition` syntax + - Added _not equal_ (`!=`) operator support in `Condition`s + +### Changed + + - `Limit`s are now _only_ held in memory, `Counter`s for there are stored using the `Storage` used + - `Limit` identity now ignores the `max_value` and `name` field. So that they can be replaced properly + - Serialized form for `Limit`s, used to lookup `Counter`s, changed. Upgrading to this version, existing persisted `Counter`s are lost + - New `Condition` syntax within `Limit`s: `KEY_B == 'VALUE_B'` + - Simplified some function signatures to avoid explicit lifetimes + - Functions now take `Into` instead of `TryInto` as the conversion can't ever fail + - Only require a reference `&Namespace` when ownership over the value isn't needed + - Defaults for `(Async)CounterStorage` configurations are now public + - Errors when creating a `CounterStorage` or `AsyncCounterStorage` are returned, instead of `panic!`ing + +### Deleted + +- Merge pull request #130 from Kuadrant/issue_100 + ## 0.2.0 - 2021-03-08 ### Added diff --git a/limitador/Cargo.toml b/limitador/Cargo.toml index a8b24a04..91c2661f 100644 --- a/limitador/Cargo.toml +++ b/limitador/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "limitador" -version = "0.3.0-dev" +version = "0.3.0-rc1" authors = ["David Ortiz ", "Eguzki Astiz Lezaun ", "Alex Snaps "] license = "Apache-2.0" keywords = ["rate-limiting", "rate", "limiter"]