Skip to content

Commit

Permalink
gh actions added for checking link correctnes in documentation (#282)
Browse files Browse the repository at this point in the history
  • Loading branch information
Ferdudas97 authored Dec 28, 2021
1 parent cb000c8 commit a5387d7
Show file tree
Hide file tree
Showing 7 changed files with 37 additions and 10 deletions.
20 changes: 20 additions & 0 deletions .github/workflows/markdown-links-check.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Markdown Links Check

on:
schedule:
- cron: "0 8 * * MON" # runs every monday at 8 am
workflow_dispatch:
push:
paths:
- 'docs/**'

jobs:
check-links:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: gaurav-nelson/github-action-markdown-link-check@v1
with:
use-verbose-mode: 'yes'
folder-path: 'docs'
config-file: '.github/workflows/markdown-links-config.json'
7 changes: 7 additions & 0 deletions .github/workflows/markdown-links-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"ignorePatterns": [
{
"pattern": "^http://localhost"
}
]
}
2 changes: 1 addition & 1 deletion docs/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,4 +56,4 @@ You can easily replace it with your framework of choice - Envoy Control module a

### Extensibility
If you want to extend Envoy Control you can either depend on Envoy Control module and create your own Runner or you can
depend on the Envoy Control Runner itself and provide only minimal modifications.
depend on the Envoy Control Runner itself and provide only minimal modifications.
8 changes: 4 additions & 4 deletions docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,9 +118,9 @@ Property
Property | Description | Default value
------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------
**envoy-control.envoy.snapshot.load-balancing.weights.enabled** | if set to true, weighted load balancing will be enabled | false
**envoy-control.envoy.snapshot.load-balancing.canary.enabled** | if set to true, routing to canary instances based on *canary header* will be enabled (corresponding Envoy static config is required, see [docs](../features/load_balancing)) | false
**envoy-control.envoy.snapshot.load-balancing.canary.metadata-key** | metadata that will be set for canary EDS endpoints - key (must match Envoy static `header_to_metadata` filter config, see [docs](../features/load_balancing)) | canary
**envoy-control.envoy.snapshot.load-balancing.canary.header-value** | only when *canary header* is set to this value request will be routed to canary instances (*canary header* name is set in Envoy static config, see [docs](../features/load_balancing)) | 1
**envoy-control.envoy.snapshot.load-balancing.canary.enabled** | if set to true, routing to canary instances based on *canary header* will be enabled (corresponding Envoy static config is required, see [docs](features/load_balancing.md)) | false
**envoy-control.envoy.snapshot.load-balancing.canary.metadata-key** | metadata that will be set for canary EDS endpoints - key (must match Envoy static `header_to_metadata` filter config, see [docs](features/load_balancing.md)) | canary
**envoy-control.envoy.snapshot.load-balancing.canary.header-value** | only when *canary header* is set to this value request will be routed to canary instances (*canary header* name is set in Envoy static config, see [docs](features/load_balancing.md)) | 1
**envoy-control.envoy.snapshot.load-balancing.policy** | load balancing policy used for clusters. [Accepted values](https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/cds.proto.html#enum-cluster-lbpolicy) | LEAST_REQUEST
**envoy-control.envoy.snapshot.load-balancing.use-keys-subset-fallback-policy** | KEYS_SUBSET fallback policy is used by default when canary and service-tags are enabled. It is not supported in Envoy <= 1.12.x. Set to false for compatibility with Envoy 1.12.x | true

Expand Down Expand Up @@ -155,7 +155,7 @@ Property
Property | Description | Default value
--------------------------------------------------------------------------------------------------------| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------
**envoy-control.envoy.snapshot.localService.retryPolicy.\<selector>.enabled** | Enable retry policy for localService | false
**envoy-control.envoy.snapshot.localService.retryPolicy.\<selector>.retry-on** | When should envoy retry request [Envoy V2 API retry-on](https://www.envoyproxy.io/docs/envoy/latest/configuration/http_filters/router_filter#x-envoy-retry-on) | empty list
**envoy-control.envoy.snapshot.localService.retryPolicy.\<selector>.retry-on** | When should envoy retry request [Envoy V2 API retry-on](https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/router_filter#x-envoy-retry-on) | empty list
**envoy-control.envoy.snapshot.localService.retryPolicy.\<selector>.num-retries** | Number of retries | 1
**envoy-control.envoy.snapshot.localService.retryPolicy.\<selector>.per-try-timeout** | Specifies a non-zero upstream timeout per retry attempt | 0ms
**envoy-control.envoy.snapshot.localService.retryPolicy.\<selector>.host-selection-retry-max-attempts** | The maximum number of times host selection will be reattempted before request being routed to last selected host | 1
Expand Down
2 changes: 1 addition & 1 deletion docs/development.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,6 @@ The package should be available in `{root}/envoy-control-runner/build/distributi
To apply [ktlint](https://ktlint.github.io/) formatting rules to IntelliJ IDEA. Run: `./gradlew ktlintApplyToIdea`

## Linter
A linter - [detekt](https://arturbosch.github.io/detekt/) runs when Envoy Control is built. You can run it separately:
A linter - [detekt](https://detekt.github.io/detekt/) runs when Envoy Control is built. You can run it separately:
`./gradlew detekt`.

2 changes: 1 addition & 1 deletion docs/features/multi_dc_support.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ The extra challenge here is to not end up in an infinite loop.

### Instance synchronization
The second strategy is to have all instances from all clusters available in Envoy but with different
[priorities](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/load_balancing/priority).
[priorities](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/priority).
Only if there are no instances in the local cluster, an instance from remote cluster will be used.
The main benefit of this approach is a lack of single point of failure and maintainability at the cost of extra logic
in Control Plane.
Expand Down
6 changes: 3 additions & 3 deletions docs/integrations/envoy.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ in Envoy metadata config. Envoy Control will pick it up and use ADS for this nod
## Outlier detection

You can configure global
[outlier detection](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/outlier#arch-overview-outlier-detection)
[outlier detection](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/outlier#arch-overview-outlier-detection)
for all clusters with properties [described here](../configuration.md#outlier-detection).

## Retry policy
Expand All @@ -62,6 +62,6 @@ By default Envoy Control will set HTTP/1 for all clusters under it's control.
A preferred protocol for communication is HTTP/2 whenever it's available.
If you have a heterogeneous environment and only some of your services support HTTP2 or run Envoy you might want to tweak this option.
Based on `envoy-control.envoy.snapshot.egress.http2.enabled`
Envoy Control will enable Http2 for clusters that have a [tag](https://github.com/allegro/envoy-control/blob/master/envoy-control-services/src/main/kotlin/pl/allegro/tech/servicemesh/envoycontrol/services/ServiceInstance.kt#L5)
with a value equal to property `envoy-control.envoy.snapshot.egress.http2.tagName` only when it's present on every [instance](https://github.com/allegro/envoy-control/blob/master/envoy-control-services/src/main/kotlin/pl/allegro/tech/servicemesh/envoycontrol/services/ServiceInstance.kt).
Envoy Control will enable Http2 for clusters that have a [tag](https://github.com/allegro/envoy-control/blob/master/envoy-control-services/src/main/kotlin/pl/allegro/tech/servicemesh/envoycontrol/services/ServiceInstances.kt#L5)
with a value equal to property `envoy-control.envoy.snapshot.egress.http2.tagName` only when it's present on every [instance](https://github.com/allegro/envoy-control/blob/master/envoy-control-services/src/main/kotlin/pl/allegro/tech/servicemesh/envoycontrol/services/ServiceInstances.kt).
By default `tagName` is `envoy` so if one of your discovery service sources uses that you need to change the value of `tagName`.

0 comments on commit a5387d7

Please sign in to comment.