diff --git a/.bookignore b/.bookignore new file mode 100644 index 0000000000..1646affdc1 --- /dev/null +++ b/.bookignore @@ -0,0 +1,3 @@ +README.md +package*.json +build-website.sh diff --git a/.markdownlintrc b/.markdownlintrc new file mode 100644 index 0000000000..ce4ea08f4f --- /dev/null +++ b/.markdownlintrc @@ -0,0 +1,6 @@ +{ + "no-trailing-spaces": { "br_spaces": 2 }, + "no-multiple-blanks": false, + "line-length": false, + "ol-prefix": { "style": "ordered" } +} diff --git a/INDEX.md b/INDEX.md new file mode 100644 index 0000000000..fb1919f417 --- /dev/null +++ b/INDEX.md @@ -0,0 +1,3 @@ +# GitBook Index Page + +This page is overwritten by the documentation build process. diff --git a/README.md b/README.md new file mode 100644 index 0000000000..9eb5a88cd4 --- /dev/null +++ b/README.md @@ -0,0 +1,12 @@ +# Ambassador documentation + +We've switched to GatsbyJS for generating the documentation, which gives us more control and flexibility over the layout. + +## Authoring documentation + +If you're authoring the documentation, just edit the Markdown files. You can use GitHub to preview the Markdown. + +## Documentation infrastructure notes + +* The rendered YAML and markdown files are copied by Travis CI to a separate Gatsby-based toolchain. Still TODO is to provide a local version of this toolchain. +* The `doc-links.yml` file is the new TOC. \ No newline at end of file diff --git a/_layouts/footer.html b/_layouts/footer.html new file mode 100644 index 0000000000..ed081e5647 --- /dev/null +++ b/_layouts/footer.html @@ -0,0 +1,5 @@ + + +
Ambassador supports global policies that apply to all services.
+Add basic authentication to your services
+ + +Define your custom authentication service (e.g., OpenID Connect, OAuth)
+ + +Use your own SSL certificate
+ + +Throttle incoming requests with a gRPC rate limiting service
+ + +Send real-time metrics via StatsD
+ + +Collect real-time metrics with Prometheus
+ + +Collect real-time metrics with DataDog
+ + +Easily troubleshoot your configuration with the Ambassador diagnostics UI
+ + +Follow the lifecycle of a request from the edge to your services
+ +Ambassador gives your Kubernetes service owners fine-
grained control over their ingress.
Enable Cross-Origin Resource Sharing for given service URLs
+ + +Test new updates of your services against a subset of your production traffic
+ +Add request timeouts to service API calls
+Add a dictionary of HTTP headers that can be added to each request to your service
+ + +Add a dictionary of HTTP headers added to each response that is returned to client
+ +Route based on regular expression
+Route based on your HTTP method (e.g., GET, PUT)
+Route based on specific HTTP headers
+ + +Replace the URL prefix when routing to a service
+ +Native WebSockets support
+Native gRPC support
+ + +Test services with production data, with zero impact on production
+ +Ambassador is under active development. Subscribe to get updates and announcements:
+Built by Datawire, helping you build an amazing development workflow on Kubernetes
+Open source, Kubernetes-native API Gateway for Microservices built on Envoy
+ + + +Map services to arbitrary URLs in a single, declarative YAML file. Configure routes with CORS support, circuit breakers, timeouts, and more. Replace your Kubernetes ingress controller. Route gRPC, WebSockets, or HTTP. Load balance between your different services.
++ Easily integrate your own authentication service with Ambassador for + + per-request authentication. +
++ Ambassador uses the high performance + Envoy Proxy, which processes + over 2M requests/second at Lyft. Ambassador runs as a sidecar to Envoy, ensuring that you + get raw Envoy performance. +
++ Ambassador uses the proven resilience capabilities of Kubernetes to ensure high + availability. For example, Kubernetes is responsible for auto-restarting, auto-scaling, + and updating (via a RollingUpdate) Ambassador. Unlike many other API gateways, Ambassador + has no database -- it relies on ConfigMap to store state. +
++ Easily and safely configure Ambassador without going through operations -- Ambassador is configured using Kubernetes annotations. +
+"Ambassador seemed like the only solution that makes dynamically adding routes + easy and the fact that I can do that just by creating a service and annotating + it is awesome! Without Ambassador I don’t know how we would have easily made + all the different web services comprising Kubeflow available to users."
++
+ +"Ever since the inception of Kubernetes, we’ve witnessed a community of ideas + coming together and evolving best practices. Ambassador is one of the building + blocks we adopted and are proud to be contributing to."
++
+ +"Regarding Ambassador, all I hear around our company is pure joy."
++
+ +Download and run Ambassador as a Docker container:
+
+docker run -it -p 8080:80 --name=ambassador --rm quay.io/datawire/ambassador:{VERSION} --demo
+
+ That's it! Check out the diagnostics page at http://localhost:8080/ambassador/v0/diag/.
+See Ambassador route requests live to our Quote of The Moment service at demo.getambassador.io:
+curl localhost:8080/qotm/
+ Ambassador is under active development. Subscribe to get updates and announcements:
+Built by Datawire, helping you build an amazing development workflow on Kubernetes
++ + | ++Ambassador is designed to run in Kubernetes for production. Deploy to Kubernetes via YAML. + | +