Skip to content

Commit

Permalink
Reconcile dev after merge to main for v1.14.0 (#2917)
Browse files Browse the repository at this point in the history
  • Loading branch information
o0Ignition0o authored Apr 7, 2023
2 parents 4b95ff1 + 63d7145 commit 6366200
Show file tree
Hide file tree
Showing 23 changed files with 416 additions and 180 deletions.
5 changes: 0 additions & 5 deletions .changesets/config_cannabis_saint_ignite_blouse.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changesets/config_extra_containers.md

This file was deleted.

3 changes: 0 additions & 3 deletions .changesets/config_helm_extra_labels.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changesets/docs_cache_control_rhai_example.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changesets/docs_capital_redhead_wallet_dwarf.md

This file was deleted.

15 changes: 0 additions & 15 deletions .changesets/feat_key_relax_scanner_range.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changesets/fix_shawl_seat_snort_hardwood.md

This file was deleted.

62 changes: 62 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,68 @@ All notable changes to Router will be documented in this file.

This project adheres to [Semantic Versioning v2.0.0](https://semver.org/spec/v2.0.0.html).

# [1.14.0] - 2023-04-06

## 🚀 Features

### GraphOS Enterprise: Coprocessor read access to request `uri`, `method` and HTTP response status codes ([Issue #2861](https://github.com/apollographql/router/issues/2861), [Issue #2861](https://github.com/apollographql/router/issues/2862))

We've added the ability for [coprocessors](https://www.apollographql.com/docs/router/customizations/coprocessor) to have read-only access to additional contextual information at [the `RouterService` and `SubgraphService`](https://www.apollographql.com/docs/router/customizations/coprocessor/#how-it-works) stages:

The `RouterService` stage now has read-only access to these **client request** properties:
- `path` (e.g., `/graphql`)
- `method` (e.g., `POST`, `GET`)

The `RouterService` stage now has read-only access to these **client response** properties:
- `status_code` (e.g. `403`, `200`)

The `SubgraphService` stage now has read-only access to these **subgraph response** properties:
- `status_code` (e.g., `503`, `200`)

By [@o0ignition0o](https://github.com/o0ignition0o) in https://github.com/apollographql/router/pull/2863

## 🐛 Fixes

### Coprocessors: Empty body requests from `GET` requests are now deserialized without error

Fixes a bug where a coprocessor operating at the `router_request` stage would fail to deserialize an empty body, which is typical for `GET` requests.

By [@o0ignition0o](https://github.com/o0ignition0o) in https://github.com/apollographql/router/pull/2863

## 📃 Configuration

### Helm: Router chart now supports `extraLabels` for Deployments/Pods

Our Helm chart now supports a new value called `extraLabels`, which enables chart users to add custom labels to the Router Deployment and its Pods.

By [@gscheibel](https://github.com/gscheibel/) in https://github.com/apollographql/router/pull/2903

### Helm: Router chart now supports `extraContainers` to run sidecars

Our Helm chart now supports `extraContainers` in an effort to simplify the ability to run containers alongside Router containers (sidecars) which is a useful pattern for [coprocessors](https://www.apollographql.com/docs/router/customizations/coprocessor/).

By [@pcarrier](https://github.com/pcarrier) in https://github.com/apollographql/router/pull/2881

### Migrate away from unimplemented `coprocessor.subgraph.all.response.uri`

We have removed a completely unimplemented `coprocessor.subgraph.all.response.uri` key from our configuration. It had no effect, but we will automatically migrate configurations which did use it, resulting in no breaking changes by this removal.

By [@o0ignition0o](https://github.com/o0ignition0o) in https://github.com/apollographql/router/pull/2863

## 📚 Documentation

### Update coprocessor documentation to reflect newly added fields ([Issue #2886](https://github.com/apollographql/router/issues/2886))

The [External coprocessing documentation](https://www.apollographql.com/docs/router/customizations/coprocessor) is now up to date, with a full configuration example, and the newly added fields.

By [@o0Ignition0o](https://github.com/o0Ignition0o) in https://github.com/apollographql/router/pull/2863

### Example: Rhai-based `cache-control` response header management

A new Rhai example demonstrates how to recreate some of the behavior of Apollo Gateway's subgraph `cache-control` response header behavior. This addresses some of the need identified in #326.

By [@lennyburdette](https://github.com/lennyburdette) in https://github.com/apollographql/router/pull/2759

# [1.13.2] - 2023-04-03

## 🐛 Fixes
Expand Down
6 changes: 3 additions & 3 deletions Cargo.lock
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ dependencies = [

[[package]]
name = "apollo-router"
version = "1.13.2"
version = "1.14.0"
dependencies = [
"access-json",
"ansi_term",
Expand Down Expand Up @@ -405,7 +405,7 @@ dependencies = [

[[package]]
name = "apollo-router-benchmarks"
version = "1.13.2"
version = "1.14.0"
dependencies = [
"apollo-parser 0.4.1",
"apollo-router",
Expand All @@ -421,7 +421,7 @@ dependencies = [

[[package]]
name = "apollo-router-scaffold"
version = "1.13.2"
version = "1.14.0"
dependencies = [
"anyhow",
"cargo-scaffold",
Expand Down
2 changes: 1 addition & 1 deletion apollo-router-benchmarks/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "apollo-router-benchmarks"
version = "1.13.2"
version = "1.14.0"
authors = ["Apollo Graph, Inc. <packages@apollographql.com>"]
edition = "2021"
license = "Elastic-2.0"
Expand Down
2 changes: 1 addition & 1 deletion apollo-router-scaffold/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "apollo-router-scaffold"
version = "1.13.2"
version = "1.14.0"
authors = ["Apollo Graph, Inc. <packages@apollographql.com>"]
edition = "2021"
license = "Elastic-2.0"
Expand Down
2 changes: 1 addition & 1 deletion apollo-router-scaffold/templates/base/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ apollo-router = { path ="{{integration_test}}apollo-router" }
apollo-router = { git="https://github.com/apollographql/router.git", branch="{{branch}}" }
{{else}}
# Note if you update these dependencies then also update xtask/Cargo.toml
apollo-router = "1.13.2"
apollo-router = "1.14.0"
{{/if}}
{{/if}}
async-trait = "0.1.52"
Expand Down
2 changes: 1 addition & 1 deletion apollo-router-scaffold/templates/base/xtask/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ apollo-router-scaffold = { path ="{{integration_test}}apollo-router-scaffold" }
{{#if branch}}
apollo-router-scaffold = { git="https://github.com/apollographql/router.git", branch="{{branch}}" }
{{else}}
apollo-router-scaffold = { git = "https://github.com/apollographql/router.git", tag = "v1.13.2" }
apollo-router-scaffold = { git = "https://github.com/apollographql/router.git", tag = "v1.14.0" }
{{/if}}
{{/if}}
anyhow = "1.0.58"
Expand Down
2 changes: 1 addition & 1 deletion apollo-router/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "apollo-router"
version = "1.13.2"
version = "1.14.0"
authors = ["Apollo Graph, Inc. <packages@apollographql.com>"]
repository = "https://github.com/apollographql/router/"
documentation = "https://docs.rs/apollo-router"
Expand Down
2 changes: 1 addition & 1 deletion dockerfiles/tracing/docker-compose.datadog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ services:

apollo-router:
container_name: apollo-router
image: ghcr.io/apollographql/router:v1.13.2
image: ghcr.io/apollographql/router:v1.14.0
volumes:
- ./supergraph.graphql:/etc/config/supergraph.graphql
- ./router/datadog.router.yaml:/etc/config/configuration.yaml
Expand Down
2 changes: 1 addition & 1 deletion dockerfiles/tracing/docker-compose.jaeger.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ services:
apollo-router:
container_name: apollo-router
#build: ./router
image: ghcr.io/apollographql/router:v1.13.2
image: ghcr.io/apollographql/router:v1.14.0
volumes:
- ./supergraph.graphql:/etc/config/supergraph.graphql
- ./router/jaeger.router.yaml:/etc/config/configuration.yaml
Expand Down
2 changes: 1 addition & 1 deletion dockerfiles/tracing/docker-compose.zipkin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ services:
apollo-router:
container_name: apollo-router
build: ./router
image: ghcr.io/apollographql/router:v1.13.2
image: ghcr.io/apollographql/router:v1.14.0
volumes:
- ./supergraph.graphql:/etc/config/supergraph.graphql
- ./router/zipkin.router.yaml:/etc/config/configuration.yaml
Expand Down
2 changes: 1 addition & 1 deletion docs/source/containerization/docker.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ The default behaviour of the router images is suitable for a quickstart or devel
Note: The [docker documentation](https://docs.docker.com/engine/reference/run/) for the run command may be helpful when reading through the examples.

Note: The exact image version to use is your choice depending on which release you wish to use. In the following examples, replace `<image version>` with your chosen version. e.g.: `v1.13.2`
Note: The exact image version to use is your choice depending on which release you wish to use. In the following examples, replace `<image version>` with your chosen version. e.g.: `v1.14.0`

## Override the configuration

Expand Down
28 changes: 14 additions & 14 deletions docs/source/containerization/kubernetes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { Link } from 'gatsby';

[Helm](https://helm.sh) is the package manager for kubernetes.

There is a complete [helm chart definition](https://github.com/apollographql/router/tree/v1.13.2/helm/chart/router) in the repo which illustrates how to use helm to deploy the router in kubernetes.
There is a complete [helm chart definition](https://github.com/apollographql/router/tree/v1.14.0/helm/chart/router) in the repo which illustrates how to use helm to deploy the router in kubernetes.

In both the following examples, we are using helm to install the router:
- into namespace "router-deploy" (create namespace if it doesn't exist)
Expand Down Expand Up @@ -64,10 +64,10 @@ kind: ServiceAccount
metadata:
name: release-name-router
labels:
helm.sh/chart: router-1.13.2
helm.sh/chart: router-1.14.0
app.kubernetes.io/name: router
app.kubernetes.io/instance: release-name
app.kubernetes.io/version: "v1.13.2"
app.kubernetes.io/version: "v1.14.0"
app.kubernetes.io/managed-by: Helm
---
# Source: router/templates/secret.yaml
Expand All @@ -76,10 +76,10 @@ kind: Secret
metadata:
name: "release-name-router"
labels:
helm.sh/chart: router-1.13.2
helm.sh/chart: router-1.14.0
app.kubernetes.io/name: router
app.kubernetes.io/instance: release-name
app.kubernetes.io/version: "v1.13.2"
app.kubernetes.io/version: "v1.14.0"
app.kubernetes.io/managed-by: Helm
data:
managedFederationApiKey: "UkVEQUNURUQ="
Expand All @@ -90,10 +90,10 @@ kind: ConfigMap
metadata:
name: release-name-router
labels:
helm.sh/chart: router-1.13.2
helm.sh/chart: router-1.14.0
app.kubernetes.io/name: router
app.kubernetes.io/instance: release-name
app.kubernetes.io/version: "v1.13.2"
app.kubernetes.io/version: "v1.14.0"
app.kubernetes.io/managed-by: Helm
data:
configuration.yaml: |
Expand All @@ -117,10 +117,10 @@ kind: Service
metadata:
name: release-name-router
labels:
helm.sh/chart: router-1.13.2
helm.sh/chart: router-1.14.0
app.kubernetes.io/name: router
app.kubernetes.io/instance: release-name
app.kubernetes.io/version: "v1.13.2"
app.kubernetes.io/version: "v1.14.0"
app.kubernetes.io/managed-by: Helm
spec:
type: ClusterIP
Expand All @@ -143,10 +143,10 @@ kind: Deployment
metadata:
name: release-name-router
labels:
helm.sh/chart: router-1.13.2
helm.sh/chart: router-1.14.0
app.kubernetes.io/name: router
app.kubernetes.io/instance: release-name
app.kubernetes.io/version: "v1.13.2"
app.kubernetes.io/version: "v1.14.0"
app.kubernetes.io/managed-by: Helm

annotations:
Expand All @@ -172,7 +172,7 @@ spec:
- name: router
securityContext:
{}
image: "ghcr.io/apollographql/router:v1.13.2"
image: "ghcr.io/apollographql/router:v1.14.0"
imagePullPolicy: IfNotPresent
args:
- --hot-reload
Expand Down Expand Up @@ -223,10 +223,10 @@ kind: Pod
metadata:
name: "release-name-router-test-connection"
labels:
helm.sh/chart: router-1.13.2
helm.sh/chart: router-1.14.0
app.kubernetes.io/name: router
app.kubernetes.io/instance: release-name
app.kubernetes.io/version: "v1.13.2"
app.kubernetes.io/version: "v1.14.0"
app.kubernetes.io/managed-by: Helm
annotations:
"helm.sh/hook": test
Expand Down
4 changes: 2 additions & 2 deletions helm/chart/router/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ type: application
# so it matches the shape of our release process and release automation.
# By proxy of that decision, this version uses SemVer 2.0.0, though the prefix
# of "v" is not included.
version: 1.13.2
version: 1.14.0

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "v1.13.2"
appVersion: "v1.14.0"
8 changes: 5 additions & 3 deletions helm/chart/router/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[router](https://github.com/apollographql/router) Rust Graph Routing runtime for Apollo Federation

![Version: 1.13.2](https://img.shields.io/badge/Version-1.13.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.13.2](https://img.shields.io/badge/AppVersion-v1.13.2-informational?style=flat-square)
![Version: 1.14.0](https://img.shields.io/badge/Version-1.14.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.14.0](https://img.shields.io/badge/AppVersion-v1.14.0-informational?style=flat-square)

## Prerequisites

Expand All @@ -11,15 +11,15 @@
## Get Repo Info

```console
helm pull oci://ghcr.io/apollographql/helm-charts/router --version 1.13.2
helm pull oci://ghcr.io/apollographql/helm-charts/router --version 1.14.0
```

## Install Chart

**Important:** only helm3 is supported

```console
helm upgrade --install [RELEASE_NAME] oci://ghcr.io/apollographql/helm-charts/router --version 1.13.2 --values my-values.yaml
helm upgrade --install [RELEASE_NAME] oci://ghcr.io/apollographql/helm-charts/router --version 1.14.0 --values my-values.yaml
```

_See [configuration](#configuration) below._
Expand All @@ -44,9 +44,11 @@ helm show values oci://ghcr.io/apollographql/helm-charts/router
| containerPorts.health | int | `8088` | For exposing the health check endpoint |
| containerPorts.http | int | `80` | If you override the port in `router.configuration.server.listen` then make sure to match the listen port here |
| containerPorts.metrics | int | `9090` | For exposing the metrics port when running a serviceMonitor for example |
| extraContainers | list | `[]` | An array of extra containers to include in the router pod Example: extraContainers: - name: coprocessor image: acme/coprocessor:1.0 ports: - containerPort: 4001 |
| extraEnvVars | list | `[]` | |
| extraEnvVarsCM | string | `""` | |
| extraEnvVarsSecret | string | `""` | |
| extraLabels | object | `{}` | A map of extra labels to apply to the router deploment and containers Example: extraLabels: label_one_name: "label_one_value" label_two_name: "label_two_value" |
| extraVolumeMounts | list | `[]` | |
| extraVolumes | list | `[]` | |
| fullnameOverride | string | `""` | |
Expand Down
Loading

0 comments on commit 6366200

Please sign in to comment.