Skip to content

Commit a185d16

Browse files
committed
Fix markdown lint issues
1 parent 62a1a7d commit a185d16

File tree

5 files changed

+40
-35
lines changed

5 files changed

+40
-35
lines changed

.markdownlint-cli2.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,5 @@ config:
2020
ignores:
2121
- ".github/"
2222
- "tests/results/"
23+
# Generated Charts docs; excluded from lint to avoid churn
24+
- "charts/nginx-gateway-fabric/README.md"

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,10 @@ from the main branch.
4545
The table below summarizes the options regarding the images, manifests, documentation and examples and gives your links
4646
to the correct versions:
4747

48-
| Version | Description | Installation Manifests | Documentation and Examples |
49-
|----------------|------------------------------------------|--------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
50-
| Latest release | For production use | [Manifests](https://github.com/nginx/nginx-gateway-fabric/tree/v2.2.1/deploy). | [Documentation](https://docs.nginx.com/nginx-gateway-fabric). [Examples](https://github.com/nginx/nginx-gateway-fabric/tree/v2.2.1/examples). |
51-
| Edge | For experimental use and latest features | [Manifests](https://github.com/nginx/nginx-gateway-fabric/tree/main/deploy). | [Examples](https://github.com/nginx/nginx-gateway-fabric/tree/main/examples). |
48+
| Version | Description | Installation Manifests | Documentation and Examples |
49+
| ------- | ----------- | ---------------------- | -------------------------- |
50+
| Latest release | For production use | [Manifests](https://github.com/nginx/nginx-gateway-fabric/tree/v2.2.1/deploy). | [Documentation](https://docs.nginx.com/nginx-gateway-fabric). [Examples](https://github.com/nginx/nginx-gateway-fabric/tree/v2.2.1/examples). |
51+
| Edge | For experimental use and latest features | [Manifests](https://github.com/nginx/nginx-gateway-fabric/tree/main/deploy). | [Examples](https://github.com/nginx/nginx-gateway-fabric/tree/main/examples). |
5252

5353
### Versioning
5454

docs/proposals/authentication-filter.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,11 @@ This document also focus on HTTP Basic Authentication and JWT Authentication. Ot
3737

3838
### Understanding NGINX authentication methods
3939

40-
| **Authentication Method** | **OSS** | **Plus** | **NGINX Module** | **Details** |
41-
|-------------------------------|--------------|----------------|----------------------------------|--------------------------------------------------------------------|
42-
| **HTTP Basic Authentication** | | | [ngx_http_auth_basic](https://nginx.org/en/docs/http/ngx_http_auth_basic_module.html) | Requires a username and password sent in an HTTP header. |
43-
| **JWT (JSON Web Token)** | | | [ngx_http_auth_jwt_module](https://nginx.org/en/docs/http/ngx_http_auth_jwt_module.html) | Tokens are used for stateless authentication between client and server. |
44-
| **OpenID Connect** | | | [ngx_http_oidc_module](https://nginx.org/en/docs/http/ngx_http_oidc_module.html)| Allows authentication through third-party providers like Google. |
40+
| **Authentication Method** | **OSS** | **Plus** | **NGINX Module** | **Details** |
41+
| ------------------------------- | -------------- | ---------------- | ---------------------------------- | -------------------------------------------------------------------- |
42+
| **HTTP Basic Authentication** ||| [ngx_http_auth_basic](https://nginx.org/en/docs/http/ngx_http_auth_basic_module.html) | Requires a username and password sent in an HTTP header. |
43+
| **JWT (JSON Web Token)** ||| [ngx_http_auth_jwt_module](https://nginx.org/en/docs/http/ngx_http_auth_jwt_module.html) | Tokens are used for stateless authentication between client and server. |
44+
| **OpenID Connect** ||| [ngx_http_oidc_module](https://nginx.org/en/docs/http/ngx_http_oidc_module.html) | Allows authentication through third-party providers like Google. |
4545

4646
### Understanding authentication terminology
4747

@@ -427,20 +427,23 @@ user:$apr1$prQ3Bh4t$A6bmTv7VgmemGe5eqR61j0
427427
```
428428

429429
Use these options in the `htpasswd` command for stronger hashing algorithims:
430+
430431
```bash
431432
-2 Force SHA-256 hashing of the password (secure).
432433
-5 Force SHA-512 hashing of the password (secure).
433434
-B Force bcrypt hashing of the password (very secure).
434435
```
435436

436437
You can then run this command to generate the secret from the `auth` file:
438+
437439
```bash
438440
kubectl create secret generic basic-auth --from-file=auth
439441
```
440442

441443
Note: `auth` will be the default key for secrets referenced `AuthenticationFilters` of `Type: Basic`.
442444

443445
Example secret:
446+
444447
```yaml
445448
apiVersion: v1
446449
kind: Secret

docs/proposals/nap-waf.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -716,17 +716,17 @@ According to the [Policy and Metaresources GEP](https://gateway-api.sigs.k8s.io/
716716

717717
The `Accepted` Condition must be populated on the `WAFPolicy` CRD using the reasons defined in the [PolicyCondition API](https://github.com/kubernetes-sigs/gateway-api/blob/main/apis/v1alpha2/policy_types.go). Below are example implementation-specific reasons that describe the lifecycle phases and potential issues encountered while processing the policy:
718718

719-
| **Reason** | **Description** | **Example Message** |
720-
|---------------------------|---------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|
721-
| **PolicySourceInvalid** | The `policySource` contains invalid or incomplete information. | "The policy source is invalid. Ensure fileLocation is correct." |
722-
| **PolicyFetchError** | Failed to fetch the policy due to network issues, authentication problems, or source misconfiguration. | "Failed to fetch policy bundle due to a network issue or invalid credentials." |
723-
| **PolicyIntegrityInvalid**| Checksum verification failed for the fetched policy bundle. | "Policy integrity check failed because of a checksum mismatch." |
724-
| **PolicyValidationError** | The WAF policy bundle failed schema or format validation for NGINX App Protect WAF. | "The policy bundle did not pass schema validation. Update the policy and retry compilation." |
725-
| **PolicyDeployed** | The policy was successfully deployed to the NGINX Data Plane (Pods). | "The policy has been successfully deployed and is now protecting the targeted resources." |
726-
| **PolicyDeployedUpdate** | An updated version of the policy was successfully deployed to the NGINX Data Plane (Pods) after polling or change detection. | "The policy has been updated and successfully redeployed to the targeted resources." |
727-
| **PolicyDeploymentError** | The data plane (NGINX Pods) failed to apply the policy. | "Failed to deploy the WAF policy to the NGINX Pods." |
728-
| **AuthenticationError** | Authentication to the external store (e.g., S3, HTTP) failed. | "Authentication error while trying to fetch the policy bundle." |
729-
| **PolicyConfigError** | The policy configuration prevents proper processing. | "The policy configuration is incomplete or incorrectly formatted. Correct the configuration and retry." |
719+
| **Reason** | **Description** | **Example Message** |
720+
| ---------- | --------------- | ------------------- |
721+
| **PolicySourceInvalid** | The `policySource` contains invalid or incomplete information. | "The policy source is invalid. Ensure fileLocation is correct." |
722+
| **PolicyFetchError** | Failed to fetch the policy due to network issues, authentication problems, or source misconfiguration. | "Failed to fetch policy bundle due to a network issue or invalid credentials." |
723+
| **PolicyIntegrityInvalid** | Checksum verification failed for the fetched policy bundle. | "Policy integrity check failed because of a checksum mismatch." |
724+
| **PolicyValidationError** | The WAF policy bundle failed schema or format validation for NGINX App Protect WAF. | "The policy bundle did not pass schema validation. Update the policy and retry compilation." |
725+
| **PolicyDeployed** | The policy was successfully deployed to the NGINX Data Plane (Pods). | "The policy has been successfully deployed and is now protecting the targeted resources." |
726+
| **PolicyDeployedUpdate** | An updated version of the policy was successfully deployed to the NGINX Data Plane (Pods) after polling or change detection. | "The policy has been updated and successfully redeployed to the targeted resources." |
727+
| **PolicyDeploymentError** | The data plane (NGINX Pods) failed to apply the policy. | "Failed to deploy the WAF policy to the NGINX Pods." |
728+
| **AuthenticationError** | Authentication to the external store (e.g., S3, HTTP) failed. | "Authentication error while trying to fetch the policy bundle." |
729+
| **PolicyConfigError** | The policy configuration prevents proper processing. | "The policy configuration is incomplete or incorrectly formatted. Correct the configuration and retry." |
730730

731731
### Example Status Conditions in `WAFPolicy`
732732

docs/proposals/session-persistence.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -129,16 +129,16 @@ Users can configure [sessionPersistence](https://gateway-api.sigs.k8s.io/referen
129129

130130
#### Mapping the Gateway API fields to NGINX directives
131131

132-
| Spec Field | NGINX Directive | Notes / Limitations |
133-
|----------------------------------------|----------------------------|-------------------------------------------------------------------------------------------------------------------------------------|
134-
| `sessionName` | `name` | Direct mapping to `sticky cookie` name. |
135-
| `absoluteTimeout` | `expires` | Only used when `cookieConfig.lifetimeType=Permanent`; not enforced for `Session` cookies. |
136-
| `idleTimeout` | _not supported_ | NGINX does not support idle-based invalidation for sticky cookies. Sessions expire only when the cookie expires or the session ends.|
137-
| `type` | `cookie` | Only cookie-based persistence is supported. If Header is specified, the sessionPersistence spec is ignored and a warning/status message is reported on the route, but the route itself remains valid. |
138-
| `cookieConfig.lifetimeType=Session` | _no `expires` set_ | Session cookies expire when the browser session ends. |
139-
| `cookieConfig.lifetimeType=Permanent` | `expires=<absoluteTimeout>`| Cookie persists until the specified timeout. `absoluteTimeout` is required when `lifetimeType` is `Permanent`. |
140-
| no matching spec field | _no `domain` attribute_ | Cookies are host-only for both `HTTPRoute` and `GRPCRoute`. |
141-
| no matching spec field | `path` | Behavior is described separately for `HTTPRoute` below. |
132+
| Spec Field | NGINX Directive | Notes / Limitations |
133+
| ---------- | --------------- | ------------------- |
134+
| `sessionName` | `name` | Direct mapping to `sticky cookie` name. |
135+
| `absoluteTimeout` | `expires` | Only used when `cookieConfig.lifetimeType=Permanent`; not enforced for `Session` cookies. |
136+
| `idleTimeout` | _not supported_ | NGINX does not support idle-based invalidation for sticky cookies. Sessions expire only when the cookie expires or the session ends. |
137+
| `type` | `cookie` | Only cookie-based persistence is supported. If Header is specified, the sessionPersistence spec is ignored and a warning/status message is reported on the route, but the route itself remains valid. |
138+
| `cookieConfig.lifetimeType=Session` | _no `expires` set_ | Session cookies expire when the browser session ends. |
139+
| `cookieConfig.lifetimeType=Permanent` | `expires=<absoluteTimeout>` | Cookie persists until the specified timeout. `absoluteTimeout` is required when `lifetimeType` is `Permanent`. |
140+
| no matching spec field | _no `domain` attribute_ | Cookies are host-only for both `HTTPRoute` and `GRPCRoute`. |
141+
| no matching spec field | `path` | Behavior is described separately for `HTTPRoute` below. |
142142

143143
#### Domain and Path selection for Routes
144144

@@ -148,11 +148,11 @@ For **HTTPRoutes**, we do not set the `domain` attribute. Deriving a broader dom
148148

149149
To determine the cookie `path` for HTTPRoutes, we handle the simple case where there is a single path match as follows:
150150

151-
| Path Value | Path Match Type | Cookie `Path` Value | Cookie Match Expectations |
152-
|-------------------------------------|-----------------|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|
153-
| `/hello-exact` | Exact | `/hello-exact` | Cookie header is sent for `/hello-exact` path only. |
154-
| `/hello-prefix` | Prefix | `/hello-prefix` | Cookie header is sent for `/hello-prefix` and any subpath starting with `/hello-prefix` (e.g. `/hello-prefix/foo`). |
155-
| `/hello-regex/[a-zA-Z0-9_-]+$` | Regex | `/hello-regex` | No `path` attribute is set for pathType `RegularExpression` |
151+
| Path Value | Path Match Type | Cookie `Path` Value | Cookie Match Expectations |
152+
| ---------- | --------------- | ------------------- | ------------------------- |
153+
| `/hello-exact` | Exact | `/hello-exact` | Cookie header is sent for `/hello-exact` path only. |
154+
| `/hello-prefix` | Prefix | `/hello-prefix` | Cookie header is sent for `/hello-prefix` and any subpath starting with `/hello-prefix` (e.g. `/hello-prefix/foo`). |
155+
| `/hello-regex/[a-zA-Z0-9_-]+$` | Regex | `/hello-regex` | No `path` attribute is set for pathType `RegularExpression` |
156156

157157
When there are multiple path matches that share the same sessionPersistence configuration, we derive a single cookie path by computing the longest common prefix that ends on a path-segment boundary `/`. If no non-empty common prefix on a segment boundary exists, we fall back to `/` which is allowing all paths.
158158

0 commit comments

Comments
 (0)