diff --git a/doc/user-guides/secure-protect-connect.md b/doc/user-guides/secure-protect-connect.md new file mode 100644 index 000000000..fc4c897aa --- /dev/null +++ b/doc/user-guides/secure-protect-connect.md @@ -0,0 +1,372 @@ +# Kuadrant Quick Start + +## Pre-requisites + +- Completed the [single cluster quick start](https://docs.kuadrant.io/getting-started-single/) + +## Overview + +In this guide, we will cover the different policies from Kuadrant and how you can use them to secure, protect and connect an istio controlled gateway in a single cluster and how you can set more refined protection on the HTTPRoutes exposed by that gateway. + +Here are the steps we will go through: + +- [Deploy a sample application](#deploy-the-example-app-we-will-serve-via-our-gateway) +- [Define a new Gateway](#define-a-new-istio-managed-gateway) +- [Ensure TLS based secure connectivity to the gateway with `TLSPolicy`](#define-tlspolicy) +- [Define a default `RateLimitPolicy` to set some infrastructure limits on your gateway](#define-infrastructure-rate-limiting) +- [Define a default `AuthPolicy` to `Deny ALL` access to the gateway](#define-a-gateway-authpolicy) +- [Define `DNSPolicy` to bring traffic to the gateway](#define-dnspolicy) +- [Override the Gateway's Deny ALL `AuthPolicy`](#override-the-gateways-deny-all-authpolicy) +- [Override the Gateway `RateLimits`](#override-the-gateways-ratelimits) + + +To help with this walk through, you should set a `KUADRANT_ZONE_ROOT_DOMAIN` environmental variable to a domain you want to use. If it you want to try `DNSPolicy` this should also be a domain you have access to the DNS for in `route53 or GCP`. Example: +```export KUADRANT_ZONE_ROOT_DOMAIN=my.domain.iown``` + +### Deploy the example app we will serve via our gateway + +`kubectl apply -f https://raw.githubusercontent.com/Kuadrant/kuadrant-operator/main/examples/toystore/toystore.yaml` + +### Define a new Istio managed gateway + +``` +kubectl --context kind-kuadrant-local apply -f - <