diff --git a/apis/doc.go b/apis/doc.go new file mode 100644 index 0000000000..d86dadddf1 --- /dev/null +++ b/apis/doc.go @@ -0,0 +1,17 @@ +/* +Copyright 2020 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package apis diff --git a/examples/experimental/v1beta1/http-redirect-rewrite/httproute-redirect-full.yaml b/examples/experimental/v1beta1/http-redirect-rewrite/httproute-redirect-full.yaml new file mode 100644 index 0000000000..ae6b4f01c4 --- /dev/null +++ b/examples/experimental/v1beta1/http-redirect-rewrite/httproute-redirect-full.yaml @@ -0,0 +1,23 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: HTTPRoute +metadata: + name: http-filter-redirect +spec: + hostnames: + - redirect.example + rules: + - matches: + - path: + type: PathPrefix + value: /cayenne + filters: + - type: RequestRedirect + requestRedirect: + path: + type: ReplaceFullPath + replaceFullPath: /paprika + statusCode: 302 + backendRefs: + - name: example-svc + weight: 1 + port: 80 diff --git a/examples/experimental/v1beta1/http-redirect-rewrite/httproute-redirect-https.yaml b/examples/experimental/v1beta1/http-redirect-rewrite/httproute-redirect-https.yaml new file mode 100644 index 0000000000..bed3c599e4 --- /dev/null +++ b/examples/experimental/v1beta1/http-redirect-rewrite/httproute-redirect-https.yaml @@ -0,0 +1,17 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: HTTPRoute +metadata: + name: http-filter-redirect +spec: + hostnames: + - redirect.example + rules: + - filters: + - type: RequestRedirect + requestRedirect: + scheme: https + statusCode: 301 + backendRefs: + - name: example-svc + weight: 1 + port: 80 diff --git a/examples/experimental/v1beta1/http-redirect-rewrite/httproute-redirect-prefix.yaml b/examples/experimental/v1beta1/http-redirect-rewrite/httproute-redirect-prefix.yaml new file mode 100644 index 0000000000..cef6edb1f1 --- /dev/null +++ b/examples/experimental/v1beta1/http-redirect-rewrite/httproute-redirect-prefix.yaml @@ -0,0 +1,23 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: HTTPRoute +metadata: + name: http-filter-redirect +spec: + hostnames: + - redirect.example + rules: + - matches: + - path: + type: PathPrefix + value: /cayenne + filters: + - type: RequestRedirect + requestRedirect: + path: + type: ReplacePrefixMatch + replacePrefixMatch: /paprika + statusCode: 302 + backendRefs: + - name: example-svc + weight: 1 + port: 80 diff --git a/examples/experimental/v1beta1/http-redirect-rewrite/httproute-rewrite-path.yaml b/examples/experimental/v1beta1/http-redirect-rewrite/httproute-rewrite-path.yaml new file mode 100644 index 0000000000..c37098d493 --- /dev/null +++ b/examples/experimental/v1beta1/http-redirect-rewrite/httproute-rewrite-path.yaml @@ -0,0 +1,23 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: HTTPRoute +metadata: + name: http-filter-rewrite +spec: + hostnames: + - rewrite.example + rules: + - matches: + - path: + type: PathPrefix + value: /cardamom + filters: + - type: URLRewrite + urlRewrite: + hostname: elsewhere.example + path: + type: ReplaceFullPath + replaceFullPath: /fennel + backendRefs: + - name: example-svc + weight: 1 + port: 80 diff --git a/examples/experimental/v1beta1/http-redirect-rewrite/httproute-rewrite.yaml b/examples/experimental/v1beta1/http-redirect-rewrite/httproute-rewrite.yaml new file mode 100644 index 0000000000..9cc38b5d4e --- /dev/null +++ b/examples/experimental/v1beta1/http-redirect-rewrite/httproute-rewrite.yaml @@ -0,0 +1,16 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: HTTPRoute +metadata: + name: http-filter-rewrite +spec: + hostnames: + - rewrite.example + rules: + - filters: + - type: URLRewrite + urlRewrite: + hostname: elsewhere.example + backendRefs: + - name: example-svc + weight: 1 + port: 80 diff --git a/examples/experimental/v1beta1/http-redirect.yaml b/examples/experimental/v1beta1/http-redirect.yaml new file mode 100644 index 0000000000..a97d15f397 --- /dev/null +++ b/examples/experimental/v1beta1/http-redirect.yaml @@ -0,0 +1,18 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: HTTPRoute +metadata: + name: http-filter-1 + namespace: gateway-api-example-ns1 +spec: + parentRefs: + - name: my-filter-gateway + sectionName: http + hostnames: + - my-filter.example.com + rules: + - filters: + - type: RequestRedirect + requestRedirect: + path: + type: ReplaceFullPath + replaceFullPath: /foo diff --git a/examples/experimental/v1beta1/http-rewrite.yaml b/examples/experimental/v1beta1/http-rewrite.yaml new file mode 100644 index 0000000000..eb580f9a41 --- /dev/null +++ b/examples/experimental/v1beta1/http-rewrite.yaml @@ -0,0 +1,18 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: HTTPRoute +metadata: + name: http-filter-1 + namespace: gateway-api-example-ns1 +spec: + parentRefs: + - name: my-filter-gateway + sectionName: http + hostnames: + - my-filter.example.com + rules: + - filters: + - type: URLRewrite + urlRewrite: + path: + type: ReplaceFullPath + replaceFullPath: /foo diff --git a/hack/api-docs/generate.sh b/hack/api-docs/generate.sh index 9b1c517589..f7a3e76db9 100755 --- a/hack/api-docs/generate.sh +++ b/hack/api-docs/generate.sh @@ -42,12 +42,12 @@ gendoc::exec() { "$@" } -if [ "$#" != "2" ]; then - echo "usage: generate.sh API_VERSION OUTFILE" +if [ "$#" != "1" ]; then + echo "usage: generate.sh OUTFILE" exit 2 fi gendoc::build gendoc::exec \ - -api-dir "sigs.k8s.io/gateway-api/apis/${1}" \ - -out-file "${2}" + -api-dir "sigs.k8s.io/gateway-api/apis/" \ + -out-file "${1}" diff --git a/hack/invalid-examples/v1alpha2/httproute/invalid-filter-wrong-field.yaml b/hack/invalid-examples/v1alpha2/httproute/invalid-filter-wrong-field.yaml index af8b247af2..6edfb83aa1 100644 --- a/hack/invalid-examples/v1alpha2/httproute/invalid-filter-wrong-field.yaml +++ b/hack/invalid-examples/v1alpha2/httproute/invalid-filter-wrong-field.yaml @@ -7,4 +7,5 @@ spec: - filters: - type: RequestHeaderModifier requestRedirect: - port: 443 \ No newline at end of file + port: 443 + diff --git a/hack/invalid-examples/v1beta1/gateway/duplicate-listeners.yaml b/hack/invalid-examples/v1beta1/gateway/duplicate-listeners.yaml new file mode 100644 index 0000000000..ff306117fd --- /dev/null +++ b/hack/invalid-examples/v1beta1/gateway/duplicate-listeners.yaml @@ -0,0 +1,13 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: Gateway +metadata: + name: duplicate-listeners +spec: + gatewayClassName: acme-lb + listeners: + - name: same + protocol: HTTP + port: 80 + - name: same + protocol: HTTP + port: 443 diff --git a/hack/invalid-examples/v1beta1/gateway/hostname-tcp.yaml b/hack/invalid-examples/v1beta1/gateway/hostname-tcp.yaml new file mode 100644 index 0000000000..f635d89c9e --- /dev/null +++ b/hack/invalid-examples/v1beta1/gateway/hostname-tcp.yaml @@ -0,0 +1,11 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: Gateway +metadata: + name: hostname-tcp +spec: + gatewayClassName: acme-lb + listeners: + - name: example + hostname: example.com + protocol: TCP + port: 80 diff --git a/hack/invalid-examples/v1beta1/gateway/hostname-udp.yaml b/hack/invalid-examples/v1beta1/gateway/hostname-udp.yaml new file mode 100644 index 0000000000..1d1b5a045d --- /dev/null +++ b/hack/invalid-examples/v1beta1/gateway/hostname-udp.yaml @@ -0,0 +1,11 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: Gateway +metadata: + name: hostname-udp +spec: + gatewayClassName: acme-lb + listeners: + - name: example + hostname: example.com + protocol: UDP + port: 80 diff --git a/hack/invalid-examples/v1beta1/gateway/invalid-listener-name.yaml b/hack/invalid-examples/v1beta1/gateway/invalid-listener-name.yaml new file mode 100644 index 0000000000..31815e6b44 --- /dev/null +++ b/hack/invalid-examples/v1beta1/gateway/invalid-listener-name.yaml @@ -0,0 +1,10 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: Gateway +metadata: + name: invalid-listener-name +spec: + gatewayClassName: acme-lb + listeners: + - name: bad> + protocol: HTTP + port: 80 diff --git a/hack/invalid-examples/v1beta1/gateway/invalid-listener-port.yaml b/hack/invalid-examples/v1beta1/gateway/invalid-listener-port.yaml new file mode 100644 index 0000000000..e7546ad2d2 --- /dev/null +++ b/hack/invalid-examples/v1beta1/gateway/invalid-listener-port.yaml @@ -0,0 +1,10 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: Gateway +metadata: + name: invalid-listener-port +spec: + gatewayClassName: acme-lb + listeners: + - name: foo + protocol: HTTP + port: 123456789 diff --git a/hack/invalid-examples/v1beta1/gateway/tlsconfig-tcp.yaml b/hack/invalid-examples/v1beta1/gateway/tlsconfig-tcp.yaml new file mode 100644 index 0000000000..a351b82a25 --- /dev/null +++ b/hack/invalid-examples/v1beta1/gateway/tlsconfig-tcp.yaml @@ -0,0 +1,16 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: Gateway +metadata: + name: tlsconfig-tcp +spec: + gatewayClassName: acme-lb + listeners: + - name: example + protocol: TCP + port: 443 + tls: + certificateRefs: + - kind: Secret + group: "" + name: bar-example-com-cert + diff --git a/hack/invalid-examples/v1beta1/gatewayclass/invalid-controller.yaml b/hack/invalid-examples/v1beta1/gatewayclass/invalid-controller.yaml new file mode 100644 index 0000000000..a21ffb9876 --- /dev/null +++ b/hack/invalid-examples/v1beta1/gatewayclass/invalid-controller.yaml @@ -0,0 +1,6 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: GatewayClass +metadata: + name: invalid-controller +spec: + controllerName: example diff --git a/hack/invalid-examples/v1beta1/httproute/duplicate-header-match.yaml b/hack/invalid-examples/v1beta1/httproute/duplicate-header-match.yaml new file mode 100644 index 0000000000..95d253db2b --- /dev/null +++ b/hack/invalid-examples/v1beta1/httproute/duplicate-header-match.yaml @@ -0,0 +1,12 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: HTTPRoute +metadata: + name: duplicate-header-match +spec: + rules: + - matches: + - headers: + - name: foo + value: bar + - name: foo + value: bar diff --git a/hack/invalid-examples/v1beta1/httproute/duplicate-query-match.yaml b/hack/invalid-examples/v1beta1/httproute/duplicate-query-match.yaml new file mode 100644 index 0000000000..2840112112 --- /dev/null +++ b/hack/invalid-examples/v1beta1/httproute/duplicate-query-match.yaml @@ -0,0 +1,12 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: HTTPRoute +metadata: + name: duplicate-query-match +spec: + rules: + - matches: + - queryParams: + - name: foo + value: bar + - name: foo + value: bar diff --git a/hack/invalid-examples/v1beta1/httproute/httproute-portless-backend.yaml b/hack/invalid-examples/v1beta1/httproute/httproute-portless-backend.yaml new file mode 100644 index 0000000000..f8082af21a --- /dev/null +++ b/hack/invalid-examples/v1beta1/httproute/httproute-portless-backend.yaml @@ -0,0 +1,10 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: HTTPRoute +metadata: + name: portless-backend +spec: + parentRefs: + - name: prod-web + rules: + - backendRefs: + - name: foo diff --git a/hack/invalid-examples/v1beta1/httproute/httproute-portless-service.yaml b/hack/invalid-examples/v1beta1/httproute/httproute-portless-service.yaml new file mode 100644 index 0000000000..59528b28f5 --- /dev/null +++ b/hack/invalid-examples/v1beta1/httproute/httproute-portless-service.yaml @@ -0,0 +1,12 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: HTTPRoute +metadata: + name: portless-service +spec: + parentRefs: + - name: prod-web + rules: + - backendRefs: + - name: foo + kind: Service + group: "" diff --git a/hack/invalid-examples/v1beta1/httproute/invalid-backend-group.yaml b/hack/invalid-examples/v1beta1/httproute/invalid-backend-group.yaml new file mode 100644 index 0000000000..c7d6a1bbf1 --- /dev/null +++ b/hack/invalid-examples/v1beta1/httproute/invalid-backend-group.yaml @@ -0,0 +1,10 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: HTTPRoute +metadata: + name: invalid-backend-group +spec: + rules: + - backendRefs: + - group: "*" + name: foo + port: 80 diff --git a/hack/invalid-examples/v1beta1/httproute/invalid-backend-kind.yaml b/hack/invalid-examples/v1beta1/httproute/invalid-backend-kind.yaml new file mode 100644 index 0000000000..65cfd67b75 --- /dev/null +++ b/hack/invalid-examples/v1beta1/httproute/invalid-backend-kind.yaml @@ -0,0 +1,10 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: HTTPRoute +metadata: + name: invalid-backend-kind +spec: + rules: + - backendRefs: + - kind: "*" + name: foo + port: 80 diff --git a/hack/invalid-examples/v1beta1/httproute/invalid-backend-port.yaml b/hack/invalid-examples/v1beta1/httproute/invalid-backend-port.yaml new file mode 100644 index 0000000000..80fe5f4373 --- /dev/null +++ b/hack/invalid-examples/v1beta1/httproute/invalid-backend-port.yaml @@ -0,0 +1,9 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: HTTPRoute +metadata: + name: invalid-backend-port +spec: + rules: + - backendRefs: + - name: my-service1 + port: 800080 diff --git a/hack/invalid-examples/v1beta1/httproute/invalid-filter-duplicate.yaml b/hack/invalid-examples/v1beta1/httproute/invalid-filter-duplicate.yaml new file mode 100644 index 0000000000..f7034f8a90 --- /dev/null +++ b/hack/invalid-examples/v1beta1/httproute/invalid-filter-duplicate.yaml @@ -0,0 +1,18 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: HTTPRoute +metadata: + name: invalid-filter-duplicate +spec: + rules: + - filters: + - type: RequestHeaderModifier + requestHeaderModifier: + add: + - name: my-header + value: foo + - type: RequestHeaderModifier + requestHeaderModifier: + add: + - name: my-header + value: bar + diff --git a/hack/invalid-examples/v1beta1/httproute/invalid-filter-empty.yaml b/hack/invalid-examples/v1beta1/httproute/invalid-filter-empty.yaml new file mode 100644 index 0000000000..ee682e47fc --- /dev/null +++ b/hack/invalid-examples/v1beta1/httproute/invalid-filter-empty.yaml @@ -0,0 +1,8 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: HTTPRoute +metadata: + name: invalid-filter-empty +spec: + rules: + - filters: + - type: RequestHeaderModifier diff --git a/hack/invalid-examples/v1beta1/httproute/invalid-filter-wrong-field.yaml b/hack/invalid-examples/v1beta1/httproute/invalid-filter-wrong-field.yaml new file mode 100644 index 0000000000..25c263f933 --- /dev/null +++ b/hack/invalid-examples/v1beta1/httproute/invalid-filter-wrong-field.yaml @@ -0,0 +1,11 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: HTTPRoute +metadata: + name: invalid-filter-wrong-field +spec: + rules: + - filters: + - type: RequestHeaderModifier + requestRedirect: + port: 443 + diff --git a/hack/invalid-examples/v1beta1/httproute/invalid-header-name.yaml b/hack/invalid-examples/v1beta1/httproute/invalid-header-name.yaml new file mode 100644 index 0000000000..4b1f77da0c --- /dev/null +++ b/hack/invalid-examples/v1beta1/httproute/invalid-header-name.yaml @@ -0,0 +1,11 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: HTTPRoute +metadata: + name: invalid-header-name +spec: + rules: + - matches: + - headers: + - type: Exact + name: magic/ + value: foo diff --git a/hack/invalid-examples/v1beta1/httproute/invalid-hostname.yaml b/hack/invalid-examples/v1beta1/httproute/invalid-hostname.yaml new file mode 100644 index 0000000000..55e2d8f632 --- /dev/null +++ b/hack/invalid-examples/v1beta1/httproute/invalid-hostname.yaml @@ -0,0 +1,10 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: HTTPRoute +metadata: + name: invalid-hostname +spec: + hostnames: + - http://a< + rules: + - backendRefs: + - name: foo diff --git a/hack/invalid-examples/v1beta1/httproute/invalid-httredirect-hostname.yaml b/hack/invalid-examples/v1beta1/httproute/invalid-httredirect-hostname.yaml new file mode 100644 index 0000000000..859d95a51c --- /dev/null +++ b/hack/invalid-examples/v1beta1/httproute/invalid-httredirect-hostname.yaml @@ -0,0 +1,14 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: HTTPRoute +metadata: + name: invalid-backend-port +spec: + rules: + - backendRefs: + - name: my-service + port: 8080 + filters: + - type: RequestRedirect + requestRedirect: + hostname: "*.gateway.networking.k8s.io" + diff --git a/hack/invalid-examples/v1beta1/httproute/invalid-method.yaml b/hack/invalid-examples/v1beta1/httproute/invalid-method.yaml new file mode 100644 index 0000000000..22c85189de --- /dev/null +++ b/hack/invalid-examples/v1beta1/httproute/invalid-method.yaml @@ -0,0 +1,8 @@ +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: HTTPRoute +metadata: + name: invalid-method +spec: + rules: + - matches: + - method: NOTREAL diff --git a/hack/make-docs.sh b/hack/make-docs.sh index 686c316ed0..02f548119e 100755 --- a/hack/make-docs.sh +++ b/hack/make-docs.sh @@ -35,6 +35,7 @@ mkdir -p site # Generate docs with mkdocs mkdocs build # Generate v1alpha2 API docs -./hack/api-docs/generate.sh v1alpha2 site/v1alpha2-spec.html +./hack/api-docs/generate.sh site/spec.html # Add them to spec page originally generated by mkdocs -run::sed -e '/REPLACE_WITH_GENERATED_CONTENT/{r site/v1alpha2-spec.html' -e 'd;}' site/v1alpha2/references/spec/index.html +run::sed -e '/REPLACE_WITH_GENERATED_CONTENT/{r site/spec.html' -e 'd;}' site/references/spec/index.html +run::sed -e '/REPLACE_WITH_GENERATED_CONTENT/{r site/spec.html' -e 'd;}' site/v1alpha2/references/spec/index.html diff --git a/mkdocs.yml b/mkdocs.yml index ae35bddce8..f19e99741b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -43,22 +43,22 @@ nav: - Implementations: implementations.md - FAQ: faq.md - Guides: - - Getting started: v1alpha2/guides/getting-started.md - - Simple Gateway: v1alpha2/guides/simple-gateway.md - - HTTP routing: v1alpha2/guides/http-routing.md - - HTTP redirects and rewrites: v1alpha2/guides/http-redirect-rewrite.md - - HTTP traffic splitting: v1alpha2/guides/traffic-splitting.md - - Cross-Namespace routing: v1alpha2/guides/multiple-ns.md - - TLS: v1alpha2/guides/tls.md - - TCP routing: v1alpha2/guides/tcp.md + - Getting started: guides/getting-started.md + - Simple Gateway: guides/simple-gateway.md + - HTTP routing: guides/http-routing.md + - HTTP redirects and rewrites: guides/http-redirect-rewrite.md + - HTTP traffic splitting: guides/traffic-splitting.md + - Cross-Namespace routing: guides/multiple-ns.md + - TLS: guides/tls.md + - TCP routing: guides/tcp.md - Reference: - API Types: - GatewayClass: v1alpha2/api-types/gatewayclass.md - Gateway: v1alpha2/api-types/gateway.md - HTTPRoute: v1alpha2/api-types/httproute.md - ReferenceGrant: v1alpha2/api-types/referencegrant.md - - API specification: v1alpha2/references/spec.md - - Policy Attachment: v1alpha2/references/policy-attachment.md + GatewayClass: api-types/gatewayclass.md + Gateway: api-types/gateway.md + HTTPRoute: api-types/httproute.md + ReferenceGrant: api-types/referencegrant.md + - API specification: references/spec.md + - Policy Attachment: references/policy-attachment.md - Enhancement Proposals: - Overview: contributing/gep.md - ... | geps/gep-*.md diff --git a/site-src/v1alpha2/api-types/gateway.md b/site-src/api-types/gateway.md similarity index 100% rename from site-src/v1alpha2/api-types/gateway.md rename to site-src/api-types/gateway.md diff --git a/site-src/v1alpha2/api-types/gatewayclass.md b/site-src/api-types/gatewayclass.md similarity index 100% rename from site-src/v1alpha2/api-types/gatewayclass.md rename to site-src/api-types/gatewayclass.md diff --git a/site-src/v1alpha2/api-types/httproute.md b/site-src/api-types/httproute.md similarity index 88% rename from site-src/v1alpha2/api-types/httproute.md rename to site-src/api-types/httproute.md index a77c3963bc..98ea3538fd 100644 --- a/site-src/v1alpha2/api-types/httproute.md +++ b/site-src/api-types/httproute.md @@ -17,7 +17,7 @@ The specification of an HTTPRoute consists of: fields. The following illustrates an HTTPRoute that sends all traffic to one Service: -![httproute-basic-example](/v1alpha2/images/httproute-basic-example.svg) +![httproute-basic-example](/images/httproute-basic-example.svg) ### Attaching to Gateways @@ -197,12 +197,12 @@ only one Route rule may match each request. For more information on how conflict resolution applies to merging, refer to the [API specification][httprouterule]. -[httproute]: https://gateway-api.sigs.k8s.io/v1alpha2/references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPRoute -[httprouterule]: https://gateway-api.sigs.k8s.io/v1alpha2/references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPRouteRule -[hostname]: https://gateway-api.sigs.k8s.io/v1alpha2/references/spec/#gateway.networking.k8s.io/v1alpha2.Hostname +[httproute]: /references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPRoute +[httprouterule]: /references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPRouteRule +[hostname]: /references/spec/#gateway.networking.k8s.io/v1alpha2.Hostname [rfc-3986]: https://tools.ietf.org/html/rfc3986 -[matches]: https://gateway-api.sigs.k8s.io/v1alpha2/references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPRouteMatch -[filters]: https://gateway-api.sigs.k8s.io/v1alpha2/references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPRouteFilter -[backendRef]: https://gateway-api.sigs.k8s.io/v1alpha2/references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPBackendRef -[parentRef]: https://gateway-api.sigs.k8s.io/v1alpha2/references/spec/#gateway.networking.k8s.io/v1alpha2.ParentRef +[matches]: /references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPRouteMatch +[filters]: /references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPRouteFilter +[backendRef]: /references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPBackendRef +[parentRef]: /references/spec/#gateway.networking.k8s.io/v1alpha2.ParentRef diff --git a/site-src/v1alpha2/api-types/referencegrant.md b/site-src/api-types/referencegrant.md similarity index 97% rename from site-src/v1alpha2/api-types/referencegrant.md rename to site-src/api-types/referencegrant.md index b75fe78e75..6d7a939b67 100644 --- a/site-src/v1alpha2/api-types/referencegrant.md +++ b/site-src/api-types/referencegrant.md @@ -14,7 +14,7 @@ A ReferenceGrant can be used to enable cross namespace references within Gateway API. In particular, Routes may forward traffic to backends in other namespaces, or Gateways may refer to Secrets in another namespace. -![Reference Grant](/v1alpha2/images/referencegrant-simple.png) +![Reference Grant](/images/referencegrant-simple.png) In the past, we've seen that forwarding traffic across namespace boundaries is a desired feature, but without a safeguard like ReferenceGrant, @@ -87,7 +87,7 @@ While the API is simplistic in nature, it comes with a few notable decisions: other. This makes it impossible for them to conflict with each other. Please see the [API -Specification](/v1alpha2/references/spec#gateway.networking.k8s.io/v1alpha2.ReferenceGrant) +Specification](/references/spec#gateway.networking.k8s.io/v1alpha2.ReferenceGrant) for more details on how specific ReferenceGrant fields are interpreted. ## Exceptions diff --git a/site-src/blog/2021/introducing-v1alpha2.md b/site-src/blog/2021/introducing-v1alpha2.md index b84e96428b..8f82e2e9a3 100644 --- a/site-src/blog/2021/introducing-v1alpha2.md +++ b/site-src/blog/2021/introducing-v1alpha2.md @@ -104,7 +104,7 @@ This is intended to allow things like: As a simple example, a TimeoutPolicy may be attached to a Gateway. The effects of that policy would cascade down to Routes attached to that policy: -![Simple Ingress Example](/v1alpha2/images/policy/ingress-simple.png) +![Simple Ingress Example](/images/policy/ingress-simple.png) This is covered in more detail in [GEP 713](https://gateway-api.sigs.k8s.io/geps/gep-713/). diff --git a/site-src/concepts/api-overview.md b/site-src/concepts/api-overview.md index bfc0128453..29cdfa19ec 100644 --- a/site-src/concepts/api-overview.md +++ b/site-src/concepts/api-overview.md @@ -285,7 +285,7 @@ reverse proxy is: TLS is configured on Gateway listeners, and may be referred to across namespaces. -Please refer to the [TLS details](/v1alpha2/guides/tls) guide for a deep dive on TLS. +Please refer to the [TLS details](/guides/tls) guide for a deep dive on TLS. ## Extension points diff --git a/site-src/concepts/security-model.md b/site-src/concepts/security-model.md index 8e8a8384fb..feffd08589 100644 --- a/site-src/concepts/security-model.md +++ b/site-src/concepts/security-model.md @@ -122,7 +122,7 @@ the ReferenceGrant. ``` For more information on ReferenceGrant, refer to our [detailed documentation -for this resource](/v1alpha2/api-types/referencegrant.md). +for this resource](/api-types/referencegrant.md). ## Advanced Concept: Limiting Namespaces Where a GatewayClass Can Be Used Some infrastructure providers or cluster operators may wish to limit the diff --git a/site-src/contributing b/site-src/contributing deleted file mode 120000 index c285cc9095..0000000000 --- a/site-src/contributing +++ /dev/null @@ -1 +0,0 @@ -v1alpha2/contributing \ No newline at end of file diff --git a/site-src/v1alpha2/contributing/community.md b/site-src/contributing/community.md similarity index 100% rename from site-src/v1alpha2/contributing/community.md rename to site-src/contributing/community.md diff --git a/site-src/v1alpha2/contributing/devguide.md b/site-src/contributing/devguide.md similarity index 100% rename from site-src/v1alpha2/contributing/devguide.md rename to site-src/contributing/devguide.md diff --git a/site-src/v1alpha2/contributing/enhancement-requests.md b/site-src/contributing/enhancement-requests.md similarity index 100% rename from site-src/v1alpha2/contributing/enhancement-requests.md rename to site-src/contributing/enhancement-requests.md diff --git a/site-src/v1alpha2/contributing/gep.md b/site-src/contributing/gep.md similarity index 100% rename from site-src/v1alpha2/contributing/gep.md rename to site-src/contributing/gep.md diff --git a/site-src/v1alpha2/guides/getting-started.md b/site-src/guides/getting-started.md similarity index 85% rename from site-src/v1alpha2/guides/getting-started.md rename to site-src/guides/getting-started.md index 0e97842770..ec9670b57f 100644 --- a/site-src/v1alpha2/guides/getting-started.md +++ b/site-src/guides/getting-started.md @@ -7,13 +7,13 @@ _THEN_ **2.** **Try out one of the available guides:** -- [Simple Gateway](/v1alpha2/guides/simple-gateway) (a good one to start out with) -- [HTTP routing](/v1alpha2/guides/http-routing) -- [HTTP redirects and rewrites](/v1alpha2/guides/http-redirect-rewrite) -- [HTTP traffic splitting](/v1alpha2/guides/traffic-splitting) -- [Routing across Namespaces](/v1alpha2/guides/multiple-ns) -- [Configuring TLS](/v1alpha2/guides/tls) -- [TCP routing](/v1alpha2/guides/tcp) +- [Simple Gateway](/guides/simple-gateway) (a good one to start out with) +- [HTTP routing](/guides/http-routing) +- [HTTP redirects and rewrites](/guides/http-redirect-rewrite) +- [HTTP traffic splitting](/guides/traffic-splitting) +- [Routing across Namespaces](/guides/multiple-ns) +- [Configuring TLS](/guides/tls) +- [TCP routing](/guides/tcp) ## Installing a Gateway controller diff --git a/site-src/v1alpha2/guides/http-redirect-rewrite.md b/site-src/guides/http-redirect-rewrite.md similarity index 91% rename from site-src/v1alpha2/guides/http-redirect-rewrite.md rename to site-src/guides/http-redirect-rewrite.md index 335e723654..b262504459 100644 --- a/site-src/v1alpha2/guides/http-redirect-rewrite.md +++ b/site-src/guides/http-redirect-rewrite.md @@ -1,8 +1,8 @@ # HTTP path redirects and rewrites -[HTTPRoute resources](/v1alpha2/api-types/httproute) can issue redirects to +[HTTPRoute resources](/api-types/httproute) can issue redirects to clients or rewrite paths sent upstream using -[filters](/v1alpha2/api-types/httproute#filters-optional). This guide shows how +[filters](/api-types/httproute#filters-optional). This guide shows how to use these features. Note that redirect and rewrite filters are mutually incompatible. Rules cannot @@ -12,7 +12,7 @@ use both filter types at once. Redirects return HTTP 3XX responses to a client, instructing it to retrive a different resource. [`RequestRedirect` rule -filters](v1alpha2/references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPRequestRedirectFilter) +filters](/references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPRequestRedirectFilter) instruct Gateways to emit a redirect response to requests matching a filtered HTTPRoute rule. @@ -73,7 +73,7 @@ https://redirect.example/paprika/teaspoon` response headers. Rewrites modify components of a client request before proxying it upstream. A [`URLRewrite` -filter](/v1alpha2/references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPURLRewriteFilter) +filter](/references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPURLRewriteFilter) can change the upstream request hostname and/or path. For example, the following HTTPRoute will accept a request for `https://rewrite.example/cardamom` and send it upstream to `example-svc` with diff --git a/site-src/v1alpha2/guides/http-routing.md b/site-src/guides/http-routing.md similarity index 85% rename from site-src/v1alpha2/guides/http-routing.md rename to site-src/guides/http-routing.md index 223a58038c..e4d7713efe 100644 --- a/site-src/v1alpha2/guides/http-routing.md +++ b/site-src/guides/http-routing.md @@ -1,6 +1,6 @@ # HTTP routing -The [HTTPRoute resource](/v1alpha2/api-types/httproute) allows you to match on HTTP traffic and +The [HTTPRoute resource](/api-types/httproute) allows you to match on HTTP traffic and direct it to Kubernetes backends. This guide shows how the HTTPRoute matches traffic on host, header, and path fields and forwards it to different Kubernetes Services. @@ -13,14 +13,14 @@ Services: to `bar-svc-canary` - Traffic to `bar.example.com/*` without the header is forwarded to `bar-svc` -![HTTP Routing](/v1alpha2/images/http-routing.png) +![HTTP Routing](/images/http-routing.png) The dotted lines show the Gateway resources deployed to configure this routing behavior. There are two HTTPRoute resources that create routing rules on the same `prod-web` Gateway. This illustrates how more than one Route can bind to a Gateway which allows Routes to merge on a Gateway as long as they don't conflict. For more information on Route merging, refer to the [HTTPRoute -documentation](/v1alpha2/api-types/httproute#merging). +documentation](/api-types/httproute#merging). In order to receive traffic from a [Gateway][gateway] an `HTTPRoute` resource must be configured with `ParentRefs` which reference the parent gateway(s) that it @@ -57,6 +57,6 @@ missing or not `canary` then it'll be forwarded to `bar-svc`. {% include 'v1alpha2/http-routing/bar-httproute.yaml' %} ``` -[gateway]:https://gateway-api.sigs.k8s.io/v1alpha2/references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPRouteSpec -[spec]:https://gateway-api.sigs.k8s.io/v1alpha2/references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPRouteSpec +[gateway]: /references/spec/#gateway.networking.k8s.io/v1alpha2.Gateway +[spec]: /references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPRouteSpec [svc]:https://kubernetes.io/docs/concepts/services-networking/service/ diff --git a/site-src/v1alpha2/guides/multiple-ns.md b/site-src/guides/multiple-ns.md similarity index 97% rename from site-src/v1alpha2/guides/multiple-ns.md rename to site-src/guides/multiple-ns.md index 97a111a757..5ac3494349 100644 --- a/site-src/v1alpha2/guides/multiple-ns.md +++ b/site-src/guides/multiple-ns.md @@ -36,7 +36,7 @@ to centrally control security without directly involving application teams. The logical relationship between the Gateway API resources looks like this: -![Cross-Namespace routing](../images/cross-namespace-routing.svg) +![Cross-Namespace routing](/images/cross-namespace-routing.svg) ## Cross-namespace Route Attachment @@ -156,7 +156,7 @@ Gateway that these Routes want to attach to. After these three Routes are deployed, they will all be attached to the `shared-gateway` Gateway. The Gateway merges these Routes into a single flat -list of routing rules. [Routing precedence](/v1alpha2/references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPRouteRule) +list of routing rules. [Routing precedence](/references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPRouteRule) between these routing rules is determined by most specific match and conflicts are handled according to [conflict resolution](/concepts/guidelines#conflicts). This provides predictable and diff --git a/site-src/v1alpha2/guides/simple-gateway.md b/site-src/guides/simple-gateway.md similarity index 96% rename from site-src/v1alpha2/guides/simple-gateway.md rename to site-src/guides/simple-gateway.md index 2b82b3a4af..6090390a14 100644 --- a/site-src/v1alpha2/guides/simple-gateway.md +++ b/site-src/guides/simple-gateway.md @@ -6,7 +6,7 @@ deployed together by the same owner. This represents a similar kind of model used for Ingress. In this guide, a Gateway and HTTPRoute are deployed which match all HTTP traffic and directs it to a single Service named `foo-svc`. -![Simple Gateway](/v1alpha2/images/single-service-gateway.png) +![Simple Gateway](/images/single-service-gateway.png) ```yaml {% include 'v1alpha2/simple-gateway/gateway.yaml' %} diff --git a/site-src/v1alpha2/guides/tcp.md b/site-src/guides/tcp.md similarity index 99% rename from site-src/v1alpha2/guides/tcp.md rename to site-src/guides/tcp.md index f0965402fa..2edef60cbe 100644 --- a/site-src/v1alpha2/guides/tcp.md +++ b/site-src/guides/tcp.md @@ -19,7 +19,7 @@ In this example two `TCP` listeners will be applied to the [Gateway][gateway] in order to route them to two separate backend `TCPRoutes`, note that the `protocol` set for the `listeners` on the `Gateway` is `TCP`: -``` +```yaml {% include 'experimental/v1alpha2/basic-tcp.yaml' %} ``` diff --git a/site-src/v1alpha2/guides/tls.md b/site-src/guides/tls.md similarity index 98% rename from site-src/v1alpha2/guides/tls.md rename to site-src/guides/tls.md index 49f68b4335..202a902c0e 100644 --- a/site-src/v1alpha2/guides/tls.md +++ b/site-src/guides/tls.md @@ -12,7 +12,7 @@ effectively. ## Client/Server and TLS -![overview](/v1alpha2/images/tls-overview.svg) +![overview](/images/tls-overview.svg) For Gateways, there are two connections involved: diff --git a/site-src/v1alpha2/guides/traffic-splitting.md b/site-src/guides/traffic-splitting.md similarity index 87% rename from site-src/v1alpha2/guides/traffic-splitting.md rename to site-src/guides/traffic-splitting.md index c7c9f2d21d..15aae74413 100644 --- a/site-src/v1alpha2/guides/traffic-splitting.md +++ b/site-src/guides/traffic-splitting.md @@ -1,6 +1,6 @@ # HTTP traffic splitting -The [HTTPRoute resource](/v1alpha2/api-types/httproute) allows you to specify +The [HTTPRoute resource](/api-types/httproute) allows you to specify weights to shift traffic between different backends. This is useful for splitting traffic during rollouts, canarying changes, or for emergencies. The HTTPRoute`spec.rules.backendRefs` accepts a list of backends that a route @@ -9,7 +9,7 @@ the split of traffic between them. The following YAML snippet shows how two Services are listed as backends for a single route rule. This route rule will split traffic 90% to `foo-v1` and 10% to `foo-v2`. -![Traffic splitting](/v1alpha2/images/simple-split.png) +![Traffic splitting](/images/simple-split.png) ```yaml {% include 'v1alpha2/traffic-splitting/simple-split.yaml' %} @@ -41,11 +41,11 @@ production user traffic for `foo.example.com`. The following HTTPRoute has no recieve 100% of the traffic matched by each of their route rules. A canary route rule is used (matching the header `traffic=test`) to send synthetic test traffic before splitting any production user traffic to `foo-v2`. -[Routing precedence](/v1alpha2/references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPRouteRule) +[Routing precedence](/references/spec/#gateway.networking.k8s.io/v1alpha2.HTTPRouteRule) ensures that all traffic with the matching host and header (the most specific match) will be sent to `foo-v2`. -![Traffic splitting](/v1alpha2/images/traffic-splitting-1.png) +![Traffic splitting](/images/traffic-splitting-1.png) ```yaml @@ -61,7 +61,7 @@ as a backend along with weights. The weights add up to a total of 100 so `foo-v1` recieves 90/100=90% of the traffic and `foo-v2` recieves 10/100=10% of the traffic. -![Traffic splitting](/v1alpha2/images/traffic-splitting-2.png) +![Traffic splitting](/images/traffic-splitting-2.png) ```yaml @@ -74,7 +74,7 @@ Finally, if all signals are positive, it is time to fully shift traffic to `foo-v2` and complete the rollout. The weight for `foo-v1` is set to `0` so that it is configured to accept zero traffic. -![Traffic splitting](/v1alpha2/images/traffic-splitting-3.png) +![Traffic splitting](/images/traffic-splitting-3.png) ```yaml diff --git a/site-src/v1alpha2/images/cross-namespace-routing.svg b/site-src/images/cross-namespace-routing.svg similarity index 100% rename from site-src/v1alpha2/images/cross-namespace-routing.svg rename to site-src/images/cross-namespace-routing.svg diff --git a/site-src/v1alpha2/images/http-routing.png b/site-src/images/http-routing.png similarity index 100% rename from site-src/v1alpha2/images/http-routing.png rename to site-src/images/http-routing.png diff --git a/site-src/v1alpha2/images/httproute-basic-example.svg b/site-src/images/httproute-basic-example.svg similarity index 100% rename from site-src/v1alpha2/images/httproute-basic-example.svg rename to site-src/images/httproute-basic-example.svg diff --git a/site-src/v1alpha2/images/policy/hierarchy.png b/site-src/images/policy/hierarchy.png similarity index 100% rename from site-src/v1alpha2/images/policy/hierarchy.png rename to site-src/images/policy/hierarchy.png diff --git a/site-src/v1alpha2/images/policy/ingress-attachment.png b/site-src/images/policy/ingress-attachment.png similarity index 100% rename from site-src/v1alpha2/images/policy/ingress-attachment.png rename to site-src/images/policy/ingress-attachment.png diff --git a/site-src/v1alpha2/images/policy/ingress-complex.png b/site-src/images/policy/ingress-complex.png similarity index 100% rename from site-src/v1alpha2/images/policy/ingress-complex.png rename to site-src/images/policy/ingress-complex.png diff --git a/site-src/v1alpha2/images/policy/ingress-simple.png b/site-src/images/policy/ingress-simple.png similarity index 100% rename from site-src/v1alpha2/images/policy/ingress-simple.png rename to site-src/images/policy/ingress-simple.png diff --git a/site-src/v1alpha2/images/policy/mesh-complex.png b/site-src/images/policy/mesh-complex.png similarity index 100% rename from site-src/v1alpha2/images/policy/mesh-complex.png rename to site-src/images/policy/mesh-complex.png diff --git a/site-src/v1alpha2/images/policy/mesh-simple.png b/site-src/images/policy/mesh-simple.png similarity index 100% rename from site-src/v1alpha2/images/policy/mesh-simple.png rename to site-src/images/policy/mesh-simple.png diff --git a/site-src/v1alpha2/images/referencegrant-simple.png b/site-src/images/referencegrant-simple.png similarity index 100% rename from site-src/v1alpha2/images/referencegrant-simple.png rename to site-src/images/referencegrant-simple.png diff --git a/site-src/v1alpha2/images/simple-split.png b/site-src/images/simple-split.png similarity index 100% rename from site-src/v1alpha2/images/simple-split.png rename to site-src/images/simple-split.png diff --git a/site-src/v1alpha2/images/single-service-gateway.png b/site-src/images/single-service-gateway.png similarity index 100% rename from site-src/v1alpha2/images/single-service-gateway.png rename to site-src/images/single-service-gateway.png diff --git a/site-src/v1alpha2/images/tls-overview.svg b/site-src/images/tls-overview.svg similarity index 100% rename from site-src/v1alpha2/images/tls-overview.svg rename to site-src/images/tls-overview.svg diff --git a/site-src/v1alpha2/images/traffic-splitting-1.png b/site-src/images/traffic-splitting-1.png similarity index 100% rename from site-src/v1alpha2/images/traffic-splitting-1.png rename to site-src/images/traffic-splitting-1.png diff --git a/site-src/v1alpha2/images/traffic-splitting-2.png b/site-src/images/traffic-splitting-2.png similarity index 100% rename from site-src/v1alpha2/images/traffic-splitting-2.png rename to site-src/images/traffic-splitting-2.png diff --git a/site-src/v1alpha2/images/traffic-splitting-3.png b/site-src/images/traffic-splitting-3.png similarity index 100% rename from site-src/v1alpha2/images/traffic-splitting-3.png rename to site-src/images/traffic-splitting-3.png diff --git a/site-src/index.md b/site-src/index.md index 5585eab60b..f0897e6807 100644 --- a/site-src/index.md +++ b/site-src/index.md @@ -19,9 +19,9 @@ interested in conforming to the API, the following resources will help give you the necessary background: - [API overview](/concepts/api-overview) -- [User guides](/v1alpha2/guides/getting-started) +- [User guides](/guides/getting-started) - [Gateway controller implementations](/implementations) -- [API reference spec](/v1alpha2/references/spec) +- [API reference spec](/references/spec) - [Community links](/contributing/community) and [developer guide](/contributing/devguide) @@ -76,19 +76,19 @@ used by many different and non-coordinating teams, all bound by the policies and constraints set by cluster operators. The following example shows how this works in practice. -A cluster operator creates a [Gateway](/v1alpha2/api-types/gateway) resource derived from a -[GatewayClass](/v1alpha2/api-types/gatewayclass). This Gateway deploys or configures the +A cluster operator creates a [Gateway](/api-types/gateway) resource derived from a +[GatewayClass](/api-types/gatewayclass). This Gateway deploys or configures the underlying network resources that it represents. Through the [Route Attachment Process](/concepts/api-overview#attaching-routes-to-gateways) between the Gateway and Routes, the cluster operator and specific teams must agree on what can attach to this Gateway and expose their applications through -it. Centralized policies [such as TLS](/v1alpha2/guides/tls#downstream-tls) can +it. Centralized policies [such as TLS](/guides/tls#downstream-tls) can be enforced on the Gateway by the cluster operator. Meanwhile, the store and site -teams run [in their own Namespaces](/v1alpha2/guides/multiple-ns), but attach their +teams run [in their own Namespaces](/guides/multiple-ns), but attach their Routes to the same shared Gateway, allowing them to independently control -their [routing logic](/v1alpha2/guides/http-routing). This separation of concerns +their [routing logic](/guides/http-routing). This separation of concerns allows the store team to manage their own -[traffic splitting rollout](/v1alpha2/guides/traffic-splitting) while +[traffic splitting rollout](/guides/traffic-splitting) while leaving centralized policies and control to the cluster operators. ![Gateway API Roles](./images/gateway-roles.png) diff --git a/site-src/v1alpha2/references/images/policy-hierarchy.png b/site-src/references/images/policy-hierarchy.png similarity index 100% rename from site-src/v1alpha2/references/images/policy-hierarchy.png rename to site-src/references/images/policy-hierarchy.png diff --git a/site-src/v1alpha2/references/images/referencepolicy.png b/site-src/references/images/referencepolicy.png similarity index 100% rename from site-src/v1alpha2/references/images/referencepolicy.png rename to site-src/references/images/referencepolicy.png diff --git a/site-src/v1alpha2/references/policy-attachment.md b/site-src/references/policy-attachment.md similarity index 97% rename from site-src/v1alpha2/references/policy-attachment.md rename to site-src/references/policy-attachment.md index ab91e6e4da..1c24d9ac90 100644 --- a/site-src/v1alpha2/references/policy-attachment.md +++ b/site-src/references/policy-attachment.md @@ -28,7 +28,7 @@ Access is granted with RBAC - for example, anyone that has access to create a RetryPolicy in a given namespace can attach it to any resource within that namespace. -![Simple Ingress Example](/v1alpha2/images/policy/ingress-simple.png) +![Simple Ingress Example](/images/policy/ingress-simple.png) To build on that example, it’s possible to attach policies to more resources. Each policy applies to the referenced resource and everything below it in terms @@ -36,7 +36,7 @@ of hierarchy. Although this example is likely more complex than many real world use cases, it helps demonstrate how policy attachment can work across namespaces. -![Complex Ingress Example](/v1alpha2/images/policy/ingress-complex.png) +![Complex Ingress Example](/images/policy/ingress-complex.png) ## Policy Attachment for Mesh Although there is a great deal of overlap between ingress and mesh use cases, @@ -44,7 +44,7 @@ mesh enables more complex policy attachment scenarios. For example, users may want to apply policy to requests from a specific namespace to a backend in another namespace. -![Simple Mesh Example](/v1alpha2/images/policy/mesh-simple.png) +![Simple Mesh Example](/images/policy/mesh-simple.png) Policy attachment can be quite simple with mesh. Policy can be applied to any resource in any namespace but it can only apply to requests from the same @@ -55,7 +55,7 @@ workload to a backend in another namespace. A route can be used to intercept these requests and split them between different backends (foo-a and foo-b in this case). -![Complex Mesh Example](/v1alpha2/images/policy/mesh-complex.png) +![Complex Mesh Example](/images/policy/mesh-complex.png) ## Target Reference API @@ -124,7 +124,7 @@ Each policy MAY include default or override values. Overrides enable admins to enforce policy from the top down. Defaults enable app owners to provide default values from the bottom up for each individual application. -![Policy Hierarchy](/v1alpha2/images/policy/hierarchy.png) +![Policy Hierarchy](/images/policy/hierarchy.png) To illustrate this, consider 3 resources with the following hierarchy: A (highest) > B > C. When attaching the concept of defaults and overrides to that, diff --git a/site-src/v1alpha2/references/spec.md b/site-src/references/spec.md similarity index 100% rename from site-src/v1alpha2/references/spec.md rename to site-src/references/spec.md diff --git a/site-src/v1alpha2/.mkdocs-exclude b/site-src/v1alpha2/.mkdocs-exclude deleted file mode 100644 index 9a2dd762e5..0000000000 --- a/site-src/v1alpha2/.mkdocs-exclude +++ /dev/null @@ -1,6 +0,0 @@ -.mkdocs-exclude -.nojekyll -.placeholder -search/search_index.json -sitemap.xml.gz -sitemap.xml diff --git a/site-src/v1alpha2/api-types b/site-src/v1alpha2/api-types new file mode 120000 index 0000000000..413ce9f4bc --- /dev/null +++ b/site-src/v1alpha2/api-types @@ -0,0 +1 @@ +../api-types \ No newline at end of file diff --git a/site-src/v1alpha2/contributing b/site-src/v1alpha2/contributing new file mode 120000 index 0000000000..291070c187 --- /dev/null +++ b/site-src/v1alpha2/contributing @@ -0,0 +1 @@ +../contributing \ No newline at end of file diff --git a/site-src/v1alpha2/guides b/site-src/v1alpha2/guides new file mode 120000 index 0000000000..1fd9aa1000 --- /dev/null +++ b/site-src/v1alpha2/guides @@ -0,0 +1 @@ +../guides \ No newline at end of file diff --git a/site-src/v1alpha2/images/api-model.png b/site-src/v1alpha2/images/api-model.png deleted file mode 100644 index 1a01ac5f6c..0000000000 Binary files a/site-src/v1alpha2/images/api-model.png and /dev/null differ diff --git a/site-src/v1alpha2/images/gateway-roles.png b/site-src/v1alpha2/images/gateway-roles.png deleted file mode 100644 index 4848bfa20f..0000000000 Binary files a/site-src/v1alpha2/images/gateway-roles.png and /dev/null differ diff --git a/site-src/v1alpha2/images/gateway-route-binding.png b/site-src/v1alpha2/images/gateway-route-binding.png deleted file mode 100644 index a62baf7324..0000000000 Binary files a/site-src/v1alpha2/images/gateway-route-binding.png and /dev/null differ diff --git a/site-src/v1alpha2/images/schema-uml.svg b/site-src/v1alpha2/images/schema-uml.svg deleted file mode 100644 index 11e1e29519..0000000000 --- a/site-src/v1alpha2/images/schema-uml.svg +++ /dev/null @@ -1,275 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/site-src/v1alpha2/references b/site-src/v1alpha2/references new file mode 120000 index 0000000000..3dc6b5c60a --- /dev/null +++ b/site-src/v1alpha2/references @@ -0,0 +1 @@ +../references \ No newline at end of file